Follow Flex After Dark on Twitter

Subversion Introduction

Subversion is a "source control management" (SCM) system.

Key components:

  • Server - the server where Subversion is installed
  • Client - software used to communicate with the server
  • Repository - (a.k.a. Repo) the database holding your source code and its history
  • Working Copy - the local (on your computer) copy of your code
  • Trunk - the "master" copy of your code in the repository

Key actions:

  • Add - "upload" source code to a repository for the first time
  • Checkout - "download" source code from the repository into a new project
  • Commit - "upload" updated source code from your working code to the repository
  • Update - "download" latest source code from the repository to your working code
  • Diff - compare two versions of a code file (e.g. working copy against repository copy)

Benefits and Usage Scenarios

Source control systems are a near necessity when multi-person teams are working on the same code. However, source control is also very useful for a single developer.

Easily synchronize code between multiple environments

Subversion allows easy synchronization of code between multiple environments.

Consider the following simple scenario:

  1. You create a new project, HelloWorld on your work desktop computer
  2. You add the HelloWorld project to your repository
  3. You continue to make changes to the project and commit before you leave the office for the day
  4. Later that evening you take your laptop to the local coffee shop
  5. There you checkout the HelloWorld project from the repository to your laptop
  6. You continue to make changes and commit when finished
  7. The next day, back at work, you update the project from the repository
  8. You know have the latest code on your work computer, the same you committed from your laptop at the coffee shop

As long as you commit your changes you can always get the latest code, anywhere.

Keep a complete history of source code changes

TODO...

One great benefit of keeping your source code in Subversion is the history. Subversion keeps track of all the versions of code you commit. This allows you to...

Advanced Stuff

To gain further understanding of Subversion and source control systems in general please consult some of the material referenced in the below "Related Links".

Advanced source control systems, like Subversion, have a ton of sophisticated features that we're going to just ignore for now. So feel free to skip over and ignore these advanced topics: Locking, Branching, Merging, etc.

Related Links:

Related Docs
Recent Docs
Random Docs