Subversion

From ConTeXt wiki

Subversion is version control software, a program to make it easy to work with multiple people on one project. Its homepage is subversion.apache.org.

This is the general workflow:

  • checkout a copy of the source code from a central server,
  • make their desired changes,
  • update their local copy to pull in any intervening changes from the central server,
  • merge any conflicts,
  • and then commit the changes they made to the central server, so that other can use the updated version.

Subversion does all this by keeping track of people's changes and contributions. This also makes it easy to roll back to previous versions, which makes in turn helps when something stops working and you have to discover the problem.

TortoiseSVN is an excellent graphical client for Subversion on Windows. You can see the status of your working copy files directly inside the Explorer, as well as pull in updates, commit changes, and much more.

Commands

For those that prefer the command line, here is a summary of the most important Subversion commands. For a more elaborate introduction, see the chapter Basic Usage of the excellent free book Version Control with Subversion.

  • svn help command gives help on a command. Just svn help gives a list of svn commands.
  • svn checkout repository url fetches you a local copy of a project.
  • svn log shows the commit messages of recent commits. The more helpful people have made their commit messages, the more useful this command is.
  • svn add file1 tells Subversion to start tracking a hitherto untracked file or files.
  • svn update pulls in any changes from the central repository.
  • svn status show the status of your local copy -- any added or changed files, or files with conflict markers in them.
  • svn commit file1 commits the changes you made to file1 to the central repository. If file1 is a directory, all changes inside it are committed. Just svn commit commits all changes in your repository.