Why We Need Version Control

August 29th, 2009

Before I know pieces of software called version control, I always make duplicates for changes in my project, mostly only major changes. Something like this :

Yumbaa-2009-07-12.zip

Why? For keeping track stable version of my code. Sometimes I get lost, and it is easier to get started from the latest stable version of my code than to undo the changes I’ve made.

And it is got worse when you need to work with someone else, imagine you need to tell the other person what files you have modified. Well, after 3-5 hours, I just no longer remember what files I’ve modified or added to the project, and it end up with the other person copy all the files in the project. So what will happen if your project get bigger and the network is very slow? Not good at all.

So, here the deal : there is pieces of software called version control or SCM that will handle those problems for you. So, what are you waiting for?

Anyway, what is version control? According wikipedia :

Revision control (also known as version control, source control or (source) code management (SCM)) is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may be changing the same files. Changes are usually identified by a number or letter code, termed the “revision number”, “revision level”, or simply “revision”. For example, an initial set of files is “revision 1″. When the first change is made, the resulting set is “revision 2″, and so on. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged

Basically, what version control do is tracking your files over time.

So, why we need version control?

  1. Undo System

    You can go back to your latest stable version easier, without manually duplicated your project folder. Or if you mess up and forget the original files, version control can help you restore the files to whichever version you like.

  2. Synchronization

    It’ll help you share the changes you’ve made, and you don’t need to remember what files you have changed. So, everyone in your project can stay up to date with the latest version.

  3. Tracking

    Track changes you and everyone have made. When you make changes, you can put message why that changes happen, and who is the last person changes that files.

  4. Branching

    If you create experimental changes, you can branch the project so it won’t bother the stable version of the project. Or if you want to make major upgrade and call that version 2 of your project, but you still want to support version 1, you can do that easy by branching your project.

List of popular version control :

  1. Git is a free & open source, distributed version control system. Designed by Linus Torvalds, and being used in Linux kernel project.

    git

    Git resources

  2. SVN or Subversion is one of the most popular version control. Google code use subversion for code distribution.

    Subversion website

    Subversion resources

  3. Bazaar is distributed version control system and it is written in Python. Bazaar well known as version control that just work, has many workflow, so it can adapt the way you work.

    Projects and organizations using Bazaar, such as : MySQL, Mailman, Launchpad, and the Linux Foundation

    Bazaar website

    Bazaar resources

  4. Mercurial is distributed version control and it is mainly implemented using the Python. Initially created to run in linux environment, but now has been ported to another operating system.

    Mercurial Website

    Mercurial resources

  5. Darcs is distributed version control written in Haskell.

    Darcs Website

    Darcs resources

Other Resources

  1. What is version control, wikipedia.
  2. List of version revision software, wikipedia.

Related posts:

  1. Set Different Settings for Development in Django
  2. Open Atrium, Open Source Project Management Software with Beauty in Mind

One Comment