Devs SVN access¶
This is meant as a quick start guide for working with the devs svn repository. The repository is not to be used for software package development, that's what the Offline Software Repository is for.
The devs repository is for those handy scripts, style files, macros, and other useful bits of code that don't fit into any package. This repository allows you to version control those scripts as well as enabling access from any machine that you obtain a valid kerberos ticket from the FNAL domain on. In order to have access to the repository, you need to have a valid FNALU account and have signed into Redmine at least once. Follow these steps if you haven't already, Getting Fermilab Computing Access.
Repository on Redmine¶
You can see revision history and content of the repository via the Repository link of this redmine project, https://cdcvs.fnal.gov/redmine/projects/novaart/repository/devs.
As this is a public project on Redmine, anyone with a browser can access the repository contents, so never ever hardcode any passwords. Check out this section about how to use environmental variables to circumvent the problem, Environmental Variables for Nova Database access.
Using the repository¶
You can find the first presentation on the use and limits of the repository on doc-db, http://nova-docdb.fnal.gov:8080/cgi-bin/ShowDocument?docid=9187.
You have to have a valid kerberos ticket for your principal at FNAL. It's helpful to define an environmental variable in your ~/.bashrc (or similar) file to expedite your use of the repository.
Make yourself a directory in the repository where you can commit code to:
svn mkdir $DEVSREPO/trunk/users/<principal>
Need a working directory that will be version controlled
cd /nova/app/users/<principal>/ mkdir devsrepo cd devsrepo svn checkout $DEVSREPO/trunk/users/<principal> ./<principal>
and you're all set up! You're ready to add and commit files and folders to the repository.
Limitations of the Repository¶
You cannot commit any single file that is larger than 1MB. The pre-commit hook, which get's called after you enter the commit message will throw an exception, you will be told which is the offending file, and the commit will fail. If you were trying to commit changes to more than one file, the entire commit will fail and you need to re-commit without the offending file in order to get your changes into the repository.
This is a precautionary measure as this repository will not be moderated and resides in a shared area.
Commits that involve initial import of files with extensions in (.o, .so, .a) will fail. Compiled code doesn't belong in a repository.