wiki:Getting-Started/Using-Subversion
Last modified 4 years ago Last modified on 01/27/14 08:59:45

Using Subversion

  1. What is Subversion
  2. Getting Subversion Client
  3. Getting the Source for The First Time
  4. Keeping The Local Copy Up-to-Date
  5. Tracking Local and Remote Changes
  6. Checking out a specific revision

What is Subversion

Subversion (SVN) is Open Source version control system similar to CVS. Subversion homepage is in http://subversion.tigris.org/

Getting Subversion Client

A Subversion (SVN) client is needed to download the PJ source files from pjsip.org SVN tree. SVN client binaries can be downloaded from http://subversion.tigris.org/, and the program should be available for Windows, Linux, MacOS X, and many more platforms.

Getting the Source for The First Time

Once Subversion client is installed, the following commands can be used to initially retrieve the latest sources from the Subversion trunk:

$ svn co http://svn.pjsip.org/repos/pjproject/trunk pjproject
$ cd pjproject

Keeping The Local Copy Up-to-Date

Once sources have been downloaded, we can keep the local copy up to date by periodically synchronizing the local source with the latest revision from the PJ's Subversion trunk. The mailing list provides best source of information about the availability of new updates in the trunk.

To update the local copy with the latest changes in the main PJ's repository:

$ cd pjproject
$ svn update

Tracking Local and Remote Changes

To see what files have been changed locally:

$ cd pjproject
$ svn status

The above command only compares local file against the original local copy, so it doesn't require Internet connection while performing the check.

To see both what files have been changed locally and what files have been updated in the PJ's Subversion repository:

$ cd pjproject
$ svn status -u

Note that this command requires active Internet connection to query the status of PJPROJECT's source repository.

Checking out a specific revision

For example if you want to checkout revision 4687

svn checkout -r 4687 http://svn.pjsip.org/repos/pjproject/trunk pjproject