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.
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 commandgives help on a command. Just
svn helpgives a list of svn commands.
svn checkout repository urlfetches you a local copy of a project.
svn logshows the commit messages of recent commits. The more helpful people have made their commit messages, the more useful this command is.
svn add file1tells Subversion to start tracking a hitherto untracked file or files.
svn updatepulls in any changes from the central repository.
svn statusshow the status of your local copy -- any added or changed files, or files with conflict markers in them.
svn commit file1commits the changes you made to file1 to the central repository. If file1 is a directory, all changes inside it are committed. Just
svn commitcommits all changes in your repository.