TOTEM SVN repository
Subversion (SVN): version control system software keeps track of all work and all changes in a set of files, and allows several developers (potentially widely separated in space and/or time) to collaborate.
Documentation
Web Tools
Access
Via SVN+SSH
This is the recommended method. The repository URL (the equivalent of "CVSROOT" from CVS) is:
svn+ssh://svn.cern.ch/reps/totem/
For users with non-standard (non-lxplus) accounts
Usually if you want use non-standard username to connect SVN server, you should type:
$ svn co svn+ssh://USERNAME@svn.cern.ch/reps/totem/trunk totemsw
Some parts of our code are using links (svn:external) through which, unfortunately, non-standard
usernames are not propagating. If you face such situation, for example on your local machine,
with different username than your lxplus login, please follow these steps:
1. Create (if it does not exists) empty file file ~/.ssh/config with access rights 700.
2. Write to that file two lines:
Host svn.cern.ch
User USERNAME
Here USERNAME should be your lxplus login.
3. Fetch the code from SVN with default setup, not providing username:
$svn co svn+ssh://svn.cern.ch/reps/totem/trunk totemsw
The same trick can be used on shared accounts like
monitor
or
rp
. Just put your username to the SSH config and SVN will ask for your password.
Via HTTPS
This is an alternative method, useful from outside CERN and easier to use for Windows users. The repository URL in this case is:
https://svn.cern.ch/reps/totem/
HOWTO
How to fetch TOTEM offline code from SVN repository ?
The recommended method is to use svn protocol over ssh, i.e.:
$ svn co svn+ssh://svn.cern.ch/reps/totem/trunk totemsw
or if you use a different user name for LXPLUS:
$ svn co svn+ssh://USERNAME@svn.cern.ch/reps/totem/trunk totemsw
This command will check out the latest revision of the code (called
trunk in SVN-speak, the equivalent of main branch in CVS) into a directory called "totemsw" in current directory.
TotemRawDataLibrary
TotemRawDataLibrary is the package for reading and validating raw data. The code is used in Monitor and OfflineSW, that's why a special treatment is needed. We have decided to separate the package into a standalone project in the SVN repository:
totem/trunk/TotemRawDataLibrary
. The package is included to Monitor and OfflineSW via
svn:externals
. In order to assure the Monitor and OfflineSW are kept in compiling and working state, their externals point to a fixed revision of TotemRawDataLibrary, while the development of TotemRawDataLibrary takes place in the HEAD revision.
This structure has beet set up in order to simplify the maintenance. On the other hand, unwise behaviour can cause a lot of troubles. Hence,
please avoid committing to TotemRawData unless you are sure that you know what you are doing. In case of any doubts, do not hesitate to ask any of the SVN repository maintainers (Leszek, Jan, etc.).
Flow of modifications
To commit modifications to the development revision (i.e. HEAD revision), simply
- commit your changes in TotemRawDataLibrary:
svn ci TotemRawDataLibrary
.
If you want to make the development version be used by Monitor/OfflineSW
- go to the base directory of Monitor or OfflineSW
- readjust the external link:
svn propedit svn:externals .
and modify the revision specification -r....
to your chosen revision. Commit the updated link: svn ci --depth=empty .
.
Making tags and branches
Please read the last paragraph of
the chapter on svn:externals
.