Basically:
.) Make a git svn clone of the old repo, create a branch called
pre_git_libmesh
.) Merge upstream/master into pre_git_libmesh
.) Merge pre_git_libmesh back into master.
The merges are trivial (no conflicts) because the git svn clone puts
everything in the old SVN {branches,tags,trunk} directory structure. One
more commit to delete those three directories and we are back to the
current state of master before the merge.
Besides the obvious benefit of having the entire history available online
in one place, no commits or history have to be rewritten (rebased) in order
to do this. The recent (i.e. last 3 years or so) history remains basically
unaffected, other than the merge commit plus some cleanup commits. Here's a
snapshot of the current graph showing my fork's master in relation to
upstream/master:
https://drive.google.com/file/d/0B9BK7pg8se_iTGJ0ZE9FcTdkSHM/view?usp=sharing
This isn't 100% ideal, because the histories of the files before and after
the move to github aren't really linked, but at least they *exist*. For
instance, you can do:
git log -- trunk/libmesh/aclocal.m4
to see the pre-github history of a file. There should be a one-time extra
40 MB or so to fetch for the old history.
Another benefit is that authors who did their work before the github era
and are not represented in the current history once again get credit for
their work. Also, 'git shortlog --no-merges -s | sort -nr' confirms that
Roy strengthens his status as commit king:
4581 Roy H. Stogner
2550 Benjamin S. Kirk
2443 John W. Peterson
562 David Knezevic
228 Derek Gaston
200 Paul T. Bauman
123 Cody Permann
118 Daniel Dreyer
111 Steffen Petersen
71 Truman Ellis
65 Daniel Schwen
60 Paul Bauman
35 no_author
34 David Andrs
24 Dmitry Karpeev
13 Sylvain Vallaghe
12 Robert Weidlich
--
John
------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel