Variation #1: Workspace Based on a Snapshot

A workspace can be based on a snapshot, instead of a stream. Initially, this might not seem to make sense. After all, a snapshot is an unchanging software configuration, and a workspace is a tool for getting changes in and out of the data repository, but a snapshot-based workspace is quite useful, for example, for performing maintenance work on a previous product release.

When you create a snapshot-based workspace, AccuRev copies the versions in the snapshot to the new workspace tree. (This step is just like the creation of a stream-based workspace.) It doesn’t make sense to update the workspace, because there’s guaranteed to be nothing new in the snapshot. It’s a configuration that never changes.

You can make changes to the files in a snapshot-based workspace, saving the changes in the workspace stream with the keep command. You can’t promote the changes to the snapshot, though, because the snapshot is a configuration that never changes.

In some cases, there won’t be any need for such promotions. For example, some of the bug fixes to a previous product release never need to be propagated elsewhere. You can just build the maintenance release(s) in the maintenance workspace where you’ve fixed the bugs.

In other cases, you’ll want to incorporate bug fixes into ongoing development work. AccuRev has special facilities, including the Change Palette, which enable you to propagate changes from a maintenance workspace to any stream.