Source Control



  •  We're planning to upgrade VSS 2005 to something else.

    One guy's all, "I think I prefer subversion". And another's all "Maybe we should do Team Foundation Server".

    I just want the least possible hassle when working with code, but I'm not the guy who'll make the decision.

    We're (slowly) moving to VS2010 for the .Net stuff, and for the other Classic/JScript projects, we use our trusty text-editors. On the whole we can be seen as a Microsoft shop, though there's no hard rule about that.

    What advice can you give?



  • We're using Subversion with the TortoiseSVN (http://tortoisesvn.tigris.org/) Windows front-end. I didn't want to host it myself so I went with a service that calls itself Unfuddle (http://www.unfuddle.com), they are a sort of repository hosting (Git/SVN)/project ticket tracking ...thing.

    It all seems to work really well and I haven't had to troubleshoot anything, which has to be some sort of record.

    We are a tiny team though, I have heard Git is better for bigger teams (better conflict resolution) so you may want to look at that as well for your Repo.

     

     



  • We've been using using GIT + GIT Extension (for VS) + an 80 GBP/year GIT hoster (atechmedia.com) in a small (four people) team for about a year now.

    In contrast to scary stories from another thread, I never typed a single line in a CLI and never read a single line from the GIT manual. It took a day to set everything up and learn to use it (including two fuck-ups for not RTFM). Works like a charm. The GIT Extensions UI looks and feels ugly but works. Will never look back at SVN/TFS again.



  • Thanks for the replies, guys.

    Looks like TFS is slightly winning out because it does a ton of other things besides source control, but nothing's sure yet.



  • @dhromed said:

    Thanks for the replies, guys.

    Looks like TFS is slightly winning out because it does a ton of other things besides source control, but nothing's sure yet.

    TFS is pretty bad at all the things it does, IMO.

    You might be better off with something like a Trac site for feature/bug tracking, and a Subversion plug-in for VS. You *can* use Tortoise, but I think you'd be much better off with something that integrates more closely. Plus it seems like TFS is expensive, and this solution would be cheap.



  • Since you're a small team (guessing) the "other stuff" that TFS gives you will be cumbersome and hinder your process. There are a lot better "other stuff" tools out there, especially for smaller teams, so consider TFS as source control, and just that.

    Your two big considerations (being mostly Microsoft) should be:

    • Check-out/Edit/Check-in vs Edit/Merge/Commit
    • Visual Studio Integration

    For every advantage of Check-out/Edit/Check-in, there's a Edit/Merge/Commit disadvantage, and visa versa. But, you're used to Check-out/Edit/Check-in style now, so going Subversion will be a bit of a process change that will offer no actual benefit. That in and of itself could be a reason not to switch to SVN.

    The Visual Studio Integration is generally weaker on open source tools, mostly b/c they don't use it themselves or much in the community. The community generally prefers command line, so the tools (clients) won't be as nice.



  • @blakeyrat said:

    Plus it seems like TFS is expensive

    I've heard that it's now included with Visual Studio subscriptions? I don't know if that's true. I guess I could Bing it, but it seems no one ever pays the prices listed, esp dev teams.



  • @Alex Papadimoulis said:

    @blakeyrat said:

    Plus it seems like TFS is expensive

    I've heard that it's now included with Visual Studio subscriptions? I don't know if that's true. I guess I could Bing it, but it seems no one ever pays the prices listed, esp dev teams.

    I'll be entirely honest: I use it because another team at the company already was using it, and I just kind of hobo-ed my way onto their server. I really have no clue what it costs, if anything. I just assume it's expensive.



  • @Alex Papadimoulis said:

    Check-out/Edit/Check-in vs Edit/Merge/Commit

    Edit/Merge/Commit is a big reason why you should skip subversion altogether and go right to a DVCS. As I've said elsewhere, Mercurial is my current favorite. Really not much harder to learn than subversion, especially if you're coming from a checkout-style tool to begin with.

    @Alex Papadimoulis said:

    The Visual Studio Integration is generally weaker on open source tools, mostly b/c they don't use it themselves or much in the community. The community generally prefers command line, so the tools (clients) won't be as nice.

    I really never use Visual Studio, and tend to favor the command line client anyways, so I can't say much about the niceness of Mercurial / VS integration, except that they exist.



  • We use TFS here, and I think it's fine.  It's so much better than VSS, which we had before.  I can't remember what we used at my previous government contractor job, but it had a nice view of all the versions and was great for checking in, merging, etc.  I also think it cost two arms and a head.

    Blakey: what is TFS bad at?

     

    edit: Now I remember.  Clearcase.  I loved that, but even Wikipedia says it's terribly expensive.



  • @Sutherlands said:

    Blakey: what is TFS bad at?

    The UI is pretty dire, for one thing. It's not awful, but... eh.

    I seem to always have issues when trying to do a few operations, like deleting a file/folder or moving a folder. it gets pissy if you don't do things in precisely the correct order, and if you're not careful you can end up with duplicate folders. I got into a real pickle once when I mapped a source control directory to the wrong local folder, and then it turned out it was literally impossible to remove that mapping! (Fortunately, fixed in one of the VS2008 service packs.) I frequently have an issue where it'll "lose" its local file cache, and have to re-scan the entire directory tree which makes my simple "Get Latest Version" operation takes AGES. I recall having a LOT of issues with the bug reporter, back when we still used it... simple things like attaching files and images to a bug not working, but admittedly it's been a couple years since we've used it.

    That said, it does some stuff I like. It's "Compare Versions" diff feature is pretty slick. I like how it knows exactly what file types go into source control and what types do not. (Raise your hand if you've ever accidentally put a .suo file into Subversion.)

    I dunno, the more I think about it, it's really not so bad, so maybe I'm overstating things. I still like Trac better for issue tracking, but TFS is fine for source control.



  •  @blakeyrat said:

    It's "Compare Versions" diff feature is pretty slick.

    How slick?

    I mean, there's a three-colour diff in VSS, and a one-colour diff in Total Commander, and in my experience, the code has either simple differences and the diff works perfectly; or the code's had anything upward from a minor shuffle and then a diff breaks spectacularly, even though I, as a human, can tell exactly what's different. So exactly how much more slick could TFS's diff be?



  • @dhromed said:

    What advice can you give?
    Mini Nukes.

    (Just bought the game on Sunday)

    (Yes I know I'm 2 years late to the party)

    (Yes I'm comfortable with that)



  • @dhromed said:

    @blakeyrat said:
    It's "Compare Versions" diff feature is pretty slick.
    How slick?

    I mean, there's a three-colour diff in VSS, and a one-colour diff in Total Commander, and in my experience, the code has either simple differences and the diff works perfectly; or the code's had anything upward from a minor shuffle and then a diff breaks spectacularly, even though I, as a human, can tell exactly what's different. So exactly how much more slick could TFS's diff be?

    Fuck, I didn't do a fucking comparative study of the "compare versions" feature in every source control ever and write a 500 page fucking white paper. I've never even used VSS or Total Commander. (But I have used ExamDiff, and it's comparable to that.) I certainly never professed to be an expert on the fucking thing.

    I didn't expect the Spanish Inquisition!

    But seriously, what's with the grilling someone over something they casually mentioned? Do you do that in real life, or only on forums? Because it's crazy.



  • @blakeyrat said:

    I didn't expect the Spanish Inquisition!
     

    I just...

    I just...

    ... asked a question

     

    :''''''''''''''''(



  • @blakeyrat said:

    I have used ExamDiff
     

    I will look into that. Thanks, bro!



  • @dhromed said:

    @blakeyrat said:

    I didn't expect the Spanish Inquisition!
     

    I just...

    I just...

    ... asked a question

     

    :''''''''''''''''(

    You didn't ask a question, you turned the 100-watt lamp towards my face, stomped out your cigarette, and started grilling me like you were trying to expose a Bladerunner replicant. "The turtle is on its back on the hot sun, burning to death, it's moving its legs but it can't turn over, and you're not helping it Leon! Why aren't you helping it Leon!?"

    All I said was that I thought it was slick, what about me saying that led you to believe I'd done a comprehensive study of all programs everywhere? You're seriously crazy, doubly so if you actually do do that in real life.



  • @blakeyrat said:

    You didn't ask a question, you turned the 100-watt lamp towards my face, stomped out your cigarette, and started grilling me like you were trying to expose a Bladerunner replicant. "The turtle is on its back on the hot sun, burning to death, it's moving its legs but it can't turn over, and you're not helping it Leon! Why aren't you helping it Leon!?"

    All I said was that I thought it was slick, what about me saying that led you to believe I'd done a comprehensive study of all programs everywhere? You're seriously crazy, doubly so if you actually do do that in real life.

    Bullshit. Your reaction was TRWTF. He just gave you more context about what he was asking. You brought it up. If he thought you'd done a comprehensive comparison, he probably wouldn't have volunteered the extra information.

    I kinda wondered, too, since most graphical diff apps I've used seem pretty similar (which isn't to say that the whole concept isn't really useful and slick...just that none of them stand out in my mind vs the others).



  • @blakeyrat said:

    You didn't ask a question, you turned the 100-watt lamp towards my face, stomped out your cigarette, and started grilling me like you were trying to expose a Bladerunner replicant.
     

    Nope.

    Back on topic.

    If you're still angry enough, you can PM me.

    @boomzilla said:

    I kinda wondered, too, since most graphical
    diff apps I've used seem pretty similar ( [...]just that none of them
    stand out in my mind vs the others).
    '

    This.



  • @boomzilla said:

    Bullshit. Your reaction was TRWTF. He just gave you more context about what he was asking. You brought it up. If he thought you'd done a comprehensive comparison, he probably wouldn't have volunteered the extra information.

    He demanded information on products I've never used, and never claimed to use at a rapid-fire pace (complete with one of those openers where you ask a simple question where the text says "how slick?" but what it means is "you're wrong and an asshole for saying that".) Yes, I brought it up, but I never claimed to be an expert on the subject, and my saying something is "slick" doesn't imply that Total Commander isn't equally as slick or even more slick, I've never used it, I don't fucking know.



  • @blakeyrat said:

    @boomzilla said:
    Bullshit. Your reaction was TRWTF. He just gave you more context about what he was asking. You brought it up. If he thought you'd done a comprehensive comparison, he probably wouldn't have volunteered the extra information.

    He demanded information on products I've never used, and never claimed to use at a rapid-fire pace (complete with one of those openers where you ask a simple question where the text says "how slick?" but what it means is "you're wrong and an asshole for saying that".) Yes, I brought it up, but I never claimed to be an expert on the subject, and my saying something is "slick" doesn't imply that Total Commander isn't equally as slick or even more slick, I've never used it, I don't fucking know.

    So, instead of saying that you weren't an expert or something similar, you flamed away, and continue to do so? The whole point of this thread was to give advice to dhromed. Apparently, we can't ask questions of the blakeyrat, though.



  • @boomzilla said:

    So, instead of saying that you weren't an expert or something similar, you flamed away, and continue to do so?

    I did say I wasn't an expert.

    @boomzilla said:

    Apparently, we can't ask questions of the blakeyrat, though.

    Asking questions is fine. I just don't like being interrogated.



  • @blakeyrat said:

    Asking questions is fine.
     

    Ok. Let's try again. So what makes it "slick" as opposed to "normal", in your opinion? I use diff a lot. I ponder the features of various diff tools.

    I will add a heart: <3 to indicate my peaceful, information-gathering intentions.



  • @dhromed said:

    @blakeyrat said:

    Asking questions is fine.
     

    Ok. Let's try again. So what makes it "slick" as opposed to "normal", in your opinion? I use diff a lot. I ponder the features of various diff tools.

    Well the "slickness" isn't really due much to the way it shows differences, which is pretty typical, but more due to how you can diff with version with any other version without having to (expressly) download any of them. Also I have a file checked-out right now, probably by accident, and I wanted to see if there's actual changes or if I just accidentally checked it out for some other reason. I can just right-click the file, click "Compare" then make sure "Latest Version" is selected, and it'll tell me what changes I made. (Although that's a bad example because it's too simple and now I'm sure some wag is going to come in here and go, "you can do that with SVN too!!!!!" as if I cared.)

    That said, there's a lot of room for improvements. I'd love to have a language-aware diff tool if one existed... don't show me the filler whitespace crap, show me the methods that changed!

    @dhromed said:

    I will add a heart: <3 to indicate my peaceful, information-gathering intentions.

    Your katar doesn't intimidate me!



  • @blakeyrat said:

    I'd love to have a language-aware diff tool if one existed
     

    +1

    Same for code-folding. for some reason editor makers think that you always prefer code-aware folding OR indent-based folding, when it's probably no problem to use both in the same document at the same time.



  • @blakeyrat said:

    Your katar doesn't intimidate me!
     

    I don't get it.



  • @dhromed said:

    @blakeyrat said:

    Your katar doesn't intimidate me!
     

    I don't get it.

    Maybe he meant katara?



  • @dhromed said:

    @blakeyrat said:

    Your katar doesn't intimidate me!
     

    I don't get it.

    Wikipedia calls it a katara, but my decades of RPG experience say it's a katar so fuck Wiki.



  • I've used Git, VSS 2005 and TFS 2010 all within the last 3 years or so.  VSS 2005 sucks and migrating to something else should be a major priority since MS doesn't really support it anymore and is essentially dead. 

    As for TFS, that's what I use where I work.  We're a small development shop with about 5 or so active users.  We don't do commercial application development but custom in-house development.  The biggest project we have has two active developers - everything else is basically just one dev working on the project.  We basically just use the version control part of TFS and not the bug tracking, feature planning, automated build and testing modules.  For the biggest project we have, the bug and feature planning is done outside of TFS via other tools.  The other projects aren't big enough to warrant those needs.  As for automated builds, I do that with Wix 3.5 and batch scripts.  So I basically only ever interact with TFS via the source code integration in VS 2010.   I'll occasionally use the web-frontend if I'm helping someone in another project and don't want to download the entire solutions.  In version control system capacity, TFS definitely does a very good job.  The only issue I've had was downloading a project to the wrong local directory and deleting the mapping was a major pain in the ass since the solution certainly wasn't obvious.  TFS is included in MSDN subscriptions as long as you have a subscription above Essentials.  You get a limited use license of SQL Server 2008 R2, TFS server and CAL per subscription.  Historically, setting up and maintaining TFS has been a nightmare.  But with TFS 2010, Microsoft has definitely streamlined the setup process for smaller deployments.  In fact, I rarely ever need to do admin stuff other than occasionally modify security on a collection.

     I will note that merge conflicts do occur more often than with VSS
    2005.  In both cases, we were using Get Copy, Edit and Merge model.   Also there isn't a stand-alone client like with VSS 2005, so your Classic ASP / JScript projects might be a pain to use a regular text editor with.  For other projects we have that are similar, we just decided to use an empty VS solution with solution folders.  I would investigate converting the projects over to full blown VS projects though.  

    Git is also a good solution as well and it would be what I would pick if TFS wasn't included in my MSDN subscription.  I was impressed with Git's branching and merging process.  Also the integration with VS was very good and it was relatively easy to setup.

    In any case, I'd probably pilot both Git and TFS and see which one fits your needs best.



  • @blakeyrat said:

    He demanded information on products I've never used [. . .] at a rapid-fire pace

    See people, this is why you use two spaces after your sentences.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.