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

Re: How-to combine several separate git repos?

From
Wink Saville <wink@saville.com>
Date
Dec 10, 2007, 06:36 UTC
Message-ID
<475CDE73.9010505@saville.com>
In-Reply-To
<Pine.LNX.4.64.0712092130560.5349@iabervon.org>
Daniel Barkalow wrote:
Show 39 quoted lines
> On Sun, 9 Dec 2007, Wink Saville wrote:
>
>   
> Ah, okay. I was assuming that you wanted them to maintain their original 
> identities (so you'd send stuff off for each of them separately, for 
> example).
>
> I think you can do what you want by doing:
>
> # Set up the new line:
> $ mkdir x; cd x
> $ git init
> $ touch README
> $ git add README
> $ git commit
>
> # Add a project "foo"
> $ git fetch ../foo refs/heads/master:refs/heads/foo
> $ git merge --no-commit foo
> $ git read-tree --reset -u HEAD
> $ git read-tree -u --prefix=foo/ foo
> $ git commit
>
> And repeat for all of the other projects.
>
> What's going on here is that you're merging in each project, except that 
> you're moving all of the files from that project into a subdirectory as 
> you pull in the content. The resulting repository has one recent dull 
> initial commit, and then merges in each of the other projects with their 
> history, with only the slight oddity that they don't go back to the same 
> initial commit, and the merge renames all of the project's files.
>
> I think there may be a more obvious way of doing this (it's essentially 
> how gitweb and git-gui got into the git history), but I'm not sure what it 
> is, if there is one.
>
> 	-Daniel
> *This .sig left intentionally blank*
>   
Daniel,
Worked like a charm, someday maybe I'll understand why it works:)
Wink
Previous: Daniel BarkalowNext: Daniel Barkalow
Message 9 of 13 in “How-to combine several separate git repos?”
  1. Wink SavilleDec 9, 2007
  2. Alex RiesenDec 9, 2007
  3. Wink SavilleDec 9, 2007
  4. Daniel BarkalowDec 9, 2007
  5. Wink SavilleDec 9, 2007
  6. Daniel BarkalowDec 10, 2007
  7. Wink SavilleDec 10, 2007
  8. Daniel BarkalowDec 10, 2007
  9. Wink SavilleDec 10, 2007
  10. Daniel BarkalowDec 10, 2007
  11. Wink SavilleDec 10, 2007
  12. Alex RiesenDec 10, 2007
  13. Wink SavilleDec 10, 2007

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.