A Visual Guide to Version Control _ BetterExplained

download A Visual Guide to Version Control _ BetterExplained

of 54

Transcript of A Visual Guide to Version Control _ BetterExplained

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    1/54

    rsion Control (aka Revision Control aka Source Control) lets you track your files over time. Why do you

    re? So when you mess up you can easily get back to a previous working version.

    ouve probably cooked up your own version control system without realizing it had such a geeky name.

    ot any files like this? (Not these exact ones I hope).

    KalidAzadResumeOct2006.doc

    KalidAzadResumeMar2007.doc

    instacalc-logo3.pnginstacalc-logo4.png

    logo-old.png

    s why we use Save As. You want the new file without obliterating the old one. Its a common problem,

    d solutions are usually like this:

    Make a single backup copy (Document.old.txt).

    If were clever, we add a version number or date: Document_V1.txt, DocumentMarch2007.txt

    We may even use a shared folder so other people can see and edit files without sending them over

    email. Hopefully they relabel the file after they save it.

    o Why Do We Need A Version Control System (VCS)?

    ur shared folder/naming system is fine for class projects or one-time papers. But software projects? Not a

    ance.

    o you think the Windows source code sits in a shared folder like Windows2007-Latest-UPDATED!!, for

    yone to edit? That every programmer just works in a different subfolder? No way.

    rge, fast-changing projects with many authors need a Version Control System (geekspeak for file

    tabase) to track changes and avoid general chaos. A good VCS does the following:

    Backup and Restore. Files are saved as they are edited, and you can jump to any moment in time.

    Need that file as it was on Feb 23, 2007? No problem.

    Synchronization. Lets people share files and stay up-to-date with the latest version.

    Short-term undo. Monkeying with a file and messed it up? (Thats just like you, isnt it?). Throw away

    your changes and go back to the last known good version in the database.

    Long-term undo. Sometimes we mess up bad. Suppose you made a change a year ago, and it had a

    bug. Jump back to the old version, and see what change was made that day.

    Track Changes. As files are updated, you can leave messages explaining why the change happened

    (stored in the VCS, not the file). This makes it easy to see how a file is evolving over time, and why.

    Track Ownership. A VCS tags every change with the name of the person who made it. Helpful for

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    2/54

    blamestorming giving credit.

    Sandboxing, or insurance against yourself. Making a big change? You can make temporary changes in an

    isolated area, test and work out the kinks before checking in your changes.

    Branching and merging. A larger sandbox. You can branch a copy of your code into a separate area

    and modify it in isolation (tracking changes separately). Later, you can merge your work back into the

    common area.

    ared folders are quick and simple, but cant beat these features.

    earn the Lingo

    ost version control systems involve the following concepts, though the labels may be different.

    sic Setup

    Repository (repo): The database storing the files.

    Server: The computer storing the repo.

    Client: The computer connecting to the repo.

    Working Set/Working Copy: Your local directory of files, where you make changes.

    Trunk/Main: The primary location for code in the repo. Think of code as a family tree the trunk is the

    main line.

    sic Actions

    Add: Put a file into the repo for the first time, i.e. begin tracking it with Version Control.

    Revision: What version a file is on (v1, v2, v3, etc.).

    Head: The latest revision in the repo.

    Check out: Download a file from the repo.

    Check in: Upload a file to the repository (if it has changed). The file gets a new revision number, and

    people can check out the latest one.

    Checkin Message: A short message describing what was changed.

    Changelog/History: A list of changes made to a file since it was created.

    Update/Sync: Synchronize your files with the latest from the repository. This lets you grab the latest

    revisions of all files.

    Revert: Throw away your local changes and reload the latest version from the repository.

    vanced Actions

    Branch: Create a separate copy of a file/folder for private use (bug fixing, testing, etc). Branch is both a

    verb (branch the code) and a noun (Which branch is it in?).

    Diff/Change/Delta: Finding the differences between two files. Useful for seeing what changed between

    revisions.

    Merge (or patch): Apply the changes from one file to another, to bring it up-to-date. For example, you

    can merge features from one branch into another. (At Microsoft this was called Reverse Integrate and

    Forward Integrate)

    Conflict: When pending changes to a file contradict each other (both changes cannot be applied).

    Resolve: Fixing the changes that contradict each other and checking in the correct version.

    Locking: Taking control of a file so nobody else can edit it until you unlock it. Some version control

    systems use this to avoid conflicts.

    Breaking the lock: Forcibly unlocking a file so you can edit it. It may be needed if someone locks a file

    and goes on vacation (or calls in sick the day Halo 3 comes out).

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    3/54

    Check out for edit: Checking out an editable version of a file. Some VCSes have editable files by

    default, others require an explicit command.

    d a typical scenario goes like this:

    ice adds a file (list.txt) to the repository. She checks it out, makes a change (puts milk on the list),

    d checks it back in with a checkin message (Added required item.). The next morning, Bob updates his

    cal working set and sees the latest revision oflist.txt, which contains milk. He can browse the

    angelog or diffto see that Alice put milk the day before.

    isual Examples

    is guide is purposefully high-level: most tutorials throw a bunch of text commands at you. Lets cover the

    gh-level concepts without getting stuck in the syntax (the Subversion manual is always there, dont worry).

    metimes its nice to see whats possible.

    heckins

    e simplest scenario is checking in a file (list.txt) and modifying it over time.

    ch time we check in a new version, we get a new revision (r1, r2, r3, etc.). In Subversion youd do:

    svnaddlist.txt

    (modifythefile)

    svncilist.txt m"Changedthelist"

    e m flag is the message to use for this checkin.

    heckouts and Editing

    reality, you might not keep checking in a file. You may have to check out, edit and check in. The cycle

    oks like this:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    4/54

    you dont like your changes and want to start over, you can revert to the previous version and start again

    r stop). When checking out, you get the latest revision by default. If you want, you can specify a particular

    vision. In Subversion, run:

    svncolist.txt(getlatestversion)

    ...editfile...

    svnrevertlist.txt(throwawaychanges)

    svnco r2list.txt(checkoutparticularversion)

    iffs

    e trunk has a history ofchanges as a file evolves. Diffs are the changes you made while editing: imagine

    u can peel them off and apply them to a file:

    r example, to go from r1 to r2, we add eggs (+Eggs). Imagine peeling off that red sticker and placing it on

    , to get r2.

    d to get from r2 to r3, we add Juice (+Juice). To get from r3 to r4, we remove Juice and add Soup (-Juice,

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    5/54

    Soup).

    ost version control systems store diffs rather than full copies of the file. This saves disk space: 4

    visions of a file doesnt mean we have 4 copies; we have 1 copy and 4 small diffs. Pretty nifty, eh? In SVN,

    e diff two revisions of a file like this:

    svndiff r3:4list.txt

    iffs help us notice changes (How did you fix that bug again?) and even apply them from one branch to

    other.

    onus question: whats the diff from r1 to r4?

    +Eggs

    +Soup

    otice how Juice wasnt even involved the direct jump from r1 to r4 doesnt need that change, since Juice

    as overridden by Soup.

    ranching

    anches let us copy code into a separate folder so we can monkey with it separately:

    r example, we can create a branch for new, experimental ideas for our list: crazy things like Rice or Eggo

    affles. Depending on the version control system, creating a branch (copy) may change the revision number.

    ow that we have a branch, we can change our code and work out the kinks. (Hrm waffles? I dont know

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    6/54

    hat the boss will think. Rice is a safe bet.). Since were in a separate branch, we can make changes and test

    isolation, knowing our changes wont hurt anyone. And our branch history is under version control.

    Subversion, you create a branch simply by copying a directory to another.

    svncopyhttp://path/to/trunkhttp://path/to/branch

    branching isnt too tough of a concept: Pretend you copied your code into a different directory.uve probably branched your code in school projects, making sure you have a fail safe version you can

    turn to if things blow up.

    erging

    anching sounds simple, right? Well, its not figuring out how to merge changes from one branch to another

    n be tricky.

    ts say we want to get the Rice feature from our experimental branch into the mainline. How would we do

    is? Diff r6 and r7 and apply that to the main line?

    rongo. We only want to apply the changes that happened in the branch!. That means we diff r5 and r6,

    d apply that to the main trunk:

    we diffed r6 and r7, we would lose the Bread feature that was in main. This is a subtle point imagine

    eeling off the changes from the experimental branch (+Rice) and adding that to main. Main may have had

    her changes, which is ok we just want to insert the Rice feature.

    Subversion, merging is very close to diffing. Inside the main trunk, run the command:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    7/54

    svnmerge r5:6http://path/to/branch

    is command diffs r5-r6 in the experimental branch and applies it to the current location. Unfortunately,

    bversion doesnt have an easy way to keep track of what merges have been applied, so if youre not careful

    u may apply the same changes twice. Its a planned feature, but the current advice is to keep a changelog

    essage reminding you that youve already merged r5-r6 into main.

    onflicts

    any times, the VCS can automatically merge changes to different parts of a file. Conflicts can arise when

    anges appear that dont gel: Joe wants to remove eggs and replace it with cheese (-eggs, +cheese), and Sue

    ants to replace eggs with a hot dog (-eggs, +hot dog).

    this point its a race: if Joe checks in first, thats the change that goes through (and Sue cant make her

    ange).

    hen changes overlap and contradict like this, the VCS may report a conflict and not let you check in its

    to you to check in a newer version that resolves this dilemma. A few approaches:

    Re-apply your changes. Sync to the the latest version (r4) and re-apply your changes to this file: Add

    hot dog to the list that already has cheese.

    Override their changes with yours. Check out the latest version (r4), copy over your version, and

    check your version in. In effect, this removes cheese and replaces it with hot dog.

    onflicts are infrequent but can be a pain. Usually I update to the latest and re-apply my changes.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    8/54

    agging

    ho would have thought a version control system would be Web 2.0 compliant? Many systems let you tag

    abel) any revision for easy reference. This way you can refer to Release 1.0 instead of a particular build

    mber:

    Subversion, tags are just branches that you agree not to edit; they are around for posterity, so you can see

    actly what your version 1.0 release contained. Hence they end in a stub theres nowhere to go.

    (intrunk)

    svncopyhttp://path/to/revisionhttp://path/to/tag

    eal-life example: Managing Windows Source Code

    e guessed that Windows was managed out of a shared folder, but its not the case. So hows it done?

    Theres a main line with stable builds of Windows.

    Each group (Networking, User Interface, Media Player, etc.) has its own branch to develop new

    features. These are under development and less stable than main.

    u develop new features in your branch and Reverse Integrate (RI) to get them into Main. Later, you

    orward Integrate and to get the latest changes from Main into your branch:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    9/54

    Tweet 35 9

    ts say were at Media Player 10 and IE 6. The Media Player team makes version 11 in their own branch.

    hen its ready and tested, theres a patch from 10 11 which is applied to Main (just like the Rice example,

    t a tad more complicated). This a reverse integration, from the branch to the trunk. The IE team can do

    e same thing.

    ter, the Media Player team can pick up the latest code from other teams, like IE. In this case, Media Player

    rward integrates and gets the latest patches from main into their branch. This is like pulling in the Bread

    ature into the experimental branch, but again, more complicated.

    its RI and FI. Aye aye. This arrangement lets changes percolate throughout the branches, while keeping

    w code out of the main line. Cool, eh?

    reality, theres many layers of branches and sub-branches, along with quality metrics that determine when

    u get to RI. But you get the idea: branches help manage complexity. Now you know the basics of how one of

    e largest software projects is organized.

    ey Takeaways

    y goal was to share high-level thoughts about version control systems. Here are the basics:

    Use version control. Seriously, its a good thing, even if youre not writing an OS. Its worth it for

    backups alone.

    Take it slow. Im only now looking into branching and merging for my projects. Just get a handle on

    using version control and go from there. If youre a small project, branching/merging may not be an

    issue. Large projects often have experienced maintainers who keep track of the branches and patches.

    Keep Learning. Theres plenty of guides for SVN, CVS, RCS, Git, Perforce or whatever system youre

    using. The important thing is to know the concepts and realize every system has its own lingo and

    philosophy. Eric Sink has a detailed version control guide also.

    ese are the basics as time goes on Ill share specific lessons Ive learned from my projects. Now that

    uve figured out a regular VCS, try an illustrated guide to distributed version control.

    ther Posts In This Series

    A Visual Guide to Version Control (This post)1.

    Intro to Distributed Version Control (Illustrated)2.

    Aha! Moments When Learning Git3.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    4 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    10/54

    24 thoughts on A Visual Guide to Version Controlngback: Visual guide to version control Dyans Weblog

    ngback: digresjon.net | Guide til subversion

    ngback: The Abarentos Narrative links for 2007-09-28

    ngback:joet3ch.com Version Control

    ngback: links for 2007-09-28 at graemef.com

    ngback: Version Control Explained < Nerdpocalypse

    ngback: links for 2007-09-29 Simply A User

    ngback: Art, Algorithms, and Design Blog Archive Basic Intro to Version

    ontrol - Subversion/SVN

    ngback: Karls Place Blog Archive Cool site: BetterExplained.com

    ngback: links for 2007-09-29 Donghai Ma

    ngback: Intro to VCS A Programmers Ramblings

    ngback: Version Control: Get a better understanding of version control |

    lagomi Newsngback: links for 2007-09-29 D e j a m e S e r

    ngback: Sams Updates Blog Archive links for 2007-09-29

    ngback: Craig Vidler | Weblog links for 2007-09-29

    ngback: christian schorn Blog Archive Links vom 29.09.2007

    ngback: links for 2007-09-29 steinarcarlsen

    ngback: Best of Feeds - 30 links - programming, productivity, code,

    cialsoftware, socialnetworking Internet Duct Tape

    ngback: links for 2007-09-30 Mandarine

    ngback: links, ideas and geek stuff Blog Archive links for 2007-10-01

    ngback: Phil Gainley Blog Archive A Visual Guide To Version Control

    ith Phil Gainley

    ngback: A Visual Guide to Version Control | BetterExplained

    ncenthomes Software Development

    ngback: What do you want Better Explained? | BetterExplained

    ngback: Wagner Elias - Think Security First Controle de Verso

    ngback: A Visual Look at Distributed Version Control | BetterExplained

    ngback: links for 2007-10-17

    ngback: Revision Control 101 Nano Taboada

    ngback: links for 2007-12-13 at DeStructUred Blog

    ngback: Backups Bhushan G Ahires Weblog

    1 6

    1

    hare what worked: Aha moments & FAQ

    t's create a living reference for how best to understand this topic.

    the whole part! (More...)

    Branches and how they are merged.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    11/54

    ngback: Principle #1 - Builds should be repeatable (Part 2) Sauers

    chnologies

    ngback: Understanding Software Development Panospaces Weblog

    ngback: Mind Gravy Blog Archive links for 2008-01-24

    ngback: Wildbit Blog Archive Visual Guide to Version Control Social

    etworking and Subscriber-based Services.

    ngback: Effortless version control for teams and one-man developer shops

    ike | fonicmonkey

    ngback: RAILroading Blog Archive links for 2008-02-17

    ngback: a work on process links for 2008-02-17

    ngback: Top of the Mountains Blog Archive Human-faced beanstalks

    ngback: being (no)body m3talink for February 24th through February

    th

    ngback: A great intro guide to version control kfarr

    ngback: Subversion Obliterate, the forgotten feature

    ngback: links for 2008-03-12 D e j a m e S e r

    ngback: Revue de presse | Simple Entrepreneur

    ngback: Incoherent Babbling Blog Archive Version Control Explained

    mplyngback: A Guide to Using Subversion - /dev/null

    ngback: Software By Richard In the Trenches, What is the Best Source

    ontrol for My Team?

    ngback: Get your development under control - all about version control

    drewmccall.com

    ngback: ScribbleWiki Blog Archive Code Management

    ngback: Understanding Version Control Systems 404 Tech Support

    ngback: Version Control Explained Frontier Label Web Development Blog

    ngback: Gua visual para el control de versiones Hermoso da

    ngback: adaptive path blog Adaptive Path Signposts for the Week

    ding August 29, 2008

    ngback: nortypig Blog Archive A Visual Guide to Version Control

    ngback: Pragmatic Yankee Blog Archive links for 2008-09-04

    ngback: PeopleSoft Wiki: PeopleTools Version Control

    ngback: A Practical Guide to University Valhalla Island

    ngback: [ mkhairul.com ] Adding a new feature to a project

    ngback: Toyota Jidoka dan Continuous Integration HaDhikusuma

    ahab Blog

    ngback: things to look at (November 17th - November 20th) | stimulant -

    anging things around. . .

    ngback: A Leased Line to the Collective Unconscious Subversion for web

    sign - how we do it @ Karyx

    ngback: Technical Related Notes Blog Archive links for 2007-09-29

    ngback: Building the ideal web development environment Zulu 7

    ngback: Odds@Blog

    ngback:

    ngback: links for 2009-02-20 - Paul Griffin Petty

    ngback: links for 2009-03-04 | BlueWave Media - BlueWave Media Cafe

    ngback: links for 2009-03-07 techGOVERN

    ngback: Silvestro Fantacci: Linux C++ IDE

    ngback: Intro to Git for Web Designers | Webdesigner Depot

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    12/54

    ngback: Intro to Git for Web Designers | Feed Reader (Beta)

    ngback: Git

    ngback: Monday, May 11, 2009 | shiner.clay

    ngback: Version Control, Google Documents, and Meaningful Commits

    cstrother's Blog

    ngback: A Visual Guide to Version Control | Kyle Wu

    ngback: Intro to Distributed Version Control (Illustrated) | Kyle Wu

    ngback: Marks Blog increasing productivity part 2: Subversion

    ngback: QuickLinks vom 18. August bis zum 19. August instant-

    inking.de

    ngback: Baby steps with Subversion | A Stata Mind

    ngback: Twitter Trackbacks for A Visual Guide to Version Control |

    tterExplained [betterexplained.com] on Topsy.com

    ngback: The Ultimate Guide to Version Control for Designers | MisrIT

    ader (Beta)

    ngback: paradox1x

    ngback: The ultimate guide to version control for designers PixelNovel

    ogngback: How to get up and running quickly with GIT a Fast, Distributed

    rsion Control System. the seekers quill

    ngback: Aha! Moments When Learning Git | BetterExplained

    ngback: Destillat #12 | duetsch.info - Open Source, Wet-, Web-, Software

    ngback: uberVU - social comments

    ngback: increasing productivity part 2: Subversion qKAI project blog

    ngback: Wavesat uses Bazaar Futurile

    ngback: Advanced research paper editing with Subversion revision control

    Granthinm

    ngback: Blog.us.es | Blog | Control de versiones con Subversin

    ngback: Control de versiones con Subversion

    ngback: BenDauphinee.com Version Control A Visual Guide

    ngback: Simple Version Control with TortoiseSVN | IndyVision.Net

    ngback: Tweets that mention A Visual Guide to Version Control |

    tterExplained -- Topsy.com

    ngback: Simple Version Control with TortoiseSVN Part 2 | IndyVision.Net

    ngback: 10 types of Git resources, references, tutorials for 10 types of

    ople | Tips Tank

    ngback: uforepublic DevBlog subversion: Linksammlung 4

    ngback: Source Control Rocks! | Thomas Vochten

    ngback: Choosing a Project Management Tool Automatic Ramblings

    ngback: A Visual Guide To Version Control | Pirate Gaspard

    ngback: Toyota Jidoka dan Continuous Integration | sedayane

    ngback: Daily del.icio.us for December 19th through December 23rd

    nny Carpenter's blog

    ngback: How to apply for Google Summer of Code A byte of note |

    rath Lakshman

    ngback: Becoming a web developer Version Control Systems (VCS) |

    ichard Askew

    ngback: Setting Up a Flash Development Sandbox: Part 1 | Tut Free

    ngback: Subversion explicado visualmente em 30s

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    13/54

    ngback: SVN: What's a good, simplified SVN tutorial for someone new to

    rsion control? - Quora

    ngback: Starting small | Maarifa

    ngback: A Visual Guide to Version Control | prinjumon

    ngback: Opinion: Students, Version Control! | Contains Games

    ngback: A Visual Guide to Version Control Log

    ngback: Starting small with collaborative solutions | Collaboration for Good

    ngback: Nothing found for Amyhaywood_wp ?p=753

    ngback: 6 reasons journalists should show your work while learning &

    eating | FREE DRUPAL THEMES

    ngback: Initial Java Efforts vba2java

    ngback: A Visual Guide to Version Control | Jesus Was Rasta

    ngback: A Visual Guide to Version Control | Jesus Was Rasta

    ngback: VCS-A Visual Guide to Version Control |

    odeBeamer Ideas

    ngback: Version Control in Flash Builder: installation and setup | Davide

    rranca

    ngback: Subclipse Version Control in Flash Builder: installazione e setup |

    avide Barrancangback: Some unorganized links: | DeltaSync

    ngback: Understanding Subversion Vendor Branching | Shane Stillwell

    ngback: How to define a site in Dreamweaver CS5.5 | Heliomedia

    ngback: Subversion | MagicKiat's Weblog

    ngback: Peter Keating

    ngback: Guide to Version Control Systems (hub) | I should remember this

    uide to Version Control Systems (hub) | One's read, test and research logs.

    ngback: Get Started with Subversion using SvnX - Switching To Mac

    ngback: Version Control concepts and best practices | PHP Developer

    source

    ngback: Need guidance!

    ngback: Version Control: Get a better understanding of version control |

    OCM

    ngback: Version Control System Qt Developer Blog

    ngback: Intro to Git for Web Designers | Today24h

    ngback: WP Engine launches seamless integration with git - Web Design

    artup - Free Advice and Great Resources | Web Design Startup - Free

    vice and Great Resources

    ngback: Our Blog | WP Engine launches seamless integration with git

    ngback: A Visual Guide to Version Control | BetterExplained | 42umbrellas

    ngback: A Visual Guide to Version Control | BetterExplained

    ngback: Version Control Systems 101 | Squad Blog

    ngback: A Gentle Introduction to Version Control Part II Not a

    esigner

    Carlton Dickson

    on September 28, 2007 at 12:44 am said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    14/54

    I absolutely love a Friday but this article has made my day already!

    Thanks for putting this togethergoing to have a read of this later on

    today.

    C

    Carlton Dickson

    on September 28, 2007 at 8:47 am said:

    Great article Khalid, and thanks for the link to Erics articles, they

    were pretty good too!

    I will be testing the tagging and branching approach you both

    mention, it will mean I can check out a branch (i.e. previous release)

    into a new foldermake bug fixes and check it back into the branch

    and deploy to live server in a more controlled, and traceable way.

    Then would obviously need to merge bug fixes into my current trunk

    (development work since last version).

    Here is quite a useful resource for SVN and source control in general

    by the way http://svnbook.red-bean.com/

    Kalidon September 28, 2007 at 9:04 am said:

    Hi Carlton, thanks for dropping by! Yep, Im working out my own

    branching/merging scheme to make it easy to edit/update the live

    version while still doing new development. Let me know if you have

    any insights

    Hi Mark, thanks for the comment and link I hadnt seen that SCM

    before.

    Skid Vis

    on September 28, 2007 at 9:10 am said:

    Wow.. you are a breath mint!

    A Life-saver to be exact.. Ive been looking for something like this for

    day..

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    15/54

    Thanks!

    Tony

    on September 28, 2007 at 9:36 am said:

    That was very tasty. Thank you.

    Kalid

    on September 28, 2007 at 9:59 am said:

    Thanks guys! Not sure whats happening with the food theme

    (lifesavers, tasty articles) but Im happy to oblige

    (EDIT: Wow, I had been re-reading the article so many times that I

    forgot food items were the examples I used! They just became a

    series of words to me.)

    Amit

    on September 28, 2007 at 11:04 am said:

    Great Read

    Kalid

    on September 28, 2007 at 11:44 am said:

    Thanks Amit, glad you liked it.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    16/54

    Kevin

    on September 28, 2007 at 12:10 pm said:

    Great article. Just curious what tool you used for diagramming.

    Mario

    on September 28, 2007 at 1:24 pm said:

    thanks for the outline. really helped me grasp the fundamentals.

    karim

    on September 28, 2007 at 1:39 pm said:

    Im using svn thats more than a year now and I love it. Thanks for

    that refreshing tuto, it makes its learning for the novice a real

    pleasure

    Tiago Serafim

    on September 28, 2007 at 4:05 pm said:

    Nice article.

    May I ask where did you do that neat graphics?

    Thanks,

    Kalid

    on September 28, 2007 at 7:35 pm said:

    Hi all, thanks for the comments. Ack, you want to know the secret

    sauce? Microsoft Paint.

    Just kidding . I make the diagrams in PowerPoint 2007, by drawing

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    17/54

    various shapes, arranging and styling them appropriately. If you like,

    check out this article:

    http://betterexplained.com/articles/an-intuitive-guide-

    to-exponential-functions-e/

    and the corresponding PowerPoint file:

    http://betterexplained.com/examples/graphics/Exponential-

    growth.pptx

    Kayan

    on September 28, 2007 at 7:43 pm said:

    yes, Ive the same question (that caused a-ha moment ) what tool do

    you use to make such a nice web2.0ish graphics ?

    Thanks

    Kalyan

    venki

    on September 28, 2007 at 9:07 pm said:

    fabulous read, Thanks tons for putting this together

    Kalid

    on September 28, 2007 at 10:16 pm said:

    @Kalyan: I used PowerPoint 2007 theres more details in comment

    #14, above.

    @venki: Thanks for the comment, it was a lot of fun to write.

    Sam Jones

    on September 29, 2007 at 7:21 am said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    18/54

    Great post! Thanks for doing this.

    Kalid

    on September 29, 2007 at 9:29 am said:

    Thanks Sam, youre more than welcome.

    Ed

    on September 29, 2007 at 9:36 am said:

    Thank you for your wonderful effort.

    Kalid

    on September 29, 2007 at 9:53 am said:

    Hi Ed, thanks for the support.

    Carlo

    on September 29, 2007 at 2:50 pm said:

    Is there a VCS that doesnt require a server environment? Something

    that I can use with Visual Studio 2005 for C#

    brian

    on September 29, 2007 at 6:35 pm said:

    Great detail of how the version control works. Thanks for time to put

    this together.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    19/54

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    20/54

    Kalid

    on September 29, 2007 at 10:17 pm said:

    @Brian: Thanks, glad you liked it!

    @webmat: Great tips, thanks for sharing! (This is exactly what I

    hoped would happen people sharing their personal tips, tricks and

    favorites).

    @Carlo: Try out webmats suggestions. I know Visual Studio has

    plugins for various VCS systems like SVN, they may have Bazaar or

    Mercurial as well. This makes it easy to see the status of the project

    you are working on, inside of Visual Studio.

    Anonymous

    on September 30, 2007 at 12:05 am said:

    While this looks like a nice introduction to the CVS and SVN model of

    version control, its pretty specific to this model.

    The All version control systems involve the following concepts part

    is certainly false unless you exclude distributed version control,

    systems that dont directly track files (eg Git), systems that dont use

    revisions (eg Darcs), and probably other categories.

    Kalid

    on September 30, 2007 at 8:30 am said:

    Hi, thanks for the feedback. Yes, this guide was meant to give an

    intro to the most common VCS concepts. I wasnt that familiar with

    distributed and other systems, but it seems they can have different

    behavior I may do a follow up on them. Till then, Ill caveat the

    sentence with Most vs All .

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    21/54

    Gareth

    on October 1, 2007 at 1:08 am said:

    Thanks this is great for non tech folk

    dextrous

    on October 1, 2007 at 3:01 am said:

    Hi,

    Its awesome, I have already recommended to all newbies around me

    to refer it.

    good stuff. How about writing same thing for a distributed version

    control.

    shawn

    on October 1, 2007 at 10:54 am said:

    thanks for this great tutorial. Makes a lot of sense really quick.

    Kalid

    on October 1, 2007 at 2:51 pm said:

    Gareth and shawn, thanks for the comments. Im thrilled when

    concepts can shine through, I really believe any subject should be

    made sensible to everyone

    Dextrous, I dont know much about distributed version control

    systems, but am excited to learn about them. Id love to write moreonce I figure them out.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    22/54

    Sagar Mehta

    on October 2, 2007 at 12:11 am said:

    very well explained indeed !!!!

    Kalid

    on October 2, 2007 at 8:55 am said:

    Thanks Sagar, glad it was useful for you.

    Sagar Mehta

    on October 4, 2007 at 3:28 pm said:

    The content is good, but I was more impressed with the simplicity

    with which it is presented

    A lot to learn for potential tutorial writers

    Kalid

    on October 4, 2007 at 6:30 pm said:

    Thanks Sagar I find it helps to relate new material to what people

    already know (like versioning their files by changing the filename).

    Eventually Id like to do a tutorial on how to do a tutorial

    Tanya

    on October 21, 2007 at 7:12 pm said:

    thank you for the article! Ive used CVS for 2 years, but Ive got clear

    understanding of branches and merging only now

    Kalid

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    23/54

    on October 21, 2007 at 9:24 pm said:

    Great Tanya, Im glad you found it useful!

    Neville Franks

    on October 22, 2007 at 12:04 am said:

    Kalid, very good intro article. I wrote Get up and running with

    TortoiseSVN and Subversion in 15 minutes a while back which will be

    of interest to folks starting out with SubVersion. You can find at:

    http://blog.surfulater.com/2007/02/28/get-up-and-running-

    with-tortoisesvn-and-subversion-in-15-minutes/

    Kalid

    on October 22, 2007 at 1:21 am said:

    Hi Neville, thanks for dropping by. This article was about the high

    level concepts, so its nice to learn how to set up the nitty-gritty

    Paul Ziakin

    on December 14, 2007 at 3:05 pm said:

    Found this article while hunting for a useable distinction between

    Document Version and Document Revision. Any takers out there?

    Kalid

    on December 17, 2007 at 2:15 pm said:

    Hi Paul, unfortunately the words version and revision seem to be

    used interchangibly in the sources Ive found. It might depend on the

    particular version/revision control tool you are using .

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    24/54

    Dan

    on January 25, 2008 at 7:20 am said:

    Great post! Using straight to the point explanations, attractive visual

    aids, and command-line examples really helped make the

    fundamentals easy to understand!

    Great work!

    Kalid

    on January 25, 2008 at 10:47 am said:

    Thanks Dan! I try to use as many techniques as I can (diagrams,

    text, etc.) since people learn differently. Glad it worked for you!

    Ferdinand

    on February 17, 2008 at 8:28 am said:

    Thanks man, this is an excellent primer, just what I needed !

    Kalid

    on February 17, 2008 at 11:32 am said:

    Thanks Ferdinand, glad it worked for you.

    user

    on March 25, 2008 at 12:47 am said:

    please, if possible, add a visual guide (picture/diagram) for concept of

    conflict.

    Nicolas Hoizey

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    25/54

    on March 31, 2008 at 1:13 am said:

    Great article!

    Being a user of CVS and SVN for years, I always have some

    difficulties trying to explain it to my collegues and friends, it will help

    me a lot!

    May I translate it into french and publish it on my weblog, with a linkto your original?

    Kalid

    on March 31, 2008 at 11:19 am said:

    Hi Nicolas, thanks for the comment, glad you enjoyed it. Sure, you

    can translate it, thanks for asking.

    MB

    on April 28, 2008 at 6:26 pm said:

    well explained, i like the use of diagrams. The presentation also looks

    very professional, thanks!

    Kalid

    on April 28, 2008 at 6:55 pm said:

    Thanks MB!

    Dave

    on April 29, 2008 at 5:54 am said:

    *T*H*A*N*K*S*

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    26/54

    Kalid

    on April 29, 2008 at 10:36 am said:

    Hi Dave, youre welcome .

    FHierro

    on May 17, 2008 at 9:15 am said:

    Yeah, guys! CVS is a very useful tool for any of you who works with a

    single file during a long time while building its definitive content.

    However, CVS has the inconvenient of expecting to be you (the user)

    the one who carries out the check-in and check-out operations.

    I have found a very important tool name Live!Doc Personal Edition(www.mylivedocuments.net) which automatically carries out check-in

    operations and transparently keeps all the changes done in any of

    your files.

    I suggest you to test it

    Ambaron May 30, 2008 at 9:46 am said:

    amazing read! great job!

    Kalid

    on May 30, 2008 at 10:04 am said:

    Thanks Ambar, glad you liked it!

    Dilan

    on June 5, 2008 at 9:43 pm said:

    THE BEST GUIDE FOR VCS Ive seen.. Great great stuff. thanks a

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    27/54

    billion

    Kalid

    on June 5, 2008 at 10:58 pm said:

    Thanks Dilan, youre welcome!

    ggyy_sun

    on June 9, 2008 at 11:21 pm said:

    What a nice paper!

    Kalid

    on June 10, 2008 at 11:11 am said:

    Thanks, glad you enjoyed it.

    Bedrich

    on June 10, 2008 at 1:31 pm said:

    Great article, really good for a version control newbie like myself.

    Kalid

    on June 11, 2008 at 2:01 am said:

    Thanks Bedrich, glad it was helpful.

    Rob

    on July 2, 2008 at 10:53 am said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    28/54

    Excellent job! One suggestion though

    Ive always used a visual diff program so I was confused for a while

    on your explanation of the diff process. I think it would help if you

    pointed out that diffing r6 with r7 would generate:

    +rice

    -bread

    That is, the diff things you deliberately removed bread. How could it

    know the difference?

    So, when were ready to merge we want to know the difference

    between the file we started with on our branch and the final version

    on our branch. Then we merge those differences with the latest

    version on the trunk.

    Something like that. A bit more theory of what were trying to do.

    This really helped me solidify the process in my head. Thanks,

    Peace,

    Rob:-]

    Tim

    on August 31, 2008 at 1:33 am said:

    Who would have thought a version control system would be Web 2.0

    compliant? Many systems let you tag (label) any revision for easy

    reference

    Please, this is not remotely like folksonomic tagging in the Web 2.0

    sense. If this is a joke, its going to confuse the heck out of people

    whove not encountered version control before.

    Scartaris

    on September 5, 2008 at 8:27 pm said:

    This is a great introduction to VCS! Source code management can be

    so complicated to explain, but you have made it quite clear.

    I would like to see a similar explanation of distributed VCS systems.

    I have read about them, but I have not been able to make any sense

    of them they seem like trying to play volleyball when every player

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    29/54

    has her own ball. I dont see how it can possibly be anything other

    than a cluster-you-know-what. But they obviously work for some

    projects, and I would really like that explained.

    Scartaris

    on September 5, 2008 at 8:33 pm said:

    Oh! There is a link to an explanation of distributed version control

    right at the end! Thanks!

    Ammar

    on October 31, 2008 at 8:02 am said:

    Thank you very much for this great resource I will definitely point it

    to my colleagues so that they learn about source control.

    Much thanks!

    Kalid

    on November 18, 2008 at 1:23 am said:

    @Scartaris: No problem, glad you found it.

    @Ammar: Glad you enjoyed it!

    Jeff

    on December 2, 2008 at 5:03 pm said:

    Thank you! This is good stuff. -j

    Rythums

    on December 8, 2008 at 12:00 am said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    30/54

    It was very helpful

    I have a question

    In any of the file header say a *.c file I want to maintain the

    comments of commiting is it possible to do that automatically?

    by putting a directive as

    or something similar ?

    for example, have a file header as

    // file name : xxx.c

    // auther : xyz

    // creation date : dd mm yy

    // revisions : date comment

    // 1.0 : dd-mm-yy base version

    // 1.1 : dd-mm-yy trying auto-version

    // :

    thanks in advance

    ryth

    Kalid

    on December 9, 2008 at 6:35 pm said:

    @Jeff: Youre welcome.

    @Rythums: Offhand, I dont know of a simple way to prepend the

    comments to the file (ironically, that would make the file have a newrevision, right?). In general, the source control system should

    probably be used to view the log/history of a file.

    Tracy

    on February 12, 2009 at 10:54 am said:

    This is fantastic. Ive been interested in using version control at the

    office but Im pretty sure our IT team thinks its not worth it for my

    needs (more along the lines of grocery lists than software

    development). Do you know of any program that does this sort of

    thing at a more basic level, for everyday users?

    Love the site, great idea.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    31/54

    Manish

    on February 13, 2009 at 2:48 am said:

    It is such a treat to read a documents like this. Kalid, you rock!!

    Kalid

    on February 13, 2009 at 5:30 pm said:

    @Tracy: Thanks for the comment. Subversion is probably the

    simplest system to use (it has plugins like TortoiseSVN for Windows so

    you dont need to use the command line).

    @Manish: Thanks!

    imissmyjuno

    on March 4, 2009 at 12:03 pm said:

    Thanks for this! I understand the topic but havent found a better

    guide yet. So many times I tried to explain the concept and havent

    succeeded in doing so. Ill try this guide next time.

    brad

    on March 10, 2009 at 9:18 am said:

    This is great for the concepts but for a newbie, im a little lost

    without an ab initio. i write web code, never use the command line,

    and am not sure if there is a software like subversion that is assumedto be in use?

    Kalid

    on March 13, 2009 at 1:47 am said:

    @imissmyjuno: Youre welcome!

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    32/54

    @brad: Thanks for the comment I realize I forgot to mention the

    examples were for Subversion! (Ill update that now). The key

    principles, pros and cons, and diagrams should apply to most

    traditional version control systems like Subversion, CVS or RCS.

    Walter

    on March 14, 2009 at 3:14 pm said:

    Kalid,

    Many thanks. Im a small projects guy who has been wavering about

    using vcs for a while, and this tipped me toward using it.

    Kalid

    on March 14, 2009 at 4:03 pm said:

    @Walter: Youre welcome hope it works out for you!

    adi

    on May 7, 2009 at 6:59 am said:

    most appreciated. u v got a great way of explaining concepts in a

    simple way. Thank u a lot n i wish u a lot of luck!

    adi

    Catherine

    on May 10, 2009 at 11:56 pm said:

    Good article. Thanks.

    Catherine Sea

    http://www.scmsoftwareconfigurationmanagement.com/

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    33/54

    sfasdf

    on July 7, 2009 at 4:14 am said:

    afasdfasdf

    Shyam

    on July 7, 2009 at 4:35 am said:

    Good article

    webCV

    on July 10, 2009 at 12:48 am said:

    Excellent article! Thanks for this fantastic article which

    explains(better! with clear diagrams, how VCS works Done a bit

    of digging and SVN seems the way to go. Glad theres a plugin for

    quanta plus since I use that for PHP. Again, thanks for an awesome

    article Kalid.

    Kalid

    on July 10, 2009 at 10:31 am said:

    @webCV: Youre welcome!

    Ranu Mandan

    on August 3, 2009 at 7:28 am said:

    that was the most simplest of all

    thx for sharing

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    34/54

    Kalid

    on August 6, 2009 at 7:46 pm said:

    @Ranu: Thanks!

    Ramesh

    on August 12, 2009 at 2:05 pm said:

    Thanks very much for sharing. I have been looking for an article like

    this

    Kalid

    on August 12, 2009 at 2:09 pm said:

    @Ramesh: Youre welcome!

    Niks

    on August 17, 2009 at 11:45 pm said:

    Kalid,

    Can I reuse the pictures (copy) to our folks in a PPT or something??

    Kalidon August 19, 2009 at 8:53 pm said:

    @Niks: Sure thing, but please include a reference back to the site.

    Thanks!

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    35/54

    Kavin

    on September 15, 2009 at 11:01 pm said:

    Sir, it was very useful to know the basics of how one of the largest

    software projects is organized.

    Kalid

    on September 20, 2009 at 12:25 am said:

    @Kavin: Glad you found it helpful!

    skmwenda

    on September 27, 2009 at 7:54 am said:

    Great stuff!now i fully get branching, and when to use RI or FI.

    Kalid

    on September 27, 2009 at 11:58 am said:

    @skmwenda: Thanks, glad it helped!

    S M Nabeel Dibaji

    on November 4, 2009 at 10:43 pm said:

    Awesome post.

    Really nice and easy to learn Source Control Concepts from the

    scratchLOve U buddy

    Deependra Solanky

    on November 4, 2009 at 11:26 pm said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    36/54

    Great article for beginners. Thanks.

    Kalid

    on November 5, 2009 at 4:17 pm said:

    @S M, @Deependra : Glad you liked it!

    joy

    on December 17, 2009 at 6:34 pm said:

    Excellent! Thank you!

    Kalid

    on December 19, 2009 at 2:04 am said:

    @joy: Youre welcome!

    Km

    on January 25, 2010 at 4:47 am said:

    Lovely guide. No prob in understanding at all.

    maverick

    on February 24, 2010 at 12:17 am said:

    thanks for the post, its really helpful

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    37/54

    on March 2, 2010 at 10:31 pm said:

    Have a question? Know an explanation that caused your own a-ha

    moment? Write about it here.

    Windows Linux Admin

    on March 19, 2010 at 9:29 am said:

    Amazingly well explained. Im sending this to the non softare guys at

    work

    on March 28, 2010 at 9:33 pm said:

    Excellent! Thank you!

    sujith

    on May 24, 2010 at 11:06 pm said:

    Woderful !! thank You !!!

    on May 31, 2010 at 6:48 am said:

    That is really a good guide! Very easy to understand and helpful. I amhaving less fear to the version control things at least, haha. Thanks

    very much!

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    38/54

    Kalid

    on May 31, 2010 at 10:30 pm said:

    @: Yoiure welcome, glad it helped!

    Bernard

    on June 1, 2010 at 11:08 am said:

    I was looking for a user guide to version control. This is really an

    excellent introduction.

    Kalid

    on June 1, 2010 at 12:30 pm said:

    @Bernard: Thanks!

    Rob Langley

    on June 24, 2010 at 7:08 am said:

    hi I know this sounds like a tall order but does anyone know of a

    VCS that would deal with the entire origination process, please? (ie,

    pulling in all sorts of different source files text, Word, EPSs, TIFs,

    pegs then through Quark/InDesign and through to PDF)

    thanks

    Rob

    Kalid

    on July 2, 2010 at 10:37 pm said:

    @Rob: I think your best bet would be to use VersionCue or some

    software designed just for the various Adobe formats most generic

    VCS systems are optimized to working with plain text files.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    39/54

    Josh Colter

    on July 14, 2010 at 11:39 am said:

    Great high-level SVN overview. Love the visuals!

    Appan

    on July 14, 2010 at 11:59 am said:

    Very informative and detailed note on VCS.

    Is it an individual contribution or an organisations contribution ?

    whoever did it, thank you so much.

    Ap

    Kalid

    on July 14, 2010 at 12:26 pm said:

    @Appan: Thanks, glad you liked it! Yep, this was just a personal post,

    not part of an organization.

    Raj

    on July 14, 2010 at 10:29 pm said:

    Its cool, i have read some part and seems good

    m4niac

    on July 25, 2010 at 12:32 pm said:

    Ive just started out to read the tutorial and I already want to tell you

    I felt in love with this whole new VCS stuff . Thanks for that! And

    of course, for this amazing tutorial.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    40/54

    michael kenner

    on September 29, 2010 at 1:48 am said:

    Absolutely Great. A credit to the author Kalid Azad. Very interesting

    and very easy to follow!

    Kalid

    on October 8, 2010 at 10:06 am said:

    @Michael: Thank you, glad it helped!

    ss

    on October 18, 2010 at 2:29 pm said:

    good article

    Anonymous

    on December 9, 2010 at 1:10 pm said:

    wow! i have never come across any read(specially in IT) which was

    so easy to understahnd.

    i was LOL looking at the words like, blamestorming and

    monkeying.Absolutely loved it.

    It truly is better explained.

    keep up the good work.

    Cheers!!

    Kalid

    on December 10, 2010 at 2:21 am said:

    @Anonymous: Thanks! Yeah, theres no reason guides have to be dull

    nobody wants to read (or write) that .

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    41/54

    Aya

    on December 17, 2010 at 1:16 am said:

    WOW !! that was amazing and so simple indeed .. Im a third year

    student in FCI and I have a presentation about VCS and I gotta tell

    you that ur article was more than helpful to me .. thanx alot .. great

    effort

    on December 22, 2010 at 11:37 pm said:

    LOL looking at the words like, blamestorming and

    monkeying.Absolutely loved it.

    sakhunzai

    on December 28, 2010 at 11:15 am said:

    simply superb !

    Anonymous

    on January 15, 2011 at 2:51 am said:

    thanks a lot for this work, we will wait many from u

    Anonymous

    on March 1, 2011 at 11:40 am said:

    Thanks you for explaining the basic principals it makes things more

    clear to me and will help me in fixing the way I set my VCS up and

    maintain it in the future.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    42/54

    Kalid

    on March 2, 2011 at 3:03 pm said:

    @Anonymous: Youre welcome!

    Catherine

    on March 15, 2011 at 10:36 pm said:

    very illustrative content

    Kalid

    on March 15, 2011 at 11:29 pm said:

    @Catherine: Thanks, glad you liked it.

    Jorge Contreras

    on April 4, 2011 at 7:42 am said:

    Hey ! this is a very good article. I had tried to understand version

    control, I didnt know where to start, luckily I found this. Its simple,

    useful. Nice job!

    Pawankumar Jajara

    on April 9, 2011 at 1:30 pm said:

    Hi,

    It was an awesome article on Version Control System. I have an

    interview on monday and less time to look around, but your

    information made my day. Its the best article I ever saw on VCS

    Hats Off !

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    43/54

    Kalid

    on April 16, 2011 at 6:53 pm said:

    @Pawankumar: Thanks!

    Michelle

    on May 5, 2011 at 8:59 pm said:

    Wow, this article really gives me a fantastic idea of what version

    control is all about!!Great job!

    Kalid

    on May 5, 2011 at 9:14 pm said:

    @Michelle: Thanks!

    on May 21, 2011 at 10:24 pm said:

    ow, this article really gives me a fantastic idea of what version control

    is a

    sports management course

    on May 30, 2011 at 1:44 am said:

    betterexplained.com has been helping me and my college friends with

    our school projects.

    Mohnish Thallavajhula

    on June 4, 2011 at 3:01 am said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    44/54

    Pretty kewl. Stands up to the name- BetterExplained

    Kalid

    on June 5, 2011 at 8:43 pm said:

    @Mohnish: Thanks .

    Denim Geek

    on July 5, 2011 at 5:49 am said:

    I actually wrote something very similar to this for my dissertation a

    few years ago. Great article, well done on explaining this a lot clearer

    than i could

    Kalid

    on July 18, 2011 at 12:19 pm said:

    @Denim Geek: Appreciate the comment!

    rosy

    on August 10, 2011 at 10:34 pm said:

    hello people i fell really helpful with this data provided..actually VCS

    is my research topic so..i was just thinking that if u could send me

    some more contents over VCSit will be very very helpful to mebdw thanx a lot kalid:)

    raj

    on September 4, 2011 at 10:34 pm said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    45/54

    good stuff mate..!!!!

    Michael

    on September 11, 2011 at 7:42 pm said:

    What a great resource, and so well written. Thanks Kalid.

    Kalid

    on September 12, 2011 at 12:00 am said:

    @Michael: Thank you!

    Khaled

    on September 21, 2011 at 4:12 am said:

    Thanks man, it was very helpfull

    Kalid

    on September 26, 2011 at 12:14 pm said:

    @Khaled: Youre welcome!

    Ilana Gannetti

    on October 14, 2011 at 2:06 pm said:

    We are a gaggle of volunteers and starting a brand new scheme in

    our community. Your web site provided us with valuable info to work

    on. You have performed an impressive task and our whole

    neighborhood can be grateful to you.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    46/54

    Saleh

    on October 16, 2011 at 3:39 am said:

    It is definitely Better Explained. Now, is there a GUI instead of

    command line?

    Thanks for the beautiful explanation.

    Kalid

    on October 16, 2011 at 10:48 pm said:

    @Saleh: Glad you liked it! . Yep, there are GUI tools for SVN like

    TortoiseSVN.

    Vishnu Kumar

    on November 3, 2011 at 12:51 am said:

    Hi KalidAn interviewer asked me this question..

    If there are 55 versions of a file available55th one is the latest

    onedeveloper checked out the 50th version and do some

    modification and then check inwhat will be the new versioni

    replied56thi think it was 51th

    What would be the answer ?

    Vishnu

    kalid

    on November 3, 2011 at 9:18 am said:

    @Vishnu: Thats a strange question, I think the interviewer may have

    been misinformed about how version control works. Normally you

    dont ask what is the version number as version control takes care

    of that for you, and you dont revise old versions, you only add new

    ones (a revised old version becomes a new element).

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    47/54

    Sole42

    on December 2, 2011 at 8:08 am said:

    Great article.

    I wish there were free CVS/SVN systems that actually do what they

    are supposed to.

    I tried 5 different free ones, including Tortoise which especially

    doesnt work as advertised.

    Havent tried commercial ones yet but I bet theres at least one worth

    the money.

    kalid

    on December 2, 2011 at 11:57 am said:

    @Sole42: Thanks. Yes, some interfaces arent as clean/easy as others

    I prefer using the command-line just because its consistent / easy

    to use once youve learned it.

    Amit

    on December 23, 2011 at 4:05 am said:

    Thanx kalid!!!! It helped me so much to get basic ideas very easily

    Nice technique to present the complex information in simple way

    Simply great!!! I am beginner for Source Code Control and hope

    that u help me to get myself deeper into this concept

    thnx again

    Hemangon December 23, 2011 at 9:05 pm said:

    Great work ! Thanks a lot !

    abbey

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    48/54

    on December 27, 2011 at 8:21 pm said:

    Now thats a systematic approach of doing things. Thank you for the

    post sir, keep posting more of your nice articles. Thanks

    kalid

    on December 28, 2011 at 6:43 pm said:

    @Hemang: Youre welcome!

    kalid

    on December 28, 2011 at 6:44 pm said:

    @Amit: Thank you, glad it helped!

    Karen

    on January 9, 2012 at 2:05 am said:

    Great post! Using straight to the point explanations, attractive visual

    aids, and command-line examples really helped make the

    fundamentals easy to understand!

    Awesome work!

    kalid

    on January 9, 2012 at 1:34 pm said:

    @Karen: Thank you!

    Dich Vu Thiet Ke Web Uy Tin - Chat Luong - Chi Phi

    Hop Ly

    on January 12, 2012 at 3:47 pm said:

    Pretty great post. I just stumbled upon your weblog and wished to

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    49/54

    mention that I have truly loved browsing your blog posts. After all I

    will be subscribing to your rss feed and I hope you write again soon!

    Amit

    on January 15, 2012 at 8:12 am said:

    You are simply awesomegreat article.explained everything.

    kalid

    on January 17, 2012 at 12:09 pm said:

    @Amit: Glad it helped!

    Vijayakumar

    on January 27, 2012 at 4:04 am said:

    Thanks for this wonderful work.

    kalid

    on January 27, 2012 at 10:37 am said:

    @Vijayakumar: Glad you liked it!

    Papoj

    on January 28, 2012 at 3:21 pm said:

    Thank you for the post! It is very helpful since the beginning that you

    make connection with the simple idea of version control system by

    renaming files (so I feel familiar and ready to read what you will

    write later on). The visual explanation is great, and the

    accompanying SVN commands are even more helpful. May I ask you

    to add the comparison with Git as well? I am learning Git and any

    comparison like (commit in git = merge in svn) would be perfect.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    50/54

    Thank you very much!

    kalid

    on January 29, 2012 at 7:31 pm said:

    @Papoj: Thanks for the note! Yes, I have a guide on distributed

    systems (http://betterexplained.com/articles/intro-to-distributed-

    version-control-illustrated/) and some git tips

    (http://betterexplained.com/articles/aha-moments-when-learning-

    git/). Thanks for the feedback, its helpful to know what techniques

    are working. I find one of the best ways to explain a new concept is

    to relate it to what were already familiar with.

    Emilio

    on March 27, 2012 at 7:17 am said:

    kalid, what kind of license has this article? I want to translate parts of

    it into spanish, for educational uses (very-first course in university). I

    dont need all the information here, only the big ideas, and you have

    one of the best explication Ive found.

    kalid

    on March 27, 2012 at 9:49 am said:

    @Emilio: Feel free to translate and use the article for educational use!

    Just please include a reference back to the original. Thanks!

    Deepak

    on March 28, 2012 at 10:39 am said:

    Hi Kalid, thatnks for this nice visual article.Now I git it ..keep the

    good work going.

    kalid

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    51/54

    on March 29, 2012 at 4:13 am said:

    @Deepak: Thanks!

    Emilio

    on March 29, 2012 at 7:58 pm said:

    Kalid, Thank YOU! I will put the source. If you want, you can send an

    email, when the document is finished, I could send you a copy. Do

    you use visio for the graphics? I think Ill use libreoffice draw.

    kalid

    on April 12, 2012 at 9:30 am said:

    @Emilio: Youre welcome! Sure, itd be fun to see the article when

    youre done. I use Powerpoint 2007 for the graphics.

    ANdrew

    on May 2, 2012 at 4:26 pm said:

    Great stuff, your article explains version control very nicely!

    I like that youve used a combination of methods to explain the

    concepts, and havent posted large blocks of svn/git/hg commands!

    Stephen

    on May 2, 2012 at 5:54 pm said:

    Thanks a lot!! I have heard about version control for ages but never

    really understood till I read your article!

    kalid

    on May 2, 2012 at 8:52 pm said:

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    52/54

    @Stephen: Awesome, glad it helped!

    @Andrew: Thanks, appreciate it. Definitely, just throwing a chunk of

    text commands at someone doesnt convey the intuition behind it all.

    Peter Drinnan

    on May 6, 2012 at 12:31 pm said:

    Just wanted to point out that if you are on Windows, the new

    GitExtension package includes everything you will need to setup

    msysGit and the configuration works with TortoiseGit too. May save

    you some time.

    http://code.google.com/p/gitextensions/

    brighteyes27

    on May 22, 2012 at 10:10 am said:

    Thanks Kalid, the write-up was done well. I have a much better

    understanding on the Version Control concept. The visual examples

    were very helpful and sealed the knowledge in my brain. Thanks

    again!

    kalid

    on May 22, 2012 at 12:35 pm said:

    @brighteyes27: Awesome, glad it helped!

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    53/54

    Robbie

    on May 24, 2012 at 8:54 pm said:

    I was struggling to understand version control and then I found this

    and it was so clear and concise that it helped me to understand what

    is being stated about it.

    Thanks

    Jommar

    on June 10, 2012 at 7:58 pm said:

    It helped me to understand the functionality and the usage of the

    VCS. Thanks

    kalid

    on June 11, 2012 at 10:20 am said:

    @Jommar: Thanks, glad it helped.

    ann

    on July 6, 2012 at 11:22 pm said:

    Very good explanation. Thanks

    Kaviraj R

    on July 25, 2012 at 9:49 pm said:

    Is there any standards to follow for version numbers? that is V1, V2,

    V3.. and V1.1 V1.2, V1.3.

    how to decide which number system to use.

    if i use v1.1,v1.2 v1.9 what is next? is there any specification to

    choose V1.10 or V2.0.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio

    54 10/9/2012

  • 7/27/2019 A Visual Guide to Version Control _ BetterExplained

    54/54

    kalid

    on July 31, 2012 at 2:33 am said:

    @Kaviraj: No official standards, but its usually

    MajorVersion.MinorVersion. So if its a small upgrade, you only

    increment the minor version. v1.0 to v1.9 to v1.10 to v1.11. Note

    that v1.10 and v1.1 look similar, so its best to skip 1.10 and go

    to 1.11.

    Vee

    on August 16, 2012 at 11:07 pm said:

    A fantastic article for every type of user typically. This help out in lot

    of concept and situations.

    Thanks

    Bunnynew

    on September 16, 2012 at 12:39 am said:

    Hi,

    I recently started using Apache VisualSubversion. We are testing in

    Standard Free Edition. It is working nicely. My Developers want that,

    instead of committing in Repos directly, it should be passed via an

    Admin.

    To be clear, if they do any changes in source file, it should be notify to

    an Admin user. That admin user should be able to commit in Repos

    after reveiwing the changes in source file.

    Is this possible as I didnot find anything in visualsubversion ?

    Is there any other product to achieve this ?

    Thanks.

    ual Guide to Version Control | BetterExplained http://betterexplained.com/articles/a-visual-guide-to-versio