Brief introduction to SVN

From Gramps
Revision as of 21:51, 13 March 2008 by Jgsack (talk | contribs)
Jump to: navigation, search

The development source of GRAMPS is stored in the SVN repository. This helps synchronizing changes from various developers, tracking changes, managing releases, etc. If you are reading this, you probably want to do just two things with SVN: download latest source or the development version, or upload your changes.

Stable version 2.2.x

  • To download the source to a /home/~user/gramps22 directory, you can use two methods to access the SVN repository:
  1. An http frontend to gramps SVN
  2. SVN access
  • To upload your changes, you have to have developer access.

The second method requires that svn be installed on your system (Debian/Ubuntu: apt-get install subversion; Fedora: yum install subversion). With the SVN method, type the following in the command line:

  svn co https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps22 gramps22

You should see the downloading progress reported in your terminal. If you would like to update your source tree after some time, execute the following command in the top directory of the gramps22 source tree:

  svn update

To commit your changes, you can execute:

  svn commit

Since uploading is a potentially dangerous operation, you have to explicitly obtain a write access to the SVN repository from Don Allingham or Alex Roitman.

Unstable development version 3.0

Also see: Running a development version of Gramps, and Getting Started with GRAMPS 3

Packages

Obtain it

As of 02 Feb 2007, a development branch has been created, which is now the new trunk. To grab a copy to ./gramps30 :

  svn co https://gramps.svn.sourceforge.net/svnroot/gramps/trunk gramps30

Prepare it

Now go into the gramps30 directory and type

./autogen.sh

You will get warnings of missing packages that GRAMPS needs to build from source. The most common warnings are, that you miss the gnome-common package if you run under Linux and Gnome. If you run Ubuntu install via Synaptic the 'gnome-common' (version 2.20.0-0ubuntu1): common scripts and macros to develop with GNOME: gnome-common is an extension to autoconf, automake and libtool for the GNOME environment and GNOME using applications. Included are gnome-autogen.sh and several macros to help in both GNOME and GNOME 2.0 source trees. Install these and/or any other missing packages, read INSTALL and README file in the gramps30 dir for pointers. An important library is also libglib2.0-dev. Check whether your system has this package installed. This will execute the make command too. If not, type after the above

make


Gnome-important.png
Warning

Do not install the development version. That is, do not type sudo make install.

Run the development version

As you should not install the development version, how can you try it out? Easy, just type the following in the gramps30 directory

python src/gramps.py


Gnome-important.png
warning

Do not open your existing databases with gramps 3.0, it might destroy your data, and will make it impossible to use the data in the stable version 2.2.x. To try it out, export your database to a gramps xml file, eg test_version_3.0.gramps, create a new family tree in GRAMPS 3.0, and import this xml file.

Where for bugs?

The bug tracker has in the right top angle different projects. Choose project 3.x and submit an issue.

Useful things to know

Subversion commands

svn help add
svn help commit
svn help log

Adding files to repositories requires you to set some properties to the files. See svn help propset. You can use the propget on existing files to see how you should add it. A convenient way is to common files to your ~/.subversion/config file, eg in my config I have:

enable-auto-props = yes

*.py = svn:eol-style=native;svn:mime-type=text/plain;svn:keywords=Author Date Id Revision
*.po = svn:eol-style=native;svn:mime-type=text/plain;svn:keywords=Author Date Id Revision
*.sh = svn:eol-style=native;svn:executable
Makefile = svn:eol-style=native
*.png = svn:mime-type=application/octet-stream
*.svg = svn:eol-style=native;svn:mime-type=text/plain

The svnci script

A useful script for helping you commit changes is svnci: Download svnci

Usage:

  • place svnci in your root svn directory, eg gramps22 or gramps30 (chmod +x)
  • you need to have the patchutils package installed, or svnci will throw an error (filterdiff is needed)
  • do edits and commit new files
  • edit the Changelog file with your edits
  • to commit changes to the svn repository, go to the root directory, and do ./svnci. This will collect all changes, and upload the change. The log message will be taken from the Changelog.

Other usage tips

  • Additional tips and recommndations related to committing changes: SVN Commit Tips

Browse svn

An alternative to the command line tools to view the svn repository is the online interface.