AccuRev Version 4.0
Installation and Release Notes
January 18, 2006

This document contains the following sections:

AccuRev Installation Notes

AccuRev Release Notes

AccuRev Installation Notes

Installation of AccuRev Configuration Management software on a machine involves running an installation "Wizard" program, after downloading it from the AccuRev Web site. One machine at your site should be installed as the "Server" machine -- the one that runs the AccuRev Server process and hosts the AccuRev data repository. Any number of other machines can be installed as "Client" machines.

Each machine must be installed separately. There is no batch-installation capability, but you can perform a non-interactive installation, driven by a simple configuration file. (See Non-Interactive Installation (Unix/Linux only) below.)

We present an overview of the installation process here. The wizard aims to be self-explanatory, but if you'd like a detailed, step-by-step description of the installation process, see the "Quick Evaluation" chapters in AccuRev Technical Notes .

Upgrading from an Earlier Version?

Upgrading a machine from an earlier AccuRev release is easy. You are not required to uninstall any existing software. You can install the new release "right on top of" the existing release -- the installation Wizard lets you preserve your development data and configuration files. On the server machine -- the one that runs the AccuRev Server process -- installation of the new release automatically upgrades the data repository to the new release level.

Getting Ready to Run the Wizard

We assume that you've already downloaded a file containing the installation Wizard from the Downloads page of the AccuRev, Inc. Web site. If not, perform the download now, then return to these instructions.

If the file you downloaded is the Wizard itself (Windows: AccuRevInstall.exe , Unix: AccuRevInstall.bin ), then you're all ready to run the Wizard.

If you downloaded a compressed package (a file with a zip or gz suffix), you must first extract the Wizard from the package. Many extraction tools are freely available. There are handy links to such tools on the Downloads page; and the unzip and gunzip programs are standard on many Unix systems.

Now that you're ready to run the Wizard, you can proceed to the appropriate section below. When we instruct you to "start the Wizard", keep in mind these tips:

AccuRevInstall (on Windows)
sh AccuRevInstall.bin (on Unix/Linux)

This always launches the Wizard in graphical mode on Windows. On Unix/Linux, it launches the Wizard in graphical mode only if the X Windows System DISPLAY environment variable is set. Otherwise, it launches the Wizard in console (text) mode.

First-Time Installation -- Client or Server

Start the Wizard. You'll be up and running in just a few minutes!

Upgrading a Client (Non-Server) Machine

Start the Wizard. If you choose a Custom installation, be sure to select No when the Wizard asks, "Do you want to install new configuration files?".

Upgrading a Server Machine

  1. Stop the AccuRev Server process. On Unix/Linux systems, use the command acserverctl stop. The acserverctl program is located in the AccuRev bin directory. On Windows systems, you can use the Services applet to stop the AccuRev Server process, or the command net stop accurev .
  2. Perform a full backup of the AccuRev data repository. For detailed instructions, see section Backing Up the Repository on page 3 of the AccuRev Administrator's Guide .
  3. Start the Wizard. If you choose a Custom installation, be sure to select No when the Wizard asks, "Do you want to install new configuration files?". Similarly, select No when asked about replacing your license key file. Installation automatically upgrades the AccuRev data repository on the server machine. (There is no way to "downgrade" the data repository, for use with an earlier version of the AccuRev Server.)
  4. Verify that the new AccuRev Server process has been started, by running the command accurev info. If you need to start the Server process manually, use the command acserverctl start on Unix/Linux systems. On Windows systems, use the Services applet or the command net start accurev .

Non-Interactive Installation (Unix/Linux only)

On a Unix or Linux, system, you can run the AccuRev installation program AccuRevInstall.bin as a non-interactive "console program" instead of as a wizard. Follow these steps:

  1. Create an installation configuration file by copying the sample text below. This text is also available for download from the Downloads page of the AccuRev, Inc. Web site.
  2. Revise the settings in the configuration file, as appropriate for the target machine.
  3. Invoke the installation program as follows:

sh AccuRevInstall.bin -i SILENT -f <config-file-pathname>

You must use a full pathname to specify the installation configuration file. Use the following text as a template for the configuration file:

###
### AccuRev InstallAnywhere SILENT installation config file
###
#
# Unix/Linux usage: sh AccuRevInstall.bin -i SILENT -f <config-file>
# Windows usage: AccuRevInstall -i SILENT -f <config-file>
#

# this setting enables use of this config file; do not change.
INST_ROOT=true

# location of AccuRev installation directory (OK to already exist)
# installer creates subdirectories bin, doc, jre, etc.
USER_INSTALL_DIR=/opt/accurev

# un-comment exactly one of the following lines.
#CHOSEN_INSTALL_SET=Client
CHOSEN_INSTALL_SET=Full

# Client install: hostname of machine to run AccuRev Server process.
# Full install: this setting ignored, hostname of local machine used.
SERVER_HOSTNAME=myhost

# The traditional port for the AccuRev Server is 5050. But you can
# change it to any number. We recommend the range 5000 - 6000.
SERVER_PORT=5050

# Full install: full pathname of a valid license key file.
# installer copies this file into site_slice dir, as "keys.txt".

LICENSE_KEY_FILE=/path/to/license-key-file

Note: the SERVER_PORT setting does not work in this release. The installation program uses 5050 as the port number in the acclient.cnf and acserver.cnf files (if it creates them), no matter what value you specify in the configuration file.

AccuRev Release Notes

Please read these Release Notes to familiarize yourself with the changes in AccuRev for Version 4.0.

Compatibility with Previous Versions of AccuRev

AccuRev Version 4.0 programs are fully compatible with V3.8 programs, but are incompatible with all prior AccuRev releases (including Versions 3.7 and 3.7.1). If you are upgrading from a pre-V4.0 release of AccuRev, you must upgrade the machine that runs the AccuRev Server software, along with all the machines that run AccuRev client software.

No explicit conversion is required to bring the AccuRev data repository from any prior level to the Version 4.0 level. When you install Version 4.0 on the machine that runs the AccuRev Server software (this machine also hosts the data repository), the repository will be upgraded automatically.

Compatibility with Versions of the Java Runtime Environment

Version 4.0 is fully compatible with both Versions 1.3.x, 1.4.x, and 1.5.x of the Java 2 Runtime Environment (JRE).

Source Code Availability

In accordance with the GNU open-source policy, the source code for the AccuRev programs acdiff and acdiff3 is available at this Web address:

http://www.accurev.com/download/open-source/acdiff_source.zip

These programs implement text-file comparison and merging operations.

XML-Format Output of CLI Commands

Many of the commands in the AccuRev CLI tool, accurev , can produce output in XML format ( -fx option). The documentation for this release does not describe the structure of the commands' XML-format output.

Enhancements in Version 4.0

The following sections summarize the product enhancements in AccuRev Version 4.0.

Enhancements to GUI Usability

Improvement to keyboard usage

The GUI now supports many more keyboard accelerators, for many menu choices, for navigation in the Diff and Merge tools, and for all dialog-box buttons.

All commands are available from the keyboard -- even those on GUI context menus: the new Actions submenu of the GUI main menu provides access to context-menu commands.

GUI user preferences

Numerous items have been added to the AccuRev Preferences dialog box ( Tools > Preferences ).

Filter-by-comment in the History Browser

The History Browser now includes an input field where you can enter a text string. This restricts the display to transactions whose Comment field includes that string.

Partial data display in the Version Browser

A user preference controls how many of an element's versions are initially displayed by the Version Browser. Displaying a small number of versions can provide a significant performance improvement.

Multiple-file cut-and-paste

In the File Browser, the Cut command on the selected item's context menu is now enabled for multiple-element selections. This makes directory reorganization in the GUI much more efficient.

GUI tab handling improvements

For many of its tools -- the File Browser, and tools invoked from the View , Issues , or Admin menu -- the GUI now checks whether it would create multiple tabs displaying the same data. Instead of creating a new tab, the GUI simply brings the existing tab into view. You can use the Clone command on a tab's context menu to explicitly request an additional tab that displays the same data as the existing tab.

Double-click column resizing

In any table displayed by the GUI, you can double-click the right-side column divider in the heading row. This resizes the column to accommodate the widest entry currently in that column.

Improvements to the Merge Tool

You can now enter TAB characters when manually editing the results of a merge. The display width of TAB characters is controlled by a user preference. Accelerator keys make it easier to navigate among the displayed changes/conflicts and to search for text in any of the panes.

Improvements to the Diff Tool

The display width of TAB characters is controlled by a user preference. Accelerator keys make it easier to navigate among the displayed differences and to search for text in either of the panes. The filename display now accurately indicates the two versions being compared.

Improvements to File Chooser dialog boxes

In each context where you choose a file for input or output, the GUI suggests the directory you most recently used in that context (or defaults to your home directory).

Where appropriate -- for example, in specifying attachments to an issue record -- you can specify multiple files at the same time.

In several situations where you specify a file (or other data structure) to be created, the dialog box now includes a New Folder button or icon. This enables you to create a new directory "on the fly" in which to create the data structure.

More State Preserved Between GUI Sessions

The GUI notes which tabs are open when you exit. The next time you start the GUI, it restores all the File Browser, StreamBrowser, and Query tabs from the preceding session.

Improvements to the StreamBrowser

All boxes in the StreamBrowser now have icons indicating the type of data structure.

You can now drag-and-drop a stream's default group control to the parent stream (to promote the contents of the default group) or to another stream (to send the default group versions to the Change Palette).

Lock icons in the StreamBrowser display facilitate access to the stream-locking facility.

A user preference now controls whether the StreamBrowser displays a default group control for each stream and workspace with a non-empty default group. Dispensing with these controls can provide a significant performance improvement.

Zoom mode : The StreamBrowser's Zoom In command restricts the display to the subhierarchy below the selected stream. Zooming in both simplifies the display and improves StreamBrowser performance. For example, refreshing the display involves determining the default-group status and the lock status for each displayed stream. When you have fewer streams displayed, this determination proceeds more quickly.

Improvements to the Change Palette

When performing a merge operation, the Change Palette suggests workspaces below the destination stream, and automatically selects such a workspace if it's your only one below the destination stream.

Improvements to the Update command

The Update command now warns about lack of synchronization between the system clocks on the client and server machines. The command provides better diagnostics when it refuses to overwrite modified files in your workspace. Its progress windows provides a clearer indication of when the operation has completed.

Improvements to the New Workspace command

A New Folder icon makes it more convenient to place a new workspace under a newly created directory. A progress indicator provides better feedback as files are copied to the newly created workspace tree.

No More Compiled GUI

The AccuRev GUI is now delivered as a standard Java application only. A compiled version of the GUI is no longer included in the product. Numerous performance improvements have made a compiled version of the GUI unnecessary. The standard Java implementation is preferable for diagnosing Java-level issues at customer sites and for ease of upgrading.

Miscellaneous improvements

  • File Browser : in the results of a Stranded search, you can now select multiple elements for processing with the Promote or Revert to Backed command.
  • Locks dialog box : user lists and group lists are sorted alphabetically; the listbox is now wider, in order to show long names.

Enhancements to Configuration Management Functionality

More ways to compare versions of text files

In both the GUI and the CLI, you can now compare a specified version with:

  • The corresponding basis version -- the version that served as the starting point for the set of changes in the specified version.
  • The previous occupant version -- the one that was in the stream or workspace of the specified version just before that version was created.

CLI command "anc" to determine ancestors of a specified version

The anc command can determine several kinds of ancestor to a specified version: the immediate predecessor, the corresponding basis version, or the previous occupant. It can also determine the closest common ancestor of two specified versions of a text file element.

Improvements to the "Promote" command

The Promote command now automatically promotes a newly created parent directory, if necessary, when any of the elements within in are promoted.

New element type "ptext"

The Add to Depot and Keep commands now support a new element type, ptext . Elements of this type are text files, but AccuRev skips its standard text-line-terminator manipulation when creating new versions of this element type.

Depot-by-depot replication

Replication of the AccuRev repository at multiple sites now occurs on a depot-by-depot basis. The new CLI commands mkreplica and rmreplica maintain the set of replicated depots in each replica repository.

New "chmod" option to record a comment: -c

The chmod command now accepts a comment string ( -c option), which is stored in the resulting repository transaction.

New "stat" option to display excluded files: -X

The stat -X command displays elements that have been excluded from the workspace or stream, listing them with the status indicator (excluded) .

Enhancements to Configuration Management Usability

When the Update command aborts because it refuses to overwrite a modified file in the workspace, it now displays a more informative message, instead of the somewhat cryptic "CRC mismatch" message.

Enhancements to Change Packages

Improvements to the CM/Dispatch integrations (Promote command)

Several improvements have been made to the creation or updating of change package entries during execution of a Promote command:

  • The user can now specify multiple issue records whose change packages are to get entries for the promoted versions.
  • If an element already has an entry in the specified change package, and adding the promoted version would create a "change package gap", the user can have AccuRev "span the gap" ( promote -g ). This creates a single, combined entry.
  • The user can create a new issue record on the fly, whose change package will get entries for the promoted versions.
  • The CM/Dispatch integrations can generate a spurious complaint ("change package merge required") when a version created by a Patch command is promoted. The promote -N command avoids this situation by having AccuRev skip the updating of a change package entry if it can determine that the entry already contains the changes in the Patch-created version.

Better display of "incomplete" change packages

In a Stream Issues listing ( Show Issues command in the StreamBrowser), there is an improved display of a change package when Show Incomplete is checked: change package entries that are "in" the stream are displayed with a white background, and entries that are not in the stream are shaded.

"accurev" commands for change packages

New accurev CLI commands support a variety of change package operations:

  • cpkadd : add an entry to a change package
  • cpkdescribe : list the contents of a change package
  • cpkremove : remove an entry from a change package
  • issuediff : compare two streams in terms of their change packages
  • issuelist : list the change packages in a stream

Enhancements to Issue Management

New Name for Issue Management

The name of the AccuRev issue management capability has been changed from "Dispatch" to "AccuWork".

Global queries

The Dispatch Queries tab now displays both the user's own private queries (visible only to him) and queries that have been declared public (visible to all users). The context menu of a private query now includes the command Set as Public . The context menu of a public query now includes the command Clone Query (which creates a private copy of a query defined by another user) or the command Set as Private (to remove from public use a query defined by that user).

New comparison operator: "does not match"

In a query that tests the value of a Text field, a new operator is now available: does not match .

Ability to see original version of issue record

In previous releases, the Issue History page of an issue record did not contain entries for the original field values. Now, the first Save of an issue record creates an Issue History entry for each field value that was entered manually or was initialized automatically.

Enhancements to Integrations

Enhancements to the Eclipse Plug-in

Version 3.8.0 of the AccuRev Team Provider Plug-in for Eclipse is the most recent version of the plug-in. It includes these enhancements:

  • New actions on Team menu: Keep & Promote , Defunct
  • Additional searches on the AccuRev Searches submenu. The results of searches can show elements in the entire AccuRev workspace, or just in the part of the workspace that is included in the Eclipse project.
  • The integrations between AccuRev's configuration management and issue management capabilities are now fully supported by the plug-in. When the user invokes the Promote action, a list of issue records appears, enabling the user to add the promoted versions to a change package.
  • New icon overlays to indicate the AccuRev status of files and directories in the Navigator view. Users can now configure their own icon overlays.
  • Users can now created linked resources within projects that contain AccuRev-controlled data.

Enhancements to the SCC Integration

  • The integrations between AccuRev's configuration management and issue management capabilities are now fully supported by the plug-in. When the user invokes the Promote action, a list of issue records appears, enabling the user to add the promoted versions to one or more change packages.
  • It is now easier to create a C# Web project within an AccuRev workspace.
  • Error message display has been improved.

Enhancements to Administration

Changes to the "server_admin_trig" trigger

  • The server_admin_trig trigger now fires on execution of the reactivate command. It also fires on execution of the new commands mkreplica and rmreplica .

Changes to sample triggers scripts

  • The sample scripts server_admin_trig.pl and server_preop_trig.pl now use the AccuRev group mechanism (and the accurev ismember command) instead of a Perl hash to define an administrators group. By default, this group is named Admin .

More "maintain" administrative commands

The maintain utility has additional commands, along with new options on existing commands:

  • The loc128 command upgrades an older depot so that each pathname segment can have up to 128 characters.
  • The vercheck command can now update the repository database to fix problems with line terminators and checksums for versions of text files.

Fixes in Version 4.0

Version 4.0 resolves the following issues:

2363

The command diff -a -v <stream1> -V <stream2> sometimes failed to show the differences between the two specified streams.

2792

When upgrading an AccuRev installation, the installer did not verify that it could replace all files -- for example, making sure no file to be replaced was currently busy.

2889

The Update command used to behave poorly when run in a directory that contained an external element with the same pathname as an element under Accurev's control. Now an appropriate error message is displayed.

3004

CLI commands did not check their argument lists to determine if elements were specified multiple times.

3665

The CLI revert command did not properly handle the reverting of a purge transaction on an element in a dynamic stream, if that element had never been promoted to that stream's parent.

4073

In the dialog box displayed by the transaction-based or change-package based integration between AccuRev and Dispatch, clicking Cancel incorrectly caused AccuRev to proceed as if "0" has been entered, instead of canceling the Promote command.

4298

The Diff Against Backed command did not work properly if the backing stream was a time-based stream and a new version had been promoted to the backing stream after the basis time.

4703

The Populate and Update commands did not handle existing file and directory permissions correctly.

4882

AccuRev parsed the parameters file incorrectly for a pre-create-trig or pre-keep-trig trigger. This caused an error to occur if a filename included a SPACE character.

5023

The command co -v <old-version> did not work correctly if the old version to be checked out had a different pathname from the current version.

5096

In Visual Studio or another MS-SCC application, enabling or disabling the AccuRev integration sometimes caused the application to crash.

5224

A memory leak in the GUI Merge tool caused progressively slower performance when merging multiple files.

5254

The command add -x <filename-wildcard> worked incorrectly if the wildcard did not match any external files: it added all of the workspace's external files to the depot.

5723

The Merge command failed to abort if the file in the workspace was read-only. It incorrectly created a new version and drew a merge line to it.

5797

A workspace became inaccessible if its name was changed and then its backing stream was changed, without an intervening Update .

6241

When an AccuRev integration (for example, with Eclipse) was requested to promote a group of elements, it failed to abort if one or more of the elements had (overlap) status.

6387

When submitted to the accurev xml command, XML-format files encoded as UTF-8 or Unicode caused the AccuRev Server to crash. Such files now simply cause a command error.

6495

The command merge -s <root-stream> caused the AccuRev Server to crash. (This command does not make sense, since a depot's root stream does not have a parent.)

6501

Defunct elements promoted to the depot's root stream were incorrectly appearing in a File Browser display of the root stream.

6647

Storing and retrieving of file attachments and URL attachments to Dispatch issue records did not work correctly on Unix/Linux platforms.

6729

AccuRev did not update the include rule for a file (for example incl \.\mydir\myfile.java ) if a subsequent Update caused that file's pathname to change. This in turn caused a recursive Populate command to complain spuriously about that file.

6760

A promote-by-change-package operation ( Promote command on an issue displayed in a Stream Issues tab) failed incorrectly if one of the elements in the change package already had a descendant version in the destination stream. The Promote command now silently skips over such "underlap"-status elements.

6768

A defunct element in the destination stream of a mergelist command was incorrectly listed by the command as having (backed) status in the destination stream.

6774

The AccuRev GUI would hang when started from the command line, unless the current working directory was the AccuRev bin directory.

6778

The splash screen displayed by the SCC integration listed the wrong version of AccuRev.

6821

When invoking the Merge command from the Change Palette, a hang or error would occur if the element was excluded from the workspace chosen for the merge operation.

6838

If both a file and its parent directory had namespace-level changes to be promoted, the Promote command failed with a "no path to element" error.

6841

A promote-by-change-package operation ( Promote command on an issue displayed in a Stream Issues tab) failed if one of the elements in the change package had (defunct) status.

6842

The Eclipse plug-in had a memory leak in the AccDecorator.decorateImage() function.

6925

An Update of a reference tree failed with CRC-mismatch errors after combinations of Populate commands in the reference tree and Revert to Backed commands in the corresponding stream.

6946

There was various confusion and incorrect processing with group names longer than 29 characters.

7024

After performing a Deep Overlap search, selecting a stream's overlapped version, and executing the Merge command, the overlapped version incorrectly disappeared. (The stream's overlap is not resolved until the merged version is promoted from the workspace to that stream.)

7035

After multiple elements were excluded from a workspace or stream in a single operation, all but one of the elements remained visible after switching out of Include/Exclude mode.

7060

The mergelist command incorrectly included stranded elements and defunct elements in its results.

7063

In the results of a Deep Overlap search, the entry for a dynamic stream sometimes included the status indicator (modified) . This indicator doesn't apply to versions in dynamic streams.

7189

The sample pre-create-trig script, elem_type.pl , did not take into account the -E (element type) option to the add command.

7218

After reparenting a workspace from a snapshot to a dynamic stream, versions could not be promoted from the workspace unless the workspace was updated first. (It's a best practice to update a workspace whenever it's reparented.)

7222

There was syntactical confusion on how to specify a destination change package (Dispatch issue record) in a CLI promote command. The -I <issue-number> option provides this capability.

7275

A console message was incorrectly included in the XML-format file output by the CLI command update -fix .

7288

The AccuRev Server's XML parser did not properly handle empty XML elements that were coded with a single tag. Example: < comment/>

7318

Running Add to Depot on a file whose timestamp was in the future could silently fail, or could hang the AccuRev GUI.

7326

With the change-package-based integration between AccuRev and Dispatch enabled, the AccuRev GUI would hang attempting to promote elements from a workspace whose workspace tree was not accessible from the client machine.

7350

The routine that automatically determines a file's element type incorrectly flagged a Ctrl-L character (form-feed, hex 0C) as indicating a binary file.

7394

Inheritance of include/exclude rules was not being correctly blocked by a child stream's time basis.

7400

The display of a transaction's versions by the Show History command correctly included data in the Issues column, but the display of the same transaction's versions by the Show Active Transactions command showed nothing in the Issues column.

7411

If you purged a version from a dynamic stream ( Revert to Backed command), then promoted the remaining versions in that stream's default group, a subsequent stream history would omit the purge transaction.

7414

In the Confirm Exit dialog box displayed by the File > Exit command, pressing ESC caused the exit operation to proceed instead of cancelling it.

7418

The documentation for the remove command incorrectly stated that an object processed by this command is no longer accessible. The remove command simply hides objects.

7428

The sample server_admin_trig.pl script in the examples directory did not document the fact that the trigger fires for the rmws command as well as the synonymous remove wspace .

7431

The Merge tool sometimes displayed the left-margin arrow indicators (showing which contributor provided the highlighted blocks of lines) out of sync with the blocks themselves.

7446

User-specified command lines for Diff and Merge tools in the Preferences dialog box were not preserved.

7455

The parameters files generated for triggers that fire on a Promote command (invoked on a set of elements or a set of issues) did not contain information as to which issue records were associated with the promotion.

7459

An error occurred when the user's workspace was not in the same depot as the workspaces or streams involved in a diff -v -V command (or other similar forms of the diff command).

7468

In a multi-platform environment, the status of files that were just processed with Add to Depot and Promote was not consistent between Unix/Linux clients and Windows clients.

7481

When interrupted by the user during specification of an issue record, the promote -K command still performed the keep command before aborting.

7482

When an attempt to promote a version was made from the Change Palette, a later version of that element was sometimes promoted, even if the Use Latest checkbox was cleared. (This checkbox appears in Show Details mode.)

7490

The lock and unlock reference pages incorrectly stated that the -kf and -kt options could be used in combination.

7585

In a nonempty directory tree that was newly designated as an AccuRev workspace, the Update command was overwriting files corresponding to elements. Such files are now flagged with the message, "These external files in your workspace have the same pathname ...".

7598

In the dialog box displayed by the transaction-based integration between AccuRev and Dispatch, clicking Cancel instead of selecting an issue record and clicking Ok caused the AccuRev GUI to hang.

7599

The sample server_preop_trig and server_admin_trig scripts in the examples directory did not handle SPACE characters in group names.

7949

The Merge tool lost text that was manually typed into the merge-results panel.

7950

During a "custom" AccuRev installation, the wrong version of the SCC Integration was placed in the AccuRev bin directory.

7958

If there were multiple defunct elements with the same pathname, the Update command mistakenly retrieved a non-defunct version of one of the elements from a higher-level stream.

8006

The replica sync command failed to properly update a replica repository's database files if one or more of them was busy (the AccuRev Server was performing another operation).

8046

A <cpkhist> request (Dispatch command-line interface) always returned no data.

8053

A complex series of add s, promote s, and purge s involving multiple elements with the same pathname ("twins") -- some of which were performed with a pre-V3.8 version of AccuRev -- caused non-defunct versions of elements to be inaccessible.