Historical project documentation. Content is maintained in GitLab.

UsingSubversion

Development!/UsingSubversion/UsingGIT/GITCheatbookNext Chapter

Using Subversion

This guide tells you how to use Subversion to checkout the source code and develop on the NG project. I use the command line utilities, but you can adopt the steps to GUI utilities such as TortoiseSVN…

Free and open Subversion (SVN) Book

Ben Collins-Sussman from irc://irc.freenode.net/subversion wrote a book on Subversion, describing Subversion it in detail. It’s a great introduction for beginners and a good compendium for more experienced folks.

You can find the completely free Subversion book here: http://svnbook.red-bean.com/

Checkout the public trunk

Check for existing source

$ svn ls https://pub.uavp.ch/svn/releases/
ngos-0.61-src/
ngos-0.62-src/
ngos-0.63-src/
ngos-0.64-src/
ngos-0.65-src/

and export the public sources without a developer account

svn export https://pub.uavp.ch/svn/releases/ngos-0.65-src/

Alternately, you may checkout the public source without a developer account

svn checkout https://pub.uavp.ch/svn/releases/ngos-0.61-src

Get your own Subversion Account

Join us on Chat and ask “amir” for a Subversion account. He will create your personal account on http://pub.uavp.ch/svn when you give him your nickname and password. By having your own account you get write access to the Subversion repository which is needed for the following stuff described in the following sections!

Checkout trunk

To see and compile the current development snapshot, you need to checkout the trunk. But you won’t be able to commit changes in this directory! If you want commit changes you need to create your own branch.

svn checkout https://dev.uavp.ch/pw/wolferl-ng/trunk/ --username stefan

Create your own Branch

For the following, you need a Subversion account which you can get as described in the section above. Development occurs in your private branch. You should have a directory name under /branches which you can create your branch. For that purpose you just get the branches directory (-N avoids that subversion gets all the branches of the other developers)

svn checkout https://dev.uavp.ch/pw/wolferl-ng/branches/ -N  --username stefan

Now you can create your directory. Its usually your last name:

cd branches/
mkdir stefan
svn add stefan
svn commit stefan

Write a meaningful comment and submit.

Now you can copy the whole trunk to your tree:

svn copy https://dev.uavp.ch/pw/wolferl-ng/trunk https://dev.uavp.ch/pw/wolferl-ng/branches/stefan/trunk --username stefan
cd stefan
svn checkout https://dev.uavp.ch/pw/wolferl-ng/branches/stefan

Its important that you note which revision number you just copied (for me it was 4285).

Make changes and commit

Now you can make your changes. You can commit your changes at any time to your branch (its a good practice to make sure code is compiling and generally working beforehand):

svn status
...
svn commit

Write a meaningful comment and submit.

Once you’re done you can tell an administrator he should merge your changes to trunk. If he thinks your code is OK, he will do so, and your changes will be in the next release.

Update your Branch

To bring your branch up to date you have to merge back your changes from trunk. here its important that you use the revision number of the first copy or the last merge.

cd branches/stefan/trunk
svn merge https://dev.uavp.ch/pw/wolferl-ng/trunk -r4285:HEAD

Now you have to solve conflicts (if any) and commit all changes

svn commit -m"your commit message"

Again, using a meaningful comment such as “merged changes from trunk back to my branch”