Florian Lindner venit, vidit, dixit 21.12.2012 17:11: > Hello, > > I have two repositories. tools and flof. I want to merge flof into tools (and > flof will be deleted after that) while keeping history intact. Of course I've > googled that and found a number of different solution which all seem to be > pretty komplex, so I just tried it myself. It seems to work.... are there any > problems with my approach? > > ~/software/tools.test (git)-[master] % git remote add fl ~/flof > > ~/software/tools.test (git)-[master] % git fetch fl > warning: no common commits > remote: Counting objects: 475, done. > remote: Compressing objects: 100% (460/460), done. > remote: Total 475 (delta 251), reused 0 (delta 0) > Receiving objects: 100% (475/475), 190.40 KiB, done. > Resolving deltas: 100% (251/251), done. > From /home/florian/flof > * [new branch] master -> fl/master > * [new branch] v2-rewrite -> fl/v2-rewrite > Two disjoint histories, nothing wrong with that. > /software/tools.test (git)-[master] % git checkout -b import fl/master > Branch import set up to track remote branch master from fl. > Switched to a new branch 'import' > > Doing some mkdir und git mv for reorganisation. Here avoid possible problems from both projects using the same root (in the filesystem/tree sense). > ~/software/tools.test/flof (git)-[import] % git commit -m "Reorganize flof." > [import a00ab54] Reorganize flof. > 152 files changed, 0 insertions(+), 0 deletions(-) > rename {doc => flof/doc}/common.rst (100%) > rename {doc => flof/doc}/conf.py (100%) > [...] > > ~/software/tools.test/flof (git)-[import] % git checkout master > Switched to branch 'master' > > ~/software/tools.test (git)-[master] % git merge import > Auto-merging .gitignore > CONFLICT (add/add): Merge conflict in .gitignore > Automatic merge failed; fix conflicts and then commit the result. > > Resolving the conflict. > > ~/software/tools.test (git)-[master|merge] % git add .gitignore > > ~/software/tools.test (git)-[master|merge] % git commit -m "Merged flof." > [master b8c85be] Merged flof. > > ~/software/tools.test (git)-[master] % git remote rm fl > > Are thery any problems with this procedure? The history seems to intact. I'm > quite unsure since still being a git beginner. It works in the sense that git follows the renames (moves) you had to do prior to the merge. Other tools like git-subtree do that history implanting in one step, by putting the added project into a subtree (rewriting the history). That way you don't have reorg commits in the history. Michael -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html