Re: Need help merging unrelated histories
- Date: Wed, 29 May 2019 14:56:03 +0100
- From: Philip Oakley <philipoakley@xxxxxxx>
- Subject: Re: Need help merging unrelated histories
A few comments to look at, which may help.
On 28/05/2019 19:26, Robert Dailey wrote:
Check here what is in the files system and index - see the caveat in the
man page for the --orphan start point and potential use of `git rm -rf .`
On Tue, May 28, 2019 at 8:35 AM Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote:
On Fri, May 24, 2019 at 12:11 PM Andreas Schwab <schwab@xxxxxxxxxxxxxx> wrote:
On Mai 24 2019, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote:
Can anyone provide some advice on how to properly restructure this
repository to create some ancestry, as if all along a `master` existed
and all release branches were based on this in a linear fashion?
How about using git replace --graft, then git filter-branch to make it
I unfortunately have little-to-no experience with low level plumbing
commands. Could you provide an example of a series of commands to run?
It will help me to figure out how to do it on my own for my specific
use case. Thanks in advance.
Toyed around with it a bit, and tried with the script below. There
were no errors, but I noticed that it erased my `.gitattributes` file
on master that I committed before performing the graft. Why did it
remove the file? I assume I'm not doing this correctly. Please advise.
if [[ ! -d Native_SDK.git ]]; then
git clone --bare git@xxxxxxxxxx:powervr-graphics/Native_SDK.git
rm -rf test_repo
git clone Native_SDK.git test_repo
git checkout -f --orphan new_master
echo '* text=auto' > .gitattributes
Maybe also add some mega comment line to really see it..
git add .gitattributes
git commit -m 'Add gitattributes file'
Check what is actually committed, in case you have more/less than expected.
c=$(git log --oneline origin/3.4 | tail -1 | cut -d ' ' -f 1)
Is this the one you expected (maybe gitk viewer )
Typing "git replace" without arguments, also lists all replace refs. -
check what the new one is. Investigate.
git replace --graft $c new_master
Hmm is this the right range for re-write (not checked, just feels as if
it's wrong). Maybe also need a local branch name for origin/3.4, just
git filter-branch HEAD..origin/3.4
git merge --no-edit --no-ff origin/3.4
Hopefully the random thoughts may prompt something.