Git and Version Control

Subversion

What is Subversion?

Subversion is a version control system or SCM (software configuration management) tool. It is open-source and provides a feature set superior to that of CVS and Visual Source Safe. More information can be found at subversion.tigris.org.

Tools for use with Subversion

General tools

IDE integration

The Subversion Book / Documentation

Revision Control

What is Revision Control?

Revision control (also called version control or source control) is a method of tracking changes between various versions of a digital document. This is typically used for software code, but can be used for any type of digital document. For example, this knowlege base article tracks changes between versions, as do Wiki sites.

Revision control for software is a vital part of Software Configuration Management or SCM. Bug tracking can also be considered a part of SCM.

Why should I (a programmer) use Revision Control?

The basic reasons are:

If you’re not convinced, read this article: Why do You Need A Version Control System? .

There is no reason not to be using Source Control, even if you are a single developer.

Links / Documents

Installing Subversion on Windows

Revision Control Systems Compared

Comparison charts

There is an in-depth Version Control Systems Comparison available that covers many important features you might be looking for.

Popular Systems and their Pros/Cons

This list is by no means complete. For more in-depth information, refer to the link above.

Visual SourceSafe

SourceSafe is Microsoft’s own source control tool. If you do all of your development in Visual Studio, this is the easiest (but not necessarily best) tool for you.

Pros:

Cons:

CVS

CVS is a very widely-used system. You should only use CVS if your environment has limitations that keep you from using SubVersion.

Pros:

Cons:

Subversion

Subversion is a newer open-source tool designed to replace CVS. It is superior to CVS in almost every way and is the best all-around open-source tool of its kind. There is an article in this knowledge base with more information about Subversion.

Pros:

Cons:

Perforce

Perforce is an easy to deploy and very feature-packed proprietary solution. It is used by Google. A free version is available, but it only supports a maximum of 2 users.

Pros:

Cons:

Others

One of the tools listed above will most likely be right for you, but they are not the only tools out there. There is no single best choice for a source control system. It is important to use the tool that is best for you. BitKeeper was used to manage the Linux kernel, Git (designed and developed by Linus Torvalds) is currently used to manage the Linux kernel, and ClearCase by Rational is also popular in many large companies.

Distributed Version Control Systems

Thanks to Jose Hales-Garcia for his post on this on OSXForum .

Future Expansion

Someone with more information about Visual Studio Team System should add something about that.

GIT info

Please add other helpful links:

http://www.git-tower.com/blog/git-cheat-sheet-detail/

Interactive tutorial about branching – (Learning about git branching)

Mostly for beginners – (List of Git Tutorials from 2011)

Role specific command references for different types of git users- (Everyday git commands from kernel.org)

10 Tips to Push Your Git Skills to the Next Level – June 17, 2014

What are some document management services/document version control applications out there?

Two great options that we recommend are Git and SVN.

Git: http://git-scm.com/
Git is a free and open source distributed version control system designed to handle everything from small projects to very large projects with speed and efficiency. It offers a variety of exclusive features such as cheap local branching, convenient staging areas, and multiple workflows.

SVN: http://subversion.apache.org/
Apache Subversion is a full-featured version control system originally designed to be a better CVS. Subversion has since expanded beyond its original goal of replacing CVS, but its basic model, design, and interface remain heavily influenced by that goal. Even today, Subversion should still feel very familiar to CVS users. For more information on what CVS is, refer to the following link: http://ximbiot.com/cvs/

svn: Working copy '<filename>' is missing or not locked

Problem: While doing a svn update, you get the following message: “svn: Working copy ‘[filename]’ is missing or not locked”

Cause: The directory that the file [filename] is in needs executable (i.e. list) permission on for the user that issues the command.

Solution: Set the execution permission, e.g. chmod +x [dir_that_contains_that_file]