First impressions: Vault
We’ve been looking at switching source-control systems at work, and one of the new systems we’re looking at is SourceGear Vault.
I’ve played around with Vault at work, but I haven’t actually used it in a real project. So, since it’s free for a single-user installation, I decided a while back to download it at home, and use it for DGrok.
Here are my impressions so far:
Installing
Vault consists of three separate pieces: the server, the admin tool, and the client. Accordingly, they also have three installers.
But they do try to make life a little easier: the server installer is actually an “everything” installer, which you can, if you so choose, use to install all three products on the same PC.
Lovely, says I. I’m installing all three on my home computer, so I’ll just use the server installer, and select everything.
That was mistake #1.
So I logged in under an administrator account, installed all three products, logged back in with my development account, opened up the Start menu… no Vault.
Log out. Log back in as an admin. Make sure it’s really there in the Start menu. It is. Check the folder properties for the “Vault” Start menu folder. Yep, they put it under the administrator’s Start menu, instead of under the All Users Start menu.
Sigh. Uninstall. Reinstall. This time, keep a sharp eye out for the “install for all users / install for just me” radio buttons, all the while grumbling at SourceGear for not making “all users” the default.
The radio buttons aren’t there.
This really bugs me. Am I going to have to log in as admin, find the Users control panel applet, promote my development account to administrator, Fast User Switch back to the startup screen, log in as my development user, install Vault, log out, switch back to my administrator account, and remove admin privileges from my development account? Yuck. I’ve done it before, but it doesn’t exactly make me want to send the vendor a nice basket of fruit for Christmas.
Well, I thought, maybe they just didn’t put those radio buttons in the server installer. That would sort of make sense; the Web service is only directly runnable by a single user, after all. Of course, that user is actually a daemon account, not the user who’s doing the installing. So it doesn’t make a lot of sense in either case.
But I downloaded the other two installers, and uninstalled, and reinstalled the server, this time selecting only the server. Then I installed the admin tool from its own installer.
No radio buttons.
I’m getting disgusted at this point, but I decide to take the plunge, and go ahead and install the client too. And, lo! I did look, and it did have the blesséd radio buttons.
Finally.
It does mean that I’m going to have to do some jerking around any time I want to use the admin tool. But at least Vault is basically usable without going through too many stupid contortions one way or another.
Lesson learned: Don’t use the Vault server installer to install the Vault client. Just don’t do it.
Visual Studio integration
Visual Studio integration was fairly painless. And let me tell you, once you’ve got Vault going, it’s way faster than VSS.
This really surprised me. With Vault, you’ve got a .NET client piece, talking over a Web service, to an .asmx running on Microsoft IIS, which then connects to an SQL Server database. That’s a hell of a lot of overhead. Obviously, client/server has serious benefits when you’re running on a network, but since VSS just talks to flat files, I would’ve expected VSS to be much faster when everything’s on the local computer. Apparently not so.
Checkouts, in particular, are imperceptible with Vault, whereas checkouts with VSS (with the repository on my local PC here at home, mind you) always brought Visual Studio to a dead stop for one or two seconds.
Score one for Vault.
Visual Studio diffs
Vault’s diff window is one of the things I was most looking forward to. Unfortunately, there’s some poor implementation here that makes it less than a pleasure to use.
When I’m using VSS, and I want to view diffs from Visual Studio, I right-click on a file and select “Compare Versions”. There’s a brief delay, and then a VSS diff window pops right up, nicely maximized so I can see everything.
When I’m using Vault, and I right-click and select “Compare Versions”, I don’t get diffs. Instead, I get a huge dialog box with six radio buttons (one of them grayed out), edit boxes, Browse buttons, and a grayed-out checkbox. Gaah. Okay, what does it say? “Compare the working file/folder to:” The radio button for “The last version retrieved from the repository” is selected. Okay, that’s fine. Click OK.
(When VSS asks questions like this, it always — always — has a checkbox saying “Only show this dialog if I’m holding the Shift key”. I like that feature. I use that feature all the time. That’s why VSS diffs only take me two clicks. It really disturbs me that Vault doesn’t have anything like it.)
Now it pops up a diff window, but no matter how much I try, that diff window is always tiny when it pops up. It’s about half as tall as the screen, and about half as wide as the screen. Every time. So we’re talking 25% of the available real estate, and that’s not even counting overhead from things like toolbars and status bars and gutters. It makes absolutely no effort to remember the window position from one diff to the next, even within a single Visual Studio session. And nowhere can I find a preference to tell the damn thing to always maximize.
The annoyances add up. Quickly.
So, with VSS, I was always two clicks away from a usable diff. Two clicks that were pretty close together on the screen. But with Vault, I have to do those two clicks, then get my mouse over to a little OK button halfway across the screen (actually, I usually just hit ENTER with my left hand), and then move the mouse halfway across the screen again to get to the teensy little Maximize button (although I usually just double-click on the title bar, since it’s a bigger target).
When I do get that diff window up, those sub-line-level diffs are nice. But geez. C’mon, guys, get with the program:
- Don’t ask me what I want to compare against. You’re slowing me down. Just go ahead and use the option I selected last time. But once the diff window is open, let me change my mind; put those six options in a dropdown menu or a sidebar. (And remember my selection for next time.)
- And maximize the diff window by default. Always. Always.
November 14th, 2004 at 9:52 am
I’d look at TeamCoherence. I looked at a ton of VCS programs and that was my favorite. Very fast, has it its own server app, etc. Integrates with all the major IDEs.
November 15th, 2004 at 5:15 am
Hmm, TeamCoherence does look interesting. The user guide is good; I dislike the complete lack of screenshots, but they more than make up for it with the scenarios. I’ll have to spend some time looking into this some more.
Unfortunately, they don’t have a free single-user version. I’d hate to buy it without trying it on a real project, but I’d hate to try it on a real project if it’s going to expire in thirty days. Bleh.
November 15th, 2004 at 6:45 pm
Unlike some of the other VCS programs, installing TC does not take an act of congress. Just install the server, then install the client. No 3rd party stuff at all (and uninstalls just as easy). We tried it out on the real project… Worse possible case is that you lose your revision tracking (hopefully not that big of a deal for 30 days worth on a personal project), and all your files are read-only which is easily fixed. I was impressed by the small footprint (less parts = less things to break, at least when dealing with IIS and SQL server), how it has an offline mode (great for the development laptop), and how it works over a remote connection (nearly like it is on a LAN!). Again, I looked at a lot, including StarTeam, CVS, PVCS, Rational, Vault, and just about any other one that I could find online… For the money, nothing came close to the easy maintainability and features. Your mileage may vary though.
November 15th, 2004 at 7:03 pm
Joe:
I’m glad you’re up and running. I was just reading up on your blog, and wanted to thank you for the feedback.
I’ve addressed a couple of questions / issues you brought up:
1) Vault Server installation does not create shortcuts for everyone. As you mentioned, although the Vault Server installation does include all 3 pieces ( Server, Client, and Admin Tool ), it only create shortcuts for the current user’s profile.
This was originally done for security purposes, as the server was not meant to create a program group for all users. However, when this was designed, the Single User License didn’t exist. A lot has changed since then. I’ve created a feature request to add an option for the location ( similar to the Vault client ).
2) Diffing from within the IDE. You are right, there is not a "show this dialog when shift is down" option, although one does exist for the normal Vault GUI client’s diff dialog. I’ve logged an investigative bug here to see what is going on.
If there are any other praises, gripes, or questions, please don’t hesitate to let us know. You can sound off at one of the Vault forums - http://support.sourcegear.com.
Thanks again for the feedback.
Jeff
SourceGear
November 15th, 2004 at 7:19 pm
Joe -
One last thing. I just checked the bug fixes for Vault 3.0 ( look for it in a week or two ). SourceGear Diff/Merge ( SGDM ) has had a number of improvements, one of them includes remembering the position of the non-maximized window.
Jeff
November 16th, 2004 at 4:00 am
Ryan - The server we would probably put it on already has IIS and MSSQL, so that’s not a big deal for us. But I hadn’t run across anything that talked about its offline mode. I may have to dig into that a little more. And, yeah… if I lose the diffs, I guess it wouldn’t be the end of the world, but I’ll have to think about it.
Jeff - Great info; I’ll be looking forward to the new release. I know Eric had mentioned the beta was out, but I’m not quite that adventurous. I’ll give 3.0 a try when it comes out. Thanks!
November 16th, 2004 at 5:46 am
Joe:
One last follow up here. Running a "compare versions" within the VS.Net IDE follows the settings you have configured within the Vault GUI client.
So if you have configured the Vault GUI client to not show the Diff options, and provide the default setting, the VS.Net IDE will not display the dialog with all of the diffing options.
HTH
Jeff