Working with Xmlrpc-c Subversion

The master source code for the Xmlrpc-c project is kept in a Sourceforge Subversion code repository. This has been so since September 22, 2007. Before that, we used Sourceforge CVS.

For Sourceforge's information on this topic, see the Sourceforge project Subversion page.

For complete information on the Subversion tool, see the Subversion manual, Version Control With Subversion.

If you don't have the Subversion software installed on your system (type svn at a shell prompt to find out), there's a good chance you can get it prebuilt as an add-on for your operating system, from wherever you normally get add-ons for your operating system. If you can't do that, you can get the source code from the Subversion website and build it.

Just Looking

If you just want to look at some current development code (or past code) quickly, you can simply browse it with the Sourceforge Subversion web access facility.

Working With The Code

The URL of the Xmlrpc-c Subversion repository is http://svn.code.sf.net/p/xmlrpc-c/code. So to check out the current development code, do something like this:

    $ REPOS=http://svn.code.sf.net/p/xmlrpc-c/code/advanced
    $ svn checkout $REPOS xmlrpc-c
This creates a directory xmlrpc-c in your current directory and fills it with the Xmlrpc-c source tree. This is known as the Subversion working directory.

Now you're ready to run ./configure and make.

Once you've done a Subversion checkout, you can periodically do

   $ svn update
from the xmlrpc-c directory to download any recent updates (code written by other developers).

If you are modifying Xmlrpc-c, do it right in the Subversion working directory. When you're done, use a svn diff -u command to generate patch of your changes. Email that patch to the Xmlrpc-c maintainer for inclusion in the package.

If you decide to throw away your changes, the easiest thing to do is use a svn revert commmand to revert the code in your working directory to what you originally checked out. You can revert either an individual file or, with the --recursive option, everything.

See the Sourceforge Xmlrpc-c Subversion page for more details.

Repository Organization

At the top level, the respository consists of the following directories. Note that the project does not have the conventional branches and tags directories.

trunk
This contains the full source tree of the "current development release." It is the most advanced code available to the public. It has been tested very little, and frequently (though never intentionally) won't even build.

You should use this as the base for any new development.

This code eventually flows to all the other release streams.

release_number
This directory contains subdirectories for numbered releases. The name of the subdirectory is the release number. Not all numbered releases are represented, but every major release is. This directory exists for historical research; current code from one of the release series (trunk, advanced, or stable directory) is normally better suited for actual use (e.g. it has fewer bugs).
advanced
This directory contains the full source tree of the "current advanced release." That means the latest release of the advanced release series. This is code that was formerly in the trunk directory, plus some small stabilizing changes.
stable
This directory contains the full source tree of the "current stable release." That means the latest release of the stable release series. This is code that was formerly in the advanced directory, plus some small stabilizing changes.