This question may seem backwards to all logical reasoning, but I encountered a team member who was working on a side project out of the main tree, and had decided ( rephrased )

I'm the only developer, we don't need version control, that's stupid

Now personally, the idea horrifies me, and I can't for one justify it.

So now my stance is clear, I want some legitimate answers why somebody can excuse themselves from using version control. The default answers will of course be "there is no excuse".

Not what I want to see. If you can't see an excuse, then just don't post. ( Feel free to downmod excuses others post that are illegitimate/bad and give reasoning )

+645  A: 

There are no good reasons not to use version control. Not one.

Too bad I can only vote this up once!
what else can be said...
This is the only real answer to this question.
Sergio Acosta
This answer should be accepted, IMO. Like Sergio said, it's the only real answer.
Thomas Owens
I'll have to make a fine distinction here: I've seen places where policies made using the corporate version control... distasteful. But even then you should still set up your own private system on your local machine.
Joel Coehoorn
If you have ever made a mistake, you need version control. Otherwise, you can do without it.
Rory MacLeod
The same could be applied for backups.
Magnus Johansson
@Magnus: Jeff Atwood disagrees with us (see the top question in my profile) (Jeff is one of the devs of SO)
Having worked on solo projects: I have met the enemy and he is me.
Lets be pragmatic people. Plenty of code is written and maintained by non-professionals outside of source control (scientists for instance) and it works just fine. Different work environments have different emphasis on software best practices.
@Brandan: No problem with it working - what happens when there is > 1 scientist doing the work? what happens when his flash SGI box's HDD's blow up, or his cat happens to hit "rm -r /" when walking over the keyboard....
Nic Wise
repeat, repeat, repeat!! Not even uno
Ric Tokyo
I don't understand, haven't you read the question !? "Default answer: no excuse! -> not what I want to hear". Sounds clear to me. This is a perfectly valid question for she who seeks to understand her fellow developpers even if they are unexperienced, immature or simply suck. I'll give you that the benefits of source control are blatantly obvious even for 1 and that the decision to use it should be a no brainer. But if you can't think of a single reason why people would be reluctant, even though mistakenly, then perhaps you should move some energy from dogmatism to empathy/listening skills.
Yann Semet
@Galwegian : I'm sorry, I don't mean this to be ad hominem. I agree with you from a technical standpoint as we pretty much all do I think. From a human resources standpoint however, I just hate it when we developpers, as group, tend to forget that programmers are people and therefore, as such, only boundedly rational. There are also other criteria for decision making than purely technical ones. Forgetting that in general, I believe, has huge consequences in terms of productivity and results in bad management.
Yann Semet
@Yann Semet: I understand your reasoning and I mostly agree. But this is still the first answer I'd vote up for this question. Because even if you claim "I'm not interested in this answer", it's still the first one you need to hear.I'm perfectly ok with comming up with some reasons later on, as long as this is the first answer.
Joachim Sauer
@Brendan: Scientists need version control even more than everyone else does. They don't have the advantage of training in good development practices or thorough testing, and are more prone to write something hackish to get the job done. At least in my experience.
Not using it properly is equally bad.
Its called "Extreme Programming"!
+8  A: 

No excuses. Even a single developer will benefit from having his/her code under version control.

petr k.
+5  A: 

...maybe if they're holding a gun to your Dog's head?

But, then I think you have bigger problems.

I don't own a dog. Don't listen! It's a mind trick!!!
+217  A: 

I can think of one:

I'm the only developer, we don't need version control, and I'm stupid

Sergio Acosta
That was funny! LOL Sounded like something Homer Simpson would say.
Very Funny. Would Laugh Again. A+++++++++
Robert Venables
Thanks to everybody that voted up this silly answer for my first 'Great Answer' badge. =)
Sergio Acosta
+2  A: 

Your VCS system is a hassle to use. Too much trouble for this small project

they could use any VCS they want. No vcs is enforced. ANY is better than none.
Kent Fredric
If patch-files on a mailing list is a VCS then yes. I'd rather use that than Visual SourceSafe. Seriously.
Christian Vest Hansen
In that case, you need to get a new VCS.
+54  A: 

Visual SourceSafe ate my dog.

Not quite sure what this means, but its very funny.
Si Keep
I believe it, hence I do not keep anything worth value in VSS, or even allow my dog to go near it...
Redbeard 0x0A
Don't make your VCS the ONLY copy
That's about all it's useful for. Many unpleasant memories. Shudder, twitch...
Umber Ferrule
Yes, I've seen VSS eat an entire repository. I'd never go near it again. To me, VSS is the same as no source control.
Mark Ransom
"Are there any good excuses not to use Visual SourceSafe?" is a whole different question, with many many (MANY) good answers!
Love it. The implication is that Visual SourceSafe's level of unreliability transcends the usual laws of the software universe -- it can actually reach out and bork things in the external world. It's a whole new *kind* of unreliability.
+19  A: 


A side project is a prototype/throw-away exercise so to see how a concept or idea works in code. The code won't be kept around after learning from it.

Martin OConnor
Key word, excuse. If I had a nickel for every time I could have saved myself several hours by looking at a "throw-away", I would have a lot of nickels.
I dont think ANY code is throw away code. Even if you dont use it, its a great learning experience to go back and look at that "throw away" code and see how you can do more with it.
Rob Cooper
Here *every* code that was written as prototype or proof-of-concept is still running. For years. So I think there's no such thing as throw-away code.
That's actually not bad. As others have said if I had back all the throw-away code I've disposed of only to learn later on that I needed it. Ah, memories. . . .
Onorio Catenacci
Have a sandbox repo!
I put even my prototypes and learning projects in version control. That's no excuse.
Chris Charabaruk
No, it's a fine excuse. I regularly write one-off programs to test something -- but then I actually delete these programs. I currently have none on my disk.
Bill Karwin
@Bill Karwin- how often do you end up re-writing a "one-off" program that you've actually written before (or something very similar)? Now if only you'd put it into version control, you'd know where you left it last time.
If you'd be unwilling to remove "Undo" from your editor, you should be unwilling to work without source control.
J Wynia
+4  A: 

I see only developer's personal gain of you being tied to him as he may be the only one to remember changes within versions.. if i got the question right ^^


I'm too lazy to learn how to use it?

+38  A: 
  • It can give a false sense of security. Using a VCS does not imply that your data is safeguarded against system failures, because you need real backups for that.
  • For small toy projects the cost of learning a VCS may outweigh the benefits.
  • Introducing a VCS at a time when you're trying to meet a deadline introduces a risk of missed deadlines (however small it is).
Joeri Sebrechts
No; the cost of not using source control outweighs the cost of using it - unless your source control system is so grotesquely unusable in which case, you need to use a different VCS.
Jonathan Leffler
And the risk of not using a VCS is that you won't meet your deadline because you couldn't revert to a better working version of the code after you screwed up some change because of the pressure of the impending deadline.
Jonathan Leffler
I have done a single project at home for a customer. The code went straight into SVN because it was free, easy to set up and far preferable to having to rewrite the application code for the add-on I wrote. I have found it much easier to revert a single code file than press undo for anything between 1 and 1024 changes!
Oh my god. You get voted up for having the first honest attempt at an answer.
+16  A: 

My Dog Ate My Head?

That's about all I got? Since I told myself off for not using SCC at home (and losing all my previous code) I have NEVER looked back. I use it all the time, I check in all the time.

Why the hell would you not like to be able to:

  • Simplify backup of all your code?
  • Be able to mess with it more, knowing you can restore?
  • Realise that you completely borked some code and didn't notice and compare versions to see how you borked it?

All I got is "my dog ate my head".

Rob Cooper
I love the heading :)
+160  A: 

Excuse for not using source control:

"The only source control system I am allowed to use is Visual Source Safe."

Matt Howells
Best answer !!!!
Anything But SourceSafe:
As bad as SourceSafe is, its better than nothing.
Paul Batum
Hmm. I can't believe I just defended SourceSafe. Somebody shoot me.
Paul Batum
Paul. It is sad to defend SourceSafe, but would have been worse to defend not using a Source Control System.
I don't know what is worse, dealing with the pain VSS inflicts, or dealing with the pain if you have to rewrite some of your code.
Redbeard 0x0A
Source Safe isn't nearly as good as SVN or other solutions. Still, it's preferable to no source control at all.
Joshua Carmody
Maybe I'm the only person in the universe whose used VSS for years w/o any issues (no, not one! yes, HUGE codebase!!). It's definitely better than nothing. I'm moving to Subversion to get branching support, though.
I'd rather rewrite ten years of code than use Source Safe!
@kogus - agreed: same situation, no problems.
Concidering I've had to rewrite things that VSS killed as I checked it in - I'm not so sure.
Saving your project in a ZIP file daily, and adding a number to the archive name (like,,etc.) is a far superior version control system in my opinion to VSS. I'd NEVER use Visual Source Safe, unless forced to.
Joe Pineda
If somebody would force me to use VSS then I'd probably quit that job. On the other hand if they'd offer $1000000 I'd think about it some more.
VSS actually was one of the factors in quitting my last job. Not in the top 5 factors, but probably in the top 10.
Bryan Anderson
@Paul Batum - it may be better than "nothing", but not necessarily better than making a separate copy of a file every time you make a change. It'll take you ages to find the right version, but slower than using VSS? It's close!
I once tried to use VSS (or was it TFS even?) via a VPN connection. Opening a solution took up to 15 minutes (no kidding!). I guess the configuration we used wasn't right but it made me not use SC at all until we moved to SVN. Also, the auto merging was terrible.
Ben Schwehn
Sometimes it is better to do something even if you are not "allowed" to do it.
Source Safe is a misnomer... I've lost vast tracts of work due to configuration changes outside of VSS. More like Visual Source Suicide!
The only thing worse than VSS is SVN. When you have 100 people contributing and everyone is equal, your project goes in 100 different directions. There is no agreement on how to do things, so it just does things different ways. At least I can anticipate how VSS will behave.
As read somewhere on the net: "VSS makes easy trivial and hard impossible"
Miro A.

i don't need to revert back, so i don't need version control !

+8  A: 

You don't want to know why you made a certain change 3 weeks ago because theres NO way you could ever want to be able to simply check the change log, and you love pain and misery and prefer to do things the old-school way, with comments and pages of commented code.

You also like modifying code and having bugs you fixed earlier come back, and you like not knowing why.

You like the sense of "mystery" and "excitement" it adds to your life.

Kent Fredric

I use Apple's Time Machine and I work alone, so that works for me.

Philip Morton
That doesn't allow you to simply diff files, and log why you made certain changes
Sander Rijken
But ... Time Machine is your VCS there.So, you are using VCS, we just need to argue about features.
Jim T
I disagree... Time Machine is backup and not VCS.
Steven Noble
A VCS needs diffs and logs in my opinion. I agree with Steven, time machine is a really fancy backup system, but not a VCS.
Isn't that really specifying an implementation detail? If you use Time Machine, you can easily diff 2 files, or use any other tool to compare directories or files. The only major drawback is that you don't get to control which old revisions it keeps.
+2  A: 

If it is a one off thing which is going to be thrown out after an hour, I would not use a source control.

But unfortunately all one off things I am asked to do in my company magically turns around after a week and I am asked to fix something in the (lost?) code and make it a part of the project.

...And so, I have a repository called prototypes. Each one off thing gets its own folder therein.
+53  A: 

Possible 'excuses':-

  1. "My code is buggy, unstructured, and unreadable. It's simply not worth trying to keep"

  2. "Management will understand if my project slips by six month because I accidentally deleted something I shouldn't. They do it all the time."

  3. "If I delete my 5000 line source file by mistake, chances are the total rewrite may be better than the original. Eventually."

Feel free to add your own...

2) Is actually excellent excuse. Still, I feel sorry if one works in such environment...
The kind of person who refuses to use source control is probably completely covered by point 1.
Mark Ransom
The server where the source control is kept is 20 years old and in a drainpipe. It may blow up or wash out anytime, so not worth using anyway.
+1 for point 2. We had that happen once. Never use the combination of IE's recursive web-page printing in conjunction with HREF based deletion lest you be wishing to work really hard to recover an empty database.
Kent Fredric

"There is no VCS on my iPhone/Blackberry/other small device/Apple ][, where I do all my development."

On the serious side, indeed, starting from scratch to learn to use such system can be hard, even more if delays are tight, but it is time well spent, like writing comments or making unit tests...

I admit it took to me some time to decide to learn to use SVN and to install it (I used other VCS at work, at least!). So either I did changes and sometime regretted not to be able to go back to a state where it worked; or I used primitive means like copying a state of a source in another directory or to some archive or to a name like MySource-1.1.c...
Kludges, of course, which bite later.

Of course, then, you have to discipline yourself and commit on important steps.

what if you just spent 8 months commiting daily into a distributed scm? "i don't know how" is not a valid excuse in such case.
Kent Fredric
+6  A: 

There are two main parts of version control.

  1. Having backups of old versions of 'files'
  2. Being able to diff / merge / etc on various versions

For part 1 there is no excuse I can think of. Part 2 however, there are situations you can argue against it since the way in which you're coding renders it useless.

I for example spend four weeks on a project where 'code' was stored in a binary format such that you couldn't diff or merge or do any of that good stuff.

I also spend a much larger amount of time (shudder, I don't like to think about it) 'coding' on a project which was essentially configuration into a web application which pushed stuff into a DB we didn't control. No source control possible there either. Or backups of old files.

Oh, how fun that was..

ugh. yuck. code in a database smells like wtf to me. been there, its ugly. you could still periodically keep a *personal* revision control, but it'd be hecktic and need lots of checkout/checkin to database transatctions
Kent Fredric
In regards to part 1, if the code is on the network server it is getting backed up.
Suddenly +1 on consideration #2. In well-communicating teams <= 3, it's usually quite easy to arrange work sans any branching.
Seva Alekseyev

Security implications: I need to store passwords in my source code. Company policy forbids giving other employees (including other developers) the opportunity to read those passwords.

You already have more problems than not using vcs ...
Jim T
Don't store passwords in your source code - that's a worse error than not using VCS
That's no excuse. You should add a function that reads the passwords from a file, that is not under version control.
I agree with everyone else who's commented. Storing passwords in source is horrible. They really shouldn't even be in a file unless they are hashed.

I'm a professional programmer and I don't have to justify my working practices when they don't impact on anyone else.

If someone else owns your work product (or is an agent of an entity that owns your work product), they have a legitimate means to be concerned if your work practices take less than due care of preserving the product they pay for.
Charles Duffy
As a professional, I *of course* keep regular backups.
Sorry, you can't have it both ways: Either you are a professional programmer (and therefore, your working practices have a significant impact on your code, which has a significant impact on your client), or your working practices don't have impact on anyone else (but writing code by yourself for yourself doesn't make you a professional programmer).
+2  A: 

To me this seems like repeating the same (very popular) topic as in:

Source control system for single developer



I don't have time to set up / learn how to use version control because I'm too busy to rewrite code that I accidentally deleted.

  • Source control costs time and/or money which I (or manager) don't want to invest.
  • I had a bad experience with SourceSafe corrupting my files once.
  • There is no source control system which perfectly adapts to my needs.

False security: If I delete my local source, assuming that it is in the SCC, and the server hosting the SSC crashes, the whole thing is gone.

Version control != backups
version control should be verified, if you really care
Stu Thompson
and you can also delete you root project directory if you don't have any source control, no problem...
+41  A: 

You hate your company and want to see them fail.

David McLaughlin
And your own reputation tarnished in the process? No, I think its time to quit..

You hate your job and want to get fired.

Or maybe your company cannot fire you and they can only "let you go" which means severance package?

Brian G

You MUST always use source version control, specially if your are part of a team. Not in a million year should this be left out of any software development project!

Marcos Bento
+17  A: 
Andrew Edgecombe
+117  A: 

The sense of danger gives my programming an edge

Ian Hopkinson
Sara Chipps
I get enough sense of danger from the procrastination on Stack Overflow causing me to bump deadlines.
I always program from atop a slow-moving conveyor belt approaching a spinning circular saw.
remember the last time that you got cut on that edge?
@ j_random_hacker will you be upgraded to a fast-moving conveyor belt any time soon?
João Portela
+1  A: 

Not exactly an answer to your question but I like these stories from The Daily WTF in regards to Version Control.

Onorio Catenacci
+5  A: 

You may not want version tracking in a highly classified, highly paranoid environment, where who/when/why and what-came-before, are exactly what you want to expunge.

(I have never actually encountered this, and I have worked on classified projects.)

Think CIA black op, or presidential campaign.

Chris Noe
"presidential campaign" nice
so you create the repo inside a hidden encrypted volume that exists on a second hard disk in the same machine. You version track until the work is done. then dump everything but the final version.
+4  A: 

Some might think that it's job security. I disagree, but I've seen that line of thinking manifested that way.

Chris Ballance

If you a masochist that loves to re-write and redesign applications, then I would avoid using source control.

Unless of course you have an actual job in software development, in which case it's unlikely you are a masochist that loves to re-write and redesign applications.

+1  A: 

For tiny program or projects, used just as a proof of concept. Not using version control saves you the trouble of creating a repository and configuring it.

Maybe, but... with some tools you can have a working repository really really fast, like my dreamhost hosting, 10 minutes and my online repository is ready.
That's no excuse. I use a preconfigured sandbox-repository for all test-stuff, proof of concept and similar stuff. No need to setup a new repository for every project.
$ mkdir newdir$ cd newdir$ hg initThere, I've configured my new repository.
Matthew Schinckel

I thought long and hard, even looked at my own situation at work. I just couldn't think of a good reason. I tried, I really did...

Redbeard 0x0A

Copying directories of code around is the same thing as version control and it's free!

Subversion(SVN) IS version control and it's free!
Git is version control and it's free. It's also crazy fast, and easier to manage.
Dan Udey
Copying directories of code around is only free if your time (large amonts of which WILL be spent loking for some "version" of your code) has no value. Been there, seen that, started using SVN.
+60  A: 

you want to leave no evidence :)

git squash does away with this excuse.
+1  A: 

The only reason I can think of why a developer who is aquainted with source control, and works at a company that uses it for other projects, would want to keep a project separate is that he's somehow ashamed of it. He doesn't want people to scrutinize his code, or he doesn't want others to know the details of the project.

Joshua Carmody
That's what distributed systems like git are for. Keep it in version control without it ever leaving your laptop.
Dan Udey
I'm with Dan. Until a certain PHB was fired all our best code was in stealth projects that had to be ready to ship so that PHB only found out about them at the very moment they were presented to senior management and customers.
Peter Wone
We used Subversion on another server - not wanting our stuff in the official SCS doesn't mean we didn't want version control. We couldn't afford to release unready code, PHB would have assumed control and doomed it.
Peter Wone
+13  A: 

"In my free time, I like bondage, having hot wax pour in my mouth, and sticking forks in my eyes. I'd like to bring some of my hobbies into work, but as the work council objects, I had to find an alternative"

Michael Stum
I found that when everyone wore gimp suits at work it was hard to aportion blame and punishment accordingly. But then I realised that they were all going to get punished severely so did it really matter who was at fault in the first place?
+1  A: 

Source code is for wimps

Martin Beckett

Good excuses include:

  • you like living on the edge
  • you enjoy rewriting code
  • you don't work in a fast-paced environment
  • your boss doesn't care what you do and how long it takes, as long as it gets done... eventually
+150  A: 

A delightful mix of laziness and incompetence.

An anecdote I heard one time in regards to version control:

A younger programmer asked an elder about his code and his coding style, and how the older programmer would do certain things. The older programmer said 'Let's take a look at your code', so the younger took out his laptop, opened his editor, and showed him.

The older programmer looked at the code, thought about it for a bit, and then started editing it. He deleted the class internals, leaving only the structure, and then rearranged the structure, saying 'Here's how I would do it to make it more efficient and readable'. After he was done, he saved the file and gave it back to the younger programmer, who was ashen-faced.

'That... My code is gone!' said the younger programmer. 'But you have it in version control somewhere, right?' asked the elder. 'N.... no.' was the reply. 'Well then,' said the older, 'now you've learned two lessons.'

Dan Udey
Don't give your laptop to anyone, ever.
James McMahon
The young programmer deserved losing his code for not using source control. The elder deserved a punch in the face, though.
Sergio Acosta
Right click -> Restore previous versions! Shadow copy rocks!
Mehrdad Afshari
Where did ctrl-z go?
hasen j
I am missing the punch line: "And the young programmer was enlightened".
Stefano Borini
It's an anecdote, not a koan. Attaining enlightenment is not supposed to result from actual, concrete suffering.

The only time you need to use version control is if a) your code is important, and b) you are fallible. If either of those is false, then no, you don't need version control.

Andy Lester

It's redundant.

I plan to create regular backups of my hard drive instead.

Backup is just one side-effect of good version control.
lol .
Colin Pickard
+1  A: 

If the given project is of such minor importance that completely breaking it or losing it forever would be of essentially no consequence.

Note that a program used by more than one person will almost never satisfy that criteria.

+1  A: 

If I had enough reputation I'd mark you down for the title. You made my hair stand on end reading that title!

Adam Gibbins
+5  A: 

"I'm the only developer, we don't need version control, that's stupid"

That's putting your job on the line, period. Suppose his computer DOES crash, all his work is gone, so in effect, this person hasn't worked at all in the last few days, weeks, months (years???). Is slacking off like this tolerated in your company? I hope not.

Not using Source Control is like having this code in the initialization routine of the application you're developing:

if (Random(1234567) == 0)

Would you bet on that never to happen?

Oh and the irony is, this has actually occurred before and our RCS saved our ass from losing ~200 files
Kent Fredric
please be careful with these arguments. version control is not backup. backup is backup. this can lead someone to think that simply having automatic backup is good enough. you need both
Steven Noble
IMHO it's more like 'if (randomVar = 0) { DeleteSourceCode(); }An eventual certainty is a certainty.
Dan Udey
Yeah, but backing up the SVN server regularly is a heck of a lot easier than backing up developers' laptops regularly.
Adam Jaskiewicz

I tried installing VCS and it wouldn't install. I tried building it from scratch and the build failed. It was an earlier version of VCS, and it ran on an earlier version of an operating system and hardware that I no longer use. VCS had all of these dependencies, and shared libraries that it assumed were already installed. I could not get access to the older operating system and hardware anymore. I was basically locked out from accessing my source code because I couldn't run VCS anymore. VCS was no longer maintained by anyone. I wish I had a backup of my source code even without the older versions.

So, I wrote a command called ci (copy it) which would automatically increment a revision number, prompt for a comment, and tar my current project folder with the new revision number and include the comment in a little text file named CHANGES in the same project folder.

Mark Stock
So in point of fact you wanted version control so much you rolled your own.
Peter Wone
I think that, right, you are. Hmmmmmm.
Mark Stock
there is always hosted version control...
Stu Thompson
+1  A: 

If your IDE has source-control like features, you may be able to get away with no source control... Netbeans, for example, has a "local history" feature that will keep a history of every save you make to your project files. You can perform diff's and reverts back to local history much like source control. For a solo developer, this may give them the basic set of features they want out of source control.

If your choice is between Visual Source Safe and manually performing version control (i.e. manually making snapshots via the file system), I would opt for no version control... VSS to this day still has reliability problems (at least for me).

Even with a version control (or local history), you still need to backup... I've seen way too many developers keep their CVS/SVN repo on on their development machine (often a laptop), or check-in to a server with no backups...

All that said, I always use version control... and my paranoia extends to having redundant backups of the source control server as well as offsite backups.

James Schek
+23  A: 

How about...

It's not really my code in the first place. I just copied and pasted it from a web tutorial. If I lose it, I can just find that web site and get it again. Besides, it doesn't work, anyway.

Bruce Alderman
I suppose the web is your version control in this case. Hell, Google cache is probably more reliable than Vis SourceSafe! ;)
+6  A: 

ClearCase -- this is a very good reason not to use source control ... (but I used the demo version of Perforce instead :-) )

Exactly - if the VCS you're supposed to use is too complex, use a simpler one (SCCS or RCS or CVS or git or SVN or ...).
Jonathan Leffler
+2  A: 

Version control makes most sense when there are versions to go back to. For very early in a project, and for throw away programs, there usually isn't anything to go back to. I usually only check stuff into version control once my program does something

Matthias Wandel
I tend to program bottom up, so and I wouldn't be willing to delay checking stuff in for weeks or months at a time. ;)
Scott Whitlock
+4  A: 

It's just an "Hello World!" application. We don't need version control for that!

so then you're just a "Hello World!" programmer? The most basic there is, does nothing.
I wonder how many revisions GNU's /bin/true program has. Let alone a "Hello World!" application.

The Pragmatic Programmer actually makes the case for using cvs for all config files on your system. I've not yet gone that far, but it's on my list.

Sindri Traustason
+1  A: 

There is truely no single good reason.

I even use source control for private use, e.g. when coding just for fun, trying out some new technology, or something else. I would even use version control for all other files I've got, but that would be quite of an amount of storage and it wouldn't make sense mostly for binaries.

+1  A: 

I think it would be a great excuse if you were clinically insane.



I'm using VB3 and source control breaks frx compatibility!

Eduardo Molteni
+2  A: 

I've got one... seriously:

I can re-create all the code that was not in source control faster than anyone can retrieve it from source control.

It can and does happen to very very small amounts of code.

In which case the code is so trivial to be useless. Given that code retrieval takes a dozen or so keystrokes or 3-4 mouse clicks...And if the code was useful, then I bet you'll regret that decision 6 months later.
No one stipulated the code should be useful. Also I was thinking more about how long it takes for my svn client to talk to the server after the proxy of course and then write everything to a 90% full disk.

Actual reasons against the adoption of version control,

  • Because it is a new concept to learn which is more complicated than a shared folder

Reasons which make version control less compelling,

  • Shared folders copied locally, although have less functionality, do actually work fine for certain codebases
  • Certain types of coding projects have relatively little use for versioning, namely code that is isolated and static i.e. written by a single programmer using very little shared code, that does not need to be developed once working
  • Because the admins won't allow it across the network

For the casual programmers - those to whom programming is just a tool, such as many of the people I work with (scientists) - much of the work is hackish and small scale with relatively little shared code, there may be a dozen other things that are more likely to fail outside the code which could also be eliminated with better practices.

As a colleague put it, "we don't get published for writing beautiful code".

you don't need a network for using version control, have you heard of git?
Yep, I use Mercurial and SVN at the moment for personal projects, but the argument for source control is less compelling for group development if network admins won't allow it over a network (but do allow shared folders)
I edited to rephrase that lack of network access makes the argument less compelling rather than being a reason why not to adopt
I use git for stuff that never leaves my computer ... its not all about sharing, some of its being able to make mistakes with your code, and rewind backwards through time to see what I did wrong without having to spend days recoding it. I also make clones of my own repositories for different tasks. It also saves your ass when you by accident truncate a file :)
Kent Fredric
I really enjoy using Mercurial for that reason, the concept of 'rewinding' back to a previous version really makes sense - I haven't tried git yet but then that's another story...

My Answer: You program on a mac that uses Time Machine or you can't use Subversion (I personally use both.)

The excuse someone above gave that using VCS isn't going to help if your system crashes is just dumb (for one thing you can still usually recover data from corrupt hard drives).

Never ever host your version control system on the same computer/hard drive you use to develop.

If you're worried about bigger disasters then host or backup your version control data to an external source. It's really not that hard considering how many times you'll throw up if you lose the past 5 years of work.

One time I thought I lost about 3 years of work and I nearly got sick. A few months later I managed to recover it from the trash folder on another hard drive. My relief did not compensate for the reaction to thinking I lost it all.


Honestly, the only time I've ever not wanted to use source control was when I was coding some actionscript on a Mac. We use subversion (f'in awesome, it is) and the SVN plugin for Finder was less than functional. I simply LOVE the Windows Explorer TortoiseSVN extension, and it's not that painful to use the command line on a linux box either. I find terminal on the Mac to be frustrating at times, however, probably because it just feels so disconnected from the rest of the OS.


VSS has reliability problems, I keep hearing. I admit it lost something on me once in five years. Even if it's one of five, it's better than no source control at all. In fact, I almost wish it would do that because then I'd be able to persuade management to buy (or allow use of) something better.

As for one-off code, I recently got off my back a kludge that was supposed to last a few months six years ago and just kept growing and growing.....

VSS and I got in a fight when I first started programming professionally. It might have been my fault, but I've always held a grudge.
Although I no longer use it and when I did it was on very small teams, I never got bit by VSS in the ~10 years I used it as my primary SCM for some prety large projects. Guess I got lucky, or perhaps I just didn't notice the corruption because I didn't have to go very far back that often.
lol @ wonderchook, I was just about to say that.
Ric Tokyo

How about this?

"Source Control systems keep a permanent record of every mistake/bug I have ever made and then later fixed. I am a poor programmer that frequently needs to clean up the crime scene."

then you use git.

You've been kidnapped and are being forced to code for the Nazis

(happened to me more than once)

Ric Tokyo
+1  A: 

There is only one version of my code. Just one.


You are a programmer in a developing nation sharing an OLPC with the rest of your community, there is no internet access, and the computer lacks adequate space to support a version control system.

Still no excuse: git doesn't need a network and uses hardly any disk space.
If you have such limited IT resources, perhaps writing a computer program isn't the best way to solve the problem at hand.
+19  A: 

"For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is" --Torvalds

If you've got quick/easy/automatic backups, you've already got 95% of what most of us use VC for. Somebody with a local DVCS repository on his HD but no backups is actually in much worse shape.

Using a VCS does have a real cost, and it's usually a small one but not always. Every VCS I've ever used, I've had days where I had to fight with it for hours just to get it to do something that should have been simple.

To those that think "There are no good reasons not to use version control", where does it end? Must every project have 100% unit test code coverage? Must every project have code reviews? Coding standards? A complete functional spec?

There's a whole spectrum of programming projects in the world. Not everybody is writing code for the space shuttle. Sometimes being able to diff my code from 11:00am and 11:30am is simply not that important.

Some are merely managing globally-distributed teams of thousands writing operating system kernels.

I think you'll find that the Linux kernel has been under source control since 2002. In fact, the aforementioned Mr Torvalds actually wrote his own source control system for it. (Git.)Admittedly it was a different picture ten years ago, when source control was either expensive or CVS, but a lot of the modern ones such as Git, Mercurial or Bazaar are much lower friction.To those that think "Where does it end" -- Must every project have backups? Must every IDE have an undo button? Must every project be saved to disk?The only code that doesn't need source control is throwaway code.
I'm not sure you can make the argument of "where does it end." In my mind, if you already have a source control system setup, there is little to no cost to use it, and it's a good practice to get into for so many reasons.Unit test code coverage, code reviews, etc are not as intuitively good and are not always appropriate (or at least, have not proven to be as useful as version control). The responses from other individuals on this site should suggest how useful a VCS is.
*I've had days where I had to fight with it for hours just to get it to do something that should have been simple* I've had days like that as well eg svn directory recursively locked
@jammycakes: To be precise, the Linux Kernel moved to (the controversial) BitKeeper in 2002. Before that, the development was done without a source code management system. This is detailed in and the answer is correct.
Pascal Thivent
Hey, that's not an argument against Source Control, just that CVS was a really poor tool... it is indeed arguable that using patches is a better source control than CVS, but not better than git ;-)
+12  A: 

Small, and by small I mean less than a half hour of playing around in a new project, just to try out a method, run a quick test on a service, answer a forum question, etc.

I have literally hundreds of these tiny projects that I've done over the years. Most of them are just a way to try something out in a clean environment, before importing it into a larger (and source controlled) project. Every once in a while I go through the folder of these and delete old ones that I know I dont need anymore. Typically some of these apps last on my hard drive less than a week.

Neil N
i agree. this is the one really legitimate case. I also have dozens of test projects full of junk code I was just experimenting with. Anything that turns into something gets transplanted to a real project and put in source control. The very idea of all my ramblings being archived gives me a headache.
Fully agree. My StackOverflow answer code is not going in to version control. Unless you consider SO version control of course.
+3  A: 

Perhaps you use Plan 9 operating system. If I were using that OS with its native filesystem, I would not need source control.

+1  A: 

I thought it maybe worth adding quickly that if you're on a strict short term deadline and don't know how to use source control it's probably better not to go through the paces. yes it's easy to use, but it may not be worth it in the long run. (This happened to my brother recently as he go thrown in to a programming role he probably wasn' prepared for).


You don't need version control if you are Chuck Norris, else its definitely required!

+1  A: 

I have avoided checking my code into VCS systems many times.

First, if the project is disposable/only used once, the last thing I want is to have a project in source control where years later, I can't remember its purpose. You might respond, "That's what documentation is for", but that would be a disengenuous comment because why would you take time to document a disposable project unless you have a lot of time on your hands?

The same is true for prototypes. If a prototype fails to prove itself valid then it is disposable. However, if it proves itself true then I would agree that it is important to check it in.

If you're worried about backups, then put the code on the network server so it's backed up.

Consider the main functions of VCS: 1. Collaboration and 2. Change management. If you're the only developer, there is no need to collaborate, and if it's a disposable project, there's no reason to manage changes.

Your post would be better off describing the purpose of your co-worker's side project especially since it's off the main tree, otherwise, you offer a generalization that leads to the many overly cynical/critical comments that have been left.

This could be an argument against using centralized version control, but not against all version control. A project is no more difficult to dispose of if it's a Mercurial/Git/Bazaar repository -- rm -rf dir/ and it's gone.
Steve Losh
+1  A: 

My boss won't let me? (true story, I do it secretly :S)


you're the best coder in the world (and all your teammates as well) - then it's just needless

This is preposterous. Only carmack is the best coder in the world!

How about this

  1. I don't need version control because I have incremental backup system.

  2. I am an ABAP programmer... :)


Excuse given to me: "I never make mistakes and won't need to restore previous versions."

Now that I'm using TFS, I can safely say, I get nervous writing code while not using it.

+9  A: 

I can't find a version control system which works with punch cards.

I think it's called a shoebox!

I maintain a complete version history of each file, within the file itself. I always comment out old code instead of changing it, that way I have a visual history. Example:

// float calcInterest(float value) {
//    return 0.0125 * value;
// }

// never return a negative amount 2009-05-01
// float calcInterest(float value) {
//    return Math.abs(0.0125 * value);
// }

// increase in interest rates 2009-06-03
float calcInterest(float value) {
    return Math.abs(0.015 * value);

The beauty is in the simplicity!

oh dear, please no. Daily WTF candidacy there.
Kent Fredric
+1 for the laugh
+1  A: 

Not sure if someone else has already said this, but perhaps:

"I'm working on gigantic binary files (raw HD video footage, etc) where the structure changes drastically when you save it. This means diffs provide no extra compression, so each revision would take a ton of (read: gigabytes of) space."

If you're talking about source code there are no excuses. Git, Mercurial or Bazaar would take a day to learn and a tiny amount of time to use, and they would pay for themselves a hundred times over the first time something went wrong.

Steve Losh
If you were going to keep backups of those huge binary files, keeping them in version control would provide the ability to back them up with only a few clicks (and no need to choose a new directory or filename) or optionally, with commit comments. This would make it worthwhile even if it didn't save space.
Jeanne Pindar
+1  A: 

Because I trusted Bill when he said,

640K ought to be enough for anybody.

.....and I just ran out of space...




If the person is adamant about not using source control, then I hope that they atleast back up regulary to an external device.

Chris Kugler
+6  A: 

Everybody is giving some variation of "there is no excuse" or "well maybe if you're stupid!", but this seems entirely inconsistent with what I see other people actually do.

For example, how many people here have all your email, digital photos, web browser bookmarks, and system configuration in a version control repository? I know some people do (hi Joey!), but most people I know, even most programmers, don't.

The comeback is probably going to be "well, I have backups, and I don't need to track changes to email, or branch my photos, or ...". Great! So let's try to extrapolate from that to when a reasonable person might think that version control is unnecessary:

  • a bunch of small, independent pieces of data
  • that are inherently temporal, and are rarely edited in-place, in the sense that changes consist primarily of adding new data
  • which might be large binary files, a weakness of VCSs
  • which might live in a program-specific format (like an SQLite db), for which it would take an extra step (or twelve) to get the data in a format that would actually be useful to track in your VCS
  • which are already backed up

That seems like a good starting point.

Of course, I want to track everything in VCS, but due to the above issues, it would take more effort than it's worth. I wish programs I used would store data in formats that made it easy to use a VCS, and I wish VCSs were better about tracking data which isn't just "all text files below a certain folder". (Text files were something Unix got right! Sadly we've got some kind of AT&T-MIT-Microsoft-Xerox hybrid architecture going on, which doesn't let the best of any philosophy really shine.) That's just not the world we live in, for better or worse.

+1  A: 

This project is for my personal use and I don't care if I lose it.

+1  A: 

I have actually heard a good answer to this question.

I did not know what it was, and I do not know how to set it up

If you are new to programming, you just would not even know source control existed. And all the tools out there, have a learning curve involved. Those sorts of programmers at least have an excuse for not using source control.

But still, always use source control.

+1  A: 

Real men don't use source control.


Would you code without an undo feature in your editor?

(I did, the other day; I was editing Visual Studio macros and the undo feature broke for some reason. It's an absolute nightmare to realize you miscorrected something and can't just undo to get it back.)

Version control is akin to a multisession historical undo.


I think the best excuse for not using version control are

A) Ignorance: Not being aware of such a thing.

B) Not being able to figure out how to set it up and having no one to show you how!

John Isaacks
Seriously, I have been trying to do this for a very long time. But I have no experience and I know no one with any experience. I have asked for help on several forums and read several materials on the subject. I have spent several hours without making hardly any progress on it. That is why I am not using version control. Although I would love to be.
John Isaacks

Good answers all -- gave me a chuckle. I suspect anyone who's developed software with one other person in their life learns version control religion in a hurry. However, I recently wrote an article on revision control (from an OS- and VC-agnostic standpoint) and mentioned that while there are few situations I'd want to not use VC, someone on stackoverflow did bring up what I thought was a legitimate reason: suppose you're working on a legal case where all your stuff is discoverable. You might not want the opposition to be able to see all that development information, mistakes, etc.

Thats why you give them a tar.gz, not source access. =)
Kent Fredric

vim has a recovery mode right?

+1  A: 

Hey, leave me alone, I'm not a programmer, I just came in to repair plumbing...