Thursday, March 13, 2008

Merge and visual merge

I'm getting around to adding the file level merge feature to QVCS-Enterprise. The goal is to make it drop-dead easy to use -- which can be a challenge for merge, especially when there are collisions... and I guess that's one of the things that has led me to put it off.

In any case, I've decided to go ahead, and already have a non-visual merge working. The non-visual merge works silently in the case where there are no overlaps, and fails (as it is supposed to!) in the case where there are any overlaps. The idea is that a visual merge will be required in the case where there are overlaps. A merge will only be attempted on a file that has a status of 'Merge Required'.

No predictions yet on how long it will take to complete... The non-visual merge went faster than I thought it might. I expect the visual merge will take a while longer, if only because it will require some usability after I get things roughed in.

Thursday, February 28, 2008

QVCS-Enterprise 2.1.12 now available

I just posted the 2.1.12 release of QVCS-Enterprise. This release cleans up a few bugs, and adds one nice little feature -- a 'Show in containing directory' menu option on the file context menu. When you have recursion enabled and have lots of files, it is sometimes difficult to see exactly where in the project directory hierarchy a given file might be located. With this new feature, all you have to do is select the file (with recursion enabled), then select the 'Show in containing directory' context menu, and the client will automatically navigate to the specific directory that contains the file... a nice little usability touch.

Details on the fixed bugs are available here. 

Enjoy.

Friday, November 30, 2007

QVCS-Enterprise 2.1.11 now available

I just posted the 2.1.11 release. You can download the bits here. 

Details on the changes in this release are here. 

UPDATE: Fix link typo.

Posted by Jim Voris at 9:57 AM
Edited on: Thursday, December 06, 2007 12:20 PM
Categories: QVCS-Enterprise
|

Wednesday, November 28, 2007

QVCS-Enterprise 2.1.11 to be published on Nov. 30.

I'll be publishing a 2.1.11 QVCS-Enterprise release this Friday (November 30).

This is a mainly a 'bug fix' release to clean up some issues discovered in the 2.1.10 release:

  • Fix problem with 'checked in before' and 'checked in after' file filters.
  • In built-in visual compare tool, pay attention to the 'ignore case' setting.
  • Fix bug that prevented the deletion of a project that only had the 'Trunk' view.
  • Fix a null pointer exception that occurs when trying to apply or remove a label from a file in a project that has just the 'Trunk' view.
  • In the IDE integration .dll, make sure to delete the workfile at checkin time if the 'delete workfile' QVCS attribute is enabled.

The one 'feature' change for this release:

  • Add the module description to the beginning of the information displayed in the 'Revision and Label Info' pane.

Thursday, October 25, 2007

It always happens with a new release...

Whenever I publish a new product release, I get bug reports that point out problems that have existed for a long time. I suppose this is partly due to the closer scrutiny that a new release gets as users test it to evaluate whether it's worth their time or not. In any case, there are 2 problems that the new 2.1.10 release of QVCS-Enterprise has brought to light:

  • In the 'checked in before' and 'checked in after' file filters, things work fine immediately after defining a filter collection that uses either of these two filter types; but fails with a null pointer exception if you try to use that filter collection after restarting the client application.
  • In the built-in visual compare tool, the 'ignore case' flag was always ignored... i.e. while you could request that the visual compare ignore case in the compare, it would never ignore case.

Both of these bugs are now fixed in the code base, and the fixes will appear in the next build.

Monday, October 08, 2007

QVCS-Enterprise 2.1.10 Release Available

I just posted the first 'official' QVCS-Enterprise 2.1 release. You can download it from here. 

It has just a few cleanup changes since the 2.1.9.4 Release Candidate:

  • I finally got the code in to put up a busy indicator when you change the column sort order.
  • Changed the sort order for the revision information shown for the Read-Only label based view so that the revision information is displayed (like the Read-Write label based view) so that the view's tip revision sorts to the top of the list of revision information. This change is more important in those cases where the view's tip is on a branch instead of the Trunk.

For those of you paying attention, this release has been under contruction for a long time. It represents a lot of work -- 1577 changes across 559 different files. The source and documentation for this release is composed of 1126 separate files.

Upgrading to this release is pretty simple: Just shutdown your server application, and replace your existing server_out.jar file with the one found in the new qvcse.zip file. Restart the server, and you should be good to go... clients will get updated 'automatically' as they login to the new server.

The server does have to generate some meta-data the first time it runs -- so this could make startup the first time slower than usual -- but after that meta-data has been created, startup performance should be similar to what you've seen in earlier releases.

Friday, October 05, 2007

QVCS-Enterprise 2.1.9.4 Release Candidate Available

I just posted the 2.1.9.4 build.... It's good enough to be a release candidate -- it has some fixes for upgrading from QVCS/QVCS-Pro archives, as well as some other bug fixes related to the new view support, etc. You can download it from here. 

I have some minor documentation changes that didn't make it into this build, but it is otherwise 'code complete' and in pretty good shape. Please give it a try.

Thursday, September 27, 2007

QVCS-Enterprise 2.1.9.3 Beta Now Available

I just posted the 2.1.9.3 beta for the upcoming QVCS-Enterprise release. This release also includes the IDE integration piece as that now works and has been updated to work with the new 2.1 features, including support for views.

The remaining area that needs work in this build: directory level operations (i.e. get and label) do not work for non-Trunk views. My plan is to disable directory level operations for views for the 2.1 release, but this beta still has some rough edges in that area of the client application.

This beta reworks the way file renames and file moves are handled so that things are more likely to behave in ways less surprising to users. In the earlier beta, if you moved a file (via drag-and-drop), the associated workfile would also get moved on someone else's workstation -- not good. The same would happen with a file rename operation. This beta fixes that so that the workfile will get moved or renamed only on the workstation that requested the move or rename. Other workstation workfiles are not affected.

Things are getting pretty stable, and the actual 2.1 release will get published soon after I complete the cleanup of the directory level operations for non-Trunk views.

Friday, August 24, 2007

QVCS-Enterprise 2.0.22 Release Available

I posted QVCS-Enterprise 2.0.22 earlier today. It has several changes for users who didn't want to wait for the upcoming 2.1 release (which is on track for a late September release date). The changes are described here. 

If you are upgrading from an earlier 2.0 release, the simplest approach is to:

  1. Download the 2.0.22 release from here.
  2. Shutdown your existing server application.
  3. Exit any IDE's that use the IDE integration feature.
  4. Copy the server_out.jar from the 2.0.22 download .zip file so that it replaces your existing server_out.jar file.
  5. Restart your server.

Your clients should then reconnect to the server in order to get 'automatically' updated. Note that in order for the IDE integration .dll to get updated you need to login to the server using the client application (gui.bat).

Thursday, August 09, 2007

QVCS-Enterprise 2.1.9 Beta Now Available

I just uploaded the first beta of the upcoming 2.1 release. You can get a copy here ... look for the beta download after the standard QVCS-Enterprise download.

This 2.1.9 beta release has all the major features that I want to include in the 2.1 release -- we've been using early versions of the 2.1 release internally now for several months.

As noted earlier, the big deal in this release is support for "views".

Things remaining to be done:

  • Support for directory level operations from within a view. The workaround is to enable recursion, and select all the files in the view that you want to work on.
  • Complete the work to get the IDE integration feature complete (i.e. support for file rename).
  • Support for undelete so you can easily move a file from the cemetery back to where it came from (provided you have the proper privileges).

I also added a new forum for discussion of this beta. You have to login to the forums  in order to see the new forum... Becoming a new forum member is bit tedious because I have to filter out all the potential forum spammers.

Please do not use this beta for production use. A safe way to test this beta with your current archives is to create a copy of your current server directory tree (the directory where server_out.jar is located), then in that copied directory, replace the old server_out.jar with the one from the 2.1.9 release. You'll then need to manually edit all the qvcs.served.project.... property files located in the copied qvcsProjectProperties directory so that the archive location and reference location point to the alternate copied location instead of your production location. If the test server is running on the same machine as your production server you'll also probably want to change the server.bat in the copied directory so that the test server uses a different set of ports than those used by the production server.

Please post issues or comments on the forum, or send me e-mail. (jimv at qumasoft dot com).

Tuesday, August 07, 2007

Understanding Views

We'll soon be publishing an early beta for the upcoming 2.1 release. I don't want to commit to a date -- I've not been very good at predicting those lately. In any case, the big new shiny thing in 2.1 will be its support for 'Views'.

QVCS-Enterprise 2.1 will support 4 different kinds of views:

  1. The 'Trunk'
  2. Read-only date based views
  3. Read-only label based views
  4. Read-write label based views

The 'Trunk' view is the default view and is identical to what exists in the current 2.0 product.

The read-only date base view is described in this blog entry.

The read-only label based view is similar to the read-only date based view except that is uses a label to anchor the view instead of a date. You use this kind of view to see what a project looked like when a particular label was applied. You might use this kind of view to perform a build -- just create the label based view, assign a location for the view's workfiles, do a 'get' on the files of the view, and -- poof, you now have a workfile directory tree that matches what the project looked like based on the view's anchor label. As a read-only view, you are not allowed to make any changes to the files in the view, but it is a handy way to recreate what a project looked like at some particular label.

The read-write label based view is similar to the read-only label based view except you are also allowed to checkout and checkin revisions -- with some limitations: you are only allowed to work on the view's 'tip' revisions. QVCS-Enterprise will handle the details 'under-the-hood'. This kind of view is ideal for performing patches to a labeled release: create the read-write view based on the label, assign the workfile location for the view, get the files to that workfile location, and then make your edits (checkout/checkin) as needed in order to patch that labeled release. Once you are happy with your changes, apply a new label to the result, and then do a build based on that new label.

One constraint I've imposed with label based views: you are not allowed to move the anchor label of a view.... i.e. if there is a label-based view that uses label "2.1" (for example) as its anchor, then you are not allowed to apply or remove the "2.1" label from any files on any view, including the Trunk.

Views are a big deal -- and getting them implemented has been a lot of work. You have to look at products that cost a lot more (e.g. Starteam, MKS Source Integrity) to find this kind of feature. For later releases, views will serve as the foundation needed for some other cool features.

Sunday, July 15, 2007

Another 2.1 milestone

I passed the next milestone for the QVCS-Enterprise 2.1 release: I can now create a read-only label based view. Two down, one to go... but the remaining one (a read-write label based view) is the most difficult.

Wednesday, June 06, 2007

QVCS-Enterprise 2.1.6 Technology Preview available

I just posted the 2.1.6 release. This is a technology preview only; it is not meant for production use... i.e. it is not feature complete and is missing some key features. DO NOT USE IT FOR PRODUCTION USE!

Now with that warning out of the way, I'd still like you to take a look at it to get a taste of what will be in the official 2.1 release -- which now looks like won't be ready until July or so. The biggest piece of work in this release is addition of support for file rename, and file move, combined with support for 'views'.

You can download the 2.1.6 technology preview from the download page. 

File rename, and file move are pretty easy to understand. The latter you get via drag-and-drop. I still have some tweeking to do on handling the drop target code, but if you are gentle in the way you drag-and-drop a file onto a different directory, things will work as expected.

View support is a bit more involved to explain... partly because it doesn't really have a direct analog. The kind of 'view' supported with the 2.1.6 release is a 'read-only' date-based view. When you create a view (by right clicking on a Project), you get to define the date that defines the view. Given that date, the view will display what the project looked like at that date/time. Because of the way it works, the earliest date you can use is the install date of the 2.1.6 release. In any case, the view will show you the Project as it was at that given point in time -- all filenames and file locations will be the filename and file location that was in use at the given time.... files that were deleted after the given date/time will show up, etc. It's like a time-machine.

Other changes for 2.1.6 include:

  • Support for directory delete. A privileged user can delete a directory (using the client application) if the directory is empty and the directory has no subdirectories: right click on the directory name and choose the 'Delete Directory...' option from the context menu.
  • Improved granularity of the authorization model. Use the admin tool for this: select a server node in the admin tool, and then choose the new Roles/Maintain Server Roles... menu option.

The remaining work for 2.1 is tricky... so it's hard to predict when I'll have it ready for beta.... but beta is the next step. After the beta wrings out the bugs, I'll publish the production release.

UPDATE: Added link to download page.

Posted by Jim Voris at 10:14 PM
Edited on: Wednesday, June 06, 2007 10:48 PM
Categories: QVCS-Enterprise
|

Thursday, May 03, 2007

Obsolete will be Obsolete

No, I didn't make the change to the way obsolete files will work in QVCS-Enterprise just so I could use topic heading above....

Currently, in QVCS-Enterprise, when you 'delete' a file, the server just marks the associated archive file as 'obsolete', and then the client deletes the associated workfile.

In 2.1, this behavior will change -- and the concept of 'obsolete' files goes away. The new behavior will remove the archive file from the server's archive directory and move it to the archive 'cemetery'. The client application then deletes the associated workfile. If you need to do anything with the deleted archive, you'll need to create a 'view' that uses a view date that preceeds the date when the file was deleted.

This change is needed in order to implement the boundary use case described here. It also has a more coherent feel than the previous implementation. I've completed the coding for moving the deleted archive to the 'cemetery'. I still have to go through the rest of the refactoring to remove all code that deals with obsolete files -- since that code is now obsolete.

Sunday, April 29, 2007

Back from Austin

We're back from a spring trip to Austin, Texas. Spring is a good time to visit Austin -- though I could have done without the tornado watches we endured on our final night in town. We stayed at the Brava House Bed and Breakfast. It's a superb location in a quiet neighborhood just minutes from downtown. The 6th street music scene is a long, but pleasant (1.5 miles) walk. The new marquee Whole Foods market is just a few blocks away, and other eateries are just as convenient. We had a great time exploring Austin, and the surrounding 'Hill Country' area of Texas. Summers there are brutal (all the local admit this to be the case), but this time of year, the weather was perfect.

Austin has Verizon broadband wireless coverage, so it was easy to keep up with e-mail and tech-support issues...

Now it's back to work on the QVCS-Enterprise 2.1 release. I've made the transition internally to using the new 2.1.4 release. I won't be making it public as it is still missing some key features (file delete, directory delete, directory rename, and directory move); but it does have the skeleton of views implemented, and I want to get some mileage on that before the public beta. I want to get file delete implemented before making anything public -- and for that, my current thinking is I'll have a 'technology preview' before the beta. The 'technology preview' will not be feature complete, but it will have the view stuff in place. I'd like to get some user feedback on 'views' sooner rather than later. Will users see it as confusing, or intuitive?

Friday, April 13, 2007

Stricter QVCS forum access

If you want posting access the QVCS support forums (http://qumasoft.ipbhost.com/ ), you'll need to jump through more hoops than in the past (Users who are already forum members won't see any change). For reasons that defy my understanding, QVCS support forums have undergone a sustained spam attack from folks who either want to waste my time (which may be their intent), or have some wild misunderstanding of what kind of message traffic I will allow to appear on a Quma support forum.

If you want to become a forum member, please drop me an e-mail (jimv at qumasoft dot com) as forewarning so I can let your membership application go through. If you are a registered user of any QVCS product, you'll just need to provide your registration ID. If you are not a registered user (why not?), then I'll be happy to let you on the forum if you can persuade me that you are not a bleep bleep spammer.

Tuesday, April 03, 2007

QVCS-Enterprise 2.1 progress...

I've passed a major milestone on the road to the 2.1 release: I can now create a 'read-only' date-based 'view' that works (there are still a lot of details that remain). This kind of view, the simplest of the new support for 'views' means that you'll be able to use QVCS-Enterprise as a time-machine to see what things looked like at some point in the past... including file renames, file moves, etc. I focused on getting this type of view implemented first because I figured it would be the easiest, and would help me better understand what would need to go into the other types of views that I want to support: a 'label-based' read-only view, and a label-based read-write view.

My current best guess is that I'll be ready for an early beta sometime in mid to late May, with a release in June or July. The beta will be an open beta, so anyone will be able to sample the bits.

As I've gotten further along the 2.1 road, and in response to some support issues, I've begun to think I need to change the name of QVCS-Enterprise. The new name (which may take effect with the 2.1 release) would be QVCS-MP (for multi-platform). Within that QVCS-MP umbrella name, there would be 3 separate products: QVCS-MP, QVCS-MP-Pro, and QVCS-MP-Enterprise. Vanilla QVCS-MP would have the same feature set as today's QVCS-Enterprise, except it would not support IDE integration; QVCS-MP-Pro, would add IDE integration support; QVCS-MP-Enterprise would have the QVCS-MP-Pro feature set and would add support for views. Existing QVCS-Enterprise users would get the QVCS-MP-Pro feature set, and would have to purchase some kind of upgrade to get the 'view' functionality. This is all just speculation at this point.

Saturday, March 17, 2007

Keeping busy -- or... announcing a delay in QVCSE 2.1

The 2.1 release of QVCS-Enterprise will not happen until sometime in the 2nd quarter -- likely sometime in June, though it's too soon to predict an actual date.

I had earlier thought 2.1 would be out by now... but events conspired to delay its release.

The first element of the delay conspiracy: 2.1 will have more in it than I had originally planned. Initially, 2.1 was going to focus on the rename, file move, directory rename, directory move problem. However, as I got deeper into the problem, it became apparent that to do rename right, I had to add support for what I've come to call 'views'. The basic problem is how to preserve project history in the case of rename, especially when you go to create a patch build for a file that had a different name and/or location in the past. To do it right, I'm adding support for a 'view' so that you can see the project as it was at a time of interest.... and provided you've done you're labeling correctly, you'll be able to use views to make a patch build, and things will look just like they did at the time the original label was applied.... at least that's the plan. Adding view support is a lot of work -- though the ultimate client behavior will be very similar to what it is today.

The 2nd element of the delay conspiracy: I've taken on a short term consulting gig that should finish up some time in April. The consulting work necessarily distracts from development work on QVCS. I do the consulting several reasons. It helps keep me fresh technically -- I'm the sole developer on QVCS, and it helps to pick my head up from that familiar environment and get exposed to different technologies. For example, for this current engagement, I've learned how to use EJB3 entity beans, backed by the Hibernate relational persistence layer.... cool stuff.... In an earlier consulting engagement, I worked with the JBoss app server, using message beans, and JMS, etc. Doing the consulting also means I get to work with other developers, instead of working alone. This teamwork helps prime me with ideas for product improvements -- On my current engagement, we're using QVCS-Enterprise as the version control tool for our source code. That's cool, but it also helps me understand other areas of the product that need my attention... So while taking on consulting assignments involves tradeoffs, I think, on balance, it's worthwhile to do when the assignment is a good fit.

A 3rd element that will delay the 2.1 release: I'll be having an extended beta period. The 2.1 release (maybe I should call it 3.0 instead?) has a lot of changes already. It will take some time to shake it and get all the rattles out.

Technorati tags:

Monday, March 12, 2007

QVCS-Enterprise 2.0.20 available

I posted the 2.0.20 release over the weekend. It fixes a problem I introduced in the 2.0.19 build -- so if you are using 2.0.19 and you are using IDE integration, you will need to update to the 2.0.20 release.

The path to the 2.0.20 build is one of those embarassing moments in product development -- the 2.0.19 build was a broken build, and reaffirms a lesson in building releases that I almost always follow: always build a release in a clean directory. The 2.0.19 build was broken, not because of any coding error, but because some 2.1 code was included in the 2.0.19 build by mistake. Had I followed my own advice (always build a release in a clean directory), the problem with 2.0.19 would not have occurred.

The more basic problem I have with building releases is that the IDE portion of the build is not automated, whereas the Java portion of the build process is automated. I'll be changing that so that the entire build is automated. Oops.

Tuesday, February 20, 2007

QVCS-Enterprise 2.0.18, and new box shots

QVCS-Enterprise 2.0.18 is available. You can find more details here. It's been out for a while, but I've only now gotten around to annoucing here on the blog... sorry for the delay, but I've been preoccupied with work on QVCS-Enterprise 2.1, and a short-term consulting gig that I've taken on.

Along the way, to the 2.1 release, I want to dress up the web site a bit, and to that end, a first step is to create some cooler graphics that I can use to represent the 3 QVCS products. I've always liked web sites that show their software products in 'box shots', even though the product is sold electronically... so I began to play around with a tool that would help generate nicely shaded box-shot pictures for the QVCS product line.

In a web search, I found an affordable, and simple to use product called (appropriately enough) Box Shot 3D. The only problem with using this product is that you have to have some artistic talent to create the images that it uses for the front and side of the box.... so I asked my daughter to put together something, and was major league pleased with the results:

How cool is that?

Hopefully, customers will understand that they'll never actually receive a box containing software...

These new box shots will be part of the new look to the web site -- and though it will be a while before the web site update actually happens, I couldn't resist showing these off.