SVN and Trac

A lot of developers I speak to often ask if I use a form of SVN (SVN wikipedia) and when I answer in the negative, they usually tell me of the benefits of doing so. Now I haven’t used it (much) before and I’ve never really had a reason to, being that I am working alone on Britonia and I only really use my main computer for development. But I thought, if everyone’s doing it, maybe there are unseen benefits …

So I had a look around on the weekend for project hosting sites which offered free hosting using SVN, and I found a few. Many of the project hosting sites however only offer only free hosting to open source projects, but I did manage to find one called ProjectLocker. It seems to have everything I could need for hosting my project privately and it also offers an intergrating Trac system. So I thought I’d give it a go.

For anybody who hasn’t heard of SVN, basically it offers a way to host your entire project (minus build and object files) on a server and using a tool like TortoiseSVN in windows, you can quick and easily download (checkout) or backup (commit) changes to this one central repository. It also keeps a copy of all versions of a file and logs changes made.

This makes it easy if say, you want to work on your project from several locations, or you have multiple developers working on a project.

For now, while I still haven’t setup it all up – I am hoping that the Trac system will help me focus on specific enhancements and bugs in Britonia. I’m finding that when I sit down I spend a good 1-2 hours just playing with what is already ‘working’; tweaking the heightmaps, changing scattering colours, flying around the planets etc.

If you want to try it out, here are a few links to the tools which I am using :

TortoiseSVN: http://tortoisesvn.tigris.org/
This can be used to quickly upload/download files in your project.

AnkhSVN: http://ankhsvn.open.collab.net/
A plugin for Visual studio professional (does not work on VS Express :()

Project Locker: http://www.projectlocker.com/
There are many hosting sites, but this is the one I choose because its private and free.

Trac: http://trac.edgewall.org
Bug tracking system.

Advertisements
  1. #1 by Phil on March 30, 2010 - 5:02 am

    Nice move going to an SVN system. It looks like the phase you are at with your project the benefits may not be readily apparent, but moving forward, you will be happy you set this up early. It’s especially useful when you’ve got lots of people working on your project, or if in the future you want to let people look at certain baselines of your code, etc.

  2. #2 by Philippe Da Silva on March 30, 2010 - 12:12 pm

    I’ve been using Assembla.com for a couple of months and their metered plan is pretty straight forward and quite cheap: 3US$/user/100Mb/month.

    I just avoid uploading my Assets there (I would eat these 100Mb so easily :p) but my code. I rather use local SVN for my assets anyway. 😉

    I wrote about my personal SVN hosting research on my blog in december if you want to check out 😉
    http://blog.will2real.com/?p=176

    Philippe

  3. #3 by Michael Lindholm (Limerock) on April 1, 2010 - 12:42 am

    I’m glad to see that I’m not the only programmer who consider SVN a bit overkill for a one-person projects, not to mention that i like to be in control, and i feel that i lose overview when something else is doing things for me.

    I remember a homepage project a while back, and a friend of me was repeatedly demanding SVN in the project, but i could not stand it and we ended up working on separate versions with manual merges.

    anyway, i might consider taking a new look on SVN, if nothing else, just so i can work with other people 😉

  4. #4 by Robert on April 13, 2010 - 3:01 pm

    SVN is for teams, open-source projects or developers without Visual Studio in my experience.

    Not sure if you’ve noticed but with the advent of GoogleCode, everyone and his grandma have become to believe that SVN was handed down from the gods of programming; yet I doubt very many people realise what the hell it actually is designed to do.

    I mean when was the last time you honestly thought “You know what I need, 16 versions of this source in states that won’t build and have absolutely no comments on why I changed what I changed!”

    SVN is a damn good tool for those who need something to make sure every programmer on your team no matter where they are has an upto date version of the latest source, including changes being made. Still it isn’t really necessary.

  5. #5 by Lintfordpickle on April 14, 2010 - 6:21 pm

    I totally agree with you and that was in fact one of the reasons I didn’t use SVN from the start (being its more ‘large team’ oriented).

    That said though, one of the things which I have been making use of is synchronising the porject between both my desktop and latop.

    Admitedly this becomes a pain in the rear if I forget to commit changes on one comp and then update and carry on working on the other. This is clearly my own fault for not being more attentive, but it has happened a few times now and I’m always left resolving the conflicts (usually ends in me deleting the offending files and just carrying on from the latest server version).

  6. #6 by Philippe Da Silva on April 15, 2010 - 9:17 am

    Hi,

    You should never consider SVN or any other repository will bring you its magic for “free” 😉

    First of, you must really think why you need such tool:
    A. you are working with a team of developers and they may implement code sharing the same files and you want to avoid inconsistency;
    B. you are working on rapidly growing or heavy architected projects and you want to avoid breaking it all because you take a wrong path at some point (branches and merges are your friends 😉 )
    C. you need a common, standardized and easy to use tool to structure yourself and your code.

    If you’re not in the need to solve one of the above issues, then you won’t need SVN.

    Now, if you do, like any tool, it requires you to break into some good best practices such as:
    – Every time you start working on your project: Force an update from your repository. It will make sure your project is up to date while still avoiding deleting or modifying your checked out files. That works also for one person team size if you work on many computers.
    – Do not check in all your code at the end of the day unless you finished working on a relativelly important domain. It doesn’t matter if your project is checked out for some days as the most important for you is to make sure the repository can be built at any time.
    – Never use SVN as a roaming code space: SVN or other repositories are not meant to be used solely to share your development space in multiple machines so using it as a shared space will bring a lot of issues like the ones you mentioned 😉

    At the end, it takes time to understand all the benefits and best practices using such tools but you’ll get rewarded if you follow them along you project’s life. 😉

  7. #7 by Lintfordpickle on April 15, 2010 - 11:19 am

    Hi Philippe,

    Those are all good points and worthy of note. I forgot to reply to your earlier comment, but it was actually your blog post which made me give SVN a try.

    Doh – roaming code space sounds great 🙂 that was my initial intention. Like I said its pretty good at the minute for working between my main desktop and laptop.

    I’m not worried about some of the potential pitfalls at the minute though, because if I do feel eventuelly that it would indeed be faster working without SVN, then I wouldn’t feel bad about giving it up.

  8. #8 by Philippe Da Silva on April 15, 2010 - 4:57 pm

    It’s definitivelly up to you but I would suggest that you keep using it until you get to a stable version.

    Otherwise, for simple roaming code, what I’ve done is that I bought a small 256Gb external harddrive (LaCie) and use it to store all my code, assets and the like.
    Therefore, when I’m moving from computer to computer I can simply plug my HD and get back to work. 😉

    This way, I keep a single Checkout (SVN uses a directory structure to work) and roaming 😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: