git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

Previous: Robert Dailey
Message 7 of 7 in “Need help merging unrelated histories”
  1. Robert DaileyMay 24, 2019
  2. Robert DaileyMay 24, 2019
  3. Ævar Arnfjörð BjarmasonMay 24, 2019
  4. Andreas SchwabMay 24, 2019
  5. Robert DaileyMay 28, 2019
  6. Robert DaileyMay 28, 2019
  7. Philip OakleyMay 29, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.