Subversion
Now that the gnucash repository is using svn for version control (since 2005-11-04), the need for a quick tutorial on how to get the sources might be in order. There was some introduction about SVN in an e-mail on gnucash-devel:
The excellent "Version Control with Subversion is a very good resource for information about subversion.
Specifically, Chapter 3. Guided Tour and Appendix A. Subversion for CVS Users are relevant.
The command-line client `svn` has a nice integrated help system; `svn help` will provide the top-level command list, and `svn help <command>` detailed help for the specific command.
The bottom line is that getting the source via svn isn't altogether different from getting it using cvs.
CVS to SVN cross reference
*CVS command* | *SVN command* | *notes* |
cvs checkout | svn checkout | |
cvs commit | svn commit | |
cvs status | svn status | ...but the svn one is actually useful :) |
cvs log | svn log | |
cvs annotate | svn blame | |
cvs diff | svn diff | |
cvs update | svn update, svn switch | |
cvs update -C | svn revert | |
cvs update -j [...] | svn merge | |
---- | svn resolved [conflicting merges must be explicitly resolved] | |
cvs add | svn add, svn mkdir | |
cvs remove | svn delete | |
---- | svn move | |
cvs [r]tag [-b] | svn copy |
URLs
The various base URLs look like:
anonymous: http://svn.gnucash.org/repo/gnucash/trunk developer: svn+ssh://username@svn.gnucash.org/repo/gnucash/trunk trac: http://svn.gnucash.org/trac
Common Commands
To get what used to be CVS HEAD (and now includes what used to be gnucash-gnome2-dev), you will need to get the svn TRUNK:
svn checkout http://svn.gnucash.org/repo/gnucash/trunk gnucash
The argument "gnucash" above can be whatever you want your local directory to be called, and is optional. If you leave it out, you'll have a directory called "trunk" created containing all the source code.
If you want the latest 1.8.x code, you'd need to pull from the 1.8 branch, as follows:
svn checkout http://svn.gnucash.org/repo/gnucash/branches/1.8 gnucash-1.8
And if you want the released code for a specific release (or tag), you'd use:
svn checkout http://svn.gnucash.org/repo/gnucash/tags/1.8.12 gnucash-1.8.12
And to update, just cd into the directory containing the sources you want updated and execute a simple
svn update
Please examine the README.svn file for notes on compiling gnucash, and the HACKING file for notes on hacking the code.
Enjoy!