SVN Tutorial

Starting with SVN

First lets assume you have a package called mypackage which contains your codes and header files (i.e., Root, mypackage …)
Note that $SVNUSR variable should be define in your .bashrc file as

export SVNUSR=svn+ssh:yourcernusername@svn.cern.ch/reps/atlas-yourcernusername/yourcernusername

Now we want to send mypackage to the SVN using following steps:

1- Make a directory (outside of mypackage). Lets call it temp.

2- Create a local copy of mypackage inside temp directory.

3- Now we need to create a directory with the same name of mypackage in the SVN using following command:
svn mkdir -m “message” $SVNUSR/mypackage
here instead of message you should provide a breif explanation. Note that if you ignore -m “message” option in the above command, an editor of your choice will be activated and you will need to enter the message into that.

4- Now it is the time to checkout mypackage into the SVN using:
svn co $SVNUSR/mypackage mypackage
Instead of 'co' you can also use 'checkout'. At this step, you can actually see your package in the SVN using svn ls $SVNUSR which is empty since we still did not add files inside of mypackage.

5- Let's say there is a file at mypackage/Root. We can add this to the svn using two following commands:
Go to temp\mypackage
svn add Root
you can see the result as 'A Root'; A means Available.
svn commit mypackage -m “message”
you can see the result as 'Adding Root'
Now all the files inside mypackage/Root are in your svn.
Let's say you have added a file called mycode.cxx inside mypackage/Root directory to your SVN. Once you make changes in mycode.cxx you need to update your SVN using following steps:

1- Copy mycode.cxx into temp\mypackage\Root

2- Before adding your modified code, always update your SVN to the last version using
svn update

If you want you can see the status of your SVN by svn status. The result for this example is ' M mycode.h' which means mycode.cxx has been modified.

3- To add the modified code (i.e.,mycode.cxx) use : svn commit -m “message”