Skip to content

SIPfoundry

Narrow screen resolution Wide screen resolution Increase font size Decrease font size Default font size
Home arrow Developers arrow Source Control (Subversion Access)
Source Control (Subversion Access) PDF Print E-mail
For the sipXecs project, the top level repository URL is:

http://sipxecs.sipfoundry.org/rep/sipXecs/

And the repository browser is here.

Typically, you will only want to check out one branch or tag (main is really just another branch. We recommend using the following command to check out the latest sources (use "https" instead of "http" if you have write access):

     svn checkout http://sipxecs.sipfoundry.org/rep/sipXecs/main/

To check out sources from a branch or tag (here we use the 3.8 tag as an example), use:

     svn checkout http://sipxecs.sipfoundry.org/rep/sipXecs/branches/3.8 sipXecs-3.8

The sipX Wiki provides information on how to build sipXecs on different platforms.

We welcome all contributions: from a small fixes to complicated features. It's always good to discuss your contribution ideas on a sipx-dev list. If you plan to develop a new plugin or a feature that consist of more than several lines you might want to read on how to use git to work with sipfoundry source.

Subversion at SIPfoundry

Our source code control system at SIPfoundry is 'subversion'. It is an open source tool that aims to "provide a compelling replacement for CVS". We choose subversion over CVS because it is enough like CVS for a developer that migration is not difficult, and it improves on CVS by supporting:
  • Atomic Commits
  • Versioned meta-data
  • Revision numbers are per-commit, not per-file
  • Apache web server and WebDAV/DeltaV for network communication
  • Binary diffs

What you need

To check out a project read-only, you don't need anything but a subversion client (there are several - see the Subversion download page) and the URL for the project repository.

We are running subversion server 1.4.3; your client must be compatible with that revision (the 'svn' command line client uses the same revision number sequence as the server; any other client should be able to report the version of the subversion library, which should also be the same number).

To get write access to a project, you need a subversion account, which a project coordinator can get created for you. Even without an account, subversion provides excellent support that will help you to create patches you can post to the developer list or the issue tracker.

If you are having difficulty you may be behind an http proxy, try the 'https' version of the URL (some proxies don't handle the WebDAV HTTP methods that subversion uses correctly; using https hides them). If you have write access, you'll want to use the https form of the above URLs because SSL is required to protect your password when you commit your changes.

svnmerge: maintaining branches

The svnmerge script simplifies the process of branch merging in subversion. It uses subversion properties to keep track of branch points: revisions that were used as a base for a branch and revisions that are already merged into the branch.

Just as with standard subversion merging you need to know our source branch (branch from which you are going to merge the changes) and the revision range that you want to merge from source to destination. The major benefit of using svnmerge is that you only need to record these data once - when the branch is created (or when you decide to activate merging support on a branch). With basic subversion you need to enter this information every time you use svn merge command.

Similarly to standard subversion merge all applications operations are performed in the destination branch and the result of the merge is not submitted to the repository unless you explicitly commit it. Other benefit of using svnmerge is that it'll produce informative log messages that can be used by svn commit.

Full documentation of svnmerge can be found here.

If you can't get a Subversion client

Subversion clients are readily available for most platforms, but if for some reason you can't get one, you can use URLs like those above to see the latest version of any project at SIPfoundry; the repository URL will work in your browser or other HTTP client.

This means that you can also use web mirroring tools like wget to get a copy of the HEAD revision of any repository. But really, using subversion is much better; if you have trouble finding a client, try the subversion users list.

 
Tag it:
Delicious
Furl it!
digg
blogmarks
De.lirio.us
YahooMyWeb
Next >