QVCS Product Family Newsletter - September 2006
Publication date: September 11, 2006
Contents
- QVCS-Enterprise: 2.0.10 Release Available
- Blog highlights
- Under the hood -- computing file status
QVCS-Enterprise: 2.0.10 Release Available
The 2.0.10 release is available for download from the usual locations:
http://www.qumasoft.com/qvcse.zip
This is a 'free' update to users who have purchased their license within the past year.
This release is a MAJOR release that adds an ability to integrate with Microsoft SCC api compliant IDEs like Microsoft's Visual Studio 2005, VS 2003, VS 6.0, VB 6.0, Sybase's PowerBuilder, and others.
The 2.0.10 release has a number of other usability improvements as well. You can see some of the details here:
http://www.qumasoft.com/qvcseHistory.html
and get a full report of the changes/additions for this release here:
http://www.qumasoft.com/reports/qvcs.report.2006_8_31_10_39_5.html
There is one known bug in the 2.0.10 release: for directory level get requests, in 2.0.10, the get will always retrieve all files, even if the file has been deleted (a.k.a. marked obsolete). This will be fixed in the next build which should be out by the end of October (if not sooner).
Blog highlights
As I've wrapped up the 2.0 release, I've had more time to step back from activities that push bits out the door and think more about the processes and management activities that lead to success (or not).
In an entry on:
You get what you measure. I comment on the importance of measuring the right thing.
In an entry on driving a car as swarming behavior, I comment on building communities.
I explain the recent QVCS-Enterprise price increase here.
Under the hood -- computing file status
QVCS, QVCS-Pro, and QVCS-Enterprise all have a 'Workfile Status' or 'File Status' column that describes the current state of the current workfile with respect to the default revision that has been checked in. The meanings of the different status values is described here.
(This description is also accurate for QVCS and QVCS-Pro).
The basic strategy used to compute the status is the same for all three products:
The MD5 digest of the current workfile is computed and then compared with the MD5 digest of the default revision. If the digests match, then the workfile status is 'Current'. If the digests do not match, then a bit more work is required.
In the case where a user has performed a 'get' or 'checkout' operation for the file, we know both the time of that operation, and the revision that the user retreived. If the timestamp on the current workfile is the same as the time when the last 'get' or 'checkout' was performed, we can conclude that the user has made no edits to the workfile since they did the 'get' or 'checkout'. Since the digests do not match, we must conclude that there has been a change in the value of the default revision's digest -- so the file status is 'Stale'.
If the timestamp on the current workfile has changed since the user last did a 'get' or 'checkout', (and the digests do not match), and the default revision's revision number matches the revision number that the user got or checked out, we can conclude that the user has made edits to their copy of the workfile -- so the status is 'Your copy changed'. If the revision number of the default revision does not match the revision number of the get or checkout, then the status is 'Merge required' -- since there have been local changes AND other changes that have not been captured in the local copy.
A status of 'Different' is used for cases where the digests do not match and the user has not ever performed a 'get' or 'checkout' operation for the file. Because we don't know the state of the local workfile, the most we can conclude is that the current workfile is 'Different' than that default revision.
Associated with computing these status values, the products cache the digest information in memory, and also store the digest information on disk when the application exits. If these digest files are deleted, they will be regenerated and repopulated as a user does 'get' or 'checkout' operations on the files that compose a project.
If keyword expansion is enabled for a file, then the workfile digest computation is performed on a version of the workfile that has had keywords 'compressed'. This means that the digest computation will never pick up changes in expanded keyword values, since from QVCS' perspective the file has not changed.
|