SVN is a program which keeps track of all the different versions of our source files. People familiar with its predecessor, cvs should read on. If you have not heard of cvs, then read this document (concentrate on the big picture, and ignore the details). This documentation is written because of our transition to SVN. When the transition period is over, we will rewrite these pages. While waiting, this page will contain information useful for our present cvs users.
Our main subversion repository is at the address http://victorio.uit.no/langtech/. Subversion documentation is available as a browsable book.
If you want to use a graphical Subversion client, please see the following pages for descriptions of some alternatives, and their setup for our repositories:
Please follow the recommendations for daily routines at the end of this document!
The major benefit of graphical clients is that they make some operations that much easier and faster. YMMV, and you have to try to find what suits your working habits best yourself. In the end, a combination of graphical and command-line tools could be the best approach.
To check out means that you copy all the documents that our projects are working on to your computer.
Go to your home directory (write cd), and give the following command:
svn co https://victorio.uit.no/langtech/trunk main --username <your_username>
... where you have replaced <your_username> with the username you have aquired from the admin. This will enable you to check in your work. If you don't have a user name or just want to browse our code, just skip the username.
After you have checked out, please run the following script, and follow the on-screen instructions:
main/gt/script/gtsetup.sh
With the above commands, you have now on your local computer a copy of the source code and the environment is set up properly.
Now that you have checked out your repository, you can use a set of commands to manipulate your copy of the source code. We recommend to always update the repository before you begin to edit files inside it. After having edited some files you usually want to have an overview of which files have been modified. To share our work with the others we check in our work. We can also add, delete, move and copy files inside the repository. A brief overview of the commands needed for these actions is given below, for further details see the references at the end of this document.
The Subversion svn:ignore property is very similar in syntax and function to the CVS .cvsignore file. In fact, if you are migrating a CVS working copy to Subversion, you can directly migrate the ignore patterns by using the .cvsignore file as input file to the svn propset command:
$ svn propset svn:ignore -F .cvsignore . property 'svn:ignore' set on '.' $
More details about ignoring files can be found in Chapter 3: Advanced Topics, in the section Ignoring Unversioned Items, in the SVN book.
Always check in the files at the end of the day. If you know that other people are working on the same file, you should check in more often than that. You should also check in after you have done major revisions. Remember to compile the program before you check in, so that you know you do not check in a defect file.
The best way to learn to write good log messages is to read other log messages. Pick a file (e.g. twol-sme.txt, sme-lex.fst), and read the log (the command is svn log filename | less). If the log message tells you what you want to know, then it is a good log message.
The Basic work cycle in the SVN book covers daily usage in great detail. Appendix B covers some details for users accustomed to CVS.
The RapidSVN wiki has a tutorial that covers our daily usage pattern.
Last modified: $Date: 2008-11-05 19:52:54 +0200 (ons, 05 nov 2008) $, by $Author: sjur $