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
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to