On Wed, Jan 18, 2006 at 01:51:58PM +0100, Petr Baudis wrote: > Hello, > > Dear diary, on Wed, Jan 18, 2006 at 01:25:59PM CET, I got a letter > where Mathias Waack <Mathias.Waack@rantzau.de> said that... > > we're using git with cogito as a frontend. For some reasons I forgot we have > > some repositories which belong to the same project. To simplify the whole > > thing I would like to join these repositories. It mainly means to move some > > directories. So lets say I have: > > > > /r1/.git > > /r2/.git > > > > and what I would like to have is > > > > /r/.git > > r1 > > r2 > > > > Of course the history should remain (otherwise it would be to easy). > > > > How should I do this? > > The crucial question is what the joined repository's directory > structure should be. If from r1/a, r2/b you want r/a, r/b then it's > easy: > > cd r1 > cg-branch-add r2 ../r2/.git > cg-fetch r2 > cg-merge -j r2 > > But if you want r1/a, r2/b to turn to r/r1/a, r/r2/b, you will have > to rewrite the history of each (and then do the above). One rough > and untested sketch... ... Why would that be the optimal method? Assuming both repositories are clean, no extraneous files, and without testing, of course: In r1: mkdir r1 # move everything into the subdirectory called r1. git mv $(ls -a | grep -v -e ^.git$ -e ^r1$) r1/ git commit -a "Restructure directory" In r2: mkdir r2 # move all files into r2/ git mv $(ls -a | grep -v -e ^.git$ -e ^r2$) r2/ git commit -a "Restructure directory" git fetch ../r1/ GIT_INDEX_FILE=.git/tmp-index git-read-tree FETCH_HEAD GIT_INDEX_FILE=.git/tmp-index git-checkout-cache -a -u git-update-cache --add -- $(GIT_INDEX_FILE=.git/tmp-index git-ls-files) cp .git/FETCH_HEAD .git/MERGE_HEAD git commit No history rewritten, merging with the old repositories should, at least theoretically, work, etc. (This is just a restatement of Linus's "Coolest merge ever" / union merge) -- Ryan Anderson sometimes Pug Majere - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Thu Jan 19 01:09:43 2006
This archive was generated by hypermail 2.1.8 : 2006-01-19 01:10:51 EST