The principal purpose of an AccuRev workspace is to provide an isolated location for performing development tasks. The changes you make do not affect your colleagues until you decide to make them public, using the
Promote command. Likewise, the changes that others make do not immediately affect your workspace. You must execute an
Update command to bring versions created (and then promoted) by your colleagues into your workspace.
You invoke the Update command in the File Browser, using the
File > Update command or a button above the Folders pane.

Prior to executing the Update command, you can use
File > Update Preview or the Update Preview filter in the Searches pane to see what the Update will do.
See “File Browser: Working in the Searches Pane” on page 55.
At its simplest, an update just copies versions of some file elements from your workspace's backing stream into the workspace. For example, your colleagues may have edited the contents of files
colors.java and
main_menu.java, created new versions of them in their workspaces, then promoted the versions to the common backing stream. When you invoke
Update, the new versions of those two files are copied from the depot to your workspace, overwriting the older versions of the file.
In addition to incorporating such content changes into your workspace,
Update incorporates
namespace changes :
AccuRev tracks namespace changes in the same way as content changes -- by saving each change as a new version in your workspace. If you
Rename file
colors.java to
colours.java, the change is recorded as a new version of the file. Changing the name again, to
hues.java, creates another new version.
Similarly, defuncting file rgb.java creates a new version of the file in your workspace.
The basic Update strategy is to leave the files you're working on undisturbed, and to copy any new versions of other files into the workspace. This enables the workspace to provide the safety of isolation, while still "keeping in touch" with other users' progress.
Roughly speaking, Update partitions the files in your
workspace tree into two categories, to determine which are candidates for updating:
Files that you're currently working on. AccuRev uses the concept of
default group to keep track of the files you're working on. Files are placed in the default group when you process them with such AccuRev commands as
Send to Workspace,
Keep, and
Rename. These files are not candidates for updating, because it would overwrite your changes.
All the other files. The files that you're not currently working on are candidates for updating. AccuRev will update all such files for which a more recent version exists in the backing stream.
In many cases, no one else has been working on those files. If no new versions of the (modified)-status files have been created in the backing stream since your most recent
Update, the update proceeds, leaving those files alone.
But suppose one or more of the files does have a new version in the backing stream. In this case, the file's status is
(modified)(overlap).
Update won't simply overwrite the file with the backing-stream version, but it can attempt to
merge the file with the backing-stream version:
•
|
If user preference Update Resolves Trivial Merges is not selected, Update terminates immediately with an error box: 
|
•
|
If user preference Update Resolves Trivial Merges is selected, Update determines whether a merge can be performed automatically on all files with (modified)(overlap) status. If so, the update proceeds. If not, the update terminates with an error box: 
|
To improve performance, timestamp and
pathname optimizations enable
Update to avoid examining every file in the workspace tree.
This step is efficient and speedy. Update needs to consider only the elements that were involved in transactions recorded since the workspace's previous update. Only these transactions can contain changes that have not yet been incorporated into the workspace.
Update next applies both content changes and namespace changes to elements in the workspace:
•
|
scan threshold: the more recent this value, the more effective the timestamp optimization used both by Update and by certain File Browser searches.
|
•
|
update level: after an update, the workspace is "up to date as of transaction N "; N is the workspace's update level. The higher this value, the fewer transactions your next invocation of Update will need to examine, in order to determine which elements need to be updated.
|
Sometimes AccuRev is not able to complete an Update operation, typically because a file cannot be overwritten due to permissions, or because it is open in another application. In this case, you will see an "Update Failed" warning. Use the
View Log File button on this dialog to display the details of the failure, which should allow you to troubleshoot and correct the issue.

For a more detailed description of how Update does its work, see section "The Update Algorithm" in
AccuRev Technical Notes.