What Every Developer Should Know About Source Control

0 comments suggest edit

If you are like me, you “learned” source control in a very informal manner. Perhaps you learned via what we used to call the “Commodore Shuffle” back in the day (what is the modern term for this?) in which you clicked around and figured it out by trying to use it.

Heck, with Visual Studio integration, Visual Source Safe is pretty easy to learn. When you double click a file to edit it, VSS kicks in and asks you to check it out. That effectively puts that file under lock and key and nobody else can edit that sucker until you check it back in.

For several years, I thought this process defined source control (also called version control). Up until working professionally, I had never even heard of source control. My college computer science courses never covered it. Why should they? Everything we wrote for class was pretty much throwaway code.

Fortunately Eric Sink comes along and enlightens the masses with his series on Source Control called Source Control HOWTO. If there are better or equivalent series on this topic, let me know in the comments.

This is the guide I wished I had when first starting out. If you think you know source control, but have never created a branch in your life, have never worked with an optimistic locking version control system, then you owe it to yourself to read this series and gain an understanding of these topics, whether you end up using them or not.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.

Comments

avatar

9 responses

  1. Avatar for Scott Williams
    Scott Williams February 16th, 2006

    I hate, hate, HATE, SourceSafe's integration with VS.NET. We used to do this at work and it caused nothing but sync issues, ugly VSS directory structures, and just pain in general. Using the two products separately has been fine, but combining them is kind of like ammonia and bleach.

  2. Avatar for Robb Allen (Sharp as a Marble)
    Robb Allen (Sharp as a Marble) February 16th, 2006

    Why do I have this sneaky suspicion a few of your last posts have been aimed at me? ;)



    We use Merant PVCS here at work, and it's simply not worth the hassle half the time. The other half of the time is spent rebuilding everything from scratch since something got so far out of synch it will never return.

  3. Avatar for jayson knight
    jayson knight February 16th, 2006

    "My college computer science courses never covered it."



    If my compsci courses had covered VSS, I'm pretty sure I would have ended up being a janitor. To date, Vault is the best (non-enterprise level) system I've used.

  4. Avatar for Steve Harman
    Steve Harman February 16th, 2006

    "If my compsci courses had covered VSS, I'm pretty sure I would have ended up being a janitor."



    Jayson... I couldn't agree more!



    <rant>The "control" that VSS uses is simply unacceptable when working in large and/or distributed teams. Having to worry about a file being locked/unlocked every time a developer wants to make a change is stupid. To be honest, I don't understand what MS was thinking* when this whole concept was developed.</rant>



    I'm not saying that any other existing Version Control system has all of the answers, but several of them come a LOT closer than VSS. CVS [http://en.wikipedia.org/wiki/Concurrent_Versions_System] has been the defacto source control for some time now, and Subversion [http://en.wikipedia.org/wiki/Subversion_%28software%29] is quickly moving up the ranks. (I know that at least Phil & I are looking forward to SourceForge moving to it so we can use it with subText [https://sourceforge.net/projects/subtext].) I use Rational ClearCase [http://en.wikipedia.org/wiki/Rational_ClearCase] at work and it works very will for our large and very distributed team... tho it is not FREE and so not very suitable for OSS projects.



    At any rate, I think learning version control is huge stepping stone in a devloper's life. And like most other major events, no matter how much reading you do, you'll never fully understand/appreciate it until you do try it for yourself... and then screw it up, twice!



    * = I realize that VSS may suite the lone/n00b software developer just fine, but very quickly it will become more hassle than its worth.

  5. Avatar for Haacked
    Haacked February 16th, 2006

    I meant that my comp sci classes never covered "Source Control" in the generic sense. If it had covered VSS... *shudders*.

  6. Avatar for tod
    tod February 16th, 2006

    Thanks for the link to Eric's article Phil. As a n00b developer I think I'll make some time in the very near future to read it through. Between myself and the other [experienced] dev on my team I think we easily 'blow' 3-5 hours every week troubleshooting source control issues. A major pita!

  7. Avatar for Erik Lane
    Erik Lane February 17th, 2006

    Yep, great article! I passed it around the dev shop too for everyone to read. Not sure they have or will but that's up to them. After reading I realized how to use version control for more than just keeping a backup and history of the code. I do some side projects in my free time with a very small company (2 devs/1 designer/1 business guy).



    The 2 devs are fresh out of college and the designer has never worked professionally as a designer (only in his free time as a hobby). None of them have a clue of version control and the one time I mentioned it they all balked as it would just be "another" step in the process. Honestly, I don't think they understand its place in the process and they don't know it so they just assume its not needed. Since I just contract for the stuff the other guys don't have the chops for keep my mouth shut and let it go. But more than a few times they've lost or overwritten code completely or switched versions of code between projects, etc.. Thus, any work I do for them goes in my Vault.



    I use Vault for my personal and side projects but we use StarTeam from Borland at work. Both are good and though StarTeam isn't as well known it does have some cool features that I wish Vault had.

  8. Avatar for Steve Harman
    Steve Harman February 21st, 2006

    FYI:

    I was just doing some administrative work for subText via SourceForge, and I noticed that we can now enable SVN for subText!



    Don't worry Phil, I didn't do it... but my fingers were itching to push the button!

  9. Avatar for Haacked
    Haacked February 22nd, 2006

    That's sweet! I'll have to create a new guide to using Subversion on SourceForge by updating my CVS guide.