Re: Need help merging unrelated histories
- From
Philip Oakley <philipoakley@iee.org>
- Date
- May 29, 2019, 13:56 UTC
- Message-ID
- <4e1ab4ad-f883-263a-2826-5a79bf75494b@iee.org>
- In-Reply-To
- <CAHd499CZnhzw+sKM_Nx4_SvUT5YWaLWr9SmBKCkOcH4=wSdaqA@mail.gmail.com>
Hi Robert, A few comments to look at, which may help. On 28/05/2019 19:26, Robert Dailey wrote:
Show 36 quoted lines
> On Tue, May 28, 2019 at 8:35 AM Robert Dailey <rcdailey.lists@gmail.com> wrote: >> On Fri, May 24, 2019 at 12:11 PM Andreas Schwab <schwab@linux-m68k.org> wrote: >>> On Mai 24 2019, Robert Dailey <rcdailey.lists@gmail.com> 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 >>> permanent? >> 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. > Thank you. > > ```sh > #!/usr/bin/env bash > set -ex > > if [[ ! -d Native_SDK.git ]]; then > git clone --bare git@github.com:powervr-graphics/Native_SDK.git > else > cd Native_SDK.git > git fetch > cd - > fi > > rm -rf test_repo > git clone Native_SDK.git test_repo > cd test_repo > > git checkout -f --orphan new_master
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 .`
> 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 )
> git replace --graft $c new_master
Typing "git replace" without arguments, also lists all replace refs. - check what the new one is. Investigate.
> git filter-branch HEAD..origin/3.4
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 for comparing.
> git merge --no-edit --no-ff origin/3.4 > ```
same again
Hopefully the random thoughts may prompt something. Philip