Subversion (or SVN) is the name of the project used to maintain the Open Babel version control repository. There are many clients for Subversion, including command-line and GUI applications (for example, on Windows, TortoiseSVN). For more links, see the Subversion website. There’s also a great book about using Subversion, which is available online.
Check out the latest development version:
svn co https://openbabel.svn.sourceforge.net/svnroot/openbabel/openbabel/trunk openbabel
This creates a directory called openbabel, which contains the latest source code from OpenBabel.
Configure and compile this using CMake, as described on the CMake page.
After some time passes, and you want the latest bug fixes or new features, you may want to update your source code. To do this, go into the openbabel directory you created above, and type:
svn update
Do step (2) again.
If, after updating, the compilation fails please report it to the Open Babel mailing list. In the meanwhile, if you want to go back to a particular revision (that is, if you don’t want to use the latest one), just use svn info to find the number of the current revision, and update to an earlier revision either by date or by revision number:
$ svn info
...
Revision: 1740
...
$ svn update -r 1735
(or)
$ svn update -r {2007-01-01}
The following table suggests Subversion commands useful for Open Babel contributors. More documentation can be found in the Official SVN Manual. In the following examples, repo should be replaced by the full URL to the Open Babel subversion repository (https://openbabel.svn.sourceforge.net/svnroot/openbabel/openbabel).
Subversion Command | What it does |
---|---|
svn co repo/trunk openbabel | Check out the latest development version of Open Babel |
svn update | Update the current directory and subdirectories with any new changes |
svn add filename | Add the file filename to the repository |
svn remove filename | Remove the file filename (before a commit) |
svn mv filename newname | Move/rename the file filename to newname |
svn commit | Commit the changes to the central repository |
svn diff | Return a diff set of differences between the working copy and the central repository |
svn switch repo/branches/foo | Switch the current working copy to a branch named foo |
svn copy repo/branches/foo | Create a branch named foo with the current working copy |