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 checkout | -> | svn checkout |
| cvs commit | -> | svn commit |
| cvs status | -> | svn status [...but one that's 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!