AccuRev Developer Training - PowerPoint PPT Presentation

Accurev developer training
1 / 160

  • Uploaded on
  • Presentation posted in: General

AccuRev Developer Training. AccuRev , Inc. 300 Baker Ave Concord MA. Course Outline. Tuesday. Thursday. Change Package Concepts “Carry Over” Change Package Modify Change Package Stream Creation for Developers Include / Exclude in Workspace Undoing a Promote Collaboration

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

AccuRev Developer Training

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Accurev developer training

AccuRevDeveloper Training

AccuRev, Inc.

300 Baker Ave

Concord MA

Course outline

Course Outline



Change Package Concepts

“Carry Over” Change Package

Modify Change Package

Stream Creation for Developers

Include / Exclude in Workspace

Undoing a Promote


Bug Tracking /Issues

Web UI

Documentation / Help

  • Terminology

    • Workspaces

    • Keep

    • Promote

    • Update

  • Stream Browser

  • Workspace Search Filters

  • File Status

  • Overlaps & Merge

  • Workspace Concepts

  • Update vs. Populate

  • History (element & stream)

  • Diff (element & stream)

  • Stream Browser Workflow

Accurev basic concepts


AccuRev Basic Concepts

Accurev terminology

AccuRev Terminology

 Repository | Database | Module | VOB

 Configurations | Branch | “dynamic view”

 Label | Tag | Baseline | Immutable

 Writeable files | Private commits





Developer Workflow

  • Keep

  • Promote

  • Update

  • Merge

Keep: stores a user’s private changes in the AccuRev depot, but does not make them available to other users

Promote: makes changes previously saved with Keep command available to other users

Merge: incorporates changes promoted by other users into a user’s private workspace, allowing for conflict resolution

Update: incorporates changes promoted by other users into a user’s private workspace

Basic objects in accurev

Basic Objects in AccuRev

  • Stream: a configuration of elements

    • Dynamic streams:

      • Contents change as elements are promoted or reverted

      • Hierarchy of streams defines the promotion-based workflow

    • Snapshots streams:

      • Static streams that cannot be moved, renamed, or altered

      • Contents are immutable

      • Analogous to labels or baselines

Basic objects in accurev1

Basic Objects in AccuRev

  • Workspace: a developer’s private area (sandbox)

    • Contains two components:

      • Workspace stream — dynamic stream that tracks the versions of files in the workspace

      • Workspace directory tree — set of writable files that exist on a client machine

    • All changes are private (until you promote them)

    • A workspace can be considered an “instance” of a stream.

Basic objects in accurev2

Basic Objects in AccuRev

  • All workspaces are private

    • Use a workspace to create new versions of the source

    • User’s principal name appended

      • Ensures users cannot remove someone else’s workspace

      • Each user has their own namespace for workspaces

  • Based on a single backing stream (parent)

    • Workspaces are populated with the configuration source from its backing stream

  • Updating a workspace retrieves new(er) versions from any parent stream up to the base stream or a snapshot.

Stream browser new look

Stream Browser – New Look

Depot / Base Stream

Dynamic Streams

Time Based Stream

Active Content

Workspace Streams

Snapshot Stream


Pass-Through Stream


Traditional stream browser

Traditional Stream Browser

Workspace Streams

Dynamic Streams

Time Based Stream

Depot / Base Stream

Active Content

Snapshot Stream

Pass-Through Stream



Core user operations


Core User Operations

Module objectives

Module Objectives

  • Identifying your principal name

  • Creating workspaces

  • Accessing your workspace

  • Common developer commands: add, keep, promote and update

Creating workspaces streams and snapshots

Creating Workspaces, Streams, and Snapshots

  • All of these can be created from within the stream browser

  • Highlight the stream to be used as a basis

  • Right-click and select the appropriate menu item

  • Each require minimal storage on the server

New Stream

New Workspace

New Snapshot

Creating a workspace

Creating a Workspace

AccuRev will automatically append your principal name

to the end of the workspace stream name

AccuRev can automatically append your

workspace name as a new subdirectory to

the end of the location

Built in EOL feed

Finish with defaults

(next page)

How to access source code

How to Access Source Code

  • GUI Menu:

    • View > Workspaces

    • File > Open > Workspace

  • GUI Stream Browser - double-click workspace

  • CLI: cd into your workspace directory tree

    • Runaccurev infoto verify workspace context

  • By default all files are writeable, so no checkout is needed

  • To work on files From the AccuRev GUI (within a workspace)

    • Right-click file and select Edit or use the Edit icon

    • After editing, save and exit the editor

  • Any IDE can be used to edit source code

    • All writeable files means never needing to ‘checkout’ first

    • AccuRev will detect what files have been modified

Add and keep

Add and Keep

  • The add command

    • Creates a new ‘real’ version

    • Creates the initial version of that element in the Workspace Stream

    • Simply an alias for ‘first keep’

  • Directories are also versioned

    • Adding a new file implicitly creates directory elements as necessary

    • Do not have to add the directory first

  • AccuRev does a best guess how the files should be stored in the database

    • Text or Binary – always parallel mode

    • Force with accurev add –E text/binary/ptext <file>

    • Override with accurev keep –E text/binary/ptext <file>

    • GUI: Advanced button on keep dialog

    • Can force symbolic links (-s option)

    • Can exclusively lock file (-E serial option)

  • Use ptext file type to preserve the contents and prevent CR/LF translation. Ideal for Unicode files or configuration files with embedded binary or multi-lingual data.

Add and keep1

Add and Keep

  • GUI

    • “Create a new directory”

    • “Create a new file”

    • ‘keep’ does the work of ‘add’

  • CLI - Command Line

    • accurev add –c “Good Comment” core.h

    • accurev add –c “Good Comment” -x

Accurev developer training


Keep promote

Keep & Promote

  • Keep – create a new version in your workspace

    • Creates a new ‘real’ version

    • Versions are private on your workspace stream

    • Kept versions are permanently backed up on the server

    • Other users working from the same basis stream will not automatically see your changes

  • Promote – make the version active in your backing stream

    • Creates new ‘virtual’ version

    • History is fully preserved

    • The version is now available via inheritance to other streams/workspaces related to the same backing stream

Keep promote1

Keep & Promote

Keep promote2

Keep & Promote

Select Promote button or from right-click list

This is your ‘Active Files’ list,

which shows all active elements

in your workspace.

The Active Files list serves 2 purposes - users can promote

their changes from their list and other users can easily see where

active files reside

Keep promote3

Keep & Promote

Switch To Stream File Mode

Switch To Stream Transaction Mode

Switch To Stream Issue Mode



  • ‘Update’ retrieves all newer versions from all parent dynamic streams

    • Algorithm stops scanning for updates at first time rule (i.e. snapshot) or top-most base stream

  • ‘Update’ will not overwrite any work in progress

    • Kept files – since your version represents the “latest” file

    • Modified files – AccuRev does not want to clobber unsaved work

    • Anchored files – Files that you intend to work on

  • ‘Update’ only applies to files that are (stale)

  • If ‘Update’ encounters ‘(overlap) (modified)’ elements, it will fail

    • Use one of three options

      • Revert the modified files (throw away your changes)

      • Keep your modified files (private versioning)

      • Anchor your modified files (update ignores anchored files)

      • Set “Update Resolves Trivial Merges” under Tools | Preferences. Update to automatically resolve trivial conflicts with (overlap) (modified) elements.

      • Force Update with Merge

  • From CLI

    • accurev update

    • accurev update –i <update preview>

Incoming filter update preview

Incoming Filter - Update Preview

Initiate the Update

Update applies to the

entire workspace

Conflicts filter update preview

Conflicts Filter - Update Preview

  • Merge resolves conflicts (covered later)

Incoming filter update preview1

Incoming Filter - Update Preview

Update applies to the

entire workspace

Initiate the Update

Update started

Scanning for recently touched elements- ok

Checking touched elements for changes- ok

Preparing for update- ok

Calculating changes- ok

Making 3 changes

Removing "gcc/gcc/config/1750a/1750a.c" .

Content (5 K) of "gcc/gcc/config/i386/gas.h" - ok

Content (1 K) of "gcc/gcc/config/config.h" - ok

Update complete.

Workspace explorer

Workspace Explorer

Update applies to the

entire workspace

Update ‘only’ changes

‘stale/backed’ files

Initiate the Update

Update started

Scanning for recently touched elements- ok

Checking touched elements for changes- ok

Preparing for update- ok

Calculating changes- ok

Making 3 changes

Removing "gcc/gcc/config/1750a/1750a.c" .

Content (5 K) of "gcc/gcc/config/i386/gas.h" - ok

Content (1 K) of "gcc/gcc/config/config.h" - ok

Update complete.

Update preferences

Update Preferences

Update Progress Log Preference

Update Merge Preference

Update options

Update Options

Initiate the Update

Update and Force Trivial Merge(s)


Update with Merge

always forces trivial merge


of set preferences



  • Create a workspace off of a stream

  • Add new files to source control

  • Promote those files into the backing stream

  • Update workspace to retrieve new elements

Search for files

Search For Files

Searchfor *.h files

Working in the workspace

Working in the Workspace

‘Open Parent’ tells you what your

backing stream (parent) is

Workspace Filters

The Folders View

Workspace Tree location

Workspace Stream

AccuRev Principal Name

Working in the workspace1

Working in the Workspace

The Status column tells you the

state for any file in the current directory

in relation to your backing stream

The Version column gives you the Stream

location and version number of the file

Status and filter summary

Status and Filter Summary

Elements directory structure

Elements & Directory Structure

  • Files and folders are stored by depot-relative pathname

  • Every file and folder has an internal unique element id (eid)

    • Supports tracking history of path and name changes.

  • The root level directory always has eid 1

  • The root level directory is represented as

  • An element in this directory structure:

  • is stored as...


Elements directory structure1

Elements & Directory Structure

  • To see an element’s depot-relative pathname, right-click and select properties:

Depot relative path name

Element Id

Finding modified files in your workspace

Finding (modified) files in your workspace

  • A file has a status of (backed) if it is the current version of the file in the parent stream hierarchy

  • AccuRev uses a combination of timestamp and checksum to determine which files are (modified)

    • Any file with a newer timestamp is a candidate

    • A checksum is only performed on candidates (Optimization)

  • The status of the file will change to (modified)

Hiding external elements

Hiding (external) Elements

  • External files can cause slower performance with the AccuRev commands in both GUI and CLI

    • For example, stat command must unnecessarily interrogate all external files in order to classify them as (external)

  • Use .acignore file(s) in you workspace

    • Line delimited list of file or directory patterns including wildcards





    • Improves overall performance with the workspace especially for commands that act on the entire workspace

    • Use to ignore external files that will always remain external but part of the workspace

    • For example, files generated by a build

Resolving overlaps


Resolving Overlaps

Module objectives1

Module Objectives

  • Understand (overlap) status

  • Closest common ancestor algorithm

  • AccuRev’s graphical merge tool

  • Merge history

  • Namespace overlaps

  • Registering a different merge tool

Merging overlap status

Merging (overlap) status

  • An (overlap) occurs when you modify or keep a file that has also been changed in the backing stream

    • Someone else has done a promote of the same file before you

    • Version in your workspace has an ‘older’ ancestor

  • The file’s status will include (overlap) and be highlighted

  • A merge is required before you can promote the file

Merging algorithm

Merging Algorithm

  • AccuRev’s merge algorithm for text files considers three versions:

    • contributor 1: backing stream version (left pane)

    • contributor 2: your version (right pane)

    • “common ancestor” version (center pane)

  • Changes or Conflicts?

    • If a section of text was changed by just one contributor, the change is automatically accepted

    • If both contributors changed the same section of text in different ways, there is a conflict. You have to resolve the conflict manually.

Conflicts filter running the merge command

Conflicts Filter - Running the Merge command

Running the merge command

Running the Merge Command

Trivial merge shortcut

Keep or Review merge

Merged Result…

still in Workspace Stream

Backing Stream Version

Common Ancestor

Workspace Stream File

Running the merge command1

Running the Merge Command

Navigating thechange sections



Use Only My Changes

All Changes




Their Changes

Revert All Of

My Changes



My Changes


Take My Changes

Take Their Change

Take Common

Ancestor Change

Finishing a merge

Finishing a Merge

Keep Results and Close



  • Create an overlap situation with your neighbor

    • Modify & promote the same piece of code & assign to same Change Package

  • Resolve this overlap using the merge operation

Advanced workspace operations


Advanced Workspace Operations

Module objectives2

Module Objectives

  • Private sandbox concepts

  • Revert file changes

  • Rename and move elements

  • Populate missing elements

  • Remove files from the directory tree

  • Filter rules to include / exclude elements

Private sandbox concepts

Private Sandbox Concepts

  • All workspace commands are relative to last Update

  • The update command only retrieves newer versions of files from the parent stream hierarchy

  • If a newer file version exists since your last update, that new version will not be considered

    • Examples: Revert, Purge, Populate, Diff

  • Guarantees consistency of workspace!

  • Exception: Diff against backed

    • Compare local file with the newest backing stream version

    • Use Diff against basis to compare since last update

Revert to

“Revert To…”

  • Reverting will rollback to a previous version

  • Two revert options in the GUI

    • Most Recent Version (last kept version)

    • Backed Version (since last update)

Reverting from the cli

Reverting from the CLI

  • Revert to Backed

    • use the purge command

      $ accurev purge foo.c

    • purge will always Revert to backed, rollback all changes including kept versions

  • Revert to Most Recent

    • use the populate command

      $ accurev pop –O foo.c

    • populate will not retrieve the most recent version

  • Revert to Any Version

    • Use checkout” with specific version

      $ accurev co –v “53/5” foo.c

    • checkout has nothing to do with locking, unlike other systems

    • History of checkout is preserved; see version browser for file

Element namespace changes

Element Namespace Changes

  • AccuRev supports rename, copy and move

  • Element history is fully preserved

    • Restore to any previous version of a file, even if the name has changed or its location has been moved

  • Must be done in AccuRev

$ accurevrename <oldname> <newname>

$ accurevmove <oldpath> <newpath>

$ accurevmv <oldpath> <newpath>



  • Replaces (missing) files on disk

  • Retrieves the version from the last update

  • Used to recover an accidental OS file-system delete

  • Default is to refuse to do anything element if is already in the workspace

  • GUI: right-click File > Populate

  • CLI:

$ accurev pop <filename>(single file)

$ accurev pop –R –O .(recursive/overwrite/all files)



Replacing (missing) files

Throwing out my changes to (modified) files

Update vs populate

Update vs. Populate

  • Update

    • Retrieves new versions from the backing stream

      • Files will have (stale) status prior to updating

    • Will not restore (missing) files

      • Exception when file is (missing)(stale)

  • Populate

    • Downloads (missing) files

      • Selects version based on time of last workspace update

      • Algorithm to is similar to revert / purge

    • Will not always get you the latest version

Removing elements

Removing Elements

Defunct is for ‘all’

Streams and Workspaces

Delete only affects local

Workspace Tree only

Files with (defunct) status are found via the selection

Setting include exclude rules

Setting include/exclude rules

  • Filter elements within a configuration

  • In Workspaces

    • Will improve update times

      • Results in fewer files to be updated

      • Exclude files and folders that you do not need

  • In Streams

    • Rules are inherited by all child streams and workspaces

    • Useful for setting project specific rules regardless of how many stream levels are used

    • Useful for controlling physical source code access

Setting include exclude rules1

Setting include/exclude rules

Include the

directory only

Exclude the directory

and its sub files/folders

Include the directory

and its sub files/folders

By default no rules are

displayed unless you

select Include/Exclude View

Show all rules in the backing chain



  • Modify and keep some changes then revert them.

  • Rename and move elements.

  • Delete elements using delete command and populate those missing elements.

  • Defunct a file (see status)

  • Create include/exclude rules in the workspace.

Looking at history


Looking at History

Module objectives3

Module Objectives

  • Track the history of an element

  • View the history of a workspace or stream

  • Find differences between file versions

  • Find differences between stream configurations

  • Send different file versions to your workspace

History of changes

History of Changes

  • You can look at the history of:

    • Element

    • Transaction

    • Workspace

    • Stream

  • History can be broken down to a single element:

    • GUI: Right click an element and select Annotate

    • CLI: accurev annotate <element name>

  • History can be range based

History of an element

History of an Element

Graphical history for a given element

Stream history for

a given element

Browse version overview

Browse Version Overview

Switch between the

history views

Transaction timeline

Information for a

single version


Workspace collapsed into groups

Workspace Collapsed into Groups

Familiar and new information

Familiar and New Information

Browse versions name filter

Browse Versions - Name Filter

Filtering finding issues

Filtering / Finding Issues

History of a workspace

History of a Workspace

You can sort by time, action, user, or transaction number.

You can drill down further

and browse an element’s

graphical history

Diff ing files

Diff’ing Files

  • AccuRev allows diff’ing of any text file

    • Binaries cannot be diff’ed or merged

  • Any two versions of a single file can be diff’ed

    • From the GUI

    • Workspace Explorer Element View

      • Diff Against > Most Recent Version

      • Diff Against > Backed Version

      • Diff Against > Basis Version

      • Diff Against > Overlapping Changes > Mine / Theirs

      • Diff Against > File in Other Stream

      • Diff Against > File On Disk

    • Version Browser

      • Diff Against > Other Version

      • Diff Against > File in the Workspace

      • Diff Against > File On Disk

Diff against

Diff Against…

Use the Workspace Explorer or Show Status view to

find files to diff against predecessor

versions (backed) or (member)

Last Kept Version;

still active in workspace

Latest version in

the backing stream

Ancestor this version came from

Diff against1

Diff Against…

Mine diffs the workspace or stream version against

the common ancestor in the backing stream.

This option identifies the changes in the workspace

or stream that did not come from the backing stream.

Theirs allows you to see only the changes added

to the backing stream since the last time

you merged with the backing stream.

This option is useful for identifying the changes to

the backing stream that caused the overlap condition.

Diff any two versions of a file

Diff any two versions of a file

Specify a range of


Use the Version Browser to

diff ‘any’ 2 versions of a file

Diff against2

Diff Against…

Comparing two streams

Comparing Two Streams

  • You can diff any two streams, snapshots or workspaces

    • Diff by file

    • Diff by Issue

      • Change Packages (See AccuWork Integration)

  • Diff by file allows you drill down to view the differences in any specific file

Comparing two streams1

Comparing Two Streams

Diff by Files icon

Right-click the ‘From Stream’;

Select Show Diff;

Left-click on the ‘To Stream’

Comparing two streams2

Comparing Two Streams

Empty lines represent files

that have been defuncted or

have not yet been promoted

This file was “moved”

History is still intact

Right-click to


This file was “renamed”

History is still intact



  • Annotate an element.

  • View the history of a workspace or stream.

  • Use the version browser and diff between any two element versions.

  • From version browser, send different version into your workspace.

  • Use stream browser diff two streams.

Stream browser

Stream Browser

Depot / Base Stream

Dynamic Streams

Time Based Stream

Active Content

Workspace Streams

Snapshot Stream


Pass-Through Stream


Stream favorites


Stream Favorites

Stream favorites1

Stream Favorites

  • Stream favorites are similar to Stream Filters in AccuRev 5.5 and earlier

    • Replaces and extends Stream Filters

    • Create multiple favorites and easily switch between them

    • Share filters by making them public

Public Favorite highlighted with a blue star

Stream favorites2

Stream Favorites

Stream favorites3

Stream Favorites

  • Type a name for the favorite

  • Select private or public

Stream favorites4

Stream Favorites

To add someone’s public favorite to your list of favorites

click on the Add Public button with Public Favorites highlighted

Users list to select favorites

Display public favorites

Change packages


Change Packages

Module objectives4

Module Objectives

  • Explain how change packages are used to integrate AccuRev with AccuWork

  • Associate a promote transaction with a change package

  • View change packages in a stream

  • Show stream differences by issue

  • Understand file versions in a change package

  • Verify and modify a change package

What is a change package

What is a Change Package?

  • Change Packages are the link between AccuRev’s SCM functionality and the AccuWork issue management system

  • Answers questions like these:

    • “What were all the changes made to source files in order to fix bug #457?”

    • “Have all the changes made to fix bug #457 been promoted to the QA stream?”

What is a change package1

Change Package

Issue Record

File Versions

foo.c 10/2

bar.c 10/3

What is a Change Package

  • Provides bi-directional tracking of changes made to the code base.

  • File versions are linked to a change package during a promote from a workspace to its backing stream.

What is a change package2

What is a change package?

  • File versions are linked to a change package during a promote from a workspace to its backing stream.

  • Change packages are then tracked as files are promoted from stream to stream.

  • You can also promote by issue to deliver the entire contents of a change package to a stream’s basis stream.

What is a change package3

What is a Change Package

  • Change packages are then tracked as they are promoted from stream to stream.

Promoted Issue 2120

Creating the change package

Creating the Change Package

  • Development is complete in workspace and ready for Promotion

Creating the change package1

Creating the Change Package

  • Promote operation forces issue selection

Selected Issue 2111

Viewing the change package

Viewing the Change Package

  • After the association, Change Package is active in parent Stream.

Viewing the change package1

Viewing the Change Package


Issue 2111

Viewing the change package2

Viewing the Change Package

  • History of the in CPK 2111

Change package terminology

Change package terminology

  • Active: Some versions of elements that are part of the change package are in the default group of the current stream

  • Inactive: All versions of elements that are part of the change package and are part of the current stream are being inherited from a stream in the backing chain.

  • Complete: All of the versions of elements associated with the change package are part of the current stream

  • Incomplete: Some of the versions of elements associated with the change package are not part of the current stream.

Use cases maintenance

Use Cases (Maintenance)

  • Delivery from 3.0 Maint to current mainline

Drag and Drop

Single or Multiple


Use cases maintenance1

Use Cases (Maintenance)

  • Delivery from 3.0 Maint to current mainline

Merges performed if file(s) are changed/conflicting in the destination stream.

Use cases maintenance merge

Use Cases (Maintenance Merge)

  • Merged delivery will result in a Change Package Variant

  • Change package variants are change packages that are derived from changes in another change package through a patch, merge, or revert operation.

View Active Issues

shows variant as ‘+’ and special variant tracking number (<issue>.<variant no>)

Change palette

Change Palette

  • While dragging and dropping CPK(s) from source to destination streams, may be presented with change palette.

Change palette1

Change Palette

The recommended way to resolve the conflicts in the change palette is the following:

  • promote the issues that can be promoted

  • merge the issues that have elements with (overlap) status

  • patch the issues that have elements with (patch) status

Special cpk identifiers

Special CPK Identifiers

  • Certain status against Change Packages to be aware of…

    • Unaffiliated Changes – Active file(s) in stream that are not affiliated/associated to an issue.

    • Send file(s) to an issue to clear unaffiliated flag

Special cpk identifiers1

Special CPK Identifiers

  • Certain status against Change Packages to be aware of…

    • Incomplete Change Package(s)

    • Results from the reuse of the Change Package causing a missing version

Special cpk identifiers2

Special CPK Identifiers

  • Certain status against Change Packages to be aware of…

    • Incomplete Change Package(s)

    • Results from the reuse of the Change Package causing a missing version

    • Show Active Issues will show the missing segment

Compare streams by issue

Compare Streams by issue

  • Can diff any 2 streams by issue

Compare streams by issue1

Compare Streams by issue

  • Asks the question “What’s in the from stream that’s not in the to stream?”

Can choose from output and promote through to the destination stream.

Cpk dependencies

CPK Dependencies

  • One Change Package can be dependent on another when file(s) are common.

Show Details button will initiate dependency window.

Cpk dependencies1

CPK Dependencies

  • One Change Package can be dependent upon another when file(s) are common.

Shows “Depends On” Issue. Can promote with or without the dependency.

Stream browser1


Stream Browser

Module objectives5

Module Objectives

  • Stream naming convention

  • Configuring the stream hierarchy to maintain a release

  • Changing the stream hierarchy

  • Configuring project streams

  • Promoting elements across sibling streams

  • Merge overlapping files between streams

  • Revert a promote transaction

Stream naming convention

Stream naming convention

  • Important stream facts

    • All stream names, including dynamic streams, snapshots, and workspaces must be unique in the repository.

      • Best practice: Each stream name with the depot name has the depot name appended

        • Example: “TRAINING_integration” instead of just “integration”

      • Workspace names always have user name appended

    • Any stream, including dynamic streams, snapshots, and workspaces can be removed from view

      • They cannot be deleted and will always exist

      • A removed stream can be reactivated at any time

Changing the stream hierarchy

Changing the Stream Hierarchy

  • AccuRev’s stream architecture allows you to manipulate the stream hierarchy

  • Unlike branches, streams can be reparented from one stream to another

    • No physical files live in a stream

    • Streams consist of virtual versions only

    • Streams understand relationships

  • Reparenting is the reclassification of a stream’s parent

Changing the stream hierarchy1

Changing the Stream Hierarchy

  • Reparenting is dynamic

    • Dynamic streams automatically inherit source tree from new parent stream

    • Update is not needed or used on streams

  • Workspaces do need to be updated

    • Promotes will not succeed until update is done

  • All active changes “belong” to the stream or workspace

    • The power of reparenting

    • No need to re-keep or promote before reparenting

Undoing a promote


Undoing a Promote

Undoing a promote1

Undoing a Promote

There are multiple ways to undo a promote:

  • Purge or Revert to Backed

    • Purge a defunct without having to run Undefunct

    • Purge a rename or move

    • Purge an entire workspace transaction

  • Revert by transaction or issue

    • GUI: Select stream > Right Click > Show History > Right Click > Select transaction > Right Click > Revert

    • CLI: accurev revert –t <transaction#>

Undoing a promote in stream

Undoing a Promote in stream

  • Change Packages allow an undo of a promote with or without a workspace

Use a workspace method

if you wish to test changes

Revert directly in stream

without a workspace

Undoing a promote in stream1

Undoing a promote in stream

Prompt to associate “undo” with an issue

Auto Keep

Trivial merges

Sharing changes using collaboration streams


Sharing changes using collaboration streams

Module objectives6

Module Objectives

  • Creating collaboration streams

  • Using checkout to sharing changes

Sharing changes

Sharing Changes

  • Suppose there is a team with several developers

  • Two users wish to share their changes without getting everyone else’s changes

  • Two common approaches:

    • Create a collaboration stream just for them

    • Use Send to Workspace to share changes between workspaces

Collaboration streams

Collaboration Streams

  • Create a collaboration stream

    • Stream should be a sibling stream or a time-based stream

      • Isolation from other developers

      • Both developers work off a shared stream

    • The same developer model works

      • Keep and Promote from one workspace

      • Update from other workspace

    • Working with a common keep/promote and update workflow

      • Users work with atomic operations

Sharing changes with checkout

Sharing Changes with Checkout

  • Uses Send To Workspace to share changes

    • Does not require an additional collaboration stream

    • All the files that would be shared between the two workspace’s would be ‘kept’ as one single operation

      • All operations are atomic and transaction based

      • The other workspace can then checkout against the keep transaction

    • From the GUI

      • Select other users workspace > Right Click > Show history

      • Sort by operation and look for specific keep

      • Right-click transaction > Send to Workspace

Sharing changes with checkout1

Sharing Changes with Checkout

Check out entire transaction 87

Uses co (checkout) command

Using accuwork issue tracking system


Using AccuWorkIssue Tracking System

Module objectives7

Module Objectives

  • Open, modify and save existing issue

  • Submit a new issue

  • Create and save your default query and other queries

  • Format query results table to display specific information

  • Export query results table

Understanding accuwork

Understanding AccuWork

  • AccuWork is an Issue Tracking Tool

    • Bundled with AccuRev

      • Accessed through same GUI

      • Integrated within the database

  • AccuWork and AccuRev Integration allows for change tracking

    • Change Packages

  • Issue tracking is on a per-depot basis

  • Each user creates their own queries

Accessing accuwork

Accessing AccuWork

Open queries

Create a new issue

Find an existing Issue

New query accuwork

New Query AccuWork

Setup colums to display fields

Specify the fields you wish to add to display columns

New query accuwork1

New Query AccuWork

Create a new Query

Specify the fields you wish to search

Results of query accuwork

Results of Query AccuWork

Creating a new issue

Creating a New Issue

  • AccuWork issues are automatically assigned a number.

  • An issue record has a header page and a sequence of tabbed pages.

  • The issue record usually has both required and optional fields. All required fields must be entered before saving the issue record.

  • Fields can be of different types:

    • Text - any text can be entered into the field

    • Timespan - must be an integer (usually number of minutes)

    • Timestamp - date and time (any granularity can be specified)

    • Choose lists - allow you to choose from a list of options in a dropdown menu

    • User - gives the list of all AccuRev principal names

    • Attachment - allows for saving an attachment to the issue record

    • Internal - fields created by AccuRev (issue number and transaction number)

Creating a new issue1

Create a New Issue

Creating a New Issue

Header Section


All fields in RED

are required

Multi-Choice fields

and List Boxes

Standard Text Field

Opening an existing issue

Opening an existing issue

Modifying an existing issue

Modifying an existing Issue

When the Status is New, the state is optional.

When the Status is Scheduled, State was automatically set to “Open”; Severity and Priority became required

Viewing issue history

Viewing Issue History

The complete history of an issue is tracked

Modifying queries

Modifying Queries

Right-Click; select

Edit Query

Nested “AND” and

“OR” statements

Query on any

field and value

Set as Default Query

Set as Public

Clone Query

Modifying the results

Modifying the Results

Define display columns

Move a column

up or down

Display a column

Remove a column

Exporting results

Exporting results

Export queries

Choose file type

Web interface webui


Web Interface (WebUI)

Working with issues

Working with issues

  • Entering Issues is identical to the Client GUI

Select New Issue

Accuwork queries in webui

AccuWork Queries in WebUI

Print Results

Export Results to XML

Select New or Existing Queries








Table Filter – Records Per Page


Bulk Update – Update Field(s) From Selected Records


Sum Columns – Sum Field From Selected Records


% – Calculated From Group By


Group By – Group Field Selection


  • AccuWork Queries

    • Toolbar & Functionality is only in the WebUI




Run Bulk Update – Update Field(s) From Selected Records

Selected records, Priority forced to 0

Selected records, Severity forced to A

Ignore or use Validation against updated fields

Accurev developer training


Run Sum Columns – Sum From Selected Records




  • AccuWork Queries with Built-in Graphs


Set Group By – Group Field Selection

Count Field Auto % Calculation

Mouse hovering shows % Calculation

Help and other info resources


Help and other info resources

Accessing help

Accessing Help

  • Help from the menu bar

    • Manuals (.pdf format)

  • Context-sensitive Help

    • F1 or ? (on toolbar)

  • From the CLI

    • For on-line help, type: accurev help

    • Command shell, type: accurev help <command>



  • For AccuRev Support

    • Online ticket system:


      • Need a userid and password from support

    • To request a login, email

    • By phone: (800)383-8170

Self help

AccuRev Forums

Self Help

  • AccuRev User Forum

    • General discussions about AccuRev's products and their usage

    • Share ideas with other users

    • NOT a replacement for Technical Support

  • User Contrib Area

    • Users are encouraged to share their scripts, programs and best practices with each other. This can be done anonymously if desired.

  • AccuRev/CM and AccuWork FAQs

    • Full search capabilities of online FAQs

  • Register at

Downloads and videos

Downloads and Videos

  • Downloads


    • AccuRev client/server releases, IDE Plugins, 3rd Party Bridge Integrations

    • Evaluation Kit

  • Documentation


  • Training Videos





Back up slides

Back UP Slides

Showing promoted issues

Showing promoted issues

Switch to Stream Issue Mode

Default group icon shows complete active and inactive issues

Change package contents

Change package contents

Select stream > Right Click > Show Active Issues

Show complete active and inactive issues

The file versions that are part of the change package are displayed in the bottom pane.

Stream differences by issue

Stream differences by issue

Right-click the ‘Source Stream’

Select ‘Show Diff By Issues’;

Then select the ‘Destination Stream’

Stream differences by issue1

Stream differences by issue

Following issues in Source Stream that are not in Destination Stream

Show issues from both directions will list issues in Destination Stream issues shown that are not in Source Stream

Cross promote i ssue

Cross Promote Issue

  • Simple as drag and drop

Cross promote issue with conflicts

Cross Promote Issue with Conflicts


Send to Workspace



Cross promoting issues

Cross promoting issues

Keep (member) only status

Select and Promote

New issue 11, used to track changes for issue 9 in Eval_1.0_MAINT stream

  • Login