Version 3 (modified by sayler, 10 years ago)

Describe using git push to mirror your local repo.

If you'd like to track the main SVN trunk without creating your own SVN branch and you find SVK to be ... suboptimal you can use git as well.

This *should* be as simple as doing git svn clone $ORCA_HOME but this has a couple of drawbacks

  1. git (and thus git-svn) won't pull empty svn directories by default. We rely on empty directories for builds to work.
  2. git-svn, by default, mirrors the whole SVN repository locally. This is nice in that you can access the whole changelog for the project from git. This is not nice in that the repository is kind of huge because of the Xen images that were added/removed in the early history.
  3. git-svn doesn't respect svn's ignore files/tags

Fortunately, someone has written a nice little script called git-me-up that pretty much solves all these problems.

 mkdir git-me-up
 cd git-me-up  
 git clone git://
 make install  # -> /usr/local/bin  
 git-me-up $ORCAHOME

From then on, you can use git-svn as you would normally:

 git svn fetch # pull upstream changes
 git svn commit # to the LOCAL repository
 git svn dcommit # should you ever decide to push back to mainline

If you wish to mirror your local git repository (for backup purposes), you can do so by specifying a git remote. If you name this remote origin, it makes the backup as simple as doing a git push:

 ssh "cd git && mkdir geniorca && cd geniorca && git init"
 git remote add --mirror origin
 git push

(note that this doesn't make a really great repository for other people to git pull from because of the magic git/svn stuff we're doing, but it is a good backup strategy. See the caveats in the git-svn manpage for more details.