Software Versioning

edited February 2011 in Chit chat
Up until now all my software developments have been developed by me alone. However, I am now to be working with a new team of developers. I have been asked to look up a software versioning system that the team can use.

Has anyone got any good recommendations?
Post edited by Scottie_uk on
Calling all ASCII Art Architects Visit the WOS Wall of Text and contribute: https://www.yourworldoftext.com/wos

Comments

  • edited February 2011
    Scottie_uk wrote: »
    Up until now all my software developments have been developed by me alone. However, I am now to be working with a new team of developers. I have been asked to look up a software versioning system that the team can use.

    Has anyone got any good recommendations?
    what do you mean by software versioning?
    source/version control?

    I'm using SVN for my current projects. Discovered how good it is because all Winston's spectranet source is on SVN. It's dead easy to set up a server with multiple accounts too if you already have apache running (or can easily set it up)
  • edited February 2011
    guesser wrote: »
    what do you mean by software versioning?
    source/version control?

    I'm using SVN for my current projects. Discovered how good it is because all Winston's spectranet source is on SVN. It's dead easy to set up a server with multiple accounts too if you already have apache running (or can easily set it up)


    Sorry yes version control silly me. SVN I'll have to see what web services they are running, probably going to be Windoughze.
    Calling all ASCII Art Architects Visit the WOS Wall of Text and contribute: https://www.yourworldoftext.com/wos
  • edited February 2011
    Scottie_uk wrote: »
    Sorry yes version control silly me. SVN I'll have to see what web services they are running, probably going to be Windoughze.

    Well it doesn't have to be served over webdav, you can install a proper svn server that uses it's own protocol I didn't bother even looking at that as I have a web server running already. On windows a great client is TortoiseSVN, which integrates into explorer nicely. Makes seeing what files are out of date etc easier than the command line client.

    anyhoo, I'm monopolising this thread a bit :)

    I'm sure someone will be along shortly to sing the praises of CVS or git :)
  • edited February 2011
    guesser wrote: »
    I'm sure someone will be along shortly to sing the praises of CVS or git :)

    I'd be rather surprised if anyone sings the praises of CVS, since SVN was expressly designed to be a direct improvement without doing anything radically different - and to this day I've never heard anyone dispute that they've completely succeeded at that. But then again, if there's one place that people are going to worship obsolete technology, it's here on this forum :-)

    Git is definitely the rising star right now, and there are a heck of a lot of people who swear by it. I'm using it more and more, and I can appreciate that it's more powerful than SVN (particularly for open-source-type projects that spiral off into lots of branches being worked on at once - for more centralised projects, there's possibly not as much of a selling point). However, that power does come with a corresponding jump in complexity - and based on my own experience, and the experience of foisting it on some unsuspecting collaborators on a luckily-not-too-critical weekend project ("hey, this git thing is all the rage right now. Why don't we try it out on this project and see what all the fuss is about") - I wouldn't recommend it to anyone who wasn't already fully versed in something like SVN already.
  • edited February 2011
    If you're using Visual Studio, you can't really beat Team Foundation Server although it can get costly depending on the number of developers you have. I seem to recall there is a cheap edition for teams of up to 5 devs though.

    Whatever you do go with, for gods sake stay well clear of SourceSafe. It's an abomination and notorious for losing code every now and then. Why they haven't finally ditched it is beyond me.
  • edited February 2011
    Scottie_uk wrote: »
    Up until now all my software developments have been developed by me alone. However, I am now to be working with a new team of developers. I have been asked to look up a software versioning system that the team can use.

    Has anyone got any good recommendations?
    SVN works for me. Incidentally, even as a lone developer, a version control system is a *massive* advantage. The SVN book is a remarkably good introduction I think, even if you end up using git or something else.

    I wouldn't want to go back to developing anything without source control now. Even little things like Beepola are all kept in SVN here.
  • edited February 2011
    Yep another vote for SVN. Been using that for years, works very well
  • edited February 2011
    Ok thanks folks I will now adopt version management for my own workings. My own visioning system is crude and add hock.

    Ok, so we will be developing in a range of languages, most commonly: Java, Objective C, C# and C++. So something that can cope with more than one language is an advantage.

    Also we may have similar products deployed on different platforms. For example iPhone (objective C), Android (Java), and Windows 7 Mobile (C#).
    Calling all ASCII Art Architects Visit the WOS Wall of Text and contribute: https://www.yourworldoftext.com/wos
  • edited February 2011
    Scottie_uk wrote: »
    Ok, so we will be developing in a range of languages, most commonly: Java, Objective C, C# and C++. So something that can cope with more than one language is an advantage.

    Also we may have similar products deployed on different platforms. For example iPhone (objective C), Android (Java), and Windows 7 Mobile (C#).

    That should be fine. Version control software typically doesn't care what language your stuff is written in - it's all just text files (and sometimes binary files, which are fine too - you just don't get the line-by-line breakdowns of your changes). You could even use it for writing a book if you wanted...

    You do of course need to ensure that the client software is available on whatever platforms you're developing on (since it sounds like you'll be on a mix of Windows and Mac) - and if it integrates nicely with the IDEs you're working in, that's a definite plus for most people. (I just use the command line myself...)
  • edited February 2011
    If you're working with Java, then Netbeans has built-in support of SVN.

    I've used svn for long enough I was using it when it only supported BerkelyDB (today, I'd recommend your repos use 'fsfs', which I think is the default, that is it just uses the regular filesystem rather than a db, and I've found it works better that way with multiple developers since you can just use ordinary Unix permissions on the server (or Windows permissions, if your svn server runs that) to grant access to the repo). I use the svn+ssh method since it just works out of the box without needing to do anything special, and has the added benefit that if you're working over the internet it's secure.

    SVN also handles binary diffs well, which a lot of versioning tools don't.

    I do however wish IBM CMVC was still around, that was pretty nice since it integrated with a bug and feature tracking system, and didn't have all the cruft and usability problems of what ended up replacing it.
  • edited February 2011
    The place I work at has just switched to a mixture of: -

    FogBugz - For bug and issue tracking. The sort of helpdesk portion of things if you like. FogBugz

    Kiln - For the version control stuff. It uses a respository structure, so you can muck about locally as much as you want and do local rollbacks, then you push your changes into a central repository. Kiln

    There is also a piece of software that automatically builds your project for you and emails you to let you know that it went OK/blew up all over the place...think it might be called Mercurial...
  • edited February 2011
    STeaM wrote: »
    Kiln - For the version control stuff. It uses a respository structure, so you can muck about locally as much as you want and do local rollbacks, then you push your changes into a central repository. Kiln
    Don't know anything about their product, but the video on their website seems to be based on on a misunderstanding of how svn is usually used on large projects where you'd have stable and development branches. So you'd not be delayed from checking in your "awesome new feature" (their terminology) because somebody is working on a critical bug fix for a customer.
Sign In or Register to comment.