But the change package facility can also track ongoing changes to elements — changes made at different times, and in different workspaces. To support this capability, AccuRev defines a change package entry in a more general way than a patch:
We’ll use the ordered pair [B,H] to indicate this change package entry.
When AccuRev tries to combine the change [B,H] and the change [
J,X] into a single change package entry, it detects that version
H and version
J are not the same, but that
H is a direct ancestor of
J. Thus, there is a simple “gap” in the potential combined change package entry (in this example, consisting of your colleague’s versions 9 and 10).
A problem can occur when the first person then wants to make additional changes to the same file under Issue #1. The changes from Issue #2 are now an unwanted dependency for Issue #1: They might not have anything to do with Issue #1, but they must be included by “
spanning the gap” in any subsequent promote operation.

AccuRev treats contiguous versions of a file as a segment. Each segment can be tracked and handled independently. That way, multiple promotes for Issue #1 can be tracked, and having a “gap” caused by an intervening promote of Issue #2 does not cause a problem. You can think of each segment almost as a separate patch (not the AccuRev patch command, but a generic, development patch).
If a text file has multiple segments because it has been promoted against different issues and you want to compare only the versions of a file that were promoted against the same issue, you can accomplish this by using the
Diff Across All Segments option. When you use this feature, the diff shows all changes to the file that were promoted against a single issue while ignoring any changes to the file that were promoted against a different issue.
To understand the purpose of the Diff Across All Segments option, imagine the following scenario:
You then promote intro_example.java to issue 5. At this point, a co-worker, who has been assigned to add comments to source code, edits
intro_example.java and adds comments so that the edited file now appears as follows:

At this point, you make more edits to intro_example.java in order to create a Spanish version of the file and you once again promote the file against issue 5.
In this example, intro_example.java is now composed of the following segments:

To view all the edits you have made to intro_example.java, and
only those edits, you would take the following steps:
The file intro_example.java appears with a plus sign (
+) aside it, indicating that the file contains multiple segments:

The Diff Across All Segments option is inactive for files that contain only a single segment. For more information about other types of diff operations in AccuRev, see
Chapter 7 Diff, Merge, Patch, and the Change Palette.
An issue record's change package differs from its user-defined fields (Status, Severity, Description, etc.). When you change the value of a user-defined field, the
Save button is enabled in the edit-form toolbar. You can discard the change by closing the edit-form tab without performing a
Save. But the commands that create, modify, and delete change package entries take effect immediately. There is no way to discard such changes, and you do not need to explicitly save them. (You can
Remove a change package entry altogether, but you can't undo the adding of a new change to an existing entry.)
Whenever element versions are not associated with any issue, they are considered unaffiliated. Such element versions can lead to confusion, so AccuRev provides a way to view and deal with unaffiliated changes in the GUI.
There are two ways to deal with unaffiliated changes: short-term and long-term. If you are working under a deadline and just need a way to deal with these files so that they don't keep you from promoting everything in a stream, you can simply right-click this row and select Send to Issue. You then can either assign these unaffiliated changes to a new issue that you create on the fly, or send them to an existing issue if an appropriate one already exists. (An “appropriate” issue might be a catch-all issue that you always use to hold miscellaneous unaffiliated changes. Or, it might be an issue that you know makes logical sense for these particular changes.)