Difference between revisions of "Subversion"

From GnuCash
Jump to: navigation, search
 
(change the table format)
Line 14: Line 14:
  
 
===CVS to SVN cross reference===
 
===CVS to SVN cross reference===
{| cellpadding="2"
+
{| cellpadding="2" cellspacing="0" border="1"
 +
| *CVS command*
 +
| *SVN command*
 +
| *notes*
 
|-
 
|-
 
| cvs checkout
 
| cvs checkout
| ->
 
 
| svn checkout
 
| svn checkout
 +
|
 
|-
 
|-
 
| cvs commit  
 
| cvs commit  
| ->
 
 
| svn commit
 
| svn commit
 +
|
 
|-
 
|-
 
| cvs status  
 
| cvs status  
| ->
+
| svn status
| svn status [...but one that's actually useful :)]
+
| ...but the svn one is actually useful :)
 
|-
 
|-
 
| cvs log
 
| cvs log
| ->
 
 
| svn log
 
| svn log
 +
|
 
|-
 
|-
 
| cvs annotate
 
| cvs annotate
| ->
 
 
| svn blame
 
| svn blame
 +
|
 
|-
 
|-
 
| cvs diff
 
| cvs diff
| ->
 
 
| svn diff
 
| svn diff
 +
|
 
|-
 
|-
 
| cvs update
 
| cvs update
| ->
 
 
| svn update, svn switch
 
| svn update, svn switch
 +
|
 
|-
 
|-
 
| cvs update -C
 
| cvs update -C
| ->
 
 
| svn revert
 
| svn revert
 +
|
 
|-
 
|-
 
| cvs update -j [...]
 
| cvs update -j [...]
| ->
 
 
| svn merge  
 
| svn merge  
 +
|
 
|-
 
|-
| <nowiki> ---- </nowiki>
+
| <nowiki> ---- </nowiki>
| ->
 
 
| svn resolved [conflicting merges must be explicitly resolved]
 
| svn resolved [conflicting merges must be explicitly resolved]
 +
|
 
|-
 
|-
 
| cvs add
 
| cvs add
| ->
 
 
| svn add, svn mkdir
 
| svn add, svn mkdir
 +
|
 
|-
 
|-
 
| cvs remove
 
| cvs remove
| ->
 
 
| svn delete  
 
| svn delete  
 +
|
 
|-
 
|-
 
|<nowiki>  ----  </nowiki>
 
|<nowiki>  ----  </nowiki>
| ->
 
 
| svn move
 
| svn move
 +
|
 
|-
 
|-
 
| cvs [r]tag [-b]
 
| cvs [r]tag [-b]
| ->
 
 
| svn copy
 
| svn copy
 +
|
 
|}
 
|}
  

Revision as of 14:22, 4 December 2005

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!