50 Versions of Shed Control Wars


  • Discourse touched me in a no-no place

    First self-flagged whoosh?


  • ♿ (Parody)

    First serious self whoosh flagging I've seen. Second intentional self whoosh flag I've seen. Third self whoosh flag I've seen.


  • ♿ (Parody)

    @RaceProUK said:

    The only thing I can think it useful for is if you have third-party libraries you use with whatever you're developing.

    I keep stuff like jars (like you mentioned) and some graphics stuff (banners and other little bits that get used in odd places).


  • Discourse touched me in a no-no place

    @boomzilla said:

    First serious self whoosh flagging I've seen

    On a second read it was bloody obvious so figured I deserved it.



  • @loopback0 said:

    Quite. I'd have left it there if not for trying to work out why a) locking files is bad and b) merge rather than lock doesn't introduce different problems. It was part rant, part "I don't see where you're coming from but am prepared to find out". And, seemingly, part whoosh.

    I see where I'm talking past you, I think.

    Multiple people, unless they are completely segregated on the areas they are working on, will always incur some kind of waste in the form of contention for resources, in this case, file locks in the source control server.

    Either you incur waste by having exclusive locks, and thus non-optimal work ordering (i.e. I can't make my critical fix because you have a long-running checkout of a file I need to edit), and forcing things to happen in a more "linear" than "parallel" fashion, or you incur waste by having non-exclusive locks and dealing with merging.

    Most people I have encountered choose the latter option, because flexibility and relatively low costs of merging, even for binary files, usually trumps the major drawback of potential high costs in scheduling and dependency problems.



  • @blakeyrat said:

    Well obviously a spreadsheet, or an image, or possibly even a video timeline could be reasonably merged with another. But you think the guys who built Git would ever bother with that? Hah! They think the product's "finished".

    Git's provided a hook for plugging diff/merge tools in for quite a while now; so has Mercurial...

    @boomzilla said:

    OK, I hadn't gotten to the binary file part. These are just not as nice as text files. There are some collaboration tools available on a tool by tool basis, of course (notable Office documents). But the nature of binary formats doesn't lend itself to this being a solvable problem.

    Not in the "there's a general-case solution" sense, which is why mergetool hooks are a thing.

    @gestahl said:

    Because it's worse to force people to erase the read-only attribute and edit the binary files on their machines in order to get their work done because the file is locked by some tool who's gone on a four-day weekend. And they will do exactly that, every time. And then they'll have to merge anyway after the fact.

    So what did you gain by having exclusive checkouts?


    Or worse, ClearCase, where you have to checkout anyway despite having a perfectly good merging facility.

    @loopback0 said:

    How do people with a workflow which fits Git handle "co-worker makes change incompatible with one I made at the same time"?

    Manual merges and plenty of out-of-band communication as @gestahl and @boomzilla point out -- this is the fundamental problem of copy-mod-merge SCM (just like the infamous four-day-vacation is the fundamental problem of lock-mod-unlock SCM).

    @flabdablet said:

    Semantic dependencies are no respecters of file boundaries.

    QFT.


  • ♿ (Parody)

    @tarunik said:

    Not in the "there's a general-case solution" sense, which is why mergetool hooks are a thing.

    Yes, but now you need some sort of tool. And it doesn't sound like @loopback0 is dealing with anything simple or common. And shit like that gets hard very quickly.



  • @RaceProUK said:

    ... why are people using source control to version binary files?

    FinalBuilder files are both binary and source. The two are not mutually-exclusive.


  • Discourse touched me in a no-no place

    I get it. I think. I'm still concluding it's just not the right tool for our workflow.



  • @fwd said:

    it frequently puts annoying tooltips over code I am actively trying to read/type

    In addition to that, it's intellisense implementation is SO MUCH SLOWER than stock VS's... I frequently end up doing something like hitting "Enter" to select an intellisense completion and then keep typing, and ReSharper put my cursor somewhere weird for some reason and I stomp all over the next line of code. Then get pissed-off and go into Options and turn off nearly everything ReSharper does. Then my co-worker types on my computer a bit, and goes, "oh I thought ReSharper was required" and I say, "is it but I turned like 80% of it off because it was bugging me" and he's like "ok."



  • @boomzilla said:

    And shit like that gets hard very quickly.

    Yeah, most commercial binary-blob-consuming tools don't even stop to think about "what if someone wants to merge/diff our files?" At best, you get a critter akin to Word's Track Changes function...



  • @tarunik said:

    Git's provided a hook for plugging diff/merge tools in for quite a while now; so has Mercurial...

    Right and it ships exactly zero of those by default.

    @tarunik said:

    Manual merges and plenty of out-of-band communication as @gestahl and @boomzilla point out -- this is the fundamental problem of copy-mod-merge SCM (just like the infamous four-day-vacation is the fundamental problem of lock-mod-unlock SCM).

    Nobody's asking for locking to be mandatory; we're asking for locking to exist at all.



  • @loopback0 said:

    self-flagged whoosh?

    I flagged my response post instead of yours initially, because apparently I was dropped as a child.


  • FoxDev

    @loopback0 said:

    It was part rant, part "I don't see where you're coming from but am prepared to find out".

    ands this is why i didn't flag.


  • FoxDev

    @boomzilla said:

    Third self whoosh flag I've seen.

    😊
    whoopsies?


  • ♿ (Parody)

    @blakeyrat said:

    FinalBuilder files are both binary and source. The two are not mutually-exclusive.

    But they had to implement "Version Control System actions for automating interaction with 17 different version control systems" because they created something that didn't play nice with the tools everyone had. Probably because they hate us all.

    http://en.wikipedia.org/wiki/FinalBuilder#Built-in_actions



  • @boomzilla said:

    But they had to implement "Version Control System actions for automating interaction with 17 different version control systems" because they created something that didn't play nice with the tools everyone had.

    It's a build tool. It needs actions to tell VCS to update or pull a branch or whatever. Its use of binary files has nothing at all to do with that.


  • ♿ (Parody)

    @blakeyrat said:

    Right and it ships exactly zero of those by default.

    Why would I want all that bloat for stuff I'd never use?


  • ♿ (Parody)

    @blakeyrat said:

    It needs actions to tell VCS to update or pull a branch or whatever. Its use of binary files has nothing at all to do with that.

    Oh, that makes sense, obviously. I was reading that like it was a list of new things. But...does anyone care about versioning their FinalBuilder stuff? Or was that just pedantic dickweedery on your part for bringing it up?



  • @tar said:

    Delete the file from the repo, edit it locally, and check it back in for add once you've finished?

    Yeah, and now it's my fault the automated build just failed.



  • @boomzilla said:

    Oh, that makes sense, obviously. I was reading that like it was a list of new things. But...does anyone care about versioning their FinalBuilder stuff? Or was that just pedantic dickweedery on your part for bringing it up?

    Generally you put the build script in the same repository as the project. And of course, I've personally experienced this example... although at a company that used TFS, so locking was a non-issue.



  • @dcon said:

    Yeah, and now it's my fault the automated build just failed.

    ...and next you'll be telling me you aren't allowed to turn off the automated build...



  • @boomzilla said:

    And causes other problems. But, yeah, in the case of binary stuff, it's not quite the WTF that locking normal text files is.

    True.

    Way-back-when in the VSS days, I remember running into locking issues. (Of course, that was just as likely due to database corruption - we were ecstatic when we moved to Perforce.) In my use of Perforce, locking was not default - you had to specifically do so (aside from some builtin actions). And in all my time of using it, I don't think I ever ran into the vacationing-coworker-checkout issue. Maybe just lucky... Now working offline - well, that was a little tricky...



  • @blakeyrat said:

    Right and it ships exactly zero of those by default.

    And? Why is this a problem? Solving it takes exactly 10 seconds using Google.

    If you want everything done for your buy and use a proprietary SCM system.

    It your choice what you use, but invariably something that is opensource and is more flexible is going to expect you to do some homework as to how it works.



  • TBH TFS works fine on the CLI. TFS I would rate as one of the better SCMs I have used. With Accurev being the biggest piece of shite ever.



  • @lucas said:

    If you want everything done for your buy and use a proprietary SCM system.

    Your post is gibberish.

    @lucas said:

    It your choice what you use,

    There's a class of software programs where is it not the individual user's choice to adopt. If nobody was forced to use Lotus Notes as a condition of employment, then 1) I'd stop ranting about its awfulness, and 2) the product would be out of users in a week. But alas.

    If a program is forced on someone as a condition of employment, the bar is higher.

    I've tried to explain this to Atwood, because it applies to Discourse too, but he simply did not get the concept.



  • Accurev was quite annoying (terminology changes, terrible Java GUI), but under the hood, it worked pretty darn well where I interned at.

    OTOH -- ClearCase has nothing redeeming about it (different terminology, clunky development workflows, terrible UI, you name it).



  • @tarunik said:

    Accurev was quite annoying (terminology changes, terrible Java GUI), but under the hood, it worked pretty darn well where I interned at.

    I had zero confidence with it during my last position. Mainly because of the awful Java GUI.



  • @boomzilla said:

    Second intentional self whoosh flag I've seen. Third self whoosh flag I've seen.

    How, pray tell, does one unintentionally self-flag for whoosh?


  • FoxDev

    @lucas said:

    Solving it takes exactly 10 seconds using Google.

    Surely you know he doesn't believe in the existence of Google? 😆



  • @blakeyrat said:

    Your post is gibberish.

    How?

    TFS is proprietary and there is something provided out of the box in terms of diff tools and other bits and pieces, whether it is ideal or not is another thing.

    Depending on the version you have to use, you will have to use the power tools.

    @blakeyrat said:

    There's a class of software programs where is it not the individual user's choice to adopt.

    Anyone can use Git so while your reasoning might be sound if you were talking about a professional environment, we know that git is used by hobbyists and people in their spare time so your argument doesn't really stand up.


  • ♿ (Parody)

    @blakeyrat said:

    Your post is gibberish.

    Gibberish in, gibberish out I always say.

    @blakeyrat said:

    If a program is forced on someone as a condition of employment, the bar is higher.

    👆
    See, that's what I'm talking about!

    Waaah! I can't diff this weird thing in my source control!
    Well, your source control allows you to plug something in to make that work. Is it available for your weird thing?
    How would I know?
    Did you search google or anything? Look, right there. Just install that.
    This source control is shit because it didn't anticipate that I needed this and install it for me!
    Did you also want the other three hundred diff tools that exist installed on your system?
    That's irrelevant gibberish!


  • ♿ (Parody)

    @HardwareGeek said:

    How, pray tell, does one unintentionally self-flag for whoosh?

    Click the flag on the post below (or above, I don't recall) the post you wanted to flag, which happens to be your post.



  • I've never met anyone that expects open source software that is meant for developers to have everything configured for them and doesn't require some reading of their docs.



  • @tar said:

    ...and next you'll be telling me you aren't allowed to turn off the automated build...

    Duh. Of course not! (git/gerrit/jenkins/oh my)


  • Discourse touched me in a no-no place

    @accalia said:

    ands this is why i didn't flag.

    Its cool, I had it covered 😃


  • Discourse touched me in a no-no place

    @boomzilla said:

    Click the flag on the post below (or above, I don't recall) the post you wanted to flag, which happens to be your post.

    Before this thread I'd have said it was difficult to unintentionally flag yourself. Then I saw:

    @tar said:

    I flagged my response post instead of yours initially, because apparently I was dropped as a child.

    🏁 for special snowflake.



  • @boomzilla said:

    Click the flag on the post below (or above, I don't recall) the post you wanted to flag, which happens to be your post.

    Yes, scrolling down further, I saw @tar's post. :)



  • @lucas said:

    How?

    It's grammatically gibberish. I didn't even try to interpret the content, since I couldn't get past the fact that it's gibberish. Good old-fashioned gibberish.

    @lucas said:

    Anyone can use Git

    Anyone can do almost anything related to computers. That doesn't have anything to do with my argument.

    @lucas said:

    so while your reasoning might be sound if you were talking about a professional environment, we know that git is used by hobbyists and people in their spare time so your argument doesn't really stand up.

    The only hobbyists who use Git are the type of idiots who just love doing tedious boring shit.

    @lucas said:

    I've never met anyone that expects open source software that is meant for developers to have everything configured for them and doesn't require some reading of their docs.

    Why shouldn't I expect that? If everybody expected that, if everybody held software to a higher standard, maybe we'd have better software in the world.


  • ♿ (Parody)

    @blakeyrat said:

    It's grammatically gibberish. I didn't even try to interpret the content, since I couldn't get past the fact that it's gibberish. Good old-fashioned gibberish.

    Oh FFS. Tantrum over a couple of typos because you can't handle being wrong.


  • Discourse touched me in a no-no place

    @lucas said:

    while your reasoning might be sound if you were talking about a professional environment, we know that git is used by hobbyists and people in their spare time so your argument doesn't really stand up.

    Right - because no-one uses Git professionally. Not @blakeyrat's current employer. Not my current employer.


  • ♿ (Parody)

    @loopback0 said:

    Right - because no-one uses Git professionally. Not @blakeyrat's current employer. Not my current employer.

    Right. So you guys have someone make sure you have the proper stuff for your development environment, then? That seems like your responsibility, not git's. (I know I'm probably drifting from @lucas' point, but he can yell in his own posts.)


  • Discourse touched me in a no-no place

    @boomzilla said:

    So you guys have someone make sure you have the proper stuff for your development environment, then?

    Us, if we can justify why the corporate tool of choice is the wrong one, then we pick another one. Which is sort of what lead to my initial post in this topic. It's still (for the other dev teams) the preferred tool, and that's contrary to @lucas's suggestion that it's not used professionally, which was my point.



  • I didn't say that did I, It isn't only used in a professional environment, in anycase ... you can't be that much of a professional if you don't bother reading the basics about something.



  • @blakeyrat said:

    It's grammatically gibberish. I didn't even try to interpret the content, since I couldn't get past the fact that it's gibberish. Good old-fashioned gibberish.

    While I know my grammar isn't brilliant, you could easily see what I meant and being a twat about grammar doesn't prove any other point than you are a massive grammar nazi.

    When you make stupid comments like these, as far as I am concerned you can get fucked.

    @blakeyrat said:

    Why shouldn't I expect that? If everybody expected that, if everybody held software to a higher standard, maybe we'd have better software in the world.

    I don't think it is realistic for software that is used on almost every platform, that caters to many different developers to even be expected to choose a default diff tool. They provided more the adequate docs on setting one up and if you don't think that is acceptable there are plenty of free clients that are good quality that do have these tools built in.

    Git IMHO is good quality software and works well, I don't think that being required to read the fucking docs is that big of a deal especially if you are trying decide what SCM you are trying to use.


  • Discourse touched me in a no-no place

    @lucas said:

    you can't be that much of a professional if you don't bother reading the basics about something.

    I read the basics, and the basics don't make it obvious the traditional concept of a checkout isn't possible.
    That's all I read though - the basics. Then I set up a Git server as a trial (rather than giving corporate dollars to try out living on the corporate server) pointed Eclipse at it, and carried on happily until thinking earlier "Oh, I wonder if I can checkout a file...." then me and Git stopped being friends.


  • ♿ (Parody)

    @loopback0 said:

    which was my point.

    I know, it was more of a sideways shot at @blakeyrat's gibberish.



  • Besides -- Git and Hg do not need any mergetool configuration for the normal use case -- its just that they can't anticipate every last binary format on the planet, which is apparently what Blakey wants them to do.


  • Discourse touched me in a no-no place

    @boomzilla said:

    sideways shot at @blakeyrat

    As you were.



  • This read likes "I expected it to work one way and when it didn't I forever decided that is total rubbish" style of logic.


Log in to reply