Change Package Details

The key is to go beyond thinking of individual versions to considering change packages, which are collections of versions. In AccuRev, change packages are implemented by AccuWork issue records. An issue record records the details of a bug or feature: its description, how important it is, who originated it, who's working on it, and so on. An issue record can also keep track of the changes that have been made to elements, in order to implement that particular bug fix or new feature.

For example, issue record #9 might contain a bug report, "Circles are not round". The bug fix involves changes to three elements:

When viewing the issue record through its form, go to the Changes tab to view the change package. In this example, the change package contains three entries:

  • The set of changes that were made between version 5/10 and version 5/24 of element chap03.doc
  • The set of changes that were made between version 5/11 and version 5/17 of element commands.c
  • The set of changes that were made between version 5/7 and version 4/5 of element end.sh

(See Patch and Patch From for the precise definition of "between".)

In the simplest terms, you create a change package when you promote one or more elements out of your workspace, and specify an issue for those elements to be associated with. Thereafter, you and other AccuRev users can (and should) promote by issue to promote the changes further up the stream hierarchy. (In general, you should avoid promoting by file once you adopt change packages.) You can also cross-promote and use “Send to Issue” to modify change packages outside of the strict, hierarchical promote structure.