http://www.perlmonks.org?node_id=686877

Vote on this poll

Aegis
[bar] 8/1%
Arch
[bar] 2/0%
Bazaar
[bar] 11/2%
BitKeeper
[bar] 1/0%
Clearcase
[bar] 22/3%
cp -rp
[bar] 23/4%
CVS
[bar] 82/13%
Darcs
[bar] 5/1%
Git
[bar] 74/12%
Mercurial
[bar] 12/2%
Monotone
[bar] 1/0%
Perforce
[bar] 17/3%
PVCS
[bar] 5/1%
RCS
[bar] 17/3%
SourceSafe
[bar] 6/1%
Subversion
[bar] 233/37%
SVK
[bar] 14/2%
Vault
[bar] 1/0%
VCS::Lite::Repository
[bar] 0/0%
Vesta
[bar] 1/0%
Other
[bar] 20/3%
Huh? What's a version control system?
[bar] 75/12%
630 total votes
Replies are listed 'Best First'.
Re: My preferred version control system is...
by swampyankee (Parson) on May 16, 2008 at 11:13 UTC

    Hey, where's SCCS?. Not that it's my favorite (it's not). Once upon a time, it was probably the leading source code control system.


    Information about American English usage here and here. Floating point issues? Please read this before posting. — emc

      My sentiments exactly! SCCS was my first version control system. Am I that old?
        Am I that old?

        Dunno if that old... but you can tell you are old if you stoop to bind your shoes and keep thinking about what else you could get done now that you got so far down.

        Yeah, SCCS... I'm that old. :-)

        --shmem

        _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                      /\_¯/(q    /
        ----------------------------  \__(m.====·.(_("always off the crowd"))."·
        ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
Re: My preferred version control system is...
by syphilis (Archbishop) on May 16, 2008 at 11:50 UTC
    How could an ageing anarchist possibly vote for anything other than "subversion" !!!

    Cheers,
    Rob

      I thought git was the new hotness all the cool kids used these days? (I know nothing about git except from a few comments here at Perlmonks)

      How could any serious developer consider subversion? It isn't even close to mature and has some serious administrative flaws.

      At least CVS has been around for a while and the underlying structure is well understood. And graphing applications for the history of a file in subversion are not easy to come by.

      What is worst about subversion is the inability to make a catastrophic check-in disappear. Anyone who argues that giving the administrator god-like powers is a bad thing (as the restrictive subversion treats the admin like a lowly untrustworthy grasshopper) clearly hasn't used Perl much where the philosophy is giving enough rope to hang oneself.

      I've yet to have a convincing argument that subversion is worth looking at for a serious source code repository system yet (at least while CVS is so superior).

        How could any serious leader consider democracy? It isn't even close to mature and has some serious administrative flaws.

        At least monarchy has been around for a while and the underlying structure is well understood.

        What is worst about democracy is the inability to make a catastrophic decision disappear. Anyone who argues that giving the government god-like powers is a bad thing (as the restrictive democracy treats the admin like a lowly untrustworthy grasshopper) clearly hasn't worn a crown much where the philosophy is giving enough rope to hang one's enemies.

        I've yet to have a convincing argument that democracy is worth looking at for a serious governmental system yet (at least while monarchy is so superior).

        (Yes, I know this is somewhat unfair. Nevertheless, it practically wrote itself.)

        Everyone is looking for a different subset of all possible features. I would find CVS unlivable after using subversion, because subversion fixes things that really bothered me in CVS. Obviously you don't feel the same, so I can't really argue the (by design) "serious administrative flaws".

        But did you have something specific in mind with the "isn't even close to mature"?

Re: My preferred version control system is...
by ww (Archbishop) on May 16, 2008 at 11:40 UTC

    What's a version?

    Oh!

    Well, we don't allow versions here. Each project must be 100% complete, bug-free, with all possible bells and whistles, and optomized to the nth degree before we start. In short, the first "take" is the only take.

    Our project list follows:

              

    For more information,....

Re: My preferred version control system is...
by ambrus (Abbot) on May 16, 2008 at 12:48 UTC

      True, but (just to play devil's advocate) I'd actually say this is a topic where it might be interesting to intentionally repeat a poll to get a sense of changing momentum and see where mindshare / buzz / interest has moved.

      Oh, and: git++ (and mercurial's no slouch either . . .).

      The cake is a lie.
      The cake is a lie.
      The cake is a lie.

      Perhaps the poll itself is in version control?
Re: My preferred version control system is...
by apl (Monsignor) on May 16, 2008 at 13:43 UTC
    Version control system?

    cp -p filename filename.version

    Oh, that version control system...

      Basically :-)
Re: My preferred version control system is...
by shmem (Chancellor) on May 16, 2008 at 20:13 UTC

    The most obvious option is missing: CPAN. Well, at least if 'cp -rp' qualifies as a version control system, CPAN does way better: distributed, automatic backup, searchable...

    --shmem

    _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                  /\_¯/(q    /
    ----------------------------  \__(m.====·.(_("always off the crowd"))."·
    ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
Re: My preferred version control system is...
by petdance (Parson) on May 17, 2008 at 00:03 UTC

      What about stupid petty-control-freak decision-makers who decree that There Shall Be No Version Control But The One True Corporate ClearCase Repository, and then refuse to allow use of said repository for anything other than Approved Corporate Java Development Projects?

      Sadly, some of us have no choice but to use cp -rp-type "version control" for our day-to-day work.

      (No, wait, I tell a lie; I believe we do have SCCS available unofficially. As if that's much better...)

        Nothing stopping you from having a local repository on your machine. That's better than nothin, or cp/tar.

        xoxo,
        Andy

        It could also be that that's a sign that you need to get into a new company.

        xoxo,
        Andy

Periodic Save As
by jonadab (Parson) on May 16, 2008 at 12:53 UTC

    Since I'm pretty much the entire IT department myself, there's generally nobody else making edits. So I keep one "production" copy, which I don't edit, and of which I always make a backup copy (usually with zip) before upgrading it. I keep one "development" version, which I edit directly, and which I periodically (when it seems stable) copy over to upgrade the production copy. Plus backups, which I definitely don't edit. So at any given time there's only one (1) copy that may have changes. No differences between multiple development versions means no merging.

    Obviously this approach won't work so well for large teams of developers working on the same project simultaneously... but it works for me :-)

    My dirty little secret is that there are some projects where I know I'm basically the only user, and in those cases I generally don't bother keeping a separate development version: I just edit the production code directly. This is not a practice I particularly recommend, but out of laziness it's what I sometimes end up doing.

    -- 
    We're working on a six-year set of freely redistributable Vacation Bible School materials.

      Actually it's not just large teams that it doesn't work well for. Often it doesn't work well for teams of one either.

      One good reason for using a version control system even when you are the sole developer and user is that it records the change history including meaningful check in comments. That means there is no need to clutter the code with comments that explain the evolutionary steps that brought the code into the current state.

      Even for a single developer having a version control system and making fairly regular check ins provides a nice warm comfortable feeling when you are about to wreck havoc in the code, or have just made a bigger mess than intended.


      Perl is environmentally friendly - it saves trees
        I've got to agree here, although when you are the sole developer you don't usually need to worry about things like branches. I even keep my agenda and similar files in a revision control system, and I have gone back to view old appointments. As an added bonus, it's a nice way to keep everything synced between the different desktops I use and the server with the repository gives off-site backup without me having to think about it.

        I can't imagine not wanting to use revision control for code, especially when it takes so little effort to use a minimal subset of features properly.

        One good reason for using a version control system even when you are the sole developer and user is that it records the change history including meaningful check in comments. That means there is no need to clutter the code with comments that explain the evolutionary steps that brought the code into the current state.

        You know, I always assumed that would be the case, and then I was in a situation where I was doing some CVS check-ins on an open-source project, and at one point one of the lead developers felt the need to make me aware of the fact that I should be duplicating my check-in comments in the changelogs, manually, because the version-control system did not automatically keep track of them in any accessible way.

        Well, if I'm going to keep changelogs anyway (and yeah, I do do that), then what on earth do I need version control check-in comments for?

        -- 
        We're working on a six-year set of freely redistributable Vacation Bible School materials.

        I have to agree here. I started picking up git recently on my (sad, weak, toy) programming projects, and I have to say, being able to look back at what I did two or three revisions back is nice.

        Also, it just seems simpler to use branching for features I'm experimenting with than to copy the whole project.

Re: My preferred version control system is...
by pileofrogs (Priest) on May 16, 2008 at 16:36 UTC

    I'm a sysadmin and I use versioning for two things: development and active configs. I use subversion & CVS for stuff I'm developing (slowly migrating to svn). I use bazaar for config files.

    I have scripts that run every X minutes to check in any config changes into bazaar. This way, if someone else makes an edit or if I forget to do a check-in, I have a history I can play back. If I discover that some obscure web page stopped working 2 months ago (not unlikely, some people never check their own pages), and I need to figure out what I changed, my bazaar diffs are great. I almost never actually roll back, but it's a fantastic diagnostic resource. If someone says I broke the web server and I think they broke their own web code, I can show exactly what edits I've made in the timeframe in question. It's awesome.

Re: My preferred version control system is...
by Joost (Canon) on May 18, 2008 at 00:12 UTC
    I voted Subversion because it's the system I use for pretty much everything right now. Git does look very interesting though, and I might switch over to that - I just need a couple of days to try it in in a serious multi-user environment to get used to it and get convinced (from what I hear, Gits merging facilities are just a lot better, but you can't really test that in a single user situation).

      pretend to be 5 guys :)
Re: My preferred version control system is...
by marcussen (Pilgrim) on May 20, 2008 at 05:54 UTC

    Scribbles on post it notes stuck to printouts of code.

    Confucius says kill mosquito unless cannon
Re: My preferred version control system is...
by herveus (Prior) on May 16, 2008 at 13:50 UTC
    Howdy!

    I don't have a single answer. At work, I am expected to use Clearcase (and PVCS before that). For myself, I've been using Subversion, but I'm picking up Git now as well.

    I've got mild beefs with most of them of one sort or another.

    yours,
    Michael
Re: My preferred version control system is...
by sasdrtx (Friar) on May 16, 2008 at 15:12 UTC
    I've really only used Clearcase and Subversion, plus some mainframe (MVS) tools that range from decent to horrific. Clearcase may be the most superterrific software product in the world, but it was horribly complicated to use. Subversion is nice, easy, friendly, and suits me just great. I use svn on personal projects, even though no one else is likely to work on them. Having a version history is the main value of a change-control-system to me. I also use it to track changes to /etc on my home systems.

    And, of course, it has the coolest name. (Git? Git out!).


    sas
      Clearcase may be the most superterrific software product in the world, but it was horribly complicated to use.
      Thanks for saying that; I thought I was alone in the universe.

      When ClearCase was brought in-house, all the programmers were given a class in how to use it. With disturbing frequency, the instuctor (a fellow employee) kept telling us to revise the hand-outs we'd been given.

      I finally asked why there were so many errors. "It's out-of-date documentation; we were given a good price for it!".

      *Brrrr*

        We switched from Clearcase to Accurev and we don't regret it so far.

      I've only used ClearCase and Subversion as well. And ClearCase was my first version control system I'd ever used, so I didn't have a very good basis for comparison.

      But I do have to say that I had decent results with using ClearCase. The 'find' and 'describe' commands were complex enough to write Perl scripts as a wrapper, which led to additional scripts that would do things like listing which files changed between given labels. In short, I found that ClearCase was fairly easy to deal with on the command line, and haven't yet gotten up to speed on the same level with Subversion.

      But what I'm really curious about is why a given version control system is better than another. Hmm. Maybe a Meditation-worthy question (but pretty OT to Perl itself).

Re: My preferred version control system is...
by planetscape (Chancellor) on May 16, 2008 at 22:15 UTC

    I really like TortoiseSVN, "A Subversion client, implemented as a windows shell extension.".

    HTH,

    planetscape
Re: My preferred version control system is...
by Moriarty (Abbot) on May 16, 2008 at 11:30 UTC

    Version control? I don't need no stinkin' version control!)

Re: My preferred version control system is...
by stonecolddevin (Parson) on May 19, 2008 at 06:56 UTC

    I use SVN, but I've heard good things about Git.

    I use SVN, but my method isn't very pretty, import, then create a new directory, checkout into it, and do commits and updates through that one. Blech.

    meh.
Re: My preferred version control system is...
by asterx (Acolyte) on May 19, 2008 at 13:23 UTC
    I personaly administer at work a Change Synergy environment from Telelogic. It runs on HP-UX and Solaris and it uses Informix as database backend. It also supports something called "Distributed Change Management" for moving objects from software projects between databases. So, I voted other, but I thought telling more specific would be good. Cheers, Alex.
Re: My preferred version control system is...
by Tux (Canon) on May 26, 2008 at 11:59 UTC
Re: My preferred version control system is...
by Tux (Canon) on May 17, 2008 at 08:43 UTC

    I also miss SCCS (and rsync -b).

    SCCS is my ol-time favourite. We just moved from SCCS to git and so far I don't regret a single moment :)


    Enjoy, Have FUN! H.Merijn
Re: My preferred version control system is...
by gregor42 (Parson) on May 21, 2008 at 13:49 UTC

    In my office we use MKS Source Integrity which is great from the Change Management & Workflow perspective. We used to use a combination of CVS, VSS & RCS repositories prior to migrating.

    At home and when no one is looking I personally use Mercurial. (my vote) I really like the idea of a distributed system rather than a centralized one. It took me a little while to grok why it's better. I'm sure that everyone who uses Git probably went through the same awakening period to get over the paradigm shift.

    The bottom line there is that there still can be a centralized repository but by having distributed repositories feeding into it you can improve the quality of the code that ends up in it. If nothing else it solves the age old debate about if you should check in any time you want or only when your code is working. Only working code should go into the main repository - and feel free to keep all the crap you want in your local one.



    Wait! This isn't a Parachute, this is a Backpack!
      At office we will be migrating from CM Synergy from Telelogic to MKS. I guess it will be a painfull process :), not because of MKS but because such migrations are preety delicate.
Re: My preferred version control system is...
by swampyankee (Parson) on May 20, 2008 at 03:02 UTC

    I've gotten to use Panvalet, from Pansophic and ADR's Librarian on MVS and VM systems; neither were particularly fun, and I recall both being restricted to 80 column records.


    Information about American English usage here and here. Floating point issues? Please read this before posting. — emc

      Panvalet!?! Shudder....
Re: My preferred version control system is...
by harsha.reddy (Acolyte) on May 21, 2008 at 05:45 UTC
    Aegis is a configuration management system and not just a version control system. Version control is a subset of configuration management system.
    http://aegis.sourceforge.net/auug93.pdf
Re: My preferred version control system is...
by templar (Chaplain) on May 22, 2008 at 13:58 UTC
    Anyone have an opinion as to why Subversion appears to be the runaway winner of this poll? I haven't used it before, and we're looking to replace the version control system we use at work.

      I think it is ahead because it was the first of the new VCS systems. The only 3 that really matter now (IMHO) are svn, git, and bzr. As svn was the first out there in the wild that actually worked, and made a huge difference against the older VCS's (SCCS, RCS, CVS), the switch was obvious.

      Reasons for choosing either of the three may be well beyond the system itself. I chose git for a few not so obvious reasons:

      • Subversion has way too many dependencies, and I didn't get it to work on HP-UX in 64bit mode in 5 working days, after which I gave up. (I was able to compile git to something that partly worked in about 4 hours).
      • bzr is based on python, and I don't have python on HP-UX, and also don't want to enter the vortex of yak-shaving into getting that to run on HP-UX and maintain it in the future (in 64bit mode, as our main target for a new VCS was 64bit-only HP-UX). The base packages might be available from different sources, but they are all 32bit and won't cooperate in that 64bit environment.
      • The future of perl5's VCS is git. We'll move from perforce to git after the release of perl-5.8.9, so knowing that VCS beforehand was a pre.

      Enjoy, Have FUN! H.Merijn
      Because it's such a small step from CVS. It's certainly not the most advanced of the newer systems, or the fastest, or even the most reliable -- but it has the explicit goal of being "like CVS only with less suck". Just simple things like repo-wide revisions, rename tracking, file properties, and streamlining commandline operation. There are a lot of CVS users and a lot of former CVS users in the world and of course svn is going to appeal.
Re: My preferred version control system is...
by harsha.reddy (Acolyte) on May 21, 2008 at 05:56 UTC
    Using just a version control helps when the project is small.
    When the project is huge and vast, when there too many developers and there are thousands of commits to the repo perl day. In this case using just a version control system. I am sure people will run into all kinds of problems; In this situation a configuration management will solve such issues; and the project can progress happily ever :)
    When the project is small: I like Linus's git When the project is vast: I like Aegis.
    Any way "Tailor" helps to migrate the changesets http://progetti.arstecnica.it/tailor
Re: My preferred version control system is...
by Erez (Priest) on May 21, 2008 at 08:30 UTC

    Recently I was looking into SVK as a VCS, I'm using mostly Subversion and, besides being written in Perl, thought about connecting with SVK to the Subversion repo. Anyone here has tried it long enough to share an opinion?

    Stop saying 'script'. Stop saying 'line-noise'.
    We have nothing to lose but our metaphors.

      Currently using ENDEVOR in MVS
Re: My preferred version control system is...
by sathiya.sw (Monk) on Nov 19, 2008 at 14:02 UTC
    i voted for, and my preferred thing is subversion. "Efficient handling of binary files"
Re: My preferred version control system is...
by sabari (Beadle) on May 28, 2008 at 08:17 UTC
    I will preferred to use CVS .
    Best Regards,
    S.Sabarinathan,
Re: My preferred version control system is...
by ww (Archbishop) on May 16, 2008 at 11:40 UTC

    What's a version?

    Oh!

    Well, we don't allow versions here. Each project must be 100% complete, bug-free, with all possible bells and whistles, and optomized to the nth degree before we start. In short, the first "take" is the only take.

    Our product list follows:

              

    For more information,....

    Update: Please see consideration.

View List Of Past Polls