Slashdot Mirror


Who Doesn't Use Source Control?

VegeBrain asks: "I was reading the description for for a new book, Pragmatic Version Control using CVS and was shocked to read that 'Half of all project teams in the U.S. don't use any version control at all...' Is this true? If so, why? I can't imagine being without one so I'm wondering why anybody would avoid using one, especially now when so many are available for free. Am I missing something here and there really are reasons to not use a VCS?"

150 comments

  1. Alone by sinclair44 · · Score: 2, Interesting

    If you're working on a small project by yourself, there's really no nead for the overhead of a version control system.

    Of course, if you want change histories, have a medium- or large-sized project, or have more than one developer, you very much need CVS or Subversion. There's really no reason to go without then.

    --
    Omnes stulti sunt.
    1. Re:Alone by BigLinuxGuy · · Score: 1

      I have to disagree with you on this point. I do a lot of small one-person projects, and I can't count the number of times that setting a checkpoint before I start coding has saved me hours of rework when something unexpected happens to what I'm working on. However, I usually use a simple version control system, such as RCS for my one-person projects (CVS, et al. are overkill for that sort of thing).

    2. Re:Alone by BigGerman · · Score: 1

      Even working alone, sometimes you would want to access the project from someone's laptop, from your wife's PC, etc.
      CVS is godsent. I keep all the documents, files, and of course source I create in CVS. Among other things, it is convinient to backup only one CVS repository instead of multitude of My Documents and /home/biggerman folders.

    3. Re:Alone by maraist · · Score: 4, Insightful

      If you're working on a small project by yourself, there's really no nead for the overhead of a version control system.

      I completely disagree.. I version-control much of my home directory. This includes several of my dot-files and my home-bin-directory (for useful little non-system tools). Granted, this implies that I use a UNIX/Linux system.

      Moreover, even simple one-off projects can get out of hand if you EVER have to move files around. Lets say you have a project that you only ever intended to run on one machine.. But then you're at work, home, friends-house or whatever, and you wanted to remember how you did some part of it. Well, the easiest thing to do, of course is ssh/ftp the files over.. Ok great... But now, that project gets updated. Months pass... Now you're on your friends machine and you've forgotten that changes have been made, so you don't re-copy the files back over.. Or lets say you used the copied image as a starting point, and you've made several changes since, adding new files. Now you have to manually compare each and every file to see if any are changed... So you don't even bother, and now you have a fork.

      The key is that version-control allows you to organize your text-files. It's like putting them into a filing cabinet intead of literally leaving them scattered over your virtual desk-top. It promotes modularity and reuse, since you'll always be confident of the entire history of the file or project. You'll know with complete confidence that you could quickly build a project based on a previous one. It's the difference between writing one huge c-main function and creating header-files with separately compiled modules.

      There's also one incredibly useful feature of version control.. An undelete that actually works. Lets say you "rm -r" your files. Lets say you use vi and accidently hit the caps lock and type for a little while without looking (all you need accidently do it type zz in that process and the changes are irreversable). Lets say a program goes wankers and starts modifying files indescriminately (say you use a text-formatting tool and it gives you unexpected results). These things happen over time.

      In the old days, you'd hear people using word-processors and the phrase "save often" was used. checking in a version is like saving a known good copy. If you remember your 1980's days, you were far more use to complete catastropy. Now good system administrators perform nightly backups, but
      a) you lose all the work that current day
      b) when you quit the night before may not have been the files most perfect state over the past 24 hours. I know when I code, I'm perfectly willing to leave a document unfinished because a movie just came on, or I have a head-ache.

      Next, often people set up separate users/directory-paths for which to manage the revsion control. Or even if you have group-write permissions, the files are stored on a separate host. This means that you have an added level of security from catostrophic demise. rm -r on your home directory means you've only lost the data since you last considered it stable. If you're disciplined, even a partition corruption won't hurt you.

      Once you have a system, it takes 20 seconds to enter a project into a version control system. You just get into the habbit of doing so, and you reap the benifits.

      --
      -Michael
    4. Re:Alone by Skorpion · · Score: 1
      There is not much of overhead, ever for tiny project.


      I use VC even for single file projects (in which case I use RCS) or very small projects I work on.


      For my toolbox (mostly EMACS) using RCS is almost transparent - I visit file in read only mode, when I want to edit it, I check out it (C-v v), work on it, then close it (C-x C-q) and describe what I've done. I really wish it would work the same with CVS or subversion.


      I do not this for VC itself, but it half for VC in case I screw up something bad so I can gest back to old version,half for backup facilities. is reassuring to know that the file you work on is not the only copy in existence and you may get some recent copy back in case you screw something up. For larger projects I use subversion which is CVS done right. If the projects grows over RCS stage I migrate it to subversion via CVS and cvs2svn.


      Since I work on various machines, subversion also allows me to merge changes semi-painlessly and to keep local copies in sync.


      And yes, I DO use documnt versioning in OpenOffice.

    5. Re:Alone by scottZed · · Score: 1
      I second this. Moreover, many "small projects" are essentially prototyping exercises requiring a lot of fooling around (and changing one's mind). VC is often a much better option than creating a static code base that just accumulates endless comment blocks (especially in a team), e.g.:
      /**
      Hey Bob, I trashed your algorithm something fierce.
      Not sure if that was the right move, now that I think about it. :(
      Not to worry, I commented out the original below (most of it anyway).
      Well, I'm off on vacation.
      */
      I honestly can't understand why such a large proportion of project teams would continue to let themselves exist without VC. I work in scientific programming - perhaps most others work on projects with really tight (and well designed) implementation specs?
    6. Re:Alone by BlizzyMadden · · Score: 1

      Actually, this is something that I would like. I work by myself on one computer, but I would love to be able to versioning control. The problem is that it's just me on one computer, so Perforce and CVS is overkill (if not impossible since you have to run all that from a server). I can't seem to find a simple stand alone version system out there :-(

    7. Re:Alone by abradsn · · Score: 1

      I agree. Everyone else here that is commenting otherwise, has probably never worked without a version control system. Most of the time a small CVS problem can be done, by just making a backup copy of the directory if necessary.

    8. Re:Alone by ShieldW0lf · · Score: 1

      I don't like versioning control. I find it cumbersome to work with, time consuming, and an annoyance. When I need to work with it, I will, but if I can get away with not using it, I do.

      Most developers I've met feel the same way. It's one of those inconveniences you're compelled to participate in, like keeping track of how many hours you work for each client when you'd rather just solve the problems, get the kudos and go home.

      The only time I've found it useful is when you've got multiple developers working together on a project small enough that you're going to be modifying the same files at the same time and need the merging functionality that CVSs bring.

      --
      -1 Uncomfortable Truth
    9. Re:Alone by Ayende+Rahien · · Score: 1

      WTF?
      Didn't your hear about localhost?

      Just run the server, and point your code to your own computer.

      I do it all the time for my projects.

      svn checkout svn://localhost/MyProject

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    10. Re:Alone by BlizzyMadden · · Score: 1

      I found TortoiseSVN. Maybe that is what I need. Thanks for the info.

    11. Re:Alone by BLAG-blast · · Score: 1
      I don't consider CVS over kill for a one computer one developer setup, but I do know some people who do and they tend to use RCS locally. If fact even though we have a main CVS repository, people will develope in their local RCS repository and once they complete the task/feature/bug-hunt they commit their chances to the main CVS repository.

      As for some of the other comments I've heard, I think it can be summed up with something like:

      • Junior developer: I don't want to use revision control because it slows me down.

        Intermediate developer: I use it when I have to.

        Senior developer: Always use it, keeps my projects on track and free from code loss.

        Guru: It's a tool that allows me to work faster.

      I guess this could be applied to any good software engineering practices (commented code, formating code properly, writing a specification before you start coding, etc.).
      --
      M0571y H@rml355.
    12. Re:Alone by LoztInSpace · · Score: 1

      If you're using a decent IDE then the SC should be nicely integrated and is never intrusive. I, like many others, use it all the time on single projects for many of the reasons stated in other posts. It's really not hard if your IDE does it all for you.

    13. Re:Alone by penguinboy · · Score: 1

      Subversion can be run without a server (just the client on a single machine, and client+ssh for remote access). I have a simple howto here.

    14. Re:Alone by kalashnikov556 · · Score: 0

      Actually, sometimes SC can be more intrusive if it's part of the IDE. I'd rather have it be a separate app. That way I can work as if in a sandbox, and only use the SC when I find it appropriate. Right now I'm using CS-RCS without telling the IDE about it. It does automatically detect when a file has been changed, but allows me to decide if and when I want to do something about it.

    15. Re:Alone by Anonymous Coward · · Score: 0
      Most developers I've met feel the same way. It's one of those inconveniences you're compelled to participate in...

      I've yet to meet a single professional developer who thought that version control was an inconvenience. I have met one or two who did think that way. Amusingly, they were out of work and soon drifted towards some other career.

      In fact, version control isn't just for software. Hardware designs and any kind of important, frequently revised data can benefit.

      The most important advantage is of course the ability to back out changes or review changes. To use SVN (or CVS) blame on a file and see when you added line 423 is a wonderful tool.

      Why you added that line is what comments are for.

    16. Re:Alone by ShieldW0lf · · Score: 1

      I've yet to meet a single professional developer who thought that version control was an inconvenience.

      Nice to meet you. I'm a professional developer whos career has risen like a shot since I entered the industry. I've been lead developer or project leader on numerous large projects for various Fortune 500 companies, and have never missed a deadline or had a project fail.

      I recognise that version control software imposes time demands upon its users which require justification. I feel that only in situations where there is a certain level of risk of collision between developers when accessing the source is that time demand justified.

      Now you've met a professional developer who thinks that version control is an inconvenience which requires justification for its use, and can never make that statement again! Can't you feel your mind expanding! Doesn't it feel great?

      --
      -1 Uncomfortable Truth
    17. Re:Alone by Anonymous Coward · · Score: 0
      I've been lead developer or project leader on numerous large projects for various Fortune 500 companies, and have never missed a deadline or had a project fail.

      Ooooh, I like that one. Now tell me the one 'bout Goldie Locks and the Three Bears

    18. Re:Alone by Epor · · Score: 1

      Oh no! I have a [bad] habit of never deleting anything. Sometimes I am glad to have old stuff accessable. E.g. I never delete e-mails (excluding spam). Anyway, the main reason I use VCS "alone" is the diff-feature. Let's say I have a working copy of my project. Then I make some "experiment", heavy refactoring whatever. No need to copy away files etc. Timestamps, checkin-comments, branches I would not be able to handle by doing some silly cp. At my home box I have CVS + ViewCVS + Bugzilla making my life worth to carry on.

  2. Here's why: by Anonymous Coward · · Score: 0, Flamebait

    Bloody ignorance

    fp?

  3. Legal Reasons? by sepluv · · Score: 5, Funny

    If you are a proprietary software company who illegally copies copylefted (or even other proprietary) code into your work, VCSs leave a chain of evidence ready to be subpoenaed by the court when the FSF et al get wind of your activities.

    --
    Joe Llywelyn Griffith Blakesley
    [This post is in the public domain (copyright-free) unless otherwise stated]
    1. Re:Legal Reasons? by Anonymous Coward · · Score: 0

      Could this be talking about lindows/linspire??

    2. Re:Legal Reasons? by sepluv · · Score: 1

      Sorry? Are you claiming that Lindows have been illegally copying copylefted software? I haven't heard anyone else make that claim.

      --
      Joe Llywelyn Griffith Blakesley
      [This post is in the public domain (copyright-free) unless otherwise stated]
  4. Ignorance by hsoft · · Score: 4, Interesting

    Don't underestimate the power of ignorance. My 2 last employers didn't use a VCS because they didn't know that this kind of things existed. Of course, they now know, because I installed them one. :)

    --
    perception is reality
    1. Re:Ignorance by jgrahn · · Score: 1
      Don't underestimate the power of ignorance.

      Yes. Revision control is one of those brilliantly simple ideas which are hard to "get" unless you've used it. And I'm talking about even trivial things such as using RCS on a single file. Developers who try to avoid revision control are very common. Developers who do it because they're told to, but never really use it to make their work easier -- I'd say that's the rule.

      Also note that non-developers have almost as much to gain as developers from revision control. Basically, 0% of the people who write books or reports use revision control.

    2. Re:Ignorance by Ohreally_factor · · Score: 1

      I have a friend who is a web developer who started using cvs when he was required by clients to collaborate with other web developers. He's just an html monkey, no back end stuff. After the first clusterfuck (where the other guy lost a weeks worth of bot their work), he was given advice from another programmer friend to look into this version control thingie.

      --
      It's not offtopic, dumbass. It's orthogonal.
    3. Re:Ignorance by chthon · · Score: 1

      I tend to use an analogy of a drawing for revision control.

      When you have created a drawing which is accepted for production or implementation, then it is stored in a filing cabinet for future reference (check in).

      When you need it as a reference, you can retrieve it and look at it. When you need to draft changes, then you use the previous version as reference, but you start a new sheet, instead of doing the drawing on the original.

      And this way you can build up a whole history of the project from day 1.

      The main problem with software is that it is too easy to change things in a file, so one needs a little bit of self-discipline in these things.

      If it ain't broke, do not try to fix the current version, but fix a new version.

      Btw, SVN rocks! Is there a graphical front-end for SVN available ?

    4. Re:Ignorance by CastrTroy · · Score: 1

      Try Tortoise SVN. I believe there's a link to it off the official SVN Site. But that's only for Windows. Don't know of any for Linux. I find the best thing to do is to get an IDE that supports it. NetBeans does this for Java. Depending on your programming language, you may or may not be able to find an IDE that supports it.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    5. Re:Ignorance by pthisis · · Score: 1

      Ugh.

      Even if you're not using version control (which is pretty much inexcusable, it's almost indispensable for working on private projects at home--with more than one developer it's mandatory, IMO) you should be doing nightly backups. Hopefully he's learned that.

      --
      rage, rage against the dying of the light
  5. Some people don't want to bother by SiliconJesus · · Score: 2, Informative

    Lets face it - Alt-F-S or Esc-w-q-! is a hell of a lot easier than checking into a CVS server and uploading your new code.

    Yes there are easier ways to implement CVS or at least RCS, but most people don't care. Its not that important if your development team is small or if the project is broken down into chunks where each person is in charge of small bits of code.

    --
    Clinton made me a Republican. Bush made me a Libertarian. Trump is making me question reality.
    1. Re:Some people don't want to bother by TopShelf · · Score: 1

      For some environments, it's too much work for the benefit gained. The group I work in supports 6 different ERP environments across various AS400 partitions, with no systematic version control (there are written procedures and forms, but nothing automated). Since our goal is to integrate these 6 ERP's into 3 existing European installations, there isn't much interest in setting up more infrastrucure around the current US stuff.

      That said, we do have problems occasionally with version control, and the micromanaging boss loves to bring those up at review time. At least we have a more sophisticated setup to look forward to...

      --
      Stop by my site where I write about ERP systems & more
    2. Re:Some people don't want to bother by 1nv4d3r · · Score: 2, Interesting

      But what about all the ways good version control frees you up? I think all the "but I'm just on a small project by myself" people are missing out.

      On my personal projects, I use arch all the time, and I rarely look at the file histories, or share development with anyone else. No, I use it to:

      - keep my desktop and laptop copies of my project in sync
      - make branches to try out ideas that may not work
      - keep a changelog automatically for me
      - identify all project files (vs. generated or temp files), for easy tar'ing up for distribution
      - etc.

      I would expend much MORE effort doing these things without arch (or similar). So, to me, people looking for something easier ought to expend the effort to learn a good VCS.

    3. Re:Some people don't want to bother by SiliconJesus · · Score: 1

      Perhaps I should expand. I have historically not used any revision control, but have kept old versions of the files around by extensive use of cp and ln.

      The current version of what I'm working on will be in a directory called program-ddmmyy_rev_minorrev with a link from program -> the current revision.

      Generally this works, but the things I'm generally working with are scripts of little consequence and less than 1000 lines. If the new revision doesn't work, I can just link back the old one, and I'm running again.

      --
      Clinton made me a Republican. Bush made me a Libertarian. Trump is making me question reality.
    4. Re:Some people don't want to bother by GoofyBoy · · Score: 1

      1. There is a learning curve. When you a programming and solving a problem, why add to the complexity of your task?

      2. The developer has to admit he isn't perfect. There are no bugs in his code, no feature that can't be easily turned on/off, nothing he hasn't already thought of or antipated that would require different versions.

      3. Administrative overhead. Someone has to set up and maintain the system, with all the responibility and crap that comes with it.

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    5. Re:Some people don't want to bother by GuyWithLag · · Score: 1

      1. The initial learning curve is about as flat as it gets. You need what, an hour of training for initial usage?

      2. If I had a "developer" like that in my projects, I would talk for a minute or two with management about relocation possibilities...

      3. For all intents and purposes, the backup policy works just fine. If you have checkout/checkin scripts, you have already passed the point of no return in VC usage.

    6. Re:Some people don't want to bother by Anonymous Coward · · Score: 0

      I have about 175 zip files containing versions of programming projects that I've worked on over the past couple of years. How do I get them all into cvs in under an hour?

    7. Re:Some people don't want to bother by some+guy+I+know · · Score: 1
      Perhaps I should expand. I have historically not used any revision control, but have kept old versions of the files around by extensive use of cp and ln.

      The current version of what I'm working on will be in a directory called program-ddmmyy_rev_minorrev with a link from program -> the current revision.
      So you are using version control of a sort; you just aren't using a version control utility to do it.
      --
      Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
    8. Re:Some people don't want to bother by GuyWithLag · · Score: 1

      Bash and 'cvs import'. Assuming that you have kept a sane naming convention on all of the 175 zip files, it should be less than 30 minutes to write a shell script that unpacks them and imports them to the CVS repository, creating a new module or adding a new revison as necessary.

    9. Re:Some people don't want to bother by Dom2 · · Score: 1
      But in emacs, it's as simple as C-x v v. Really, it's almost as quick as saving the damned thing. Then your problem switches to "how do I get people to write coherent log messages".

      Uploading the code shouldn't be a developer problem, even though it usually is. There aren't enough people who can distinguish between deployment and development.

      -Dom

  6. statistics by 1nv4d3r · · Score: 1

    well, half of all projects may not use version control, but an even larger percentage of claims in advertisements are completely made up to make you want to buy their product.

    And even when there's good data, words can be misleading. For instance, maybe they meant ALL projects use VCS, but 1/2 the people on each project don't. Like, the managers and secretaries and accountants, for instance.

    AND it says many others experience problems, but it *doesn't* say that their problems are with their version control! They could have fertility problems, or drinking problems, and the ad would still be strictly factual.

    (but to answer your question, no, I don't see any reason why people would want avoid version control of source files)

  7. Unfortunately, sometimes you simply can't use it.. by insac · · Score: 1

    I had the misfortune to work with a third-party software who had its own programming language, IDE and "repository" (it was on a database).

    We hadn't any "offical" way to export and then import the code from the db and the "versioning" function provided by the IDE wasn't useful at all..

    I hope it is rare to be in this situation now.

    --
    This message doesn't need a sig
  8. No Version Control by SteveX · · Score: 4, Interesting

    I joined about two years ago that had just completed the transition from everyone having their own copy of the source, to using CVS.

    Funny thing is, some of the developers missed the old ways, and would occasionally slip back into old habits. A customer would have a problem, and one of the developers make a copy of the entire source tree, fix the problem, build it, send it to the customer, and that'd be it.

    People would send modules to other people to merge with their copy...

    It seems bizarre but it happens.

    Also I wonder if the stat isn't skewed by the number of solo developers working on small projects... You don't really need revision control until your project reaches a certain size. Not a big size mind you - if you've spent a week on a project it's probably big enough to merit cvs - but I think a lot of projects are smaller than that.

    --
    http://www.stevex.org/longtail

    1. Re:No Version Control by swdunlop · · Score: 2, Informative

      This sort of behavior is a little easier to cope with, using DARCS, which supports a more anarchic model of many people incestuously forking repositories, passing around patches, etc. Darcs doesn't force you to maintain a central repository or inflict a directory scheme, making it really very friendly for migrating existing projects into the system*.

      After having both arch and svn meltdowns, I have moved my projects to darcs, and have been pretty happy with it, since -- I just wish Sourceforge supported it better.

      (* The one exception being DARCS's case insensitivity for file names. )

  9. I'd like to add by hsoft · · Score: 4, Interesting

    The school I went to never teached me to use a versionning system. I had to:

    - Wonder what this "CVS" thing on SF was about
    - Go to the cvs website, still wondering what it was really used for.
    - Download it and try it.
    - Finally understand what it is, and wonder how I could have been without it during my whole CS and survive. (Well, not my whole CS, since I learnt about CVS at the before the end of it.)

    It only takes a couple of unaware teachers to train a whole generation of ignorant developers.

    --
    perception is reality
    1. Re:I'd like to add by Hard_Code · · Score: 3, Funny

      - realize that it really sucks and switch to SVN while others are still wondering how they can get on this new "cvs" wave

      --

      It's 10 PM. Do you know if you're un-American?
    2. Re:I'd like to add by Anonymous Coward · · Score: 1, Insightful

      This is an excellent point. I studied CS in school but didn't stick with it (went to EE) because they didn't actually *teach* anything. They talked about testing, but didn't say how you incorporate it into your work. They talked about version control, but not in any practical way or how useful it is.

      Only years later I have gotten back into serious programming, thanks in part to the "Agile" programming movement. It's sad that it takes a buzzword "movement" to teach basic best practices.

      If only in school they taught about "test-first development" and using CVS to do incremental development. Version control is such a productivity enhancement. I feel like I wasted a lot of time in those classes. In engineering they teach you best practices from day #1. I guess part of the problem is that in CS everybody has there own pet methodology and somebody would get offended...

      It would also help to eliminate the "brain gap" in CS classes and help the slower folks, or folks who don't code for fun 24 hours a day, learn the principles.

    3. Re:I'd like to add by ciroknight · · Score: 1

      -realize that BOTH suck, and don't use version control.

      Seriously, I'd love to use a version control system for most of my projects, but I seriously don't see any need for it. When I get a source to running condition, I tarball the folder and keep developing. If there were a version control system that didn't take a million years to set up, configure, and didn't fuck the files (don't get me started...), I'd use it. But, I'm not in the mood to look.

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    4. Re:I'd like to add by pthisis · · Score: 1

      If there were a version control system that didn't take a million years to set up, configure, and didn't fuck the files (don't get me started...), I'd use it.

      That's the major redeeming facet of cvs.

      Do this once:
      CVSROOT=~/cvs # Put in your .bashrc
      mkdir -p ~/cvs/CVSROOT

      (replace ~/cvs with some other directory in both of the above if you want to--for multiple developers, probably make it somewhere more public and give permissions to a group they're all in).

      Do this to put a project in cvs:
      cd my_source_dir
      cvs import my_source_dir MY_REPOSITORY MY_RELEASE

      and then check it out somewhere to edit it under source control:

      cd ~/src
      cvs checkout my_source_dir
      (Do some stuff)
      vim my_source_dir/somefile.c
      vim my_source_dir/someotherfile.c
      cd my_source_dir
      make ./test_project
      (Commit those changes)
      cvs commit
      (Add a new file and test)
      vim newfile.c
      vim Makefile
      make ./test_project
      cvs add newfile.c
      cvs commit

      To access from a remote machine (if you have an ssh daemon running), on the remote machine just set the environment variables:
      CVS_RSH=ssh
      CVS_ROOT=username@my.host name.com:/home/username/c vs

      and then just use cvs checkout/commit/etc as usual.

      --
      rage, rage against the dying of the light
  10. Lazy, Ignorant, Sloppy, etc... by Anonymous Coward · · Score: 0

    I really can't believe this article got "green-lighted".

    Most people that don't use VCS started coding long before they learned of VCS. These people are either lazy, ignorant (to the great advantages), sloppy, etc. and revert back to old habits.

  11. In fact it sometimes works better without by marat · · Score: 0

    I worked in a company without any version control (~10 of people), with version control (the real one, but not M$ :)), and using version control for some projects and not using for other (~50 of people). I don't remember someone's update breaking other people's stuff without version control, but with one it happens almost every time :).

    Actually you can think of not using version control as of checking out and in all the files every time, while with version control you might have an illusion you can change just this one file without looking into the rest. But even without version control you should maintain complete history of course.

  12. Ignorance is bliss by photon317 · · Score: 3, Interesting


    For small peices of not-too-critical code, which probably constitutes a good chunk of all development done on the planet earth, source code revision control isn't terribly neccesary. Generally these little projects have only 1 developer, which helps a lot.

    For me, personally - once a small project crosses some nebulous boundary between "hacking around on an idea, I'll probably rm -rf this at the end of the day" to "I'm gonna work on this, I think this code can do something good", I generally start using version control - just simple cvs with no tagging or branching (rcs or sccs would work just as well).

    It serves as a backup system, and lets me be more bold with changes. I run in a tight loop of simultaneous architect/design/code/test, so once I've got revision control in place I can comfortably do global search and replace text substitutions on my source code, or wipe out whole files as part of a refactoring phase. I can be as aggressive as I want to be, and I can always go back into cvs to pick up what I was doing an hour ago when I realize I just took too many big steps in the wrong direction.

    Therefore, I'm a fan. But - for many people doing little projects, just saving a zipfile/tarball of their source code tree as a daily snapshot in some directory somewhere provides them almost as much benefit, for considerably less effort than learning a version control tool.

    --
    11*43+456^2
    1. Re:Ignorance is bliss by HR · · Score: 1
      I feel almost exactly the way you do regarding my personal use of source control. That is, I've seen the dramatic difference it can make in stress-free exploration of alternative approaches. If something doesn't work out, abandon it and roll back. Where I (slightly) disagree is the effort necessary to use it vs the benefit it gives.

      I admin the CVS repository for the projects my team supports - mainly because nobody else would take the time to learn about it. It was not that hard to learn although I did spend a while playing around with the branching and merging, setting up automatic emails upon commits, pserver vs ssh access, module aliases, etc. But you don't need to learn much to make your life easiers - basically init, import, co, ci, edit/unedit. Importing a new pile of code is extremely simple once you have the respository already established. The benefit of the change logs and ease of rollback (e.g. by date or tag) is much better than untarring yesterday's snapshot.

    2. Re:Ignorance is bliss by QuasiEvil · · Score: 1

      Small chunks of not-to-critical code... yup, that pretty well describes 80% of my job. Usually it results from needing an analysis of some real world problem, and I need a magic widget that converts from Format A, cross references with Format B, and then builds statistical bins containing counts from Format C. It's usually a one-off scenario that I'm looking into some particular business problem, and I just need a quick chunk of code to do the conversions and some of the light statistical stuff.

      They get created in a day or two, used once or twice, then I tar/gzip them up and store them away on a very secure, very well backed up corporate data repository with a note as to what they do, when they were created, and how to use them. Of course I keep my own copies, should this impenetrable bastion not live up to what its parent group promises, but...

      Anything that evolves beyond the one-off uniwidget phase of a project immediately goes to CVS. Even for personal projects, I couldn't live without it for audit trails and, most of all, oops prevention. IMHO, anybody not using one should be regarded with suspicion. That said, if it weren't for working on F/OSS stuff in college, I would have never heard of version control systems either until I hit the real world.

  13. Re:Unfortunately, sometimes you simply can't use i by TopShelf · · Score: 2, Interesting

    My company uses a piece of 3rd party software for document formatting and archiving, and version control would be a great feature to add.

    When we send payments to vendors via electronic payment, a check prints at the bottom of the statement with "VOID" across it. Due to a slipup while putting changes in production, the VOID logic was omitted a few months back and we sent signed checks out to vendors who had already received electronic payment! How's that for coming up with financial justification for version control???

    --
    Stop by my site where I write about ERP systems & more
  14. Argh. by crmartin · · Score: 4, Interesting

    Am I missing something here and there really are reasons to not use a VCS?"

    No, you're not. But I tell you what --- I've been consulting for, oh, close to 20 years, and I've seen probably in excess of 200 companies, and I'd hate to tell you how many of them had no version control. Hell, I'd hate to tell you how many of them had no code backup, and you'd be amazed how many companies --- big companies --- have web applications in particular that live on someone's desktop and couldn't be reconstructed if that person was run over by a truck without reimplementing.

    I'd hate to tell you, but I'll say, if it's as high as 50 percent who have version contral, then that means it's about doubled in the last few years.

    1. Re:Argh. by Anonymous Coward · · Score: 0
      if it's as high as 50 percent who have version contral, then that means it's about doubled in the last few years.


      But you hated to tell us that, right?
  15. one repository to store them all by brainlounge · · Score: 1

    poor environments (like some RAD tools) which store source code in binary formats and/or where you would have to trigger exports manually to get to the code could be reasons for not using a repository. those tools must be easy to use, e.g. being integrated with your IDE or you simply would not use them.

    _all_ my documents go into Subversion: source code, office documents (text, spreadsheet, presentation), pdf manuals, invoices...
    easy to back up and keep consistent over all machines.

  16. It is true by MobyDisk · · Score: 5, Insightful

    It is kind of like asking "Who doesn't comment their code?!?"

    1) It is not part of CS curriculum so students never hear of it. Unfortunately, That goes for concepts like "design" and "requirements" too.
    2) It is seen as an enterprise solution, not for individuals.
    3) Many individual developers are lazy. They only use it because they are forced to do it.
    4) Many developers first see source control systems that are expensive and complicated. (I won't name names right now). Free/OSS solutions like subversion are almost "cult" even if they are better than most commercial systems.

    1. Re:It is true by gl4ss · · Score: 1

      *3) Many individual developers are lazy. They only use it because they are forced to do it.*

      exactly... but lazyness would need you to use it if it made the job easier. most of the time the version control doesn't matter(local backups semi-daily will do).

      if the thing is going to take, say 90 hours to code - what's the point in using hours to set up version controlling? better spend that time on design documents(sure, version controlling becomes kind of a must thing if you don't have any idea what you're going to write before you start churning out code..).

      --
      world was created 5 seconds before this post as it is.
    2. Re:It is true by KevinIsOwn · · Score: 1

      Actually it is part of the CS curriculum, at least it is at RIT. In fact, design, requirements, code commenting, and CVS use are all required components of all CS courses.

      While this may not be a nationwide trend, I'm sure more and more CS programs are beginning to instill these values into CS students.

    3. Re:It is true by the_ed_dawg · · Score: 1

      1) It is not part of CS curriculum so students never hear of it.
      Exactly. We suggest the students in the computer architecture lab at Purdue use CVS, but no one knows how. We're in the process of changing that by creating little mini-lectures that describe how to setup and use CVS effectively.

      3) Many individual developers are lazy. They only use it because they are forced to do it.
      ...which is why I have been coming up with lots of examples that the students encounter and how to solve them using CVS. "It worked yesterday? Check out the version from yesterday. Here's the command to do it." They have to do performance benchmarks for their final report. Inevitably something has been changed so they can't remove their caches. Show them how to tag each submission so they can simply checkout the version they turned in six weeks ago.

      In general, I believe that giving people practical examples demonstrating that CVS can really save their butts help a lot. If they don't see any purpose, why would most people bother? (We know why, but they don't.)

      --
      There are two types of people: those prepared for the zombie apocalypse and those who will be eaten.
    4. Re:It is true by roju · · Score: 1

      mkdir RCS
      touch foo.c
      ci -l -m'initial revision' -t-'the program foo' foo.c
      emacs foo.c

      Hours?

    5. Re:It is true by utahjazz · · Score: 2, Insightful


      1) It is not part of CS curriculum so students never hear of it Unfortunately, That goes for concepts like "design" and "requirements" too.


      That's because design and requirements are not part of computer science, they are part of software engineering.

    6. Re:It is true by fimbulvetr · · Score: 1

      Hours for emacs to startup, maybe.

    7. Re:It is true by EvlG · · Score: 2, Informative

      Too bad comments can be harmful.

      How many times in a large codebase have you come across something like this: // Don't doo Foo() here because of x and y and z
      Foo()

      Comments often don't get maintained properly, which leads them to be out of date and wrong.

      Which is worse, no comment, or an incorrect comment? The presence of incorrect comments leads developers to have a rather healthy skepticisim of all comments....

    8. Re:It is true by Anonymous Coward · · Score: 0

      how to setup and use

      "set up" ("setup" is a noun).

    9. Re:It is true by Anonymous Coward · · Score: 1, Informative

      That's funny. I got my B. Sc in Computer Science at University of Toronto - the program was called "Software Engineering". No, I am not an "engineer", but one of my fourth year courses was called "Software Engineering" and we learned about requirements, design and source control by working on a course-long software development project. Computer Science isn't all theory, y'know.

    10. Re:It is true by 2short · · Score: 1

      Hours to set up version control??? It takes me two mouse clicks. Get a real IDE.

    11. Re:It is true by CastrTroy · · Score: 1

      You may have taken a course in Software Engineering, but I seriously doubt that the CCPE would have allowed for the programme to be called Software Engineering if it wasn't actually an accredited Software Engineering Program. I got my Software Engineering degree from Ottawa University. With the Iron Ring to match. I've taken courses with people in CS, and from what I saw, taking CS teaches you nothing about programming in the real world. While Software Engineering got rid of most of the short-comings of CS. It still wasn't perfect, but it was only the second year they offered it, so it wasn't perfect.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  17. Cost/Benefits by ka9dgx · · Score: 1
    Of the commerical stuff that I've written, I'm usually the sole author. I've never had formal training in programming, so I've used an ad-hoc system of saving with a new version # appended to file names as I make changes, zipping everything in the source to a file every once in a while.

    Of course, 20 years of advancement now present me with the opprotunity to learn ARCH, etc... and I may do so. But I'll still refuse to use any language that sees CaSe SensiTivitY as a FeatUre.

    --Mike--

  18. Small Cluefree Groups by Darth_Burrito · · Score: 2, Insightful

    I work in a small university department. There are several different people working on the website. Most are using some variant of dreamweaver. Most are very non technical. Getting version control working seemlessly and reliably within dreamweaver and other clients, and then attempting to explain it to everyone so that they actually understand it, is simply put, not worth it. As far as using something outside of dreamweaver, I think that's too complicated for most, especially for those who might only make a change once or twice a month.

    Some might be saying that Dreamweaver has some sort of pseudo version control thing built in. Frankly, I don't trust it. I'd rather have something standard like cvs, subversion, or sourcesafe. I'm new to dreamweaver so that attitude could change but I doubt it.

    That said, I'm planning on automating some backups to in essence archive older versions of the site, libraries, and scripts... sort of a poor man's version archive system.

    1. Re:Small Cluefree Groups by Anonymous Coward · · Score: 1, Informative

      How about using a CMS with versioning? There will always be solutions for the non-technical people. A CMS with a browser-based WYSIWYG editor is the route I chose for a small university department where they utilized several maintainers.

    2. Re:Small Cluefree Groups by Darth_Burrito · · Score: 1

      We're doing a website redesign and I was VERY keen on using some kind of content management system. However, I'd never done anything with one before, and it wasn't clear to me where to start.

      I spent about a week setting up (or trying to setup) different CMS systems on our server and playing with them (drupal, midgard, bitflux, etc). After a week, my conclusion was that all of the open source CMS systems I was encountering were fairly complicated and that learning how to use them and deploy them in a manner that would allow other people to use them effectively would take more time than I had available. In particular it wasn't even clear if I could convince the site designers to get on board with something like that.

      I'm still interested in bringing CMS usage into the office. However, I'm going to wait until I've had a little time to play with them on my own time, which is something I was interested in doing anyway.

    3. Re:Small Cluefree Groups by GuyWithLag · · Score: 1

      If you want a content-only CMS, you may wan to take a look at magnola (http://magnolia.info). It doesn't have the frills of all the portal frameworks out there, but it is very simple to use.

    4. Re:Small Cluefree Groups by Darth_Burrito · · Score: 1

      Thank you. It looks interesting and I am looking at it now.

    5. Re:Small Cluefree Groups by PhilipMatarese · · Score: 1

      In my experience, Dreamweaver integrated well with sourcesafe.

      At my last job I had to setup versioning for a group of 3-4 graphic/web designers. We already had sourcesafe, and I was dreading having to teach these guys how to check in their designs. Most of them didn't know where they saved their files locally, so it would be a struggle unless thhey could do it from within the development tools.

      I was discussing this with the one computer literate designer, and he remembered seeing the sourcesafe buttons. So, we tried it out. I figured we might have to tweak it a bit, but it went smoothly.

      Sourcesafe even has a good understanding of web projects and you can set up deployment/publishing (Check the source in where it will live in a test directory. Hit the publish button and the documents are moved to a live server.).

      Phil

  19. Ignorance? Fear? by esm · · Score: 4, Interesting
    I graduated with a CS major almost 20 years ago, and have been making my living since then as a programmer. I never learned anything about source control in collij. I learned it during collij, because I worked summers at a professional organization. I was lucky.

    Most of my jobs have been in professional software development groups, where source control is as implicit as breathing. But for a few years I worked at a prestigious National Lab, and that was an eye opener. Much of the code I saw was written by scientists with no real-world experience. Nobody I worked with had ever heard of the concept of source control; they just sort of did occasional "cp foo.c foo-with-xyz.c" things. I set up CVS, explained the rationale, helped them learn it, and forced them to use it. Most appreciated it, because they could see how much it helped. They simply hadn't known. But... some resented it. "That's not the way we do things". (My wife still works at that Lab, also as a programmer, and says she sees the same thing). For the most part, the people who say that are stupid. Not 100%, since many have PhDs, but truly stupid nonetheless. And they know it, which scares them: they think if they use source control, others can touch their code and make it better, and they won't be needed any more. Job security through obscurity, perhaps.

    Think about it: if you're competent, you use source control as much as possible: you know you'll screw up sometimes, you want a strong history of what changed when, and you want others to improve and maintain your code. But if you're not competent (or uncertain), you want others to have as little visibility as possible into your code and process.

  20. VC can be had without CVS by SunFan · · Score: 2, Insightful


    A person doesn't have to install CVS, Subversion, or BitKeeper to be a "good little developer". Many people get by quite successfully by just keeping good daily backups of their work and making copies of milestones and releases as "branching." It works pretty well when the size of the team allows good communication and relatively little toe-stepping.

    Quite honestly, if there are only a handful of copies, even manually porting fixes across the releases can be simpler than learning a VC system.
    Sometimes, once a person has learnt programming and everything else, adding more tools for tools' sake can be the straw that breaks the camel's back.

    --
    -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
  21. Reasons why we didn't use version control. by Alpha27 · · Score: 4, Informative

    At a small company I worked at with 3 other developers, and 2 designers we did not use a version control system because:
    * we didn't think of installing one, even though a number of negative things happened as a result of not having one.
    * had difficulty installing CVS. After reading the docs to install CVS, I still had trouble getting the thing to work and skipped it completely.
    * we were naive. not everyone who is programming, especially those new to the scene, know about version control.

    I'm not saying these are legitimate reasons, these are excuses for a poor development environment. I have learned from this and have made changes to make my developing better.

  22. When NOT by mugnyte · · Score: 3, Interesting


    Although powerful in it's own way, my company's use of the "PVCS/Dimensions" suite leaves such an ugly taste that our group refuses to use it. The repository tree was designed seemingly by blind monkeys, and there is little power to change this layout per average "user" (although these same developers write code to control most of the servers - ironic).

    The product is certainly powerful enough to store an enterprise-amount of data, but our implementation and workflow rules around it are abysmal. This isn't a knock on them, I simply don't know enough about it.

    So, we opted to use another product, but for a while there simply was no Source Code Control at all. Each developer had a sandbox directory on the shared drive, and their own little fiefdom of backups, directories, etc. Quite scary. Now, we have a sweet layout that everyone enjoys.

    When all this reached corporate, the discussion was
    "use PVCS"
    "we dont get it, it's confusing and locked from changes"
    "get training"
    "pay for it, money and time, and show us how this repository is organized"
    "soooo, how's that other product working out?"

    1. Re:When NOT by Anonymous Coward · · Score: 0

      in it's own way

      "its".

    2. Re:When NOT by mugnyte · · Score: 1

      Thank you! not many people will remind me when my spelling/grammar can be improved. Only when i see these comments do i take time to commit it to memory....for a short time at least it seems! HA

  23. Plenty of reasons not to, but none good enough. by Anonymous Coward · · Score: 1, Interesting

    Before I was hired, my employer had version control, but it was used very little. It was proprietary system that was difficult to use because it tried to control the entire software development cycle, had expensive, per-seat licencing, and no integrated tool support. This meant developers didn't use it unless they had to, and when they did, did not use it effectively.

    My first task was to deploy something more effective. We rolled out CVS and, with its excellent tool support, a little training and support from management all the developers in our group are using it very effectively, and our support people are even using it to distribute and track much of their documentation. To aid in some of the adminstrative burden we're using SourceForge and, while it is far from perfect, it is good enough to get the job done.

    Any development environment worth its salt will have CVS support available and with tools like WinCVS and TortoiseCVS it actually takes little effort for those without technical skills to adapt .

    When people claim that it is "too difficult" to use version control, I scoff. In our experience, it is far easier to have a single, centralized location to store and backup our source and documentation. As far as we're concerned, if it isn't in CVS, it doesn't exist.

    When one of our divisions had what can only be called an "unmitigated disaster" costing many thousands of dollars, their clients told them "get some revision control, or we're not dealing with you". Suddenly, emailing files around and storing them in poorly named directories on a file server seemed a lot more difficult than learning a handful of new commands.

  24. Re:Ignorance? Fear? by Anonymous Coward · · Score: 0

    u spelled collage wrong.

  25. Who doesn't use source control? Easy. by StandardDeviant · · Score: 1

    Idiots and amateurs. ;)

    1. Re:Who doesn't use source control? Easy. by Anonymous Coward · · Score: 0

      So you are saying that the vast majority of programmers are idiots or amateurs? Hmm, wait, that does make sense. ;-)

    2. Re:Who doesn't use source control? Easy. by StandardDeviant · · Score: 1

      c.f. www.thedailywtf.com ;)

  26. Re:Ignorance? Fear? by Anonymous Coward · · Score: 1, Insightful

    Actually, having worked both sides of the fence, (physical scientist with background in programming and systems administration) I'd say the problem isn't that the scientists are stupid, but they aren't trained in software engineering. I received all sorts of comments over the years from the scientists I worked for about "computer people changing things, just because they can".

    What they really hate is Computer People (apparently you), with Computer Theory Solutions (CVS) which do nothing for them except create overhead and slow down their programming. Most groups have a policy of everyone getting their own copy of the source tree, so that they can only screw themselves. They also have a senior person with long institutional knowledge, responsible for integrating changes, if/when necessary.

    Nex time, try forcing them to use FFTW or some other optimized library which will increase their productivity instead of their hand-written routines, and see if you aren't viewed as a hero instead of the computer jerk.

  27. Re:Unfortunately, sometimes you simply can't use i by exeunt · · Score: 1

    Sounds like Uniface to me.

    --
    "...silence is a dangerous sound."
  28. ATI Technologies. by Ninja+Programmer · · Score: 1

    I worked for them in the mid 90s. I don't know what they do now, but back then they certainly did *NOT* do version control.

  29. PVCS SUCKS by toiletmonster · · Score: 1

    yeah i worked for a company that used PVCS. it SUCKED. horrible experience. i hated it. cvs is sooo much better. command line, scriptable, multiple people can work on the same piece of code, and it helps that cvs is faster than a freaking ant and isn't a horriblly implemented java gui. unlike PVCS which SUCKED.

    the only product that i've had a worse time with is a bug tracking system called Remedy or Peregrine. Remedy REALLY REAlly sucked. wow. bugzilla is way better.

    i love my new company.

    1. Re:PVCS SUCKS by mugnyte · · Score: 1

      You're not going to believe this, but right now were using TUTOS for issue tracking, and we'll be moving into Remedy soon, we've been told. Hoboy, now I'm really excited!

  30. Re:Ignorance? Fear? by Anonymous Coward · · Score: 0

    return -ENOTFUNNY;

  31. A daily tarball by Zo0ok · · Score: 1
    I start in project-0.0.1. At the end of the day I tar -czf project-0.0.1.tgz project-0.0.1, and I upload the tarball off-site.

    Next day I start with mv project-0.0.1 project-0.0.2.

    Of course, I work alone on my programming projects.

    I could use CVS, but there are a number of "concerns" (I admit, I am ignorant):

    • how do I backup my CVS-server?
    • can I be certain different versions of CVS-clients on MacOSX, linux and cygwin will work nicely together?
    • when do I need to patch my CVS server?
    • will there be ANY benefits?
    I very rarely go back to old versions of my code. I simply dont program that way...
    1. Re:A daily tarball by Anonymous Coward · · Score: 0

      how do I backup my CVS-server?

      Late at night, when you're not using the repository, have a script copy all the files with rsync, tar, cp, etc., to another machine or another directory. They are just plain files. You can even move files around in the repository if you want.

      If you have a very busy CVS server with many people using it, it's better to lock the respository, do the backup, unlock it. However for a single developer this isn't necessary.

      can I be certain different versions of CVS-clients on MacOSX, linux and cygwin will work nicely together?

      Sure, I use CVS on FreeBSD, Linux, Mac OS, no problem.

      when do I need to patch my CVS server?

      When there's a big bug. If it's a "private" server that only you use, there's no hurry. I'm still using a very old version on mine for instance, but at work it's kept up to date even though it is only accessible with SSH keys on private LAN.

      will there be ANY benefits?

      What a question! You will be able to go back to any previous version of your code. Each check-in will have a comment from you explaining what you did. You can manage multiple versions of the same code. What if you write a cool program, and somebody else wants to pay you for a customized version? Just branch the code and do the customizations on a branch. If you fix a bug on one branch, merge just that change to the other branch. This takes a some discipline to do, but it's SO worth it.

      You make a tar every day right? With CVS you can "check in" every few *minutes*. That's what I do. Every small change gets checked in separately.

      It also encourages you to make your code "relocatable".. so you can check out on any machine, in any directory, code, debug, test, check back in.

      It's also nice to be able to work on the road, and do check-ins over SSH from wherever you happen to be, and your code is safe and sound at home.

      Once you start using version control, you can't live without it!

    2. Re:A daily tarball by Krischi · · Score: 1

      If it is just you working on the project, you do not need to run a CVS server at all. Just having the cvs command available on your system is enough. Likewise, this means that you do not have to worry about patching your CVS installation to defend against attacks on the 'Net. Of course, it still makes sense to keep your software up to date against local exploits, but that is just plain common sense.

      To back up data, you just back up the directory that contains the CVS repository. There are no special files, databases, etc. Everything is a plain, simple, old text file. That also means that you will not encounter compatibility problems between clients on different platforms. The CVS file format has been stable for countless years.

      The benefits are many:

      - You keep a complete history of the changes you made to your software, along with a changelog.

      - You can go back to any intermediate version, even between changes you made on a single day. You say that you do this very rarely, but it is still good to have it, just in case.

      - You can fork the code if you want to do something experimental, and merge the changes back later.

      - You keep a clean separation between your source code and th files that are generated during a build. For instance, if you want to compile with different compiler options, such as debug vs release, you can just check out the source into two different directories and build each to taste. Similarly, when you want to distribute or release the source code, just do a fresh checkout into a new directory, and tar that up - without any worries that there might be superfluous intermediate files in the tarball.

      - and more ...

      Why don't you just try it? Setting up cvs with your project is as simple as installing an rpm/deb/ebuild, cvs -d /path/to/repository init, cvs -d /path/to/repository import, followed by a fresh checkout.

    3. Re:A daily tarball by oo_waratah · · Score: 1

      I run Solaris, AIX, Linux, cygwin and standard windows CVS.

      If you have multiple platforms and multiple copies sitting on those separate machines then a source repository is a must. I spent a huge amount of time merging my changes across versions on separate platforms now I simply cvs up and it all works, well I do make portability mistakes but this is easier to fix.

      Backing up your cvs server is simply a matter of backing up the directories that is your repository. You should NEVER have to restore it, you can get an old version of the code, and overwrite the current version to revert something. This gives you a trail of failures as well as sucessful code changes.

      If you use cvs over ssh then you probably can leave it a LONG time between patches. Instead of learning cvs I would suggest looking at other more developed tools like ARCH and subversion which have more advanced capabilities first. They may provide something that you need.

    4. Re:A daily tarball by ciroknight · · Score: 1

      bingo. this is also how I develop, and what my CECS professors suggested them when I asked if this would be efficient enough. And I've had the same problem with CVS as you have. Very interesting..

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
  32. Re:Ignorance? Fear? by deepestblue · · Score: 1
    they think if they use source control, others can touch their code and make it better, and they won't be needed any more. Job security through obscurity, perhaps.

    Um? Distributed development is not the only advantage of using source control.

  33. The usual reason by fm6 · · Score: 2, Insightful

    Why do people drive too fast without seatbelts? Why do skiers ignore the skull-and-crossbones signs around avalanche zones? Why do people live in mobile homes in tornado and hurricane zones? People will always ignore non-immediate dangers and problems in favor of immediate costs and inconveniences, even if the risks are high and the costs are low.

    1. Re:The usual reason by Anonymous Coward · · Score: 0

      Right on! /only insightful thing I've seen all thread

  34. Source control growth by TheBracket · · Score: 1
    The company I work for initially had no source control (when I joined, I was employee #2), mainly because the boss and the web designer had never heard of it. I mentioned it a few times in the first year, but it didn't really go anywhere - the perceived learning curve put my coworkers off. Then I setup a much more professional setup (proper division between staging and live servers), and we started to grow. With one web developer and one programmer, we didn't overwrite each other very much, and our web developer got into Dreamweaver's multi-user functionality (we all developed on a shared development webserver at the time), and it worked okay. I started using Visual SourceSafe (yuck!) on some projects, just because it was helpful for me to store revisions - VSS was what we had lying around in our development tools, I'd had some bad CVS experiences, and wasn't all that aware of alternatives. Then growth kicked in, and suddenly we had three programmers, two designers, and a few outside clients all working on the stuff we host - and I got to fix the occasional "you overwrote my work!" screaming fits amongst clients/coworkers (this was easy to fix because we had a system that archived regular snapshots - not as good as source control, but not bad). So, I setup Subversion, created accounts for everyone who needed them, and gave everyone TortoiseSVN. I also talked my boss into mandating its use (he was as sick as I was with collisions/overwrites), which helped a lot. After about a week, everyone was happier - overwriting other's work because of an overenthusiastic upload was a thing of the past, no more fiddling with Dreamweaver's unreliable locking system, and we now have an SVN-based site publishing system (basically, you can tag revisions as "LIVE" or "STAGING", and a background script keeps the respective servers at that revision - while the development server stays on the head revision). We did have problems with a client trying to get two users to work in the same repository under different usernames, but otherwise it's rock solid.

    So in my case, the reason for not using it was a combination of thinking "we're too small to need to worry about this", inertia, fear of complexity from some users, and the inability on my part to make a really solid case saying "this is what we need, this is why". When we grew, many of these arguments went away - and made making the case for it a lot easier.

    --
    Lead developer, http://wisptools.net
  35. A Good Reason for NO Version Control: Speed by xjimhb · · Score: 1

    A few years back I worked on a 2-person project, and we thought about going to VC. I was in NY and sitting next to the server, the other person was in Ottawa on an ISDN line (barely faster than dialup). The impact on her of having to check in and check out files over the slow link would have killed her productivity, and her having those files tied up that long would have killed mine.

    The tradeoff was that OCCASIONALLY we would both have made changes to the same file, and I would have to re-sync the files by hand - a nuisance, but it turned out better than using VC in this case.

    Networking and connection speeds have gotten better since then, so it's less likely to be a problem today, but it could still happen.

    1. Re:A Good Reason for NO Version Control: Speed by Jason+Pollock · · Score: 2, Informative

      That's why you use a non-locking VC like CVS. :)

      It doesn't lock files for edit, and when you're committing you aren't transferring the entire suite, just the files that have changed.

      And it usually does the merges for you!

      I've used CVS across a 14.4 modem without any problems. :)

      VC products have changed substantially from the CCCS/RCS days of edit locks. Subversion has even more nifty features, but I'm unsure of the network performance.

      Jason Pollock

    2. Re:A Good Reason for NO Version Control: Speed by vadim_t · · Score: 2, Interesting

      Maybe you used SourceSafe. I tried it. It was really horrible.

      I tried several systems. Here's what I think:
      No source control: BAD.
      SourceSafe: Just almost as bad. Could actually be worse. It can destroy productivity, and has lots of limitations. There's the dreaded database corruption issue, too...
      CVS: Decent. Not wonderful, but a lot better than any of the above
      SVN: Great. Similar interface to CVS, fixes a lot of limitations, works better.

      If you use CVS or SVN, a modem shouldn't be a big problem. It's source code, after all. Excepting global search/replace changes over the whole repository, it's hard to do anything that takes more than a minute or two for SVN to transfer over a modem connection.

      SourceSafe is *really* slow. CVS is okay, but SVN is faster due to a better design. So use it if you can. It will save you a lot more time than you lose by waiting a minute or two for a checkout to finish.

    3. Re:A Good Reason for NO Version Control: Speed by Anonymous Coward · · Score: 0
      SourceSafe is *really* slow.

      While that is true of some VSS installation, let me say that isn't true for all of them. For dial-up connections, SourceSafe is really, really, really slow. As in right-click a file and take a coffee break waiting for the options to show up. Next to unusable. It isn't so bad if you are on a fast LAN.

    4. Re:A Good Reason for NO Version Control: Speed by Jellybob · · Score: 1

      I havn't benchmarked it, but in terms of how fast it "feels" SVN is a little quicker than CVS - not heaps, but definately not any slower.

    5. Re:A Good Reason for NO Version Control: Speed by sti · · Score: 1

      Some VC systems are slow also because they need to access the repository for every operation they do. Others maintain enough knowledge locally that they only have to access the repository very rarely. One such system is GNU Arch. I have used it for almost a year now and it is by far the best VC system I know. Granted, it is a bit rough on the edges and user-friendliness was nowhere near the developers' minds but when you know it well, it makes just about everything possible. Arch is by far the most flexible VC system I have used.

      But the learning curve is pretty steep.

  36. Man, have I seen this, and it ain't pretty by BigTimOBrien · · Score: 3, Insightful

    Worked for a now defunct company that had a team of four and no source control. Actually, I lied, they all thought they were using "source control", but it was simply a shared filesystem. So, in other words, everyone worked on the same set of files all day, while some just took a day every month or so to manually copy files from the shared frive to a local drive. It was complete madness.

    The organization then decided to adopt source control in the form of "Visual Sourcesafe". Anyone who has used Visual Sourcesafe on a large project will tell you two things:

    1. Lock-modify-unlock destroys productivity
    2. A shared filesystem is preferable to the ever-corruptable Visual Sourcesafe.

    Lock-modify-unlock mean that specific developers would declare ownership of a particular directory and lock it indefinitely not bothering to update the repository with changes until they were good and ready.

    The best source control systems are CVS and Subversion. Copy-modify-merge is the only way to go, and don't let anyone tell you that they need to lock files or directories.

    --
    ------ Tim O'Brien
    1. Re:Man, have I seen this, and it ain't pretty by Anonymous Coward · · Score: 0

      Copy-modify-merge only works when all your developers understand it. If one of them doesn't and starts making gratuitous global changes throughout a file in the course of making a minor change, that destroys the productivity of everyone else working on that file (because merging becomes difficult). Locking is the only way to prevent that if a clue-by-four isn't available.

    2. Re:Man, have I seen this, and it ain't pretty by Aardvark99 · · Score: 1

      I **hate** Visual SourceSafe (VSS) more then you can possibly imagine but let's get the facts straight:

      VSS does support a multiple checkout and merge model that works. It is a configurable option that is turned off by default. Any text file can be checked out by as many users that want to work on it. If the file had changed (someone else checked in the file before you) then you must merge these new changes into you copy before you can successfully submit the file.

      If you want to bash VSS, let's talk about how it has a history of corrupting data, is slow, can't branch and merge well, crappy reporting, lousy labeling, not 3-tier, no change sets, poor local file management (detecting files modified outside source control, new files, clumsy "working folders")...

      Also VSS is often used in companies you aren't investing the money, time, or brainpower on Source Control Management. So it often misused and/or not fully understood and/or poorly admin-ed. VSS isn't the entire problem in those cases.

  37. ask slashdot: are computers like, cool? by evilmousse · · Score: 1


    I have never seen such a lopsided reaction from slashdot.. i think there was one, maybe two lowmodded posts that were pro-noCVS, and they have +4 insightful replies slamming them..

    herebeit resolved, CVS is the shiznittybingbang.

  38. Tortoise SVN for Windows by tom+taylor · · Score: 2, Informative

    Tortoise SVN for Windows is great for mini projects with a single programmer, because it lets your run a subversion tree locally from your HDD without the need for a proper server install. I'm sure there's an equivalent for *nix.

    1. Re:Tortoise SVN for Windows by chendo · · Score: 2, Informative

      I use eSVN in KDE. Works okay for most of my SVN needs, but Cervisia wins, hands down. Probably the main reason I'm sticking with CVS for projects I have control over.

      I manage the Tsukihime translation project, and there has been countless times it's saved our asses when someone edited something out of context and made no sense whatsoever. A quick look at a couple of revisons back allowed me to fix it in a few seconds, instead of wasting time contacting the original translator.

      --
      Founder of Mirror Moon - Tsukihime Game Trans
  39. Source Control HOWTO (in the works) by Tronster · · Score: 1

    Eric Sink has recently started writting a detailed HOWTO off of his personal website titles "Source Control HOWTO. He doesn't just cover his own companies project "Vault", but also touches on CVS, VSS, and Subversion.

    In my IT career I've used VSS, PVCS, a bit of CVS, and now becoming more familiar with Subversion behind GForge. Of all the documentation I've consumed, Eric Sink's article has so far been the most thorough (and least dry!)

    As for the comments regarding source control being overkill for personal projects; I feel there is a misconception that source control will add continually overhead to a project. The initial setup may be a pain, but when refactoring components, it's much easier to perform differences along a file's history from a source control system than diff directory which you manually copied to perserve a "version". I've done it both ways, and found using source control with my solo projects to provide a multitude of benefits. I could list them out here, but I believe they're all addressed (and then some) in the HOWTO.

  40. Depends on what "no version control" means by kschendel · · Score: 1

    I wonder if that 50% means projects with no version control at all, or just none of the usual alphabet-soup SCC products. I've worked on (and run) several entirely successful projects without CVS, RCS, SCCS, whatever. That doesn't mean that we didn't have version control, it just wasn't fancy or formalized. In all cases, we had a bunch of guys all within shouting distance; we had some kind of informal check-in/check-out that left some kind of trail; and we made damn sure that the nightly backups worked, every night. If someone screwed up and stepped on someone else's work, we were all right there, and we could have a little come-to-Jesus meeting.

    Obviously, for larger or geographically distributed teams, or projects where back versions need support for an extended time, something more formalized becomes increasingly necessary.

    Running with NO version control of any kind, not even safe backups, is nuts. I wouldn't even do that for at-home toy projects.

  41. CVS for multimedia developers by RobTerrell · · Score: 1

    I'll speak up for the developers use tools like Macromedia Flash and Director. These tools produce binary source files, for which the advantages of CVS are slim when compared to the classic method of of "save as..." version number incrementing.

    The very nature of the tools make multi-programmer projects extremely difficult as is, so not using CVS -- making each developer an island -- is a natural extension of the tools. Macromedia tools are like sharing a hammer -- you can't really have multiple hands on the hammer at once.

    Mix in the fact that multimedia developers are routinely working with lots of binary files (sounds, graphics, whatnot) that also don't get a lot of benefit from CVS repositories, and you've got a recipe for a wholesale subset of developers who have no need to learn CVS commands.

    Recent versions of Flash and Director allow developers to link in external text files for ActionScript/Lingo/JavaScript coding, so it's now possible to use version control for the code, at least, in your project. However, in these tools, code isn't half of the data in a source file: you've got the timeline (or score) data, the library (or cast) data, you've got any internal text references... plus, when the feature first came our, we had trouble with external code references being buggy, so people avoided it rather than lose hours of code.

    It's still just a pain in the ass to use version control with Macromedia products. Not impossible, not entirely fruitless like in years past, just a pain in the ass. So many old-school developers I know just stick with what they know: "save as.." ++i.

    However, in our company we recently set up a Subversion server, and hopefully we can get some more traction with checking in and out code. Since we now have multiple developers touching the same file, version control will help us with things like "who's got the ball" at the very least. But regardless, getting CVS used is an uphill battle.

  42. Writing cross-platform code helps a lot by Stele · · Score: 1

    I run my own consulting business and do a lot of cross-platform projects. Although I am a one-man shop, I essentially forced myself into using a source-control system (cvs) just to help manage shipping updated source between Mac and Windows with the proper line endings.

    After I lost some code in a relatively small project, I also forced myself to put EVERY project into cvs, no matter how small. My repository sits on a Linux box running amanda so everything gets backed up too.

    Now I use cvs for projects that span multiple platforms (Windows, Mac, Linux, IRIX) and use the full feature set for managing versions, etc. I'm looking into migrating to subversion in the near future.

  43. Not VCS per-se, but close by ShannaraFan · · Score: 1

    I'm the lead programmer in a group of five, doing primarily internal SQL Server, ASP, and PHP development. We don't use a formal check-in/out system. We use Twiki, with a series of perl scripts that are run from cron jobs, to monitor all of our SQL databases and ASP/PHP pages. The SQL objects are monitoring using a "snapshot" of the sysobjects tables, comparing that to the current sysobjects table - any objects that are different get scripted off and published into Twiki. ASP/PHP files are compared using simple file compare, and published to Twiki if changes are detected. Twiki handles all the versioning and diff functionality for us, along with giving us the ability to do keyword searches. Want to know how many places the field named "vchCustomerName" is reference? Just do a keyword search in Twiki, and you see every stored proc, PHP page, trigger, etc.

  44. Heheh. by Andy+Dodd · · Score: 1

    I played around with CVS for a bit a few years ago, and found it to be too much of a pain in the ass for personal use.

    SVN is so much better, and IMO easier to use. I'm using it for all future personal projects. (Already have the LaTeX source for my resume in a personal SVN repos)

    --
    retrorocket.o not found, launch anyway?
  45. There are situations. by jonadab · · Score: 1

    Probably many of the teams not using version control should be, but there
    are certainly circumstances wherein it isn't necessary. Sometimes the
    division of labor on a project is such that each developer really only has
    to make changes his own parts of the project -- his own files, or, in some
    cases, his own library or application. This is not the norm even for
    proprietary software and is probably _very_ unusual in the open-source world,
    but it does happen occasionally.

    And, of course, there are always the projects with pretty much just one
    programmer (though there may also be other people doing e.g. content, art,
    music, PR, marketing, or what-have-you).

    I currently don't use any version control for Net::Server::POP3, because
    no other developers have expressed an interest in working with me on it.
    (Which is fine; it's a small module and probably only needs one developer.
    It does build on the work of others, e.g. by using Net::Server, but I have
    not contributed anything back to Net::Server itself, because I haven't
    needed to make any changes to it; I just use it.)

    --
    Cut that out, or I will ship you to Norilsk in a box.
  46. CVS to SVN to DARCS by A+nonymous+Coward · · Score: 2, Informative

    I used CVS for a long long time, over ten years, finally switched to SVN to get renaming. This is all for personal use, altho I have used CVS at a lot of companies too, so atomic commits didn't have much to do with CVS --> SVN. But I never liked SVN keeping things in binary files, and not being able to just look around the repository with any old editor, and 6 months later, I switched to DARCS to get the simple repository. I was surprised to find the patchset mentality very refreshing, and why I will stick with it. I have only started understanding how much more flexibility it provides. I can't see going back to CVS or SVN.

    Try DARCS on some small project sometime. It has conversion scripts from CVS, but I don't think from SVN, altho I could be mistaken; my time with SVN wasn't long enough to obsolete most of my CVS repository.

    Really, DARCS is liberating. It's the same feeling I had getting out of the navy. A breath of fresh air, great gobs of it, just fine, thank you :-)

  47. Say you do but don't by Anonymous Coward · · Score: 0

    MY company is a certified quality company with a procedure that talks about source control. We have PVCS as the corporate standard however no-one outside the test area is willing to pay the $10K a seat I was quoted.

    I set up CVS and I have been trying to mandate that through the other groups who proclaim it a wonderful idea that they will use 'real soon now'. I even have agreement from my manager that it is a requirement of the group. I manage ALL checkins from my group after virtually dragging the code out of the people who use wrote it.

    One critical piece of software that our company depends upon the only copy of the code was stored on his personal PC at home. After 4 years chipping away I think I have the majority of the code that he has. It is all working therefore out of sight and out of mind. I keep hassling other groups and trying to get the mandate but I guess things will never change.

  48. These guys didn't... by Anonymous Coward · · Score: 0

    Years ago, I worked for these guys. The major application for capacity planning in the region I worked in was under "copy the file to a .bak extension before you work on it" version control.

    600 or so perl files... 800 or so PHP files... 100 or so directories... Nightmare.

    Why? Couldn't get approval. "The system works, there's no need!"

    I did my own version control at my desktop via CVS when I worked there and it saved my bacon a number of times. I've heard they've since implimented CVS or somesuch after an errant "rm -rf" command in the main source directory.

  49. Envirpnment Support by Anonymous Coward · · Score: 0

    Some programming environments (*cough* MS Access *cough*) do not readily support traditional version control. They often involve cryptic binary formats that render intelligent diffs/merges impossible, assuming you even have discreet files at all. And without that, your VCS is nothing more than a daily backup.

    Other times it's just too difficult to do version control. For example, how do you perform version control on database stored procedures? If you mention exporting to a text file and then checking that in, you fail. That's too much manual labor to expect a developer to do. If it takes more than one command to check in your changes, developers won't do it; they'll eventually get lazy and skip it.

    As for the single developer not needing it, I guess all you developers have never had to deal with regression bugs then, eh. I guess you've never had to roll back significant changes because in the end it just didn't work right.

    SO I guess what I'm getting at is the only reason to not use version control is because you can't.

  50. Version control has limited use with binaries by grumbel · · Score: 1

    When it comes to source code I basically always use version control, when it are single-file things I tend to use RCS, when it gets more I switch to CVS or SVN, but when it comes to binaries (.xcf, .blend, .png, etc.) I tend to not use version control systems or at least use them to a much lesser degree. Reasons for this are mostly ease of use related, with text editors you often have build-in support for checkin/checkout, with graphical editors you seldomly have them. Being able to do a 'diff' between different versions is also relativly useless with binary files, so I end up doing manual versioning instead (file-1.png, file-2.png, file-with-special-light-2.png, etc.), since that is much easier to access from the 'editor' (Gimp, Blender) and also much easier to work with. If i want to have a look at and older version or want to compare to different versions I just load them up, would they be stored in version control it would be much more tricky to get access to them. A filesystem plugin that allows to transparently access the version control system from withing the filesystem itself without falling back to svn or cvs command line tools would surly help to fix this issue, but so far I havn't seen any of them in the wild.

    Last not least there is also the problem with newer version control systems that they are meant for larger projects, managing a single dotfile with svn or cvs is quite a pain, doing it with rcs on the other side is relativly easy. Would be nice if they would provide some 'instant' mode that doesn't require a seperate repository, but just works like RCS in a dot-directory or something like this.

  51. What and Why by droleary · · Score: 1

    Before you question the sanity of the developers in question, you need to reflect on why you use it yourself and what is sufficient to meet those needs. If the project is small or well partitioned, it might be just fine to use regular ol' backups. Even for more complicated projects, a lot of the VC tools can still be overkill and require too much manual hand holding. Personally, I eagerly await the day where we have filesystems that essentially do versioning themselves. Drive space is cheap, especially when it comes to text files, so I don't see why we can't just have the system maintain snapshots of critical files and then allow you to change the view to a particular point in history.

  52. What about discipline? by ron_lima · · Score: 1

    Souce control is not a reality for every IT development. Unfortunally, some people like to use "directories" to control sources, what is great step to doom the entire project.

    At least in the companies where I did work here in Brazil, everybody was using some sort of VCS. However, the common problem is the discipline to use a VCS. Sources that are updated outside the VCS and then deployed to the customers is the main problem I could see so far.

    I feel that you must not only use a VCS but have discipline to use it.

    --
    Ronaldo Faria Lima
    E-mail:ronaldo@ronaldolima.eti.br
    Home page: http://www.ronaldolima.eti.br
  53. Re: SCC but not? by Anonymous Coward · · Score: 0

    Keep in mind that there are several projects out there who are nominally using SCC but do not implement effective source control. Here is a recent example from the beginning of the 21st century out of a fortune 50 company:

    Only changed or new files were labeled, the majority of the files NOT. Hence the build lineup was different depending on which machine a build was being performed and whether an update from the SCC was done or not. This led to the funny situation where the class composition of an installation was different from environment to environment (test vs qa vs staging vs production).

    Nobody knew what exact file lineup was currently in production nor what lineup was in any environment (e.g. production) lets say 2 month ago.

    Needless to say that CTO and Mgmt. were thinking that everything is under tight control as the group was using the officially prescribed SCC tool.

  54. New DARCS URL by Anonymous Coward · · Score: 0

    New DARCS URL. (Note: Points to same IP address as old URL.)

  55. "Version Control Software" by ahdeoz · · Score: 1

    Most projects outside your hacker by night use version control, although they may not use a diff-based tagging program. Think of Linux. It didn't use "version control" until fairly recently, and yet it was version controlled. Releases are version control. Backup tapes are version control. They work pretty good in THE REAL WORLD. They just take up more disk space. Although, in the real world, you probably end up using a lot more disk space with version control software because everyone is always "checking out" stuff that hasn't been changed, so there are hundreds or thousands of copies of something that you only need once.

  56. Two words by Snowsphere · · Score: 1

    Job security

  57. define "use" by cratermoon · · Score: 1

    I've seen enough teams that, if you asked the management if they used version control, would answer in the affirmative and indicate the corporate standard (some atrocity like PCVS) SCM software. Ask the people actually writing code, however, and the answer will be no, they don't actually use it. Generalized, there are two reasons. One, the team is too clueless and undisciplined to use version control. The other, the dictated corporate standard is such an awful mismatch for the environment/toolset that the net productivity lost working with it is greater than just using a shared copy and manually resolving conflicts.

  58. One big segment by cratermoon · · Score: 2, Interesting

    At several places I've worked there's been a consistent subgroup of developers that doesn't use version control. The SQL database programmers and analysts rarely put the DDL scripts into version control. I'm sure there are exceptions, but consistently I've seen them reject it. It really puts the hurt on a project when the application programmers can re-create any prior build or release any time, but can't do anything with it because there's no way to get the database back like it was. Even in day-to-day work, some change that breaks a trigger or integrity constraint that would be trivial to fix if you could roll back to N-1 ends up stopping work while the DB programmer tries to figure out what changed and how to fix it. As far as I understand, there are two justifications VC-resistant SQL developers cite for this situation. First, that the database can in theory be rolled back to any prior state by mucking around with the transaction logs and unplaying them. Second, that the database shouldn't be versioned, because its current structure is by logical proof the only correct one, and reverting to an earlier version means somehow violating relational purity.

  59. Oh dear by lorcha · · Score: 1
    Here are some problems with the tarball method:
    1. What if at the end of the day you forget to do a tarball?
    2. What do you do when you want to find a change to a file and you're currently on project-3.216.197 and you're not sure when or why you changed foo.c's logic and you want to change it back but you don't know what you're going to break in the process? I use cvs log. What do you do? Open up hundreds of tarballs trying to find your one silly change? I know you said you don't look at old code, but that's probably because it's too tedious for you to examine all the tarballs.
    Others have already answered your questions. Backing up CVS is trivial (read the docs... it's not too much unlike your tarball method), CVS clients play nicely together in my experience, what are you talking about patching your CVS server? You mean upgrading CVS? Just upgrade it. I'm not sure what you mean by that.

    The benefits are too numerous to list. Read the Cederqvist. It's not very long, and you can decide for yourself if you want it. Basically, it's good for when shit goes wrong (helps answer the question of where, when, and why), when you want to experiment (create a branch... what do you do when you want to experiment? Make two nightly tarballs?), collaborate (I know you said you work alone, but that will not always be the case hopefully), and many more.

    --
    "Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
  60. More critical for multimedia files by lorcha · · Score: 1
    If you don't use CVS or SVN for your multimedia files, how do you find a change that was made weeks ago? Watch the multimedia file 50 times until you see your change?

    Wouldn't svn log be easier? It's hard to diff a video.

    --
    "Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
  61. If you use Windows... by kalashnikov556 · · Score: 0
    I use Componet Software's CS-RCS as a stand alone system on my laptop. No server required.

    The simplest version (free for single users and some open-source developers) is so simple it doesn't even support branching and merging. The full version does, and it isn't terribly expensive. It's pretty easy to install, too.

  62. That's easy: by Telastyn · · Score: 1

    Because every single version control system I've used sucked. Or rather, let me rephrase that, they were very good at what they did, but were a pain in the ass to use and were poorly documented. Make something hard to use, and less people will tend to use it.

  63. SourceSafe by chochos · · Score: 1

    Perhaps the stat counts SourceSafe as "not using any source control at all", which in my opinion is totally wrong, since there should be a third category for teams "using russian-roulette style source control".

    Seriously, I met some MS people who obviously had only used VSS in their lifetime. I showed CVS and they were reluctant at first (which was irrelevant since our whole repository was already on CVS), but they asked around and supposedly MS uses CVS internally in many projects... that was funny in so many levels. They don't eat their dog food. They know their dog food sucks. But they keep it a secret, because CVS is open source and they're against it...

    These guys never understood how CVS worked and installed VSS for their own projects, and had someone else sync that with the global CVS repository. I guess some people just don't want to learn better stuff.

  64. remedy by toiletmonster · · Score: 1

    huh. i thought they went out of business a couple years ago.

    we had problems with everything. a lot of it was probably due to how my company handled the product. but still. there were a *lot* of gui bugs. like we couldn't turn off the tips feature. and everytime a tip tried to launch, it had an error and would pop up an error window. which was insane, because it launched a new tip every time you clicked any button. i remember it being really very very not intuitive either. i couldn't figure out how to fill out a bug. i learned bugzilla in a half hour or so, but i had to keep checking the reference sheets they gave us in order figure out how to around in rememdy. that was 3 or 4 years ago though, so who knows how things are now.

    really it was so unpleasant to use and took so long to slog through, that i just stopped logging bugs i found. in retrospect i was disillusioned with the company in general and should have moved on.

    good luck.

  65. Re:Unfortunately, sometimes you simply can't use i by Anonymous Coward · · Score: 0

    No, it's still out there. We just paid 10's of $1k for the same sort of headache. The guy in charge of procurement apparently thought that a drag-and-drop gui was a better idea than an opens source project in languages most of his developers already knew. He's not with us anymore, but this creeping monstrosity is about to be core to our business functionality.

  66. Idiots by Anonymous Coward · · Score: 0
    I suggested -- no, I pitched long and hard for -- CVS, or something, for the web site my office maintains.

    "No," says my boss, "I don't want to use that stuff."

    "It's easy, and the software is free," I said.

    "No, it's too complicated!"

    So whenever we need to make changes to the web site, we have to work on the live site (no test site), taking care not to step on one another's toes. Needless to say, I'm looking for another job.

  67. Students often don't. by Random+Guru+42 · · Score: 1

    At least where I'm taking my post-secondary education, students aren't educated on the use of source control, and I've seen the results. A lot of times, students will end up with regressions in their class projects without any way to recover any code that worked better.

    Even I'm at fault for this in my class projects, sometimes, but generally I use SVN for pretty much everything else.

    --
    Christopher S. 'coldacid' Charabaruk -- coldacid.net
  68. More importantly... by jeff67 · · Score: 1

    Who would willingly* accept a job at a company that didn't have version control?

    *Economic need to take the available first job offer doesn't (in my mind) constitute willing acceptance.

  69. I was/am one of the ignorent by ObsessiveMathsFreak · · Score: 1

    This discussion is pretty interesting. Speaking from personal expierience I can safely say I've never really used a version control system until yesterday when I started downloading the cvs version of vegastrike(it's still going). I am ashamed of this fact, in case you think I'm not. i really wish I'd "discovered" them sooner.

    I've worked in two programming jobs. One, didn't have any VCS at all. Files were copied one by one. The only "version" was the zipped folder that got emailed to everyone. The second job had a VCS, visual source safe to be exact, but people only used that for the companies legal documents. None of the programmers used it except to check in their code after six months solo work.

    Never once in almost four years of university education have I been exposed to any sort of version control system. Then again, in my university, none of the the programmers can use Linux, of any flavour. Most can't use visual studio either... Hmmm. Yup, all our programming lecturers are pretty much incompetant. In any case, such courses exist, so don't be too surprised by coders that can only compile one source file, static programs on windows platforms only. But I digress.

    I always wanted to get into some kind of cvs/subversion type VCS, but I never had the oppertunity(or the training). Hopefully by participating in a sourceforge project I will.

    P.S.
    cvs rocks for downloading apps. Forget cutouts when downloading some 20MB tarball. Just get the cvs download and you'll get the files one by one with download resuming built in. Yes, yes that's not the point of cvs, but I'm on a dialup that drops connections all over the place.

    --
    May the Maths Be with you!
  70. Re:Unfortunately, sometimes you simply can't use i by dbottaro · · Score: 1

    Actually, that is a lot like the "plugin" methodology used by SalesLogix. We have a very large, highly customized installation managing almost 500,000 contact records... I would truly love to be able to implement versioning in the system, but that is not possible as all of the code/screens/reports are stored as blobs in the database.

    The only moderately reliable method of versioning is copying the code out of the scripts into text files with date stamps.

    --
    Coding my way to the next BSOD!
  71. "Manual" control better for some do-it-yourselfers by ClioCJS · · Score: 1
    I simply "manually" keep version control. Working on "script.pl"? I save as "script - 00 - description.pl", then later save as "script - 01 - changedesc.pl", etc, etc.

    This lets me manage my own files myself without having to be tied to a specific computer/OS/software installation.

    Also, using a CVS program adds another layer of complexity and another point of failure. I've heard horror stories about Microsoft Visual SourceSafe crashing (gee, no surprise there) very non-gracefully..... So I decided not to "participate".

    Furthremore, in many situations there are non-developers dealing with things. If I let them use a system such as this, all of a sudden, *I* will have to do their checking in and chekcing out *FOR THEM*. Fuck that.

    In short... I'd much rather rely on myself than some piece of software I have never used. I'm supposed to just take Software X's word that it will work as described, and never fail? And then drop my own responsibilities and HOPE the program will be responsible for my stuff for me? Bah. Self-reliance is better.

    --
    -Clio
    Karma: Bad (mostly from not giving a fuck)
    Blog: http://clintjcl.wordpress.com
  72. It works for single developers by Roadmaster · · Score: 1

    I'm a single developer working mostly on small projects, and svn has been a godsend for me, mainly because I do development from one of many different locations, so svn lets me keep an accessible and centralized copy, so I just do an update when I'm going to start working, a commit when I'm about to leave a particular location and that way I don't mess things up. It's easier than using rsync, with which I've clobbered more than one project because I wasn't paying attention to which direction I was syncing files to.

    Also, it gives me a lot of freedom to make changes and mess things up since I can always go back a revision or two. I've yet to use it for a large, multiple-person dev project but at least I know the technology is there when I need it. And svn was dead-simple to install and use!