Slashdot Mirror


An Illustrated Version Control Timeline

rocket22 writes "Most software developers are supposed to be using the latest in tech and see themselves as living on the edge of software innovation. But, are they aware of how old some of the tools they use on a daily basis are? There are teams out there developing iPad software and checking in code inside arcane CVS repositories. Aren't we in the 21st century, the age of distributed version control? The blog post goes through some of the most important version control systems on the last three decades and while it doesn't try to come up with an extremely detailed thesis, it does a good job creating a catalog of some of the most widely spread or technologically relevant SCMs."

39 of 244 comments (clear)

  1. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  2. Arcane CVS and what not by discord5 · · Score: 2, Insightful

    There are teams out there developing iPad software and checking in code inside arcane CVS repositories

    But does it work for them? If so, great! Why switch to something else if you have no real need for all those features?

    1. Re:Arcane CVS and what not by glwtta · · Score: 4, Insightful

      But does it work for them? If so, great! Why switch to something else if you have no real need for all those features?

      It's not just about features, CVS is deeply broken (tagging/branching, directories, binary files, metadata, etc). Subversion is a drop-in replacement that fixes (most) of the problems and can be used in exactly the same workflow. The two are equivalent and one is less broken - it's kind of a no-brainer.

      --
      sic transit gloria mundi
    2. Re:Arcane CVS and what not by julesh · · Score: 2, Interesting

      With SVN, this is: svn switch file:///arcane/long/path/to/svn/tags/gold ; work ; svn switch file:///arcane/long/path/to/svn/trunk ; svn ci -m "Why are SVN tags so long?"

      The usual approach is to not use svn switch at all, but to check out your tags or branches into a separate directory, which works just fine. Alternatively, you could use (as another poster suggested) an environment variable to specify your repository basem or one of the many GUIs that make using switch easier. Most development environments have such an integration. Even emacs has one, although I've never tried it.

      With CVS, if I check in with an outdated tag on the trunk, it'll fail and tell me. With SVN, it will blindly alter the contents of the tag.

      The normal approach to solving this problem is to install a pre-commit.sh script on the server that rejects any operations other than copy in the tags directory.

  3. Meh. by HeckRuler · · Score: 2, Insightful

    Geez, he's right, I've been using things like grep and gcc just because I'm familiar with them and they perform the task at hand. Time to upgrade to the hip and new version that does the same damn thing in a slightly different way!

    Not that I'm against progress, but it's a matter of weighing the hassle against the gains. Forcing the new kids to learn the old tools can be annoying, but good for them. Likewise, showing grandpa that there's a diff with side-by-side comparisons is probably a good idea.

    1. Re:Meh. by Short+Circuit · · Score: 2, Interesting

      Geez, he's right, I've been using things like grep and gcc just because I'm familiar with them and they perform the task at hand. Time to upgrade to the hip and new version that does the same damn thing in a slightly different way!

      Not that I'm against progress, but it's a matter of weighing the hassle against the gains. Forcing the new kids to learn the old tools can be annoying, but good for them. Likewise, showing grandpa that there's a diff with side-by-side comparisons is probably a good idea.

      Don't forget bitrot. Enough other people move to $new_tech, and those of us who were productive with $old_tech suddenly see things break.

  4. Welcome to hell by Transfinite · · Score: 2, Informative

    We use TFS here. Because some suit that shouldn't have been making the decisions he did, who was also probably wined and dined by some MS suit. Was told it was the best thing since sliced bread. Every developer to a man hates it. It sucks. god knows how much this 'privilege' costs us.

    1. Re:Welcome to hell by ocularsinister · · Score: 2, Interesting

      Not the GP, but as someone who has used several VCS, I have to say that there is nothing, and I mean NOTHING to like about TFS. Its nearly as bad as VisualSourceSafe, and I'm not joking when I say I think they built a .Net service to wrap a VSS back-end. Besides the god-awful performance (it is sloooooow), you can't work off-line (which is great, because TFS will often stop working), the user interface is random and inconsistent (some places will let you view a file's history, others won't for example). It has an obsessively complex security model that, no doubt, keeps middle management feeling all warm and fuzzy - but often breaks. The integration with Windows File Explorer is bat-shit-crazy and SLOOOOOW. The whole system seems to try and track all local changes, in real time, and fails - editing a file with notepad instead of in VisualStudio/TFS will confuse the hell out of it. Getting latest version doesn't always get the latest version - we've got used to using 'force get latest' and risking over writing local changes. And that's before you consider that the technology, even if it worked well, is a decade or more out of date! Oh, and as an added bonus, your code and history gets locked up in a proprietary format. Avoid at all costs.

    2. Re:Welcome to hell by ocularsinister · · Score: 2, Interesting

      "TFS is based on SVN. Really."

      Really? This seems very unlikely as there is no mention in the license and the repository is a SQL Server database. Even if this were true, Subversion is a technology that is in decline. DVCS offers substantial advantages.

      "I'm really not sure where all the TFS hate comes from."

      It comes from using SourceSafe, Subversion, ClearCase and, more recently, Git. Doesn't stand up to any of them except possibly SourceSafe - though that's hardly a great accolade.

      "It's heavily integrated with VS..."

      And that's part of the problem. What if I don't/can't use VisualStudio? For example, our database design is done in Erwin. The hoops we have to go through to make sure that TFS doesn't get its knickers in a twist! Maybe its because Erwin generates binary files (TFS sends the whole file not diffs, which makes the whole thing even slower than it is normally). In contrast, Notepad++, WinMerge, File Explorer and even VisualStudio seamlessly integrate with Tortoise/SVN making my workflow seamless and painless. The difference between the two is striking. Another example: We generate SQL scripts from Erwin and then check these scripts into TFS. When TFS sees that these files have changed (even though it is usually just the date stamp that has changed), it will download all the SQL scripts (there are lots of them!). For some reason this process takes 10 times longer than a normal refresh - I can wait 20 minutes for it to complete, instead of about 2 minutes. Why does it even need to download the files that are the same except for the date stamp? 20 minutes x once a week x a four year project... Wow, what a waste of time!

      "Check out/check in seems like a tedious process"

      Check out/Check in IS a tedious process when you realize its completely redundant. TFS has an option to remove this requirement, however management seems to think this is a good idea as 'it helps avoid merges'. Face/Palm. Case in point: Our developers are split across two sites, and I often fly between them. While working on the Subversion based project, I worked on the plane. My workflow was essentially uninterrupted. Now I'm working on the TFS based project, I am forever having to bring up file explorer to change Read/Write permissions. If I want to add a file to a project... well, its easier to wait until I arrive at my destination. With a DVCS my workflow would be *exactly* the same - and I'd even have a full history of all the files!

      "There is no integration with Windows Explorer."

      Yes, there is if you install the TFS Power Tools. I don't recommend it though as it seems to screw the performance of Windows.

      TFS is not a source control system, its a developer control system designed to allow middle management to fiddle with security, lock files and generally dick about with the development process. If you really want that kind of functionality, I'm sure there are better ways. Avoid at all costs.

  5. Source control is so political by MobyDisk · · Score: 4, Insightful

    All of "big" companies I've worked for use ancient out-of-date source control. The first one used VSS (late 90's, so it wasn't so unusual at the time) but then around 2000 moved to PVCS. All the developers assumed that someone got kickbacks because there's no reason to move to an older, more expensive, inferior product. Now I work at a Fortune 500 company that also uses PVCS. Their reason: not a soul in the building has ever used anything else. I explain about the features of modern source control and people look at with with either marvel (it can do that!!??), or disdain (how dare you question my source control system).

    I don't know why this one piece of software evokes such illogical responses. Oh well.

    1. Re:Source control is so political by MobyDisk · · Score: 2, Informative

      P.S.
      - One company used their own internal source control. That was by far the worst.
      - All the small companies and contracts used either perforce or svn.

      Just pointing this out since I meant to contrast the relationship between company size and tools.

    2. Re:Source control is so political by WuphonsReach · · Score: 2, Interesting

      I don't know why this one piece of software evokes such illogical responses. Oh well.

      Well, unless you're completely insane, you don't change SCMs more then once a decade. Entire processes get built around the current SCM (QA, deployment, development, archival, etc) and that's not something easily changed.

      So it's never as simple as swapping one command for another. The thought processes are slightly different, everyone has to update their workflow or custom-written glue tools and you may lose version history.

      (Distributed SCMs are almost worth the effort, if I actually needed that feature more then once a year.)

      --
      Wolde you bothe eate your cake, and have your cake?
  6. Advertising disguised as history lesson. by fahrbot-bot · · Score: 4, Interesting
    First, the history/time-line is simply a lead-up to the plasticscm product.

    Second, the article doesn't even mention SCCS, developed in 1972 (and still available), so his history lesson is lacking some completeness and perspective.

    Third, remarking, "It [CVS] is outdated now, but it worked in the 90s! (If you have it, just walk away and go on to something else!)" -- as well as the other snobbish comments about other (older) systems -- is simply narrow-minded. CVS is completely satisfactory for many, many projects. Contrary to later comments in the article, I've used, and still use, CVS in several commercial products and it works just fine.

    Real lesson: Newer is not always better; more features are not always needed.

    --
    It must have been something you assimilated. . . .
    1. Re:Advertising disguised as history lesson. by fahrbot-bot · · Score: 3, Insightful

      Hey, wasn't Linus Torvalds himself who said "you must be brain dead to use CVS"?? Don't shoot the messenger!

      Linus is not a god and not everything he says should be taken as gospel. He gets a LOT of things wrong. Put down the cool-aid. :-)

      Hey, I'm successful and independently wealthy too, and I like CVS. Quote that! :-) Now, I admit that I haven't extensively used most of the tools in the "article", but I haven't needed what they offer above and beyond CVS.

      As for the cell-phone analogy in the "article", I still use a Qualcomm QCP-1900 cell-phone from 1998 and, surprise, it still manages to work great as a phone. Paid $200 for it outright (no contract), which works out to $16 a year and still have a $15/month no-contract account. I only need it to make phone calls. Sometimes, it pays to stick with what you have and what works...

      --
      It must have been something you assimilated. . . .
    2. Re:Advertising disguised as history lesson. by david_thornley · · Score: 2, Insightful

      Linus Torvalds sometimes shoots his mouth off for no good reason, and he tends to look at everything in terms of how it would work for the Linux kernel.

      The fact is that CVS would be bad for the Linux kernel development process, which really does need a distributed VCS. You can kinda sorta make something like that work on CVS, but you'd wind up with a nightmare, and if you wanted to spend the time to write everything you'd need to make it work you might as well write something like Git instead.

      CVS is perfectly usable as a centralized system, despite its deficiencies, and it's no more arcane than Subversion.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    3. Re:Advertising disguised as history lesson. by fahrbot-bot · · Score: 2, Insightful

      But git is faster, ...

      Yes, given the example on your link, if I ever need to checkout the *entire* FreeBSD repository, I'll think of GIT. Otherwise, I'm not losing much sleep over the speed difference. :-)

      From a practical standpoint, people will use what their employer is already using. Here, we mainly use CVS. There are pockets of SVN and (perhaps) GIT, but no one is interested in converting and, more importantly, retraining the users and rewriting the management/utility scripts.

      Another example, I also currently use SCCS to revision system data files on a Solaris project because it comes with the OS out of the box -- cannot install something else -- and it works just fine.

      Bottom line: If I ever need to use something else, I'll learn it, but here and casually at home, I already know RCS/CVS and they work just fine.

      --
      It must have been something you assimilated. . . .
  7. Re:My god, it's full of troll. by C3c6e6 · · Score: 2, Insightful

    I couldn't agree more. In my previous job, I had a colleague who wanted to convert me from SVN to Bazaar (http://bazaar-vcs.org/).

    He told me "it was very simple to use, you only have to..." and then started drawing a very complicated diagram on my whiteboard.

    Personally, I thought it was complete overkill for the two-man project we were working on.

  8. Subversion branching and merging by 19thNervousBreakdown · · Score: 4, Interesting

    I hear all the time how terrible Subversion is at branching and merging, but I can't really see any issues with it. Am I missing something, or is this all based on pre-1.5, when it didn't have merge tracking? Granted, it was fairly brain-dead to not track what revision a branch occurred in or what revision it was last merged to a particular other branch (or the head), but as far as I can tell, comparing it to AccuRev which I use at work heavily and is supposed to be fantastic at merging (it's ... ok), there's little difference beyond the terminology.

    Can somebody explain what it handles so badly? I feel like I'm not missing something I should be. I like Subversion, probably just because I know it, and use it for my home projects, but if there was an actual benefit (and decent cross-platform tools, TortiseSVN is fantastic, I love working on my linux box but doing graphical diffs on the same working copy over a Samba share) I'd love to switch to something better--I know I said I like Subversion, but it's more like how you like a kevlar vest, it's better than the alternative, which in this simile is bullet holes in my torso.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    1. Re:Subversion branching and merging by EvanED · · Score: 5, Interesting

      It's possible I'm missing some shortcut syntax or something, but just the Subversion syntax for creating a branch and merging is just terrible. Compare git checkout -b my-new-branch to either remembering the whole repository URL or running svn info and copying and pasting it, then running svn copy some://really.long/url/to/your/repository/trunk some://really.long/url/to/your/repository/branches/my-new-branch then svn switch some://really.long/url/to/your/repository/branches/my-new-branch. And merging is similar.

      You can avoid this syntax by checking out the whole damn repository and using working-copy paths, but this has its own set of severe drawbacks (e.g. now your svn copy takes a long time).

      These drawbacks are made smaller by Tortoise (which is awesome) since you can just edit the existing URL in the switch dialog, but it's still pretty darn ugly.

      I like Subversion, probably just because I know it, and use it for my home projects, but if there was an actual benefit ... I'd love to switch to something better

      I'd really encourage you to give Git a shot. Pick a project and use it for that project. It takes some getting used to, but it's not too bad, and once you are used to it it provides a number of really nice benefits even if you're just a single person working on your own projects. And there is a TortoiseGit that works well. (Just be aware that TortoiseGit attempts to hide what Git calls the index. This makes it act more like TortoiseSvn from your standpoint, but I did run into a problem once that was caused by mixing use of TortoiseGit and the command line git client in one repository.)

      (From my own standpoint, I've heavily used all of CVS, Svn, and Git. I hate CVS with a passion, and for a long time thought that the improvements you get from moving from CVS to Svn were enormous in comparison to moving from Svn to Git. I still think this is true, but as I've used Git more and more, I think the Svn to Git change brought about rather more benefits than I initially considered even for single-person and centralized projects.)

    2. Re:Subversion branching and merging by dsuarezv · · Score: 2

      It becomes really ugly when you start refactoring code. Renamed and moved files are killer to merge. Even in 1.6, I'm afraid...

    3. Re:Subversion branching and merging by c++0xFF · · Score: 2, Interesting

      Read the post you're replying to! That's all changed since 1.5. Now SVN knows when you branched and what you've already merged together.

      Read about it here.

      For most branching, the command would be a simple 'svn merge http://svn.example.com/repos/calc/trunk' from within the branch. The most complicated part is specifying the location of the branch to merge from (trunk in this case).

      1.5 did wonders for SVN.

    4. Re:Subversion branching and merging by JPyObjC+Dude · · Score: 3, Insightful

      I too have used Subversion since it was in pre-release (0.8) I think. When I started doing research on Source control, my managers said "Use VSS". I disliked MS at the time and still doo and thus avoided that path. I came across the thesis by the author of RCS (great read) and researched about RCS, PVCS, CVS and SVN. SVN was a dream come true when I saw it. Tortoise SVN was the icing on the cake. I have since continued to use SVN and have converted many others to SVN away from VSS and other tools. I love SVN still and use it daily and will not be switching any time soon.

      Regarding the post, I don't really like hearing is that "All major open source projects" are moving away from SVN. Sorry but there are many still using SVN and will continue to do so. For instance FreeBSD, which is a huge project, who are still using SVN today. Also, saying that SVN is wrong is wrong. SVN is wrong for some groups but very right for others.

      Also, people are constantly mis-reading Linus's comments on SVN. Linus was just dissing SVN for his uses and was tired of the evangelical SVNers nagging him to use it. I appreciate that his code models are different and require different SCM tools and that a SVN centralized model does not work. But this does not mean that SVN is wrong for everyone.

      SVN is valid for many groups, teams, around the world and will continue to be so for the foreseeable future.

      - JsD

    5. Re:Subversion branching and merging by Prien715 · · Score: 3, Interesting

      I used SVN for the past 5 years and I thought branching and merging was a pain. Well, actually, I didn't think it was a pain, mostly because I didn't know any other way.

      Then I tried Git. And Hg. I haven't looked back. TortoiseHg works great BTW;)

      From a day-to-day workflow standpoint, I find I get far fewer merge issues when working with either tool; basically, you are forced to run an "svn update" before you can run an SVN commit. And unlike SVN, if you do a bad merge, it's much easier to go be back and redo. Additionally, if you merge 100 bug fixes from the "stable branch", both Hg and Git preserve the history of the bug fixes. So if you do "svn blame" the line that fixes the nasty stack corruption bug, you'll see "Fixed nasty stack corruption bug when doing X/Y/Z" rather than "Merged from stable branch". Yeah, you can go back and do detective work and figure it out with SVN, but don't you have better things to do?

      Also, they've changed my entire workflow. With a distributed system, I'll commit code locally ("OK, this mostly works."). But since the feature isn't 100% done, there's no reason to put it in the main code tree for all the developers to look at. That way, if I manage to screw something up (say cause a nasty crash that corrupts the stack), I can update back to these prior "mostly working" revisions. SVN forces you to either create a branch every time you want to work on a feature (in which case, it's a pain to update from the trunk...merging your code back becomes painful), keep a bunch of uncommitted code, or commit 1/2 working code you'll finish later. With Git and Hg, I commit early and often.

      Honestly though, try Git or Hg. That's the best way to see its advantages. I'm trying but it's like trying to explain the advantages of a high level language to an assembly language coder: the assembly coder is perfectly happy, but doesn't think he "needs" all these "fancy" features since he has no real concept what they mean.

      I tried to convince people at my last company to switch, and it didn't happen. At my current one, I just said "trust me guys" to a bunch of more senior developers. We made the switch from SVN. I've been thanked numerous times by all of them.

      --
      -- Political fascism requires a Fuhrer.
    6. Re:Subversion branching and merging by swillden · · Score: 2, Interesting

      SVN is valid for many groups, teams, around the world and will continue to be so for the foreseeable future.

      SVN is particularly excellent when you use GIT as the front-end. You get all of the super-easy local branching and merging, history rewriting and lighting speed of GIT for everyday use, and when you're ready to push your work to the rest of the team, you publish it to SVN.

      BTW, yes, SVN branching and merging has gotten much better since merge tracking was added, but it's still too slow and clunky for effective use with the "branch per feature" pattern of development. It can work, but GIT runs circles around it.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  9. Re:Hey! by blair1q · · Score: 2, Funny

    Stuck? You're probably the least stressed of us all. Using sccs is the code-control equivalent of moving to Napa and buying a vineyard.

  10. Re:CVS May be Old, but... by JerkBoB · · Score: 4, Insightful

    "If it ain't broken, don't fix it."

    Right. And CVS is horribly broken. So it's been fixed. :P

    --
    A host is a host from coast to coast...
    Unless it's down, or slow, or fails to POST!
  11. Re:pardon, your ignorance is showing by icebraining · · Score: 3, Insightful

    DVCS can use the exact same workflow as non-distributed VCS, and they're faster in many cases - including not having to connect to a central server for each and every commit.
    If it costs you to change now, don't, but if you're starting a new project, I see no reason to choose CVS.

  12. Re:My god, it's full of troll. by mikestew · · Score: 4, Interesting

    Full of troll, and incorrect in some spots. For example, TFS doesn't do branching and merging? It may do a crappy job of branching and merging, but that functionality is prominently there.

    I quit using SVN just because I found the Xcode integration to be flakey at best, and remote work was less than seamless. It otherwise seems to work fine, and what it lacks are things that are just poseur points for most shops (quick, list two problems for your shop that only a DCVS can solve).

    Git worked for me when I was doing work on the bus to and from my day job, allowing granular commits instead of the big mixed-up commit when I got home. I like it for a lot of other reasons even after doing my own thing full-time. But there's no way I'd get on a religious soapbox about it, starting with the learning curve (first time a merge or a push goes wrong, break out the google).

    But hey, use what you want as long as it's not VSS. Because even a tabs vs. spaces flamewar interests me more than source control debates.

  13. Re:pardon, your ignorance is showing by mikestew · · Score: 2, Insightful

    I'm mostly a single person team, and I find DCVS quite useful (the reasons I won't bore anyone with). For my workflow, centralized (SVN in my case) was limiting me.

  14. Re:pardon, your ignorance is showing by icebraining · · Score: 2

    Central machine with repo is down - nobody works.
    They can commit locally many times and merge that to a single commit per feature before ushing to the central system.
    Git uses much less space than SVN - Mozilla's repo size: CVS - 3GB, SVN - 12GB, Git - 300MB.

  15. Re:Revision control gets far too much attention. by VortexCortex · · Score: 2, Interesting

    I agree. This is why I use CMake, CTest and Git.

    Test results are stored in a file inside my Git repo, and are therefore part of the "story".

    However, what really matters is the total build, regression, bug reporting, electricity consumption, end user satisfaction, employee payroll, and stock price story -- which encompasses more than just revision control and illustrates that "what matters" is a matter of opinion.

  16. Re:My god, it's full of troll. by dannys42 · · Score: 2, Informative

    I agree, subversion is not terrible. However, after getting a laptop, I definitely see the advantages of a DVCS. git's not the friendliest of tools, but regardless of the reason, there's a lot of moment out there and supporting tools, so I prefer using git as my DVCS system.

    In addition, with git, I also have gotten extremely comfortable with creating a new local branch for any separate task I want to do. This makes my commits much cleaner and virtually eliminates the problem I had with svn where I was working on a feature then got interrupted with a high priority bug.

    The git-svn bridge also comes in extremely handy, and is a great way to get the benefits of both worlds.

    I have to say though, that I think git not handling directories as real objects is a big step backwards. And Subversion's use of metadatas can also be pretty handy sometimes.

  17. Horses for Courses by dubious_1 · · Score: 2, Insightful

    The author appears to believe that old version control systems are bad because they are old.
    I have used ( and administered ) projects using RCS, CVS, SVN, Perforce, Clearcase, Git and VSS.
    RCS - Advantage: no setup necessary. I used RCS to track changes to my 140 page thesis ( latex ) during the year of writing. I can still take that tar archive and extract to any workstation, PC ( windows, mac or linux) and have full access to the revision history. No setup, dirt simple. ( of course since RCS was never designed to handle more than a single person modifying the file at a time, concepts like branching, merging etc, don't exist, but for simple single person projects, this is far better than nothing ( and vastly better than manually archiving copies when you remember to)
    CVS - Advantage: Supports multiple users, branching and merging (same server, DCVS variant provides some concept of distributed but should be avoided). Relatively easy to setup, and when restricted to ssh only access can be relatively secure. Disadvantage: no distributed support, very coarse security ( if you have access to the server and repository directory you have access, multiple projects on same server are clumsy to secure).
    SVN - better than CVS, but harder to setup ( less obvious ?). Distributed support (sort of), but no concept of locking checkouts, so not suitable for code that is not easily merged ( VHDL and Verilog can get ugly when you try to merge what appear to be trivial changes ).
    (CVS and SVN are pretty well supported via integration with many IDEs out of the box).
    Clearcase - Great big bag of hurt. Avoid this if at all possible. Advantage: Large companies ( Govm't contractors ) use this tool. Ratio of administrators to users 1:10 typically, so expensive manpower. Provides distrubuted (ish) support using Multi-Site. License costs very high. Security is laughable. Any user with network access to the server ports, and an installed licensed client (access to license server) and the ability to assume root on a unix/linux machine can perform any administrative level operations of the files. The client reported username and group membership are trusted by the server to determine access privilege.
    Perforce - Despite the authors grouping, P4 provides very good distributed support for controlled development projects. Using proxy servers remote access to files is pretty fast. The only tool listed so far that supports atomic checkins. If any file in the set you are submitting fails to checkin, the whole checkin fails. This may sound like a bad thing if you have never had to fix a problem where one file didn't get checked in, breaking the build. Security (access to parts of the repository) is controlled within the tool, so a fine level of granularity can be achieved. Account management can be done directly in perforce by the admin ( passwords stored locally ), or can be setup to use ldap/kerberos/Active Directory for added trust.
    VSS - Small bag of hurt. Small bag because it worked so poorly that we never used it for large projects. Nothing good to say about this, just say no.
    Git - I haven't used this enough to know if I like it or not. Having the repository replicated at each remote leaf (user) is nice for the distributed development, but for projects requiring close control of the source code this can be nightmarish. Since every remote site has a copy of the whole history, fixing the problem when Johnny accidentally checks in code from projectX that contractually cannot be shared with projectY can suck.

  18. Re:My god, it's full of troll. by heathen_01 · · Score: 2, Funny

    Spaces not tabs. How can you even pose that question?

  19. They're selling a VCS by Lemming+Mark · · Score: 2, Informative

    It's a nice timeline of some key milestones but it's worth noting that they're advertising something, it'd be nice if that had been clearer from the article.

    Also, I was disappointed not to see GNU arch / tla get a mention as I think they might have been first to decentralised operation. They were most certainly one of the first and as such I suspect they had a certain amount of influence on those that followed, even though the user experience was reputed to be lacking from what I heard (actually, I thought that bzr evolved out of it too, so it may also have a more direct connection with the modern-day main players)

  20. Re:pardon, your ignorance is showing by ebuck · · Score: 2, Insightful

    That's a lie.

    A commit in a non-DVCS is much more than a commit in a DVCS.

    With DVCS, they rename the fast, easy part to "commit." The actual merging of your repository with another across a network is one of those items they never discuss, as it is to be performed later. Benchmark a Commit and a Push in a DVCS against a Commit in a non-DVCS, and you'll start gaining my respect as a person who's not fudging the numbers.

  21. Re:pardon, your ignorance is showing by dslbrian · · Score: 2, Interesting

    Mercurial's SVN re-education page does a good job of describing the advantages.

  22. Re:VSS All the Way by satellite17 · · Score: 2, Informative

    If only PHB's had a clue, we're forced to use Visual Source Safe at work. I would claim it a legacy system but they just put it in a couple of monthes ago. I think any version control is better than nothing, but I'm not sure Visual Source Safe beats the file system's snap shots that are automatically created.

    For the love of god, if you have to use MS software, show the PHB Team Foundation Server. It does a lot more than source control and is superior in every way to VSS. If you have MSDN then it might even be free (beer).

  23. Re:My god, it's full of troll. by julesh · · Score: 3, Insightful

    And another point: "the age of distributed version control"?

    I work in an office. I have a gigabit network between my workstation and the version control server, which runs on a RAID array significantly faster than the disks under my desk. The connection is always on, always works, and is so fast I don't notice it. In what way could I possibly benefit from a distributed system? And why would I use a distributed system when every one I've ever tried requires a two-step approach to sending my changes to the other developers (synchronize my working copy with the local version control, push changes from local to the rest of the team) rather than just one (commit changes)?