Thursday, August 31, 2006

QVCS-Enterprise 2.0 Now Available

Whoo hoo!

QVCS-Enterprise 2.0 is now out. It was a lot of work... as you can get some sense of here. ...or for the full report of changes since 1.2.13, take a look at this report (generated with QVCS-Enterprise, of course).

My thanks to beta testers who helped iron out the bugs.... this release feels pretty good and your assistance helped get to that point. I've been using it for a long time now, and it's been solid.

This release has a lot of under-the-hood changes that should improve the user experience. For example, the client (both the client application and the IDE client) now generates a 'heartbeat' message every 10 minutes. This is done silently, but has the effect of sending application traffic over the TCP connection that exists between the client and server. This should make it much less likely that the network infrastructure will time-out your TCP session... so you should be able to login once, and remain logged in for the entire day without having to do anything within the client to keep the connection alive.

This release also adds color coded icons in the file list display. This popular QVCS/QVCS-Pro feature is turned off by default -- but you can turn it on via the Admin/User Preferences... dialog. When enabled, files that have a status of 'Current' have a green dot, those that are 'Missing', or 'Stale' will have a yellow dot. This screen shot (at the bottom of the page) gives you an idea of what I'm describing.

And on and on. Try it. You'll like it.

Tuesday, August 29, 2006

QVCS-Enterprise pricing

QVCS-Enterprise prices will be going up with the 2.0 release on August 31. The new price will be $49 per concurrent client. The old price was $99/4 users -- or around $25/user. The other change in pricing is that beginning with 2.0, you'll be able to buy single user licenses -- so prices start at $49 instead of $99. A standard discount schedule will apply for volume purchases.

(A concurrent client is any user who must login to the server. This means that a single user who uses both IDE integration and the client application at the same time consumes 2 concurrent clients -- 1 for the IDE integration, and 1 for the client application, since each require a separate login to the server).

The justification for the price increase is increased and improved functionality (e.g. IDE integration). With IDE integration, QVCS-Enterprise offers close to the same functionality as QVCS-Pro, while providing better performance, much better support for remote users, and multi-platform support. The original $25/user pricing was meant to be an introductory price for a 1.x product. With 2.0, that introductory period is over -- With 2.0, the product is more mature, and still an incredible value at $49/concurrent client.

Of course, if you like the old pricing, you can still buy QVCS-Enterprise at those old prices through August 30. You'll get to upgrade to 2.0 'for free', since 2.0 will appear within 1 year of your original purchase.

Tuesday, August 22, 2006

QVCS-Enterprise 2.0.9 beta available

I just posted the 2.0.9 beta. You can get the bits from the usual location

This beta is finally feature complete. As noted in the previous entry, the new feature adds support for user defined reference file locations. (In earlier releases, the reference file location was hard-coded into the application).

I still have to add some more documentation, and verify that the existing docs are accurate. I also have to verify that things work as expected on Linux, and finally, I want to spend some time poking around with the NetBeans profiler to verify that I don't have any memory leaks, and also to try to look for places to goose performance a bit.

On that latter note, for testing, I've got a test project with some 35,000 files in it. I routinely go through testing cycles where I create the entire project tree, and then view and sort the files of the entire project, looking for performance issues. Admittedly, things can be slow with a project that large, and there remain some anomolies (read bugs?) with screen refresh when bouncing back and forth between enabling and disabling directory recursion. I figure if I can get things to behave in a useful way with a project that large, then things should work real well with smaller projects. Having a project that large also gives me a real good sample set so the profiler can highlight where the app is spending its time.

I don't know whether I'll have another beta before the 'official' release on August 31 -- I guess it will depend on whether we find any issues with 2.0.9.

Friday, August 18, 2006

Feature creep

Since I like writing code more than I like writing documentation (who would have guessed!), I added yet-another-feature to 2.0: the ability to choose an alternate location for reference files on the server.

In QVCS-Enterprise, if you enable the creation of reference files, by default, those reference files will be created in the qvcsProjectsReferenceCopies directory tree (beneath the server install directory). This new feature allows you to specify some alternate location for the reference files.

The feature is simple minded -- since the admin tool can run anywhere, it cannot verify that the string you enter for the directory name is valid (think running the admin tool from a Windows box, talking to a Linux server, or vice versa) -- that validation occurs on the server... If you enter a useful string, i.e. one that is valid, then things work like a charm. If you enter an invalid string, the server will reject it, and the requested change to the project's properties will be discarded.

Reference files (a.k.a shadow files), are just copies of the most recent default revision for the associated workfile. They're handy to have if you want to share your work product with folks who are not users of QVCS-Enterprise.

Tuesday, August 15, 2006

QVCS-Enterprise 2.0.8 beta available

And the hits just keep on coming...

I posted the 2.0.8 beta yesterday. It's the first 'feature complete' beta. I was able to get file group support in (client side only), and added some confirmation dialogs for when you delete a file, or when you delete a workfile.

Along the way, we discovered that the IDE integration in 2.0.8 doesn't work completely with VB 6.0 -- that's now fixed, and will appear in the 2.0.9 beta (scheduled for August 22).

File groups work pretty much the same way as in QVCS/QVCS-Pro. By default they are disabled. You define file groups via the 'Define File Groups' dialog, and enable/disable them via that same dialog. If they are enabled, and a file that you select is a member of a file group, then all other files that are members of that same file group are automatically selected. The definition of a file group is also the same as in QVCS/QVCS-Pro: files that share the same file name, but have different file extensions are candidates for being members of a file group.

File Groups are an important feature for some toolsets. In VB, for example, if you checkout a .frm file, you should also always check out the associated .frx file. Delphi has similar file pairs/groups.

In any case, the feature is now there to play with. It's actually pretty fast -- to me it seems faster than QVCS/QVCS-Pro.

In tracking down the problem with VB IDE integration -- it turns out that VB needs/requires file group support in order to behave correctly -- or at least by adding some elementary file grouping behavior, it's a lot happier than it was without it. Read on for some gory details.

The QVCS-Enterprise IDE integration is as simple as I can make it... i.e. it has only as many features as are needed to get things to work with the popular IDE's. The idea is to allow you to do simple version control behaviors from within the IDE, and to require you to use the client application if you want to do more complicated version control actions. This strategy works well with most IDE's, but VB needs the version control plugin to provide more behavior than some other IDEs (VS 2005 for example). The behavior that was missing was a file grouping behavior.... adding that in made things work correctly.

The file grouping behavior that the QVCS-Enterprise IDE integration supplies is not the same as the file group behavior provided by the client application. In the client application, you are allowed to define the set of file extensions that participate within a given file group. In the IDE integration implementation, the file grouping is supplied to all files that share the same base file name -- i.e. any file that has the same base file name but a different file extension is a member of a file group. This makes it so that when VB asks the IDE integration to operate on a .frm file, the IDE integration will 'automatically' add the .frx file to the set of files that should be included within the requested operation.

Tuesday, August 08, 2006

QVCS-Enterprise 2.0.7 beta available

Yesterday I posted the QVCS-Enterprise 2.0.7 beta. I hope to get to where I'm feature complete on the 2.0 release by the end of this week -- though I'm not sure that I'll make it.

The coolest thing to go into the 2.0.7 build is support for auto-updates of clients. This means that for releases after 2.0.7, you'll only need to update the server_out.jar file on the server. Clients that connect to that server will get updated automatically to the client release that matches the server. This will make it much easier to manage updates.

Another nice-to-have in 2.0.7 is support for 2 separate administrator roles. The ADMIN user retains the same functions as in earlier releases. Now, in addition to the ADMIN user, any user with a PROJECT_ADMIN role for a given project can login using the admin tool, and perform project level administration for those projects. So, for example, a PROJECT_ADMIN user can define user roles for a project. This makes it so the ADMIN user can delegate a lot of the project administration duties to other PROJECT_ADMIN users.

Another more visible change in 2.0.7 is the use of colored file icons (like those available in QVCS and QVCS-Pro). The plan is to add a user preference so that you can choose whether to use the colored icons or not -- for now, their use is hard-coded into the client.

The big things remaining on the TO-DO list that will likely make it into the release:

  • Some final cleanup of some of the IDE functionality.
  • Fleshing out user preferences into a tabbed dialog.

Friday, August 04, 2006

Updates galore

This past week, I've posted updates for both QVCS-Enterprise (1.2.13) and QVCS/QVCS-Pro (3.10.12).

Both of these updates are bug fix releases.

In the case of QVCS-Enterprise, the new build fixes a problem that shows up when you have users who have different ways of capitalizing the name of the same file. For example, if user A has a file named foobar.java and user B has a file named FooBar.java, QVCS-Enterprise will normally see these as different files. If, however, you have enabled the 'ignore case' project level setting, QVCS-Enterprise is supposed to treat them as if they were the same file. The 1.2.13 release makes it so it finally does treat them as the same file.

So why does QVCS-Enterprise even allow foobar.java and FooBar.java to be considered as separate files. The simple answer is that in *NIX environments, the file system treats foobar.java to be different than FooBar.java. Since QVCS-Enterprise is cross-platform, it should support this scenario. Admittedly, this should be the rare case, but in software, it's often the boundary cases that drive both requirements and design choices.

In the upcoming 2.0 QVCS-Enterprise release, new projects will have the 'ignore case' setting enabled by default. Note that with the current 1.2.13 release, if you change the 'ignore case' project setting, you'll need to restart the server in order for the change to take effect.

The 3.10.12 release of QVCS/QVCS-Pro is strictly a bug fix release -- it fixes a problem with the 'login as' feature.

You can get the bits for the latest stuff from here