Showdown: Sourcegear Vault vs TortoiseSVN

I’ve written about dancing, travelling, and trying to be a better person on this blog so far.  But entries about writing code have so far gone unwritten.  I’ll move towards changing that today with a quick discussion of the advantages/disadvantages of two of the most common styles of version control.

At my work I find myself dealing with two very different version control systems:  Sourcegear’s Vault – created to replace Microsoft’s own Visual Source Safe system with a more fully-featured version control, and used for most of our development tracking; and SVN – a Unix-style source control system created to succeed the original CVS, which I use to branch and track my own changes on a day-to-day basis.  Both systems support branching, but I have no experience with how Vault does it so I won’t be comparing them on that basis.  However they both come with Diff/Merge tools, Visual Studio Integration and their own ways of storing versioning information – and it’s on these counts that I’ll weigh up their advantages and disadvantages.

Vault stores users and version information using an MSSqlServer database.  Usually, this can just sit on the same server as the development environment.  This can prove especially useful for integrating reporting into source code, and writing scripts to track and report on changes to files, committed bug fixes etc. are all possible.  However, it does mitigate any security you might have, as anyone with EXECUTE access to the DB that stores your files can essentially change anything without logging it (or change the logs themselves).  By contrast SVN stores versioning in the file system, throwing reporting out the window, but making the whole thing more secure in my eyes.
Score: SVN – 1 banana, Vault – 1 apricot

Both Vault and TortoiseSVN come with Diff-Merge tools (Sourcegear DiffMerge, and TortoiseDiff/TortoiseMerge that come with TortoiseSVN), and both do their job similarly.  Personally, I find Sourcegear DiffMerge to feel like the tighter tool, TortoiseDiffMerge has too many bright colours out of the box, and confusion often follows suit (the files being merged are alternately referred to as Left-File/Right-File, Source File/Target File and Their File/My File   However, TortoiseDiffMerge seems to deal better with ignoring tab/space changes.
SCORE: SVN – A confusing grapetiser, Vault – a filling mango

Because it was meant as a replacement for Visual Source Safe, Vault supports the checkout-edit-commit system for lock management.  By contrast SVN uses an edit-merge-commit system.  Personally, I much prefer the latter system – waiting for another programmer to release a lock on an object they may or may not have edited gets old quickly, and when combined with some of the issues with IDE integration can get positively infuriating.  Luckily, Vault also supports an Edit-Merge-Commit mode, although I’ve never used it.
SCORE: SVN – a seedless cherry, Vault – a dirty strawberry

Both SVN and Vault can integrate with the Visual Studio IDE: Vault through their own plugin, SVN through the free extension VisualSVN.  The Vault plugins are made as replacements to the Visual Source Safe system, and as such find themselves riddled with update and synchronisation issues.  It’s a regular daily occurrence for me to check a file in or out from a different project or the Version Control GUI, only to have the IDE integrator tell me I can’t save changes because the file is in use by someone else……me!  There’s also a very annoying ‘feature’ that checks out project files whenever a file underneath it changes – locking other devs out of adding or removing files from the project when they actually need to change it – which I have yet to find a way to turn off.  VisualSVN suffers from a little lag-behind from the SVN server, but all-in-all suffers from none of the same issues .
SCORE: SVN – a ripe pomegranate, Vault – rotten peaches

In the end it all boils down to this: Vault is a commercial application, which is a pretty good replacement compared to Visual Source Safe.  SVN is free, open-source and community-supported, and a pretty good replacement for CVS (or Vault).  Personally, I’ll take the free basket of banana, cherry, pomegranate and grapetiser over $100+ per user for a tin of mangoes, apricots, rotten peaches and a dirty strawberry.

Japan travels: Day 4

The third and final instalment in my diaries from my visit to Japan in April 2009. After this entry, I found myself drinking and socialising every night, and sleeping on the train on the way to the next part of the country, so I never really got the chance to write any more entries. Still, it was totally worth it :) Enjoy.

I wasted a lot of time in the morning trying to see some sights with Marina. She only had an hour, but instead of leaving her at the station and going off on my own I tried to see some temples with her. They ended up being too far to walk and it was a disappointing morning. Plus she missed her train. Oh well, in future I know when to say goodbye 😉

Then I visited Osaka castle. The castle grounds were truly massive, it took me quite some time to reach the castle itself after walking through parks and forests and over moats to the top of the hill. It was a spectacular wander, and the castle itself was quite impressive. I climbed to the top (16 flights of steps!) and then spiralled my way down the floors to the bottom looking at scrolls and artifacts from various eras in Japanese history. They even had lenticular pictures, and holographic movies playing. Very cool. It was a perfect example to me of how the Japanese blend their old traditions and cutting-edge technology almost seamlessly. Also, there was a monkey that did a back-flip :)

Then it was on to the Shinkansen and sayonara Osaka! The speed of the trains is quite impressive, and I found my ears popping a lot as the train rounded long corners and went in and out of tunnels. When there was a chance I jumped to a window seat to check out the scenery. I was expecting a lot of the rice fields to be around, and though there were a few I found that there mainly seemed to be city everywhere. A lot of buildings and concrete and roads surrounded the train most of the time, and each city sort of merged into the other after a while.

Caine was waiting for me when I got through the gates, and it was over-whelmingly good to see a familiar face. I was giddy with happiness at being around someone I knew, and carried that energy with me when we went out that night.

Darts and Pizza was on the menu, and they were both delicious! I accidentally ordered the curry pizza (Doh!), and it wasn’t spicy at all (woohoo!). The dough they make the pizza with here is lighter and more fluffy, and it makes almost any topping oiishii.

Then Caine and I grabbed a couple beers from the local 7/11 and talked shit for hours. It was so good to have someone around, and the poor Japanese must have thought we were crazy :) We eventually called it a night around 2 am, and vowed to be up and ready to leave around 8am.

It really was one hell of a trip, and I can’t believe I waited so long to get out of the country and experience a new world.

Normal blogging returns next week!

Japan travels: Day 3

No Diary from Day 2, as I spent the whole day lugging my baggage to the wrong hotel, then not making it to the aquarium before it closed and then missing the swing dancing. So instead, enjoy Day 3 of the diaries from my trip to Japan in April:

Mmmm, beer.

Well, i”m counting day 2 as a write-off. Nothing much happened besides me getting lost and being disappointed with the gambling. More on that later.

Day 3 was much better. I headed to the aquarium and was surprised at how different it was from the zoo. All the fish, otters & dolphins looked very happy in their enclosures and were playing around and acting up. Also, there was a giant Ferris wheel nearby. I seem to gravitate to those :)

After the aquarium I visited the Floating Garden Observatory, the giant twin towers visible when coming in to Osaka station. The glass lift up was awe-inspiring, and the way down would have been too if I didn’t have to rush it the first time to put my contacts in & dash back up. Doh!

The view was spectacular. I got a birds-eye perspective on all the wrong turns I took the day before, which was quite an eye-opener. But more than anything else, I was blown away by how quiet it was. I don’t know what I was expecting – a constant whooshing and small children being blown away by gusts of wind I suppose – but it wasn’t anything like I imagined. It was dead calm, and the only noise when I walked around was made by me, jingling my keys in my pocket accidentally (don’t ask).

Being that it was that I was visiting all the touristy sights, I saw more Caucasians on this day than in my other days plus Malaysia combined. I struck up a conversation in the Sky Garden lifts with a lovely couple (David and Ruth Higgins) that turned out to be from Mosman – barely 40 minutes from my home in Australia.

Touristy stuff was definitely the flavour of the day, with a spicy tinge of homesickness. Okay, maybe the chef used a lot of spice. just writing the phrase “my home” made me emotional. I’m not sure if chatting with my friends & brother tonight made me more or less homesick. But I figured the best solution was to get really shiitake-faced.

So I headed off to a local jazz bar to pen this drivel and drink the local beer. Which was delicious but bloody expensive at about $11 a schooner!! Still, drunkenness worked it’s charm, and I ended the night chatting with a lovely Swiss-residing Italian girl called Marina. And drinking far, far, far too much sake.

Part 4 next week!

Japan travels: Day 1

I haven’t had time to put together a blog post this week, so instead enjoy some of my notes from my visit to Japan in April 2009…

Okay, so….day 1. I arrived in Osaka at 6:06 in the morning, about 8 minutes after sunrise. It would have been beautiful if I’d gotten some sleep on the plane. I kept waking up everytime the drinks cart went by so I could order another Bourbon and Cola. Gotta get my money’s worth on the flight, you know!

Anyway, after a little wandering around trying to find an ATM, I hopped on my first Japanese train. It’s true, they’re clean and fast and run on time. I think there’s two systems of trains: the government-assisted JR trains (the ones I can travel on for free), and then each region has one or more ‘private rail systems’, that are wholly owned and run by private companies. Sometimes the systems share stations, sometimes they split them down the middle. Seems complex, but it’s actually surprising how simple it ends up being once I’m down on the platform. And a bit of healthy market competition never hurt anyone, did it?

My first night is at the Osaka International Youth Hostel, which is actually about 20 minutes out of Osaka by train. It’s surrounded by this amazing park, which literally has forests of cherry blossoms and some kind of fir or conifer trees I think. Overall, it’s overwhelmingly more pretty than any garden I’ve ever been to in Australia. This park ALSO has tennis courts, batting cages, swimming pools and waterlides!! And it’s topped off with three of the most amazing children’s playgrounds I have EVER EVER witnessed in my history of being an on and off traceur. I can’t wait to come back here when I’m training again. Seriously. I jizzed in my pants – NO! Not in front of the children!

Well, my next stop was Tennoji. My aim was to visit Spa World and have my first public bath (and to shower and change out of yesterday’s clothes), but I forgot about that when I found out Tennoji zoo was in front of me :). I spent most of the day wandering around the zoo getting sunburnt (despite the help of a lovely old lady who came over to let me know I still had ‘shiro’ on my face when I thought I’d rubbed the sunscreen in completely). And seing all the Japanese children and their milfs at the zoo made me realise I find Japanese kids ridiculously cute! I want one!! Stealing is an option I suppose, but I’m sure there’s a more fun way of going about it :)

After aimlessly wandering around Osaka station looking for the WiFi promised in my guide book (the cafe was closed and there was no wifi network), I had my first attempt at ordering something in Japanese – a coffee. The counter girl found it very amusing, because I tried to order ‘kohi shiro’ (coffee white). Turns out it’s much more obvious than that: ‘mirakuu kohi’ (milk coffee). Oops :)

Then, after travelling back to the Youth Hostel, I had my first bath (solo, and didn’t last long because I got bored of sitting in the water staring at the wall), FINALLY changed my clothes, and then missed supper :). Providence then had me staring at a voucher vending machine, trying to decide on a dish based purely on how hot the 2cm thumbnail picture looked. I took a lucky guess, and had the best soup I’ve ever tasted as a result!

On a side note, there seems to be a huge number of Japanese that wear medical facial masks out in public (especially on the trains). To each there own, they still seem eager enough to smile and strike up a conversation, but I admit it does kinda weird me out a little. But then I think they had the same reaction to me when I was walking through the park barefoot :)

That’s day 1, and I sign off with a feeling that it’s going to be a full and interesting holiday