I've previously noted that when we move to git, while we should use a clean conversion with proper author attributions, we should also keep the commits from the existing git mirror available somewhere as there are various git-only branches there and lots of references to git commit ids in the list archives.
This can be done either by renaming the existing mirror and keeping it available read-only in some public location, or by having both sets of objects in one repository. Given a conversion with reposurgeon, I've now tested the following command as a way to get the objects from the existing mirror into the same repository: git fetch --no-tags \ git://gcc.gnu.org/git/gcc.git \ 'refs/heads/*:refs/heads/git-old/*' \ 'refs/remotes/*:refs/heads/git-svn-old/*' \ 'refs/tags/*:refs/tags/git-old/*' Doing this increases the size of the repository (after git gc --aggressive) from 1.4 GB to 1.7 GB (most blob and tree objects being the same between the two versions of the history). It's also possible to use different ref names that aren't fetched by default such as refs/git-old/*. If someone wishes to move an existing git-only branch to be based on the new version of the history, rebasing is probably better than merging, to avoid confusing effects of a commit having the whole of both old and new versions of master in its ancestry. -- Joseph S. Myers jos...@codesourcery.com