Public Git repo

Jeff Kletsky gnucash at allycomm.com
Wed Jan 5 15:30:40 EST 2011


I maintain my own, local git repository and have a mixed love/hare 
relationship with git.

For me, I like the lightweight branching and merge capabilities. I like 
the built-in bisection to locate introduced changes in result (generally 
bugs, but sometimes enhancements as well). For local development, it is 
now my VC of choice (over svn, but I haven't recently looked at git's 
"competitors").

I don't like that history is a pretty flexible thing and that "branches" 
are just pointers to specific commits, rather than the kind of 
"followable path" that svn provides.

I understand, but detest oh-great-dictator-Linus' decision to 
intentionally lose all information related to file-modification times 
and dates.

I personally don't care what the "master" repository format is, within 
reason. The huge upside of svn is that it works and there isn't a 
transition cost associated with staying with it.




In case it is of some use to someone here, these are some of my notes on 
how I cloned the master svn for my own use:

$ git svn init --stdlayout http://svn.gnucash.org/repo/gnucash gnucash
$ cd gnucash
$ git svn fetch

(about 5 hours later on 18 Mbps line)

That's it...

$ git branch local
$ git checkout local

Where did the branches and tags go?

$ git branch -a

$ git svn rebase

$ git repack -a -d -f --window=100




and some notes of inserting tags and .gitignore



Update tags on git-svn clone

$ git for-each-ref refs/remotes/tags | cut -d / -f 4- | xargs -n 1 -I % 
git tag -f % tags/%

-f since tags can move in svn



Create .gitignore to correspond with svn:ignore

$ git svn create-ignore





More information about the gnucash-devel mailing list