jCVS Release Notes

## jCVS Release Notes - 4.7.3

These are the most significant changes in this release. However, the file 'ReleaseLog.txt' contains the cvs log entries from the release.

- IMPORTANT NOTES
    See the release 4.7.1 important notes, and release 4.7.2, as they apply to 4.7.3 and they are important.

- Default Properties Moved To JAR File
    The most common problem that prevented people from using jCVS, aside from the bugs!, was the loading of properties. In this release, I have taken some steps toward the com.ice.util.UserProperties class that is used in ICEMail, and will eventually replace the properties code in jCVS. The first and most important of those steps was to move the default properties into the JAR file. Now, with the properties and images in the JAR file, you need no other file than the JAR file on your CLASSPATH to run jCVS.

    JCVS will still read the file 'properties.txt' from the current directory if it exists. This gives you the ability to have global overrides for all users. However, you are no longer required to have any file named 'properties.txt' if you so choose.

- Major Bug Fix For SubRepositories
    One of the most useful features of jCVS is the ability to use the 'Browse' command to open and subtree of a checked out repository. This is useful when you want to work on a small subtree, and do not want the overhead of an enormous tree.

    Unfortunately, there was a serious design flaw in how I handled this case. The flaw only manifested when you attempted to add a new file to the subrepository. Because I did not have the complete path information to the subrepository, you would get directories created at the top level of the original repository and commands would not work on the newly added file.

    When I attempted to hack around the problem, I realized that the design was flawed and the correct thing to do was to fix it. This is done, and I am happy to report that all bugs related to adding new files, even in new subdirectories, appear to be fixed.

- Bug Fix For Merged Files
    If you had a locally modified file that was checked in by someone else, then you did an update which resulted in a Merge, the file would appear as 'up-to-date', making it impossible to see your modifications unless you touched the file.

## jCVS Release Notes - 4.7.2

These are the most significant changes in this release. However, the file 'ReleaseLog.txt' contains the cvs log entries from the release.

- IMPORTANT NOTES
    See the release 4.7.1 important notes, as they apply to 4.7.2 and they are important.

- User Properties File Rename
    JCVS reads the Properties.txt file from the 'current directory'. It then reads a properties file from the user's 'home directory' (user.home property) to allow the user to override the properties. This file was named ".jcvsrc". The file's name now depends on the File.separator character of the OS. For UNIX and Linux systems, the file separator is a '/', in which case jCVS will use the file name ".jcvsrc" for the user's property file. For all other OS's, the name "jcvsrc.txt" will be used. This is important, since some OS's will croak on filenames that begin with "." (namely, MacOS). It also makes life easier for Windows users.

- Projects.txt Moved To Home Directory!!!
    JCVS uses a file named 'Projects.txt' to store the list of Projects that you can open from the Main window. This file was being read from the 'current directory' when jCVS was started. Now jCVS read the 'Projects.txt' file from the user's home directory (user.home). This allows each user to maintain their own project list.

- Fixed Add To New Subdirectory
    Release 4.7.1 had introduced a new bug where adding a file from a new subdirectory caused an Exception. This has been fixed and there are no known problems with adding new files.

- Fixed Empty Password In Test Dialog
    The Test Connection dialog will now accept empty passwords, allowing it to works with the gnome anonymous cvs server.

- Fixed Empty Directory Bug
    JCVS had a subtle bug related to the cvs protocol's Directory command. If jCVS was sending up its Entries commands, and any of the Entries were in a subdir of a directory that had no files in it, then no 'Directory' command would be sent to the server for the empty directory. It appears that this confuses the server, as it expects a Directory command for the empty directory (which, I guess, is reasonable :). JCVS now recognizes these cases and send the missing Directory command.

- Fixed Project Update Once Again
    Because of the above bug, Project Update still malfunctioned in some cases. There are now no known cases of Update not working completely and correctly.

- Fixed Project Update Once Again
    Because of the above bug, Project Update still malfunctioned in some cases. There are now no known cases of Update not working completely and correctly.

## jCVS Release Notes - 4.7.1

These are the most significant changes in this release. However, the file 'ReleaseLog.txt' contains the cvs log entries from the release.

- IMPORTANT NOTES
    Release 4.7.1 has two major changes that might confuse current users. First, the name of the application class has been changed from 'CVSApplication' to 'com.ice.jcvs.CVSApplication'. Thus, you will need to update any scripts or ShortCuts to reflect this name change. Second, while jCVS still supports the 'jscvdde.exe' program for opening files under Windows, jCVS now uses a superior program named 'shellex.exe' to accomplish this task. This new program is more versatile and more standard. Shellex.exe is described in more detail below and in the Properties.txt file.

- Fixed MAJOR bug, Project -> Update
    The Project->Update command was very broken. It would cause jCVS to overwrite locally modified files with the previous version causing data loss. Regardless of the all bold warnings that this may happen, it is not supposed to do that. This bug is fixed in 4.7.1, along with the same behavior if you used the Update command in the popup menu on directory items.

- Fixed Added File Timestamp Bug
    If you added a new file to a project, then quit jCVS, then restarted jCVS and open the project, jCVS would fail to parse the timestamp of the added file and fail to open the project. This is fixed.

- Fixed Test Connection Dialog
    Newer versions of the CVS server would not authenticate without a repository being specified. This is in accordance with the new security measures and the --allow-root option. The Test Connection dialog now includes an input field for the CVS repository.

- Fixed RSH Connection Method
    The internale RSH implemenation was sending the remote user name as the local user name. Many people have a different local name and establish their '.rhosts' files to that affect. Now, jCVS uses the Java System property 'user.name' for the local name, which is more correct. If the property is not set, it defaults back to using the remote user name.

- Clearing Of Argument Field
    The text field used to enter arguments for a cvs command was not cleared after the command executed. This left the arguments in place, which were frequently picked up by the next command causing undesirable effects. Now the arguments field is cleared after the successful completion of the cvs command.

- Updated Timestamp Parsing
    The Java SimpleDateFormat now can handle parsing jCVS's timestamp and is more efficient than the code in jCVS. Thus, we converted over to using SimpleDateFormat where applicable. The GMT timezone string was also changed from "GMT+00", which was a hack to work around a bug in Java, to use "GMT", which is correct, now that the bug in Java has been fixed.

- Move and Update Overwrites
    Previously, if you used the Move and Update menu command two times in a row, the second would fail due to an inability to overwrite the existing backed up file. The command will now overwrite the existing backup file.

- Upgraded the "Open File" Support
    The open file support now allows you to specify a PATH on which to search for executables used in 'SH' method opens. Also include a new Windoze program 'shellex', which provides simpler and better support for opening files. Now you can open files into Word without Word being opened first. The shellex program will cause Word to be opened automatically.

- Updated Support For User Properties
    When jCVS initializes, it read the file named 'Properties.txt' if one if found in the directory from which jCVS is run. In this release, after jCVS loads Properties.txt, it will look for a file named 'jcvsrc.txt' ( it is named '.jcvsrc' under UNIX/Linux systems ) in the user's home directory. When jCVS starts, it will print the user's home directory to stdout.

- Added Menu Shortcuts
    Added menu shortcuts (accelarator keys) to many of the most commonly used commands.

- Added New Windoze ShellEx Support
    Added new program 'shellex.exe' to provide better intergration with Windoze. This is a replacement for 'jcvsdde.exe', which is still included. The shellex.exe program uses the Windows API call named "ShellExecuteEx", which will use the Registry settings that you configure when you configure 'File Types' options in the Program Manager. This is more versatile, since you can specify any 'verb' you wish with any file name extension. Thus, you can 'open' .c files, while 'edit'-ing .html files.

- Fixed Tabbing Order In Dialogs
    The tabbing order of most dialogs has been made sane.

- Icons Refreshed On Handle Toggle
    When you open and close and open directories via the little triangle handles, the icons under them will now be refreshed.

- Fixed 'Add File' To Remember Location
    Now, when you are adding multiple files, the FileDialog will open in the directory from which you selected the last file to add. Previously, you were popped back up to the top level of the project. Click, click, click...

- Fully Implemented Release Command
    The 'release' command is now fully implemented. It will scan your hierarchy and announce if they are any modified, added, or removed files and ask before deleting these changes. Then the project's local disk usage is deleted.

- Added File Compression Support
    JCVS now supports the 'gzip-file-contents' option. This allows for gzip compression of files before they are transmitted and thus saves bandwidth on slow connections. This option can be controlled on a per project basis by the menu checkbox in the project window's File menu. It can also be set on a global basis via the properties.txt file. The property to set is named 'jcvs.global.allowGzipFileMode', and it can be set to 'true' or 'false'.

- CVSApplication Main Class Moved to com.ice.jcvs Package
    The main class 'CVSApplication' was moved into the com.ice.jcvs package. This is more correct and simplifies code management. You are now required to use the name 'com.ice.jcvs.CVSApplication' as the main class to start jCVS.

## jCVS Release Notes - 4.5

These are the most significant changes in this release. However, the file 'ReleaseLog.txt' contains the cvs log entries from the release.

- First Cross Platform Release
    This is the first release that works equally well on both Windows and Solaris platforms. Solaris popup menus are fixed, image handling is fixed, scroller warnings fixed, etc.

- Complete Directory Support
    Previous releases did not understand directories that had no contents, and could not create new directories on the server. This release will create empty directories and handles them properly. The release also allows you to create new directories on the server. This release also fixes a bug so that adding a new file in subdirectories that do not exist on the server will now create the needed directories in the repository before adding the new file.

- Added Ability To Redirect Output
    This release allows you to redirect stdout and stderr to a file. Many Windows users were having diffficulty trapping the debugging and tracing output to email to me. This will help.

- Partial Support For Set-/Clear- Commands
    jCVS now partially supports 'Set-/Clear-' static-directory and 'sticky'. These were critical since they are how jCVS recognizes empty directories. However, jCVS does not currently support sending these flags back up to the server, so they will not work fully. However, this does improve compatibility with the command line client, since it will use the files jCVS creates.

- Improved Interface
    Mostly minor things, such as focusing in dialogs (although there is still much to do), and other small details.

- Fixed Bug With No Method
    When the Root file specifies a user and hostname, but no connection method (i.e., user@host:/path), jCVS now recognizes this as a 'server' connection.

- Fixed Project Update Command
    The Update command under the Project menu now does not send the file names as arguments to the update command. This allows the command to pick up new files that have been added, where previously only the file in the local directory were updated, and new files were never seen.

$Id: ReleaseNotes.html,v 2.7 1998/08/07 03:21:06 time Exp $
Copyright (c) 1997 By Timothy Gerard Endres
jCVS is licensed to you under the GNU General Public License.