Who Doesn't Use Source Control? 150
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?"
Alone (Score:2, Interesting)
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.
Re:Alone (Score:1)
Re:Alone (Score:2)
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 work
Re:Alone (Score:2)
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 situ
Re:Alone (Score:2)
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
Re:Alone (Score:5, Insightful)
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.
Re:Alone (Score:1)
I hon
Re:Alone (Score:1)
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 c
Re:Alone (Score:2)
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
Re:Alone (Score:2)
Legal Reasons? (Score:5, Funny)
Re:Legal Reasons? (Score:2)
Ignorance (Score:5, Interesting)
I'd like to add (Score:5, Interesting)
- 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.
Re:I'd like to add (Score:4, Funny)
Heheh. (Score:2)
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)
CVS to SVN to DARCS (Score:3, Informative)
Re:I'd like to add (Score:2)
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.
Re:I'd like to add (Score:2)
That's the major redeeming facet of cvs.
Do this once:
CVSROOT=~/cvs # Put in your
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
Re:I'd like to add (Score:1, Insightful)
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 th
Re:Ignorance (Score:1)
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
Re:Ignorance (Score:2)
Re:Ignorance (Score:2)
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.
Re:Ignorance (Score:2)
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.
Th
Re:Ignorance (Score:2)
Some people don't want to bother (Score:3, Informative)
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.
Re:Some people don't want to bother (Score:2)
That said, we do have problems occasionally with version control, and the microm
Re:Some people don't want to bother (Score:3, Interesting)
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)
Re:Some people don't want to bother (Score:2)
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 ru
Re:Some people don't want to bother (Score:2)
Re:Some people don't want to bother (Score:2)
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.
Re:Some people don't want to bother (Score:2)
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.
Re:Some people don't want to bother (Score:2)
Re:Some people don't want to bother (Score:2)
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
statistics (Score:2)
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 contro
Unfortunately, sometimes you simply can't use it.. (Score:1)
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.
Re:Unfortunately, sometimes you simply can't use i (Score:3, Interesting)
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 vers
Re:Unfortunately, sometimes you simply can't use i (Score:2)
No Version Control (Score:5, Interesting)
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 [stevex.org]
Re:No Version Control (Score:3, Informative)
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
Ignorance is bliss (Score:4, 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.
Re:Ignorance is bliss (Score:2)
They ge
Argh. (Score:5, Interesting)
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.
one repository to store them all (Score:1)
_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.
It is true (Score:5, 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.
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.
Re:It is true (Score:2)
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 go
Re:It is true (Score:2)
touch foo.c
ci -l -m'initial revision' -t-'the program foo' foo.c
emacs foo.c
Hours?
Re:It is true (Score:2)
Re:It is true (Score:2)
Re:It is true (Score:2)
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.
Re:It is true (Score:2)
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.
Re:It is true (Score:3, 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.
Re:It is true (Score:2)
Re:It is true (Score:3, Informative)
How many times in a large codebase have you come across something like this:
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....
Cost/Benefits (Score:2)
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--
Small Cluefree Groups (Score:3, Insightful)
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.
Re:Small Cluefree Groups (Score:1, Informative)
Re:Small Cluefree Groups (Score:2)
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 ma
Re:Small Cluefree Groups (Score:2)
Ignorance? Fear? (Score:4, Interesting)
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.
Re:Ignorance? Fear? (Score:1, Insightful)
What they really hate is Computer People (apparently you), with Computer Theory Solutions (CVS) which do nothing for them except cr
Re:Ignorance? Fear? (Score:2)
Um? Distributed development is not the only advantage of using source control.
VC can be had without CVS (Score:3, 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.
Reasons why we didn't use version control. (Score:5, Informative)
* 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.
When NOT (Score:4, 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?"
PVCS SUCKS (Score:1)
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.
Re:PVCS SUCKS (Score:2)
Re:When NOT (Score:2)
Plenty of reasons not to, but none good enough. (Score:1, Interesting)
My first task was to deploy something more effective. We rolled out CVS and, with its excellent tool support, a little training and support f
Who doesn't use source control? Easy. (Score:2)
ATI Technologies. (Score:2)
A daily tarball (Score:2)
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):
Re:A daily tarball (Score:1)
To back up data, you just back up the directory that contains the CVS repository. There are no special files,
Re:A daily tarball (Score:2)
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, yo
Re:A daily tarball (Score:2)
Oh dear (Score:2)
The usual reason (Score:3, Insightful)
Source control growth (Score:2)
A Good Reason for NO Version Control: Speed (Score:2)
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
Re:A Good Reason for NO Version Control: Speed (Score:3, Informative)
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
Re:A Good Reason for NO Version Control: Speed (Score:2)
Re:A Good Reason for NO Version Control: Speed (Score:3, Interesting)
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 sou
Man, have I seen this, and it ain't pretty (Score:3, Insightful)
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.
ask slashdot: are computers like, cool? (Score:2)
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.
Tortoise SVN for Windows (Score:2, Informative)
Re:Tortoise SVN for Windows (Score:2, Informative)
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.
Source Control HOWTO (in the works) (Score:2)
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 pers
Depends on what "no version control" means (Score:1)
CVS for multimedia developers (Score:1)
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 th
More critical for multimedia files (Score:2)
Wouldn't svn log be easier? It's hard to diff a video.
Writing cross-platform code helps a lot (Score:1)
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
Not VCS per-se, but close (Score:1)
Version control has limited use with binaries (Score:2)
What and Why (Score:2)
One big segment (Score:2, Interesting)
That's easy: (Score:2)
SourceSafe (Score:2)
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 m
More importantly... (Score:2)
*Economic need to take the available first job offer doesn't (in my mind) constitute willing acceptance.
I was/am one of the ignorent (Score:2)
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 j
It works for single developers (Score:2)