SVN

From The DarkMod Wiki
Revision as of 10:06, 26 November 2007 by Greebo (talk | contribs) (Glossary started)
Jump to navigationJump to search

So what is this SVN thingy then?

SVN stands for SubVersioN. It's a framework originally developed for distributed coding projects, often with multiple programmers working on the code at the same time.

DarkMod SVN Infrastructure

You lost me there, I need an example!

All right then, here you go: SVN Tutorial

SVN Glossary

The SVN terminology can be confusing at times, this is a (probably incomplete) list of terms explained:

Repository

The SVN repository is the "master container" containing all the files of a project, including all their history and other branches. An SVN Server can contain multiple repositories (e.g. our DarkMod SVN server holds the repositories darkmod, darkmod_src, texture_src, etc.). For downloading a repository, see Checkout.

Checkout

Downloading a copy of a SVN Repository to a location on your hard disk is called a checkout. A checkout is the initial download of a working copy, not to be confused with an Update. You checkout a working copy once, but you can update it multiple times.

Update

Updating a local copy means synchronising it with the server. Choosing update will download all changes since the last time you updated your copy (files added by other users, text changes made to files, file deletions). The process will update your working copy to the HEAD revision by default, but you can manually choose to update to a certain revision if you wish.

Commit

Just changing your local files isn't enough to "store" them in the server, you have to commit them. You need write access to the repository to be able to commit stuff. It is perfectly thinkable that the files you're about to commit have already been altered by another user. In the case of text/ascii files, the SVN Server tries to merge your changes into the files. If it fails (or if the files are not in text format (binary), the merge will fail and you run into a conflict.

Note: Committing files does not update your local copy, you'll have to do that manually.

Revision

HEAD

SVN Troubleshooting