Subversion

From GnuCash
Revision as of 12:56, 8 January 2006 by Cstim (talk | contribs) (CVS to SVN cross reference: dates)
Jump to: navigation, search

Repository 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

You probably want to read on on the Building page.

SVN tutorial

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 diff -D 2006-01-01 svn diff -r {2006-01-01}:HEAD
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


Enjoy!