slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
AccuRev Developer Training PowerPoint Presentation
Download Presentation
AccuRev Developer Training

Loading in 2 Seconds...

play fullscreen
1 / 160

AccuRev Developer Training - PowerPoint PPT Presentation

  • Uploaded on

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

PowerPoint Slideshow about 'AccuRev Developer Training' - hayden

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 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



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
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 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

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
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.
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
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.
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


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

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 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 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

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.

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 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

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

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

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

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

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



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

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
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