and maintainer of:
I am sick and tired of reading code where large sections are commented out, this mean I have to skip large sets of lines and this disturbs my reading of the code.
An even worse practice is when the entry points are renamed. Like subs are renamed to
dostuff is the one currently used.
The later probably being one of the worst, I have seen some of these in XSL style sheets where the match tag id disabled so it does not correspond with your XML. So the code is not really commented out, it is just never entered, very misleading.
I call this stupid mans revision control.
Comments in code are nice and sometimes you comment out something for debugging or disable a feature, even in production, since this is simply faster, we know it is the right way, but we do it anyway.
The problem with the last practice is that you overwrite everything also these small fixes when you deploy the next release. So I will argue that if you find it necessary to apply such fixes in your production code and you can not propagate the fix back into your SCM you need to work on your setup one way or the other. Your SCM should at all times be the sole place of reference.
Yes, CVS and SVN and all of these might not be the answer to all your problems but if you work around them they are not really put to use and instead they become a poor man's backup tool instead of a poor mans revision control.
I am no SCM superman, but I force myself to use SCMs and learn new stuff all the time, it is uphill sometimes and I make the same mistakes over and over again (me and CVS import will never ever become friends), but I insist on using SCM and getting the tools to work for me instead of having them becoming a tedious part of doing development.