~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This file describes the changes in QVCS 3.3 that a user of QVCS 3.2 will want
to know about.

Installation:
~~~~~~~~~~~~~
You should create a separate directory for QVCS 3.3. Unzip
the qvcs33.zip into this separate directory, and then manually copy the
.ini files from your QVCS 3.2 executable directory into the separate QVCS 3.3
executable directory.  This will preserve the project definitions that
you've defined while using QVCS 3.2 (projects are defined in the .ini 
files).


General Comments:
~~~~~~~~~~~~~~~~~
1.  QVCS logfile format is identical between 3.3 and 3.2.  There were absolutely
no changes made in this area.  This means that 3.3 and 3.2 can inter-operate.
HOWEVER, if you plan to use the archive caching feature of 3.3 (which improves
performance by up to a factor of 3), you should not mix the use of 3.3 with
earlier releases of QVCS.  If you leave the cache disabled, then mixing 3.3
with earlier releases won't be a problem.  (See the separate discussion on
caching below).

2.  The "Maintain Project Files" dialog is now gone from the product.  Workfiles
and archive files are displayed together on the main screen.  To add files
to a project, you just select the file(s), and click on the "Add" button
on the toolbar.  Many users had complained about how they too easily forgot
to create archives for new files that they had created for their project.
Hopefully, putting the workfiles in an obvious location will help more
users with this problem.  The workfiles are displayed with a different
graphic symbol than other files shown in the file pane.

3.  You can now filter the files that get displayed on the main screen.
This file filter feature also allows you to hide the display of workfiles
on the main screen, so if you are distracted by too many workfiles on your
main display, just enable the "Hide workfiles" file filter.

4.  The toolbar is now condensed so that there aren't two buttons for each
of the main operations that you typically need to perform.  The action taken
when you click on a particular button depends on whether you have focus
set on the project tree, or if a file or set of files has focus.  If 
the tree has focus, then an operation will apply to the project; if a file
or several files have focus, then the operation will apply to the selected
file(s).

5.  The toolbar now includes two additional buttons:  One for defining 
file groups, and a second one for defining file filters.  How to use
them is described in the product help.  File groups make it easy to treat 
files that differ only in their file extensions as a file group so that
an operation on one file in the group is easily applied to all files in
that same group.  Delphi and VB users should find this feature especially
useful.  File Filters are discussed more thoroughly below in the 
"Understanding File Filters" section.

6.  The message file for 3.3 has changed from that used in 3.2. This file 
(qvcsmsgf) contains many of the message strings used within the product.
If you want to continue to use 3.3 and 3.2 at the same time, you must install
3.3 into a separate directory, since the message files for 3.2 and 3.3 are
NOT compatible.

7.  The 3.3 release marks the first QVCS release where the GUI contains
ALL the functionality of the command line utilities that make changes
to QVCS archives:  you can now delete revisions from the GUI -- using
qdelrev is not required.  If you had used the command tools in the past
to perform some archive file operation not supported by the GUI, you
can now perform that same operation from within QWin3.

8.  There is now more elementary instrumentation in the product.  In some 
circumstances, QWin3 may write to a qvcserr.log file in the QVCS executable
directory.  Generally, you should leave the instrumentation disabled, as it
will slow performance, and make voluminous additions to the qvcserr.log file.
The instrumentation is in the application to make it easier to drop 
"bread crumbs" when trying to diagnose a technical support problem.


Understanding Archive Caching:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Beneath the "Admin" menu, there is now an "Enable Cache" menu selection.
If you select the menu item, it will enable archive caching in the product.
This caching is done for all users -- it's not user specific.

When caching is enabled, QVCS checks an archive directory for the 
existence of an archive cache file named Q$Cache).  If the
cache file exists, then QVCS reads the cache file to obtain all the
information about the archive files located in that directory.  If the
cache file doesn't exist, QVCS reads each archive file separately,
and from them obtains the information that is otherwise contained in the 
cache.  It then creates the cache file, so that in the future when
it reads the archive information from that directory, it will be able
to read from the cache instead of having to read each file separately.

When caching is NOT enabled, QVCS reads each archive file separately,
just as it did in earlier releases.  Measurements show that caching 
improves performance by up to a factor of 3 -- that is, selecting
a project node and waiting for the screen update to complete now takes
1/3 the time that it did in earlier releases.

This performance improvement has a cost:  either EVERYONE uses the cache,
or you must disable the cache.  In 3.3 with the cache enabled, every
time someone makes a change to an archive, the cache for that directory
is also updated so that the cache ALWAYS is up to date with the latest
information for the archives in that directory.  If there ever was
a case where someone updated an archive in that directory, and some
how didn't update the cache, then future uses of that cache might lead
to confusion since the cache is no longer an accurate description
of the archives in the directory.  This can happen if you mix using
3.3 with earlier releases of QVCS.

Understanding File Filters:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
File filters allow you to filter the set of files that get displayed
on the screen.  File filters ALSO limit the set of files that bulk operations
are applied to.  For example, if you define a file filter to display
only those files that have an extension of c or h (the filter string
would be "c,h" with no quotes), and you then applied a label at the
project level, only those files that satisfy the file filter criteria
would get labeled.


Thanks to all of you for your comments and suggestions.  If you have other 
feature suggestions to improve the product, please let me know.

My goal is for QVCS to remain the best version control value on the market.


Jim Voris, President
Quma Software, Inc.
jimv@qumasoft.com

