share
Stack OverflowGood excuses NOT to use version control
[+179] [92] Kent Fredric
[2008-09-25 10:32:12]
[ version-control ]
[ http://stackoverflow.com/questions/132520] [DELETED]

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 )

(5) dropbox for a VERY VERY simple version controlling for a lazy newbie? - zengr
[+757] [2008-09-25 10:32:54] Galwegian [ACCEPTED]

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


Too bad I can only vote this up once! - jop
what else can be said... - spinodal
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
(1) 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
(84) 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) - slashmais
(148) Having worked on solo projects: I have met the enemy and he is me. - Alan
(28) 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. - Brendan
(1) @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
(28) 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
(7) @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
(1) @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
(3) @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. - jprete
Not using it properly is equally bad. - schar
Its called "Extreme Programming"! - Nippysaurus
@Brendan: I disagree, they would be so much better! This is one of those things that you don't know you were missing until you used and understood them. It should be taught in highschools. - eordano
Experienced developers should expect at least 50% of development hours to be debugging. Most of that will be finding mistakes, and some will be fixing those mistakes. That being said, You Will Make Mistakes. Version control, used properly, WILL eventually save your bum. - Jeff Wolski
1
[+258] [2008-09-25 10:35:22] Sergio Acosta

I can think of one:

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


(12) That was funny! LOL Sounded like something Homer Simpson would say. - Hector Sosa Jr
(6) Very Funny. Would Laugh Again. A+++++++++ - Robert Venables
(2) Thanks to everybody that voted up this silly answer for my first 'Great Answer' badge. =) - Sergio Acosta
2
[+221] [2008-09-25 18:17:13] Dan Udey

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.'


(53) Don't give your laptop to anyone, ever. - James McMahon
(60) 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
(25) Where did ctrl-z go? - hasen j
(24) 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. - Novelocrat
Excellent story! - Paul Pladijs
3
[+195] [2008-09-25 10:52:49] Matt Howells

Excuse for not using source control:

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


(3) Best answer !!!! - zaca
Anything But SourceSafe: codinghorror.com/blog/archives/000660.html - zaca
(50) As bad as SourceSafe is, its better than nothing. - Paul Batum
(38) 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. - borjab
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. - Bryan Rehbein
Source Safe isn't nearly as good as SVN or other solutions. Still, it's preferable to no source control at all. - Joshua Carmody
(1) 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. - JosephStyons
(9) I'd rather rewrite ten years of code than use Source Safe! - Jrgns
@kogus - agreed: same situation, no problems. - Pat
(1) Concidering I've had to rewrite things that VSS killed as I checked it in - I'm not so sure. - Aardvark
Saving your project in a ZIP file daily, and adding a number to the archive name (like MyProject01.zip, MyProject02.zip,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
(6) 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. - rslite
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
(1) @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! - raimesh
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
(1) Sometimes it is better to do something even if you are not "allowed" to do it. - Kramii
(2) Source Safe is a misnomer... I've lost vast tracts of work due to configuration changes outside of VSS. More like Visual Source Suicide! - Hooloovoo
(1) 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. - tsilb
As read somewhere on the net: "VSS makes easy trivial and hard impossible" - Miro A.
4
[+167] [2008-09-25 12:31:24] Ian Hopkinson

The sense of danger gives my programming an edge


(13) haaaaaaaaaaaaaaaaaaaaaaaaa - Sara Chipps
(30) I get enough sense of danger from the procrastination on Stack Overflow causing me to bump deadlines. - CindyH
(6) I always program from atop a slow-moving conveyor belt approaching a spinning circular saw. - j_random_hacker
(1) remember the last time that you got cut on that edge? - CheeseConQueso
@ j_random_hacker will you be upgraded to a fast-moving conveyor belt any time soon? - João Portela
5
[+83] [2008-09-25 17:46:51] mike511

you want to leave no evidence :)


(12) git squash does away with this excuse. - Abizern
6
[+73] [2008-09-25 11:05:25] Roddy

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... - ya23
(5) 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. - whatnick
+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
7
[+70] [2008-09-25 10:39:33] alexmcchessers

Visual SourceSafe ate my dog.


(17) 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... - Bryan Rehbein
(1) Don't make your VCS the ONLY copy - BCS
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
(1) "Are there any good excuses not to use Visual SourceSafe?" is a whole different question, with many many (MANY) good answers! - raimesh
(4) 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. - j_random_hacker
(1) @SiKeep This is a variation on the old school boy excuse "My dog ate my homework." This comment was bought to you by the Ministry of Excuse Etymology. - Giles Roberts
8
[+54] [2008-09-25 10:51:32] Joeri Sebrechts
  • 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).

(7) 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
(10) 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! - Hooloovoo
(7) Oh my god. You get voted up for having the first honest attempt at an answer. - Beska
+1 for VCS not being a backup system! I still use VCS for toy projects though, perhaps the best way to learn about a VCS. - g t
9
[+49] [2008-09-25 11:47:51] David McLaughlin

You hate your company and want to see them fail.


(6) And your own reputation tarnished in the process? No, I think its time to quit.. - Kramii
10
[+34] [2009-02-18 01:16:49] Ken

"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.


(12) 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. - jammycakes
(4) 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. - JasCav
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 - mikek3332002
@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 en.wikipedia.org/wiki/Linux_kernel#Revision_control 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 ;-) - kriss
11
[+32] [2008-09-26 00:36:46] Bruce Alderman

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.


(3) I suppose the web is your version control in this case. Hell, Google cache is probably more reliable than Vis SourceSafe! ;) - rally25rs
Still a weak excuse. Even if it is copied from somewhere... or rather especially if it came from outside, it's very important to document exactly what came from where and who actually owns it. SCM is not just for keeping versions of code, but also for documenting the flow of that code. - TokenMacGuy
12
[+26] [2008-09-25 10:40:13] Martin OConnor

Excuse:

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.


(7) 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. - Guvante
(3) 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
(1) 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. - ComSubVie
(1) 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
(3) Have a sandbox repo! - BCS
(1) I put even my prototypes and learning projects in version control. That's no excuse. - Chris Charabaruk
(1) 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
(1) @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. - raimesh
If you'd be unwilling to remove "Undo" from your editor, you should be unwilling to work without source control. - J Wynia
13
[+23] [2009-02-18 01:36:19] Neil N

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.


(3) 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. - LoveMeSomeCode
(5) Fully agree. My StackOverflow answer code is not going in to version control. Unless you consider SO version control of course. - extraneon
To be fair, with the editing features, diffs and automatic backup, SO is very much like a version control system. - Tikhon Jelvis
14
[+22] [2008-09-25 12:10:03] Andrew Edgecombe

"I am the 'Pantless Prima Donna'! I need none of your mortal tools! I am infallible. Version control is only for people who expect to get it wrong the first time!" :-P

Dilbert


15
[+21] [2009-08-27 17:37:40] Ken

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) I would suggest that a VCS system is required whenever files must be kept in sync, rather than merely backed up, and especially if it can be important to find out when and why a change was made. - Arafangion
16
[+18] [2008-09-25 17:54:28] Michael Stum

"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"


(1) 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? - graham.reeds
17
[+17] [2008-09-25 10:51:37] Rob Cooper

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".


I love the heading :) - Teifion
18
[+16] [2009-08-14 02:26:56] brianegge

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


(5) I think it's called a shoebox! - mbmcavoy
19
[+9] [2008-09-25 10:34:02] petr k.

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


20
[+8] [2008-09-25 11:01:44] Kent Fredric

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.


21
[+8] [2008-09-25 11:11:23] SCdF

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. - Brian
Suddenly +1 on consideration #2. In well-communicating teams <= 3, it's usually quite easy to arrange work sans any branching. - Seva Alekseyev
22
[+7] [2008-09-26 02:31:15] Pat

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
23
[+6] [2008-09-25 22:40:54] steffenj

"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)
{
 DeleteSourceCode();
}

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
(5) Yeah, but backing up the SVN server regularly is a heck of a lot easier than backing up developers' laptops regularly. - Adam Jaskiewicz
24
[+6] [2008-09-25 10:34:37] Nescio

...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!!! - trinithis
25
[+5] [2008-09-25 12:45:51] Chris Noe

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.


"presidential campaign" nice - s_t_e_v_e
(5) 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. - kdmurray
26
[+4] [2008-09-25 13:25:05] Chris Ballance

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


27
[+4] [2008-09-25 10:41:17] Skuta

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 ^^


28
[+4] [2008-09-26 09:49:14] ksuralta

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. - kaizer.se
(1) I wonder how many revisions GNU's /bin/true program has. Let alone a "Hello World!" application. - Arafangion
@Arafangion: Have a look at the source to GNU Hello. It's quite impressive. - Novelocrat
@Novelocrat: Having seen the changes to /bin/true, I'm frightened to look at GNU Hello! - Arafangion
29
[+3] [2008-09-25 10:39:05] Adrian

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. - kdmurray
30
[+2] [2008-09-25 11:02:29] cnu

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. - gbarry
An hour is a long time! I find it's less work to type "hg init && hg addremove && hg commit -m 'yay codez'" than it is to pick a filename in the first place. If I'm saving it to disk, I'm putting it in a repo. One-offs have a way of being needed later by a different person, and in fact we have a shared "oneoffs" repo here. :-) - Ken
31
[+2] [2008-09-25 11:15:58] Suma

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

Source control system for single developer [1]

[1] http://stackoverflow.com/questions/45400/source-control-system-for-single-developer

32
[+2] [2008-09-26 02:55:07] Matthias Wandel

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


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
33
[+2] [2009-04-20 04:14:14] Joshua

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


You'd still need source control so that you can figure out /why/ you made the changes. Of course, that does assume you actually put comments in rather than just say "Work in progress for v0.1". - Arafangion
I'd use inline comments. - Joshua
34
[+2] [2009-08-13 13:28:35] borisCallens

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


35
[+2] [2008-09-30 23:11:14] dlamblin

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. - Zathrus
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. - dlamblin
36
[+2] [2009-02-18 01:08:59] alamodey

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


37
[+2] [2009-08-14 02:33:00] brianegge

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!


(7) oh dear, please no. Daily WTF candidacy there. - Kent Fredric
(1) +1 for the laugh - kriss
38
[+2] [2009-09-23 22:28:08] Dave

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


39
[+2] [2010-07-12 19:36:29] kriss

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


40
[+2] [2011-09-26 15:48:33] Lorenzo Solano

For me, reason #1 is the following:

A bad behavior without consequences, is repeated.

I wrote about the subject on this post: Why developers don’t use a Version Control System (CVS, SVN, Git, Hg, ...)? [1]

All examples are from real people, but changed a little to avoid

[1] http://tales-of-agile-adoption.blogspot.com/2011/09/why-developers-dont-use-version-control.html

41
[+1] [2010-04-15 20:38:24] John Isaacks

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!


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
42
[+1] [2010-07-10 00:18:36] mattben

vim has a recovery mode right?


43
[+1] [2009-11-23 01:08:32] djacobs7

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.


44
[+1] [2010-03-08 16:09:29] jmoz

Real men don't use source control.


45
[+1] [2009-08-14 20:32:33] Steve Losh

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.


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
46
[+1] [2009-08-14 20:46:09] Egwor

Because I trusted Bill when he said,

640K ought to be enough for anybody.

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


64K, if to be precise - shbk
47
[+1] [2009-08-18 11:46:17] m_oLogin

masochism


48
[+1] [2008-09-26 10:11:18] cretzel

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.


49
[+1] [2008-09-26 10:57:15] Oak

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


50
[+1] [2009-08-13 14:56:00] community_owned

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! - Welbog
51
[+1] [2009-06-17 08:43:04] PintSizedCat

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).


52
[+1] [2009-08-13 12:34:07] Kirtan

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


53
[+1] [2009-08-13 13:09:53] Brian

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
I agree with Steve. Regardless of how long a project lives, you can delete it at any time from VCS. I don't see any negatives to using VCS, only positives. Let's say the project thrives, you gain more developers, and they want to see the history of some files, for example. I think avoiding VCS is more of an ignorance or shortsightedness than a defensible stance. - Lo-Tan
54
[+1] [2008-09-25 18:10:05] Kon

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

55
[+1] [2008-09-26 00:18:15] James Schek

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.


56
[+1] [2008-09-25 17:50:28] Joshua Carmody

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.


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
(1) 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
57
[+1] [2008-09-25 19:39:52] Wedge

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.


58
[+1] [2008-09-25 20:59:33] Adam Gibbins

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


59
[+1] [2008-09-25 11:53:28] Brian G

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?


60
[+1] [2008-09-25 11:35:56] Benjol
  • 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.

61
[+1] [2008-09-25 12:35:16] Onorio Catenacci

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

[1] http://thedailywtf.com/
[2] http://thedailywtf.com/Articles/Source-Control-Mastery.aspx
[3] http://thedailywtf.com/Articles/The_Best-est_Version_Control.aspx

62
[+1] [2008-09-25 17:35:31] Jonas

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. - levhita
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. - Mnementh
(2) $ mkdir newdir $ cd newdir $ hg init There, I've configured my new repository. - Matthew Schinckel
63
[0] [2008-09-25 17:42:43] Bryan Rehbein

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...


64
[0] [2008-09-25 14:42:35] databyss

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.


65
[0] [2008-09-25 11:40:47] Treb

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 - Piskvor
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... - kriss
66
[0] [2008-09-25 12:08:36] Marcos Bento

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!


67
[0] [2008-09-25 11:19:12] Vertigo

excuse:

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.


68
[0] [2008-09-25 10:42:24] Blorgbeard

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


69
[0] [2008-09-25 11:09:52] PhiLho

"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
70
[0] [2008-09-25 10:57:24] CiNN

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


71
[0] [2008-09-25 18:18:44] Andy Lester

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.


72
[0] [2008-09-25 17:54:38] Martin Beckett

Source code is for wimps


73
[0] [2008-09-25 22:55:11] Mark Stock

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.


(1) 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
74
[0] [2008-09-26 10:11:11] Sindri Traustason

The Pragmatic Programmer [1] 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.

[1] http://rads.stackoverflow.com/amzn/click/020161622X

75
[0] [2009-08-13 15:04:31] THEn

How about this

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

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


76
[0] [2009-08-14 02:11:33] Stevoni

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.


77
[0] [2008-09-30 17:57:12] Eduardo Molteni

Excuse:

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


78
[0] [2008-10-09 18:16:04] Brendan

Actual reasons against the adoption of version control,

  • Because it is a new concept to learn which is more complicated than a shared folder
  • Botched merges insert all sorts of 'diff' guff into files
  • Extra software to configure/maintain on workstations for sysadmins
  • It adds an extra step to the development process

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? - hiena
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) - Brendan
I edited to rephrase that lack of network access makes the argument less compelling rather than being a reason why not to adopt - Brendan
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... - Brendan
79
[0] [2008-11-08 23:27:46] Chris

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.


80
[0] [2008-11-09 00:41:57] community_owned

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. - wonderchook
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. - JohnFx
lol @ wonderchook, I was just about to say that. - Ric Tokyo
81
[0] [2009-02-06 15:51:38] JohnFx

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. - kaizer.se
82
[0] [2009-08-27 16:41:28] Chris Kugler

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


83
[0] [2010-03-23 20:40:03] Kyralessa

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.


84
[0] [2010-07-10 00:14:56] user387958

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
85
[-1] [2009-02-18 01:12:09] cmsjr

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. - Pod
If you have such limited IT resources, perhaps writing a computer program isn't the best way to solve the problem at hand. - Kramii
a developing nation is no excuse. Just an opportunity for those whose jobs are threatened by outsource to be smug.. - Andrei Rinea
It wasn't intended to be smug. I used the scenario because the question reminded me of an article about OLPC usage in Sub-Saharan Africa where they were creating apps to assist in agricultural planning and abstracted that to one where source code control would become a non-priority. The intent was light-hearted, I apologize if you took offense to it. - cmsjr
86
[-2] [2008-10-28 05:17:57] community_owned

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.


87
[-3] [2008-09-25 11:11:36] community_owned

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.


(3) You already have more problems than not using vcs ... - Jim T
(3) Don't store passwords in your source code - that's a worse error than not using VCS - belugabob
That's no excuse. You should add a function that reads the passwords from a file, that is not under version control. - Mnementh
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. - Derrick
88
[-3] [2008-09-25 11:13:17] community_owned

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


(2) 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. - community_owned
(2) 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). - Piskvor
89
[-3] [2008-09-25 17:45:34] marc

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


(2) Subversion(SVN) IS version control and it's free! - levhita
(4) 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. - Piskvor
90
[-4] [2008-09-25 11:01:46] Philip Morton

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


(1) 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
(1) I disagree... Time Machine is backup and not VCS. - Steven Noble
(1) 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. - aaaidan
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. - user57368
91
[-6] [2008-09-25 19:20:31] community_owned

It's redundant.

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


Backup is just one side-effect of good version control. - Black
lol . - Colin Pickard
92