Subversion (svn) is a free/open source version control system. The central point is called a repository. The repository is like a file server that remembers every changes made to your files and directories. This allows you to recover old versions of your files or examin the history of how your files have changed. Svn can access a repository (equivalent to a directory) across networks which allows yours files to be shared/used/modified by people working on different computers. At the beginning, the revision number is 0 (R0). Any successful submission to the repository will increment this number by 1.
The typical work cycle with subversion is illustrated on the following picture: svn basic work cycle

  • If you don't have yet the sources, you must get them from the repository. This is done for instance with:
     svn checkout svn://host/gammaware/trunk gammaware
  • you have now a copy on your own computer. You can have some informations about the package
     svn info or svn log.

For this tutorial, let says the revision number is 0.

  • You can now modify any files. Try it and check out your changes with:
     svn status

Remember: you are changing the local copy, not the file on the repository !! so there is no need to worry about loosing something. If you want to add/delete new files/directory, you'd better used:

     svn add, svn delete, svn copy, svn move, svn mkdir ...
  • Once you are satisfied with your modifications or you don't want to loose what you've just done, you are ready to send the file (or all the files) to the repository. However, somebody else may have already submit its modifications (on the same fileor another one), as illustrated on the picture by R1 (revision 1) or R2 (revision 2). Before sending your modifications, be sure there is no conflict with other's modifications. To check this, run:
     svn update

if the letter c does not appear on the first column, you can commit your changes with:

     svn commit -m 'the comment about the modification'  + svn update
  • restart the cycle ... In case of problems (conflict), svn gives you tools to help you resolving the conflict:
     svn merge, svn revert, svn resolved ...

More informations about svn: svn help on the command line or svn site

Any questions , just send a comment and I will answer as fast as possible !