SVN with git. One package: git-svn; two tools:
git-svnimport
, git-svn
.
First thought: Oh, I don't need to modify things, let's use
git-svnimport
. Bad guess. After some revisions fetched from
blender.org
, the download gets stalled, and no way to resume. That's
documented in Debian bug #436930.
After having asked on #git/irc.freenode.net
, it looks like
git-svnimport
is quite unmaintained and that git-svn
is the way to
go.
git-svn clone https://svn.blender.org/svnroot/bf-blender
Far better, but after 6000+ revisions, interrupted download, and impossible to resume it. Damn (but thinking about it, I might have used the wrong command). Another way to do that:
git-svn init https://svn.blender.org/svnroot/bf-blender
# Get 10 revisions
git-svn fetch -r BASE:10
# Get the rest
git-svn fetch -r BASE:HEAD
Using -r BASE:HEAD
is quite interesting since only the needed
revisions are fetched.
Important: Don't forget to use git-svn
and not git
.
Now, two branches: master
, local, and git-svn
, remote. Go!
$ du -sh .git/
1.1G .git/
$ time git gc
real 67m14.503s
user 7m26.616s
sys 0m57.740s
$ du -sh .git/
221M .git/
And all the project's history is there! The branches
, tags
,
trunk
are all available as directories, but it is also possible to
have them as remote branches, using the following options: -T trunk
-b branches -t tags
.