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

Re: Git: Having trouble merging two repositories by interweaving their histories

From
TATHILLOSEN Andreas <thillosen@free.fr>
Date
Sep 10, 2013, 00:19 UTC
Message-ID
<522E65A2.3060401@free.fr>
In-Reply-To
<87fvtdbnna.fsf@igel.home>
Le 09/10/13 01:06, Andreas Schwab a écrit :
Show 12 quoted lines
> THILLOSEN Andreas <thillosen@free.fr> writes:
> 
>> It implies "interweaving" their histories, so that I can get a "state"
>> of both RepA and RepB around a same time period of time.
> 
> This is only possible by rewriting every commit to point to a new tree
> containing the combined trees of the two repositories.  To get a
> meaningful result this requires that both repositories have a completely
> linear history.
> 
> Andreas.
> 
Thanks for your answer...

I searched a little more around the web, and found some trick called "grafting repositories". But examples were all of the same kind: They supposed that all commits in RepA were done before commits in RepB. For instance:

http://stackoverflow.com/questions/2428137/how-to-rebase-one-git-repository-onto-another-one

This is not my case, because I had work done in parallel in both repositories. So I'm not really sure that "grafting" could help in my particular case...

To make the graft permanent, they use git filter-branch, which rewrites history (all SHA1s are changed etc.)... but as long as dates could be kept, it would not annoy me that much.

I also found a script called git-stitch-repo in CPAN... I have not yet tested it, but it is reported that it only works on repositories with linear history (no merges): http://search.cpan.org/~book/Git-FastExport-0.09/script/git-stitch-repo

This is also not my case: Merges have been done regularly on my two repositories...

There is also this tool: CombineRepo... no idea how reliable it is, or what limitations it entails: https://github.com/geppo12/GitCombineRepo

So... if I understand correctly, there will be no real practical way to merge my two repositories, in order to get an interweaving history? (not criticizing, I only want to know where I am heading now!)

Greetings,
Andreas THILLOSEN.
Previous: Andreas Schwab
Message 3 of 3 in “Git: Having trouble merging two repositories by interweaving their histories”
  1. THILLOSEN AndreasSep 9, 2013
  2. Andreas SchwabSep 9, 2013
  3. THILLOSEN AndreasSep 10, 2013

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.