Você está na página 1de 54

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

ersion Control (aka Revision Control aka Source Control) lets you track your files over time. Why do you are? 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.png instacalc-logo4.png logo-old.png ts why we use Save As. You want the new file without obliterating the old one. Its a common problem, nd 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.

So 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 hance. o you think the Windows source code sits in a shared folder like Windows2007-Latest-UPDATED!!, for nyone to edit? That every programmer just works in a different subfolder? No way. arge, fast-changing projects with many authors need a Version Control System (geekspeak for file atabase) 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

1 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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. hared folders are quick and simple, but cant beat these features.

Learn the Lingo


ost version control systems involve the following concepts, though the labels may be different. asic 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. asic 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. dvanced 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).

2 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

Check out for edit: Checking out an editable version of a file. Some VCSes have editable files by default, others require an explicit command. nd a typical scenario goes like this: lice adds a file (list.txt) to the repository. She checks it out, makes a change (puts milk on the list), nd checks it back in with a checkin message (Added required item.). The next morning, Bob updates his ocal working set and sees the latest revision of list.txt, which contains milk. He can browse the hangelog or diff to see that Alice put milk the day before.

Visual Examples
his 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). ometimes its nice to see whats possible.

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

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

svnaddlist.txt (modifythefile) svncilist.txtm"Changedthelist"

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

Checkouts and Editing


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

3 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

you dont like your changes and want to start over, you can revert to the previous version and start again or stop). When checking out, you get the latest revision by default. If you want, you can specify a particular evision. In Subversion, run:

svncolist.txt(getlatestversion) ...editfile... svnrevertlist.txt(throwawaychanges) svncor2list.txt(checkoutparticularversion)

Diffs
he trunk has a history of changes as a file evolves. Diffs are the changes you made while editing: imagine ou can peel them off and apply them to a file:

or example, to go from r1 to r2, we add eggs (+Eggs). Imagine peeling off that red sticker and placing it on 1, to get r2. nd to get from r2 to r3, we add Juice (+Juice). To get from r3 to r4, we remove Juice and add Soup (-Juice,

4 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

Soup). ost version control systems store diffs rather than full copies of the file. This saves disk space: 4 evisions 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:

svndiffr3:4list.txt

iffs help us notice changes (How did you fix that bug again?) and even apply them from one branch to nother. 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.

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

or 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

5 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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. n Subversion, you create a branch simply by copying a directory to another.

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

o branching isnt too tough of a concept: Pretend you copied your code into a different directory. ouve probably branched your code in school projects, making sure you have a fail safe version you can eturn to if things blow up.

Merging
ranching sounds simple, right? Well, its not figuring out how to merge changes from one branch to another an be tricky. ets say we want to get the Rice feature from our experimental branch into the mainline. How would we do his? Diff r6 and r7 and apply that to the main line? Wrongo. We only want to apply the changes that happened in the branch!. That means we diff r5 and r6, nd 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 peeling off the changes from the experimental branch (+Rice) and adding that to main. Main may have had ther changes, which is ok we just want to insert the Rice feature. n Subversion, merging is very close to diffing. Inside the main trunk, run the command:

6 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

svnmerger5:6http://path/to/branch

his command diffs r5-r6 in the experimental branch and applies it to the current location. Unfortunately, ubversion doesnt have an easy way to keep track of what merges have been applied, so if youre not careful ou may apply the same changes twice. Its a planned feature, but the current advice is to keep a changelog message reminding you that youve already merged r5-r6 into main.

Conflicts
any times, the VCS can automatically merge changes to different parts of a file. Conflicts can arise when hanges 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).

t this point its a race: if Joe checks in first, thats the change that goes through (and Sue cant make her hange). When changes overlap and contradict like this, the VCS may report a conflict and not let you check in its p 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.

7 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

Tagging
Who 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 umber:

n Subversion, tags are just branches that you agree not to edit; they are around for posterity, so you can see xactly 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

Real-life example: Managing Windows Source Code


We 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. ou develop new features in your branch and Reverse Integrate (RI) to get them into Main. Later, you Forward Integrate and to get the latest changes from Main into your branch:

8 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

ets say were at Media Player 10 and IE 6. The Media Player team makes version 11 in their own branch. When its ready and tested, theres a patch from 10 11 which is applied to Main (just like the Rice example, ut a tad more complicated). This a reverse integration, from the branch to the trunk. The IE team can do he same thing. ater, the Media Player team can pick up the latest code from other teams, like IE. In this case, Media Player orward integrates and gets the latest patches from main into their branch. This is like pulling in the Bread eature into the experimental branch, but again, more complicated. o its RI and FI. Aye aye. This arrangement lets changes percolate throughout the branches, while keeping ew code out of the main line. Cool, eh? n reality, theres many layers of branches and sub-branches, along with quality metrics that determine when ou get to RI. But you get the idea: branches help manage complexity. Now you know the basics of how one of he largest software projects is organized.

Key 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. hese are the basics as time goes on Ill share specific lessons Ive learned from my projects. Now that ouve figured out a regular VCS, try an illustrated guide to distributed version control.

Other Posts In This Series


1. A Visual Guide to Version Control (This post) 2. Intro to Distributed Version Control (Illustrated) 3. Aha! Moments When Learning Git Tweet
35 9

9 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

hare what worked: Aha moments & FAQ


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

the whole part! (More...) 16 Branches and how they are merged. 1

24 thoughts on A Visual Guide to Version Control


ngback: 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 | olagomi News ngback: 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, ocialsoftware, 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 With 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

10 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

ngback: Principle #1 - Builds should be repeatable (Part 2) Sauers echnologies 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 5th 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 imply ngback: 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 ndrewmccall.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 nding 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 Wahab Blog ngback: things to look at (November 17th - November 20th) | stimulant hanging things around. . . ngback: A Leased Line to the Collective Unconscious Subversion for web esign - 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

11 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 instanthinking.de ngback: Baby steps with Subversion | A Stata Mind ngback: Twitter Trackbacks for A Visual Guide to Version Control | etterExplained [betterexplained.com] on Topsy.com ngback: The Ultimate Guide to Version Control for Designers | MisrIT eader (Beta) ngback: paradox1x ngback: The ultimate guide to version control for designers PixelNovel log ngback: How to get up and running quickly with GIT a Fast, Distributed ersion 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 | etterExplained -- Topsy.com ngback: Simple Version Control with TortoiseSVN Part 2 | IndyVision.Net ngback: 10 types of Git resources, references, tutorials for 10 types of eople | 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 inny Carpenter's blog ngback: How to apply for Google Summer of Code A byte of note | arath 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

12 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

ngback: SVN: What's a good, simplified SVN tutorial for someone new to ersion 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 & reating | 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 arranca ngback: Subclipse Version Control in Flash Builder: installazione e setup | avide Barranca ngback: 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 esource ngback: Need guidance! ngback: Version Control: Get a better understanding of version control | HOCM 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 tartup - Free Advice and Great Resources | Web Design Startup - Free dvice 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:

13 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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/

Kalid on 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..

14 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

15 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

16 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

various shapes, arranging and styling them appropriately. If you like, check out this article: http://betterexplained.com/articles/an-intuitive-guideto-exponential-functions-e/ and the corresponding PowerPoint file: http://betterexplained.com/examples/graphics/Exponentialgrowth.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:

17 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

18 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

webmat on September 29, 2007 at 8:03 pm said: Great article! Id like to add my grain of salt here. If you read this and you thought oh well, a version control system is probably hard to install (with the server, etc.). I strongly suggest you try Mercurial (www.selenic.com/mercurial) or Bazaar (bazaar-vcs.org). You can initiate a repository in any directory with one command. No fuss. Youre then ready to commit, undo at will, as explained in the article. On the other hand if you ever need to setup a main server you can too. The point I want to get across is simply that using a distributed VCS nullifies the barrier to entry. Want a repo, anywhere? Type bzr init or hg init. Done!

webmat on September 29, 2007 at 8:09 pm said: Oh, and Carlo, I think both my suggestions will satisfy your need. I currently work with Bazaar at work when working on my code, and I use VS2005 with C#. If you want a graphical user interface you might want to check for TortoiseBzr, which is a graphical front-end for Bazaar. http://bazaarvcs.org/TortoiseBzr I havent had the time to use it yet, though.

19 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 .

20 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 more once I figure them out.

21 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

22 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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-runningwith-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 .

23 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

24 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 link to 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*

25 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

Ambar on 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

26 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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:

27 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

28 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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:

29 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 new revision, 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.

30 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 assumed to be in use?

Kalid on March 13, 2009 at 1:47 am said: @imissmyjuno: Youre welcome!

31 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

@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/

32 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

33 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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??

Kalid on August 19, 2009 at 8:53 pm said: @Niks: Sure thing, but please include a reference back to the site. Thanks!

34 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 scratch LOve U buddy

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

35 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

36 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 am having less fear to the version control things at least, haha. Thanks very much!

37 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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, jpegs 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.

38 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 of course, for this amazing tutorial. . Thanks for that! And

39 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 .

40 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

41 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 !

42 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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:

43 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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 me bdw thanx a lot kalid:)

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

44 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

45 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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! TortoiseSVN. . Yep, there are GUI tools for SVN like

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).

46 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

Hemang on December 23, 2011 at 9:05 pm said: Great work ! Thanks a lot !

abbey

47 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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

48 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

49 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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-distributedversion-control-illustrated/) and some git tips (http://betterexplained.com/articles/aha-moments-when-learninggit/). 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 good work going. ..keep the

kalid

50 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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:

51 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

@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!

52 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

53 of 54

10/9/2012 9:14 AM

A Visual Guide to Version Control | BetterExplained

http://betterexplained.com/articles/a-visual-guide-to-version-control/

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.

54 of 54

10/9/2012 9:14 AM

Você também pode gostar