- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Again? http://what.thedailywtf.com/t/source-history-information-tool/48258
Admin
-sigh-
Paula's at it again....
Admin
Can somebody fix TDWTF to prevent multi-versioned, concurrent front page comment topics?
Admin
At least this one is the real comment thread!
Admin
You want to lock up @PaulaBean in a bathroom stall?
Admin
YMBNH
Admin
Sometimes things produced in the bathroom are the same things produced in code. Maybe Bob knew this by heart?
Admin
So basically, SVN is terrible software because you can't lock files?
Admin
Didn't we have a heated discussion about that not too long ago?
Admin
They're actually right but for the wrong reason. SVN is terrible because it has the merge-then-commit paradigm. IOW, if someone else committed a change to a file you're working on, you have to update first to get their changes. Which can indeed clobber your code.
A proper VCS would let you commit and then merge your changes with the other guy's.
Admin
If there's a bathroom, why is everyone else having to put up with his shit?
Admin
So until you merge there are two incompatible versions of the code in the repository? Doesn't sound optimal to me. What's wrong with seeing and confirming what will change before it's pushed there?
Admin
We call these "branches." You may be familiar with them.
Yes, that's what a decent VCS should do. I'm just saying it should let you commit your changes as your changes, period.
Admin
SVN includes locking specifically for this case. I've used it in the past to help development teams transition from a locking SCM to a branch+merge one. Why would Michelle think she need to writes to write her own hack?
Admin
In a proper VCS, "commit" and "inflict" are two separate actions. Commit means that the state of my code is saved--inflict means that I've forced the state of my code onto others. You can commit, then grab everyone else's changes, clean them up together with another commit, and THEN inflict.
Admin
Heh...I like that. Very blakeypropriate.
Admin
But... you can?
*goes off to install TortiseSVN to test*
:Hanzo:'d because not a reply to that post...
Admin
Either it's an anonymisation failure and the original submission was about a VCS without locking, or the submitter is TRWTF
Admin
+1
@frontpageeditor, was it a different vcs or was Michelle trwtf?
Admin
Management has to approve flushes so they don't happen very often.
Admin
@snoofle has a forum account, though ...
Admin
BUG REPORT: @frontpageeditor does not send an @mention to the front page editor
Admin
Perhaps they could implement some kind of shingle or thatchery based device, and only allow the person in control of said device to alter the critical files. Surely that is a better solution than just assuming conflicts can be easily merged in the few cases they occurs.
Admin
In essence, these guys don't trust the merge part of merge-then-commit.
And, in an absolute sense, they are right. It can screw them over in hard-to-predict ways.(1)
But of course the correct way to express that distrust is, shock, horror, to test the code in between merge and commit...
(1) Consider an ill-advised change of the type of a variable, such as
signed char
tounsigned char
. If my (new) code relies on the signed-to-signed promotion implied by a cast tosigned int
, I will be screwed over when the promotion changes to unsigned-to-signed. My laterx >= 0
comparison will also not do what I want (wherex
is thesigned int
that received the after-cast value), as it becomes "always true" in a way that's hard for a compiler to detect.Automated Unit Testing will probably detect this, but might not in all cases.
Admin
SVN is more like having a second toilet spawn next to you that someone can use that, when they flush, goes down the same pipe as yours.
Admin
So… Git is like everyone having their own toilet and sometimes asking each other if it's OK to throw some shit over the barrier between the stalls?
Sounds reasonable to me.
Admin
I used to think TFS was a decent VCS, until I learned you can't merge your changes with the new main code while "unshelving" a file, defeating the point of shelving them in the first place.
Admin
And flushing requires you to read a long manual (possibly written on the toilet paper), get just the right sequence of wiping, writing things on the wall of the stall and pressing the flush otherwise it all goes wrong and the excreta goes all over you. Then people tell you you're an idiot when you complain you're covered in shit
Admin
Do I dare ask what a rebase is in this analogy?
Admin
Is it worse than shelving?
Admin
Well, no, as I understood it, it is bad because you might find someone sitting on your lap in the bathroom, as you sit on the john.
And, let's see, what happens if you never inflict?
(Love that terminology by the way...but I don't think it's a standard use. And I'm not sure I would like it when you inflict your code on me.)
Which is why merge must be processed by a brain—otherwise, the VCS would handle it automatically. The person doing the merge needs to decide if complete retesting of the module is required not only for the individual changes, but also for the merged change. They can't just flip those two versions together and hope.
To some degree, I can sympathize with "Bob and Jim," because there are exposures when two people work on the same file.
Admin
Admin
So... the problem is that developers may need to communicate with one another, and possibly engage in thinking when conflicts arise. They also would lose the use of "I can't work on that now, the file is locked" as an excuse for doing nothing all day.
Those are both pretty chilling prospects. I can understand why Michelle's changes needed to be stopped.
I would say that this sounded a lot like somewhere I used to work, but the development team there was already "using" Subversion. They just needed a little assistance from the sysadmin team whenever they ran into something complicated.
Like creating a new branch. Or making a release. Or resolving conflicts of any kind. Or spelling "commit" with the correct number of 'M's.
You know, really specialized advanced stuff that most programmers should never need to know how to deal with.
Admin
VSS had(1) some epic issues - the loopiest was in v6 when you used the admin tools to create a repository, and then to validate the state of the new repository and they routinely found errors that needed fixing - but one of the most breathtakingly stupid was the fact that a bunch of metadata about files was not versioned. This bunch included the name, whether the file existed, and various filetype flags (especially the binary/UNIXtext/DOStext/Mactext flag). Yes, you heard it, that information was NOT versioned, and affected the entire history of the file every time you changed it. Oh, and all timestamps in file histories were in client-side time (UTC I think, maybe), which imposed a requirement that all machines involved in the development process had their clocks automatically synchronised by NTP or some equivalent. OK, that's a good idea in its own right, but when you used VSS, it was essential. Individual VSS repositories did bad things when they exceeded 2GB in size, whether that was from millions of small text commits or from three files of 800MB that had been checked in once each, with no second revisions.
No, even the thought of using VSS for anything is terrifying. The idea of someone opposing migrating their codebase away from it is just staggering.
Admin
Admin
Fecal transplants
Admin
Yes...after a year of DissedCourse, I concur!
Admin
But...that increases the risk of an overflow! FFS, can't this be delegated?!?
FTFY, :hanzo:'d
Admin
That would be bad. However, it might be a solution to @mott555's problem. Or else another unhandled failure mode, if
They can, and all to often do.BuildingSearchParameters.ClosestOption
does not implyBuildingSearchParameters.FirstEmptyOption
.Admin
Admin
And the sewage treatment plant is responsible for merging all those branches and squishing the conflicts together.
Admin
I just assumed that the story was from back in the dark ages before Subversion had locking. Which was about the same era as the last time I knew of anyone actually using VSS.
Even file locking can't protect you from dipshits. 'Round about 20 years ago I worked in a VSS shop. The "lead" developer just plain didn't get the concept. He would go for weeks making changes to his local copy of the code, without touching version control. Then he'd lock all the files, copy his local files to his working directory, and commit. Merge? What's that? I defy anyone to design a version control system that can prevent that very special level of jackassery.
Admin
I have a system that can treat that level of jackassery, but not prevent it. It involves percussive cognitive recalibration with synthetic poultry substitutes. (Swat them on the head with a rubber chicken until they stop being jackasses.)
The success rate in field trials has been about 70% effective. Later this year I intend to use live, rabid skunks in place of the rubber chickens, and I am expecting compliance to increase to 95%. The remaining 5% are being recategorized as "Acceptable collateral damage."
Admin
I like @Steve_The_Cynic's tool for preventing future occurrences. He keeps it in his back pocket.
Filed under: http://forums.thedailywtf.com/forums/p/27839/325235.aspx#325235
Admin
Filed under: "We had to destroy
the villageDiscourse tosavefix it.", Yes, I know that is the distorted version of the quotation., There is more than one definition of "fix."Admin
I've been using svn for about 10 years now, and I don't know how to spell commit - too many m's and t's. Too many letters in general. Fortunately, "ci" is REALLY hard to screw up.
Admin
Did you see the end of the episode of Red Dwarf when they went to the backwards planet?
Admin
When you say shelving, are you talking about those old-fashioned German toilets with an actual shelf on them so you can inspect your crap for worms?
Admin
I've seen the same sort of thing done with both CVS and SVN (and actually shouted at an otherwise very nice and able developer over it). At least there you've got the history and figure out relatively easily WTF just happened and fix it.
Admin
If it doesn't, then you are "Doing it Wrong".