SVN (Subversion) is a popular version control system that keeps track of the complete history of changes for a set of source files. SVN is of great help when several people work on the same project.
You can find the SVN manual at http://svnbook.red-bean.com. Lots of documentation, including tutorials, can easily be found on the net.
The InriaGForge site http://gforge.inria.fr hosts a SVN server for CGAL. The complete documentation to access the CGAL project on InriaGForge is at http://www.cgal.org/Members/svn_cgal/. In a nutshell:
The CGAL repository, which is backed up daily, is organized in the following way:
As a general rule, try to not put under SVN control any files that are automatically generated. Note that you can put some files under SVN control that you don't want to be included in releases (e.g., literate programming web files). You can do that by adding their names in a dont_submit file (at the top of the module), using the syntax explained in the tar manual (see the -exclude-from option in the doc at http://www.gnu.org/manual/tar/). By default, the files TODO and wrapper.tex are excluded from submissions.
The repository tree has the following structure:
/svn/cgal
|
+---- trunk/
| |
| +--- Convex_hull_2/
| | |
| | |-- maintainer
| | |
| | |-- changes.txt
| | |
| | |-- TODO
| | |
| | +-- include/CGAL/
| | |
| | +-- src/
| | |
| | +-- doc_tex/
| | |
| | +-- test/
| | |
| | +-- ...
| |
| +--- Number_types/
| |
| +--- Cartesian_kernel/
| |
| +--- ...
|
+---- branches/
| |
| +--- CGAL-1-1-patches/
| |
| +--- ...
|
+---- tags/
|
+--- CGAL-1-0/
|
+--- ...
Here are the access rules:
After each commit, an automatic mail is sent to the cgal-commits@lists.gforge.inria.fr mailing-list which records the log message as well as the URLs to the corresponding diffs within the ViewCVS interface. Maintainers and developpers can subscribe to it in order to check what gets commited to their packages.