User Guide - Mks.com
User Guide - Mks.com
User Guide - Mks.com
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6RXUFH ,QWHJULW\<br />
(QWHUSULVH (GLWLRQ<br />
<strong>User</strong> <strong>Guide</strong><br />
Z Z Z P N V F R P
MKS Source Integrity® Enterprise Edition 8.6<br />
<strong>User</strong> <strong>Guide</strong><br />
Copyright © 2001–2004 MKS Software Inc.; in Canada copyright owned by MKS Inc. All rights reserved.<br />
MKS Source Integrity, MKS Integrity Manager, MKS Code Integrity, Implementer, MKS Toolkit, Sandbox, DISCOVER,<br />
SDM, NuTCRACKER, Integrity Solution, AlertCentre, MKS Track Integrity, NewVersion, and Build Better Software are<br />
registered trademarks of MKS Inc. All other trademarks or registered trademarks are the property of their respective<br />
holders.<br />
Contains Java software developed by Sun Microsystems, Inc. © Copyright Sun Microsystems, Inc. All Rights<br />
Reserved. Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United<br />
States and other countries.<br />
Portions of this product are based upon copyrighted materials of BEA Systems Inc. All rights reserved.<br />
Portions of this product are based upon copyrighted materials of Sitraka Inc. (formerly KL Group) or its suppliers. All<br />
rights reserved.<br />
IBM Bean Scripting Framework (BSF) is incorporated in this product and is provided by International Business<br />
Machines or one of its subsidiaries (IBM) and is copyrighted and licensed. MKS does not make or imply any<br />
representations or warranties on behalf of IBM.<br />
Mozilla Public License. The Source Code version of the Covered Code is available under the terms of the Mozilla Public<br />
License Version 1.1.<br />
CORPORATE HEADQUARTERS WORLDWIDE OFFICES:<br />
410 Albert Street<br />
Waterloo, ON N2L 3V3<br />
Canada<br />
tel: 519 884 2251<br />
fax: 519 884 8861<br />
sales: 800 265 2797<br />
www.mks.<strong>com</strong><br />
4.6KYAK-0304<br />
15 Third Avenue<br />
Burlington, MA USA<br />
01803<br />
tel: 781 359 3300<br />
fax: 781 359 3399<br />
2500 S. Highland Avenue<br />
Lombard, IL USA<br />
60148<br />
tel: 630 495 2108<br />
fax: 630 495 3591<br />
sales: 800 633 1235<br />
12450 Fair Lakes Circle<br />
Suite 400<br />
Fairfax, VA USA<br />
22033<br />
tel: 703 803 3343<br />
fax: 703 803 3344<br />
sales: 800 265 2797<br />
This document is uncontrolled when printed or copied.<br />
Martinstraße 42-44<br />
73728 Esslingen<br />
Germany<br />
tel: +49 711 351775 0<br />
fax: +49 711 351775 11<br />
Third Floor, Duke’s Court<br />
Duke Street, Woking<br />
Surrey<br />
GU21 5BH<br />
United Kingdom<br />
tel: +44 (0)1483 733900<br />
fax: +44 (0)1483 733901<br />
sales: +44 (0)1483 733919
Table of Contents<br />
Chapters 1 Wel<strong>com</strong>e to Source Integrity Enterprise Edition . . . . . . . . 1<br />
About This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
Professional Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
Your Feedback Is Wel<strong>com</strong>e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
Where To Go From Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2 Understanding Source Integrity . . . . . . . . . . . . . . . . . . . . 13<br />
Projects and Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
Working With Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
File and Object Histories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
How Files and Objects Are Stored . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
What Is a Project Member? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
History File: Storing Deltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
Project Checkpointing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Source Integrity Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
Working With Variants and Development Paths . . . . . . . . . . . . . . . 21<br />
Integrations Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
3 Getting Started Using Source Integrity. . . . . . . . . . . . . . . 23<br />
Installing the Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Browser Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Configuring Environment Variables for UNIX . . . . . . . . . . . . . . . . . 29<br />
Uninstalling the Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
Before You Start the Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
Understanding Access Permissions . . . . . . . . . . . . . . . . . . . . . . . 30<br />
Understanding Access Control Lists . . . . . . . . . . . . . . . . . . . . . . 31<br />
Viewing Group Membership . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
Administrator Defined Client Settings . . . . . . . . . . . . . . . . . . . . 34<br />
Starting the Source Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
Logging In to Source Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
Connecting to Multiple Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
Setting Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
General Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
Connection Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
i
Table of Contents<br />
ii<br />
Command Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
View Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
Editor Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
Difference Tool Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
Shutdown Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
Managing Integrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
Quitting a Source Integrity Session . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
Logging Out of Source Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
Closing the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
Shutting Down the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
4 Source Integrity Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
Source Integrity Graphical <strong>User</strong> Interface . . . . . . . . . . . . . . . . . . . . . . 76<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
Printing Lists and Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
Quick Access Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
Configuring the Source Integrity Column Set . . . . . . . . . . . . . . 80<br />
Configuring the Source Integrity Toolbars . . . . . . . . . . . . . . . . 82<br />
Dialog Box Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />
Using Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />
Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />
Source Integrity Web Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
Using Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />
Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />
Viewing Available CLI Commands . . . . . . . . . . . . . . . . . . . . . . . 98<br />
Using the Graphical <strong>User</strong> Interface From the CLI . . . . . . . . . . . 98<br />
Command Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
Member Name Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
MKS Visual Difference Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
MKS Visual Merge Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />
Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />
5 Project and Sandbox Operations . . . . . . . . . . . . . . . . . . 115<br />
Working With Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
Importing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />
Dropping a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
Adding a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />
Opening or Viewing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />
u s e r g u i d e
Table of Contents<br />
Working With Subprojects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
Creating a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
Adding a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
Adding a Shared Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />
Configuring a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />
Dropping a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />
Working With Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />
Creating a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />
Importing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />
Sharing Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />
Dropping a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />
Opening or Viewing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />
Viewing Which Sandbox Locked a Member . . . . . . . . . . . . . . 145<br />
Creating Variant Sandboxes and Development Paths . . . . . . 146<br />
Removing a Development Path . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />
Using Build Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />
6 Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />
Managing Project Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />
Displaying Non-Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />
Adding Members to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />
Adding Members From Archive to a Project . . . . . . . . . . . . . . 166<br />
Importing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />
Dropping Members From a Project . . . . . . . . . . . . . . . . . . . . . . 172<br />
Performing Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />
Selecting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />
Checking Out a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178<br />
Viewing and Editing a Member . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />
Checking In a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186<br />
Renaming a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194<br />
Discarding Changes to a Member . . . . . . . . . . . . . . . . . . . . . . . 196<br />
Resyncing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197<br />
Locking a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198<br />
Unlocking a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />
Deferring Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />
Submitting Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . 202<br />
Cancelling Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />
Resyncing Members With Deferred Operations . . . . . . . . . . . 203<br />
Pending Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204<br />
Resyncing Pending Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 205<br />
Comparing Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205<br />
Using Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />
Locating Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210<br />
Table of Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210<br />
iii
Table of Contents<br />
iv<br />
7 Using Change Packages and Reviews . . . . . . . . . . . . . . 213<br />
What Are Change Packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214<br />
Operations That Add Entries to a Change Package . . . . . . . . . . . . 215<br />
Why Use Change Packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215<br />
Using Change Packages to Control Development . . . . . . . . . . . . . . 216<br />
Creating a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />
Adding Entries to a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />
Managing Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220<br />
Finding Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222<br />
Viewing Change Package Details and Entries . . . . . . . . . . . . . 226<br />
Editing a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233<br />
Closing a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235<br />
Discarding Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . 236<br />
Submitting Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238<br />
Change Package Review Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />
How the CP Review Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />
CP States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241<br />
CP Review Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242<br />
CP Entry Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244<br />
Reviewing Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />
Accepting a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />
Rejecting a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247<br />
Opening Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />
CP Review Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />
Viewing Reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250<br />
Viewing Your Pending Reviews . . . . . . . . . . . . . . . . . . . . . . . . . 250<br />
Viewing the CP Review Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250<br />
Managing Change Package Entries . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />
Moving CP Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />
Discarding CP Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254<br />
Viewing CP Entry Member Differences . . . . . . . . . . . . . . . . . . 255<br />
8 Viewing and Editing Projects, Sandboxes,<br />
and Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257<br />
Controlling Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258<br />
Viewing and Editing Project Information . . . . . . . . . . . . . . . . . 258<br />
Viewing a Project History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263<br />
Opening a Build Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />
Adding Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />
Deleting Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266<br />
Promoting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267<br />
Demoting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />
Checkpointing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269<br />
Restoring a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271<br />
Viewing Project Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275<br />
u s e r g u i d e
Table of Contents<br />
Controlling Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280<br />
Viewing General Sandbox Information . . . . . . . . . . . . . . . . . . . 280<br />
Viewing Project Attributes From a Sandbox . . . . . . . . . . . . . . 281<br />
Viewing Sandbox Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282<br />
Taking Sandbox Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283<br />
Controlling Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287<br />
Viewing and Editing Member Information . . . . . . . . . . . . . . . 287<br />
Updating a Member’s Revision . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />
Adding Labels to Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297<br />
Deleting Member Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298<br />
Promoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299<br />
Demoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300<br />
Freezing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301<br />
Thawing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302<br />
Generating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />
About the Report Information . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />
About Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304<br />
Report Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304<br />
Creating a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307<br />
9 Viewing and Editing Member Histories and Revisions . 309<br />
Viewing a Member History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310<br />
Viewing and Editing Archive Information . . . . . . . . . . . . . . . . . . . . 312<br />
Viewing and Editing Revision Information . . . . . . . . . . . . . . . . . . . 314<br />
Viewing an Annotated Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316<br />
Viewing and Editing Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . 319<br />
Adding Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320<br />
Deleting Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321<br />
Viewing a Member’s Working File or Revision . . . . . . . . . . . . . . . . 322<br />
Promoting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323<br />
Demoting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324<br />
Locking Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324<br />
Unlocking Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326<br />
Locking Multiple Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327<br />
Managing Revision Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328<br />
Setting the Member Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330<br />
Deleting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331<br />
Comparing Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331<br />
Working With Pending Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 335<br />
v
Table of Contents<br />
vi<br />
10 Branching and Merging Revisions . . . . . . . . . . . . . . . . . 337<br />
Branching Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338<br />
Making Locked Members Writable . . . . . . . . . . . . . . . . . . . . . . . . . . 340<br />
Merging Branched Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343<br />
Merging on Check In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343<br />
Merging Revisions by Dragging . . . . . . . . . . . . . . . . . . . . . . . . . 348<br />
Automatic Merging on Check Out . . . . . . . . . . . . . . . . . . . . . . . 350<br />
Automatic Merging on Resync . . . . . . . . . . . . . . . . . . . . . . . . . . 352<br />
Merging Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353<br />
Merging Revisions Automatically . . . . . . . . . . . . . . . . . . . . . . . 354<br />
Working With MKS Visual Difference . . . . . . . . . . . . . . . . . . . 356<br />
Working With MKS Visual Merge . . . . . . . . . . . . . . . . . . . . . . . 361<br />
Merging in the Command Line Interface . . . . . . . . . . . . . . . . . 366<br />
Resolving Merges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367<br />
11 The Integrity Manager Integration. . . . . . . . . . . . . . . . . . 371<br />
Integrating With Integrity Manager . . . . . . . . . . . . . . . . . . . . . . . . . . 372<br />
How the Integration Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372<br />
Creating a Change Package for an Issue . . . . . . . . . . . . . . . . . . . . . . 375<br />
Adding Entries to an Issue’s Change Package . . . . . . . . . . . . . . . . . 376<br />
Viewing a Change Package’s Issue . . . . . . . . . . . . . . . . . . . . . . . . . . 376<br />
Finding Change Packages Using a Query . . . . . . . . . . . . . . . . . . . . . 378<br />
12 Advanced Change Package Operations. . . . . . . . . . . . . 381<br />
Change Package Feature Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 382<br />
Change Package Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . 382<br />
Change Package Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383<br />
Resolving Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386<br />
Using the Apply CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387<br />
Key Apply CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388<br />
How Apply CP Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389<br />
Apply CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391<br />
Apply CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398<br />
Using the Resync CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406<br />
Key Resync CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407<br />
How Resync CP Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408<br />
Resync CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409<br />
Working on a Variant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />
Resync CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418<br />
Working With a Resolution CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428<br />
Key Resolution CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430<br />
How Resolution CPs Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431<br />
Using a Resolution CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432<br />
Resolution CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434<br />
Using the Resync By CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . 436<br />
u s e r g u i d e
Table of Contents<br />
Appendixes A Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441<br />
Annotated Revision View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441<br />
Archive Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442<br />
Change Package View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443<br />
Change Packages View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444<br />
Graphical History View (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . 445<br />
Locks View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450<br />
Member History View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451<br />
Member Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454<br />
Non-Members View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455<br />
Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457<br />
Project History View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460<br />
Project Differences View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462<br />
Project Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464<br />
Registered Projects View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465<br />
Registered Sandboxes View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467<br />
Revisions Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468<br />
Sandbox View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469<br />
Sandbox Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471<br />
B Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473<br />
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481<br />
vii
Table of Contents<br />
viii<br />
u s e r g u i d e
Wel<strong>com</strong>e to Source<br />
Integrity Enterprise Edition<br />
1<br />
Increased software <strong>com</strong>plexity, globally distributed development<br />
operations, higher expectations for software quality and reliability,<br />
e-business development initiatives, mergers and acquisitions, Web and<br />
intranet site management—all are factors driving the need for robust<br />
software configuration management in the global software development<br />
organization.<br />
MKS Source Integrity® Enterprise Edition (also referred to as simply<br />
Source Integrity) addresses these challenges. It is the best of breed,<br />
enterprise choice for <strong>com</strong>prehensive, cross-platform software<br />
configuration management.<br />
Its platform transparent, advanced multi-tier architecture is scalable in<br />
local and distributed environments, and its flexibility allows for high<br />
quality integrations into other industry leading IDEs and developer<br />
productivity tools including MKS Integrity Manager for powerful,<br />
workflow enabled SCM.<br />
Source Integrity is the ideal SCM solution for large, distributed<br />
development organizations with <strong>com</strong>plex development environments.<br />
Briefly, there are two main roles when using Source Integrity: the<br />
administrator and the user.<br />
The administrator installs Source Integrity; defines and customizes projects<br />
and policies; and creates and manages user accounts, allowing users to<br />
access the program.<br />
A user is anyone who needs to work with Source Integrity projects.<br />
The Source Integrity Enterprise Edition <strong>User</strong> <strong>Guide</strong> provides details on the<br />
user role and explains how to approach the day-to-day tasks in<br />
Source Integrity.<br />
1
Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />
About This <strong>Guide</strong><br />
2<br />
This guide provides details on the user role, explaining how to approach<br />
the day-to-day tasks in Source Integrity.<br />
This chapter introduces you to the Source Integrity Enterprise Edition <strong>User</strong><br />
<strong>Guide</strong> and its contents. The following is a list of the guide’s other chapters,<br />
with a brief description of the topics covered by each chapter:<br />
Chapter 2: “Understanding Source Integrity” on page 13<br />
Describes how Source Integrity works together with the Integrity<br />
Server and Integrity Manager to provide a <strong>com</strong>plete versioning<br />
control solution.<br />
Chapter 3: “Getting Started Using Source Integrity” on page 23<br />
Describes installing and uninstalling the Integrity client, starting the<br />
Source Integrity client, logging in, setting preferences, logging out,<br />
and quitting a Source Integrity session.<br />
Chapter 4: “Source Integrity Interfaces” on page 75<br />
Describes the various Source Integrity interfaces that you can work in,<br />
including the Source Integrity graphical user interface, the<br />
Source Integrity Web interface, the Source Integrity <strong>com</strong>mand line<br />
interface, and the MKS Visual Difference and MKS Visual Merge<br />
interfaces.<br />
Chapter 5: “Project and Sandbox Operations” on page 115<br />
Describes the basic tasks to work with projects, sandboxes, and<br />
members, for example, creating a sandbox, adding members, and<br />
checking out members for editing.<br />
Chapter 6: “Member Operations” on page 153<br />
Describes the operations to peform on members, for example adding,<br />
dropping, checking in, checking out, and deferring.<br />
Chapter 7: “Using Change Packages and Reviews” on page 213<br />
Describes how to use change packages and reviews, for example<br />
adding entries to a change packge, submitting change packages, and<br />
reviewing change packages.<br />
Chapter 8: “Viewing and Editing Projects, Sandboxes, and<br />
Members” on page 257<br />
Describes how to manage projects, sandboxes, and members, for<br />
example, viewing and editing project information, adding labels to<br />
projects, and freezing members.<br />
u s e r g u i d e
About This <strong>Guide</strong><br />
Chapter 9: “Viewing and Editing Member Histories and Revisions”<br />
on page 309<br />
Describes how to manage member histories and revisions, for<br />
example, viewing and editing revision information, deleting revisions,<br />
and promoting revisions.<br />
Chapter 10: “Branching and Merging Revisions” on page 337<br />
Describes the advanced tasks of branching and merging revisions and<br />
the different methods and tools used for these tasks, including the<br />
MKS Visual Merge tool.<br />
Chapter 11: “The Integrity Manager Integration” on page 371<br />
Describes creating a change package, adding project members to an<br />
issue’s change package, viewing change package information, and<br />
closing change packages in Source Integrity.<br />
Chapter 12: “Advanced Change Package Operations” on page 381<br />
Describes the Apply CP and Resync CP <strong>com</strong>mands—functionality that<br />
relies on the use of change packages that track changes in a project.<br />
Using Apply CP and Resync CP, specific code content can be<br />
identified and isolated, and then moved to a new development path.<br />
Appendix A: “Views” on page 441<br />
Describes the views that are available in Source Integrity.<br />
Appendix B: “Glossary of Terms” on page 473<br />
Provides a glossary of <strong>com</strong>mon terms and definitions for<br />
Source Integrity.<br />
3
Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />
Related Documentation<br />
4<br />
To provide you with the most convenient means of retrieving information,<br />
product documentation is available in several formats: print, Adobe<br />
Acrobat’s Portable Document Format (PDF), online help, and manual<br />
pages (man).<br />
Documentation Print PDF Online Man<br />
Integrity Server Installation and<br />
Administration <strong>Guide</strong><br />
Integrity Server Administration<br />
CLI Reference <strong>Guide</strong><br />
What’s New in Source Integrity<br />
Enterprise Edition<br />
Features and Benefits in<br />
Source Integrity Enterprise<br />
Edition<br />
Source Integrity Enterprise<br />
Edition Datasheet<br />
Source Integrity Enterprise<br />
Edition <strong>User</strong> <strong>Guide</strong><br />
Source Integrity Enterprise<br />
Edition CLI Reference <strong>Guide</strong><br />
Integrity Solution Integrations<br />
<strong>User</strong> <strong>Guide</strong><br />
Yes Yes AA, IM, SI a<br />
No Yes Yes Yes<br />
No Yes No No<br />
No Yes No No<br />
No Yes No No<br />
Yes Yes Yes No<br />
No Yes Yes Yes<br />
No Yes Yes No<br />
What’s New in Integrity Manager No Yes No No<br />
Features and Benefits in<br />
Integrity Manager<br />
No Yes No No<br />
Integrity Manager Datasheet No Yes No No<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong> Yes Yes Yes No<br />
Integrity Manager CLI Reference<br />
<strong>Guide</strong><br />
Integrity Solution Integrations<br />
Builder <strong>Guide</strong><br />
No Yes Yes Yes<br />
No Yes No No<br />
Using MKS Make No Yes No No<br />
Release Notes No No Yes No<br />
a For Authorization Administration graphical user interface, Integrity Manager, and Source Integrity policies only.<br />
u s e r g u i d e<br />
No
Related Documentation<br />
PDF files are located in the \documentation subdirectory of the<br />
distribution CD. To view them you must have the Acrobat Reader<br />
installed on your machine. You can install the reader by running the setup<br />
program in the \support\acrobat subdirectory on the CD. Once you<br />
install the reader, whenever you open a PDF file the reader starts<br />
automatically.<br />
In addition to the Integrity Server Installation and Administration <strong>Guide</strong>, the<br />
other documentation included in this release is as follows:<br />
Integrity Server Administration CLI Reference <strong>Guide</strong> provides details on<br />
the <strong>com</strong>mand line utilities available for administration tasks.<br />
Integrity Solution Integrations <strong>User</strong> <strong>Guide</strong> describes how to access the<br />
functionality of Source Integrity and Integrity Manager while working<br />
within your favorite integrated 3rd party tool, such as Sybase<br />
PowerBuilder and Microsoft Project.<br />
What’s New in Source Integrity Enterprise Edition describes the new<br />
features in this release of Source Integrity.<br />
Features and Benefits in Source Integrity Enterprise Edition provides a<br />
<strong>com</strong>plete list of Source Integrity features and benefits.<br />
Source Integrity Enterprise Edition Datasheet provides a summary of<br />
features and capabilities for Source Integrity.<br />
Source Integrity Enterprise Edition <strong>User</strong> <strong>Guide</strong> tells users how to get the<br />
most out of Source Integrity and explains how to approach day-to-day<br />
tasks.<br />
Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> gives details on<br />
the <strong>com</strong>mand line utilities included with Source Integrity.<br />
What’s New in Integrity Manager describes the new features in this<br />
release of Integrity Manager.<br />
Features and Benefits in Integrity Manager provides a <strong>com</strong>plete list of<br />
Integrity Manager features and benefits.<br />
Integrity Manager Datasheet provides a summary of features and<br />
capabilities for Integrity Manager.<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong> tells users how to get the most out of<br />
Integrity Manager and explains how to approach day-to-day tasks.<br />
Integrity Manager CLI Reference <strong>Guide</strong> gives details on the <strong>com</strong>mand<br />
line utilities included with Integrity Manager.<br />
Integrity Solution Integrations Builder <strong>Guide</strong> provides the information<br />
you need to create your own integrations through the Application<br />
Programming Interface (API).<br />
5
Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />
6<br />
Using MKS Make describes the MKS Make tool offering developers,<br />
project managers, and authors an efficient way to automate the<br />
production and maintenance of any project, large or small. Whenever<br />
you make changes to an element of a development project, MKS Make<br />
automatically re<strong>com</strong>piles all related files and no others, saving<br />
valuable time and eliminating errors.<br />
Online help is accessible from within the graphical user interfaces.<br />
Online man (manual) pages for the <strong>com</strong>mand line utilities are available<br />
on the client by using the man <strong>com</strong>mand in the <strong>com</strong>mand line<br />
interface.<br />
Online release notes provide the most up-to-date details about this<br />
release. You should review these notes as they may contain<br />
information that only became available after the printed<br />
documentation went to press. You can read the release notes from the<br />
CD Browser as HTML documents in a Web browser.<br />
NOTE<br />
Typographical Conventions<br />
In addition, you can browse to www.mks.<strong>com</strong>/products/<br />
whitepapers.shtml to view and download white papers that cover best<br />
practices and more in-depth applications of the Integrity Solution.<br />
Throughout the manuals, the following typographical conventions identify<br />
the features, functions, and <strong>com</strong>ponents of the Integrity Solution.<br />
Items in documentation Appear as<br />
Menus, <strong>com</strong>mands Tools > Preferences<br />
Graphical user interface <strong>com</strong>mands the Member <strong>com</strong>mand<br />
Command line <strong>com</strong>mands si co<br />
Dialog boxes, features Demote Member, Cancel, OK<br />
Screen information, messages Type a name for this<br />
development path:<br />
Environment variables TMPDIR<br />
Path names c:\srcint\work<br />
u s e r g u i d e
Assumptions<br />
Items in documentation Appear as<br />
New terms appear in italics the first time<br />
NOTE<br />
Assumptions<br />
Keyboard keys appear in caps, for example: ENTER;<br />
CTRL; ALT, F, S<br />
Procedures for the graphical user<br />
interface, <strong>com</strong>mand line interface, and<br />
Web interface<br />
A note provides you with information that supplements the key points of the<br />
subject. A note may also supply information that applies only in particular<br />
cases.<br />
TIP<br />
A tip provides you with information for using the product effectively.<br />
IMPORTANT<br />
An important note provides you with information that is essential for<br />
<strong>com</strong>pleting a task.<br />
CAUTION<br />
A caution note advises you about situations that have the potential to result in<br />
a loss of data.<br />
Before using Source Integrity, MKS assumes that you have experience with<br />
the following:<br />
Windows (if you are using the Windows client and/or server)<br />
Solaris (if you are using the Solaris client and/or server)<br />
Linux (if you are using the Linux client and/or server)<br />
7
Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />
Getting Help<br />
8<br />
IBM AIX (if you are using the AIX client and/or server)<br />
HP-UX (if you are using the HP-UX client and/or server)<br />
your chosen Integrated Development Environment (IDE), for<br />
example, Sybase PowerBuilder (if you are using the integrations with<br />
Source Integrity)<br />
MKS Customer Care is focused on delivering the right solutions to issues<br />
as they arise. For assistance, you can choose online support or telephone a<br />
Technical Support Representative.<br />
For online support, browse to www.mks.<strong>com</strong>/support. There you will find<br />
easy access to e-mail, Web request services, automatic product<br />
notifications, and the Customer Community—a secure database that<br />
provides helpful resources such as product documentation, knowledge<br />
base articles, product downloads, user forums, presentations, and more.<br />
MKS’s global support professionals <strong>com</strong>prise a tightly knit team of<br />
problem solvers, sharing critical information to help you resolve issues in<br />
the shortest possible time with optimal results. Support representatives can<br />
provide you with a variety of product related tips and innovative solutions<br />
to your unique problems.<br />
Online Web www.mks.<strong>com</strong><br />
E-mail support@mks.<strong>com</strong><br />
Telephone Toll Free North America 800 219 4842<br />
Outside North America 00800 219 484 24<br />
Direct North America 519 884 2270<br />
UK +44 (0) 1483 733910<br />
Germany +49 711 351775 7575<br />
Fax North America 519 884 8861<br />
UK +44 (0) 1483 733901<br />
Germany +49 711 351775 7555<br />
u s e r g u i d e
Professional Services<br />
The hours of operation for Customer Care are as follows:<br />
Professional Services<br />
North America: 8:00 A.M. to 8:00 P.M., Monday to Friday, Eastern<br />
Standard Time (GMT-5)<br />
United Kingdom: 9:00 A.M. to 5:30 P.M., Monday to Friday, British<br />
Standard Time (GMT)<br />
Germany: 9:00 A.M. to 5:30 P.M., Monday to Friday, West Europe<br />
Standard Time (GMT+1)<br />
A successful configuration management system is not built on software<br />
alone. At MKS, our professional services team is <strong>com</strong>mitted to<br />
understanding the ever changing development environments of our<br />
clients. The professional services team can provide training, upgrade,<br />
migration, implementation, and installation services that meet your unique<br />
requirements.<br />
MKS professional services can help guide you through process analysis,<br />
software installation, source code archive migration, and product and<br />
process training for the entire suite of MKS products—MKS Source<br />
Integrity Enterprise Edition, MKS Integrity Manager, MKS Implementer<br />
for iSeries, and MKS Code Integrity Enterprise. This ensures that the<br />
implementation of your new solution goes smoothly, while allowing your<br />
developers to make progress on critical projects.<br />
The professional services team can truly add value to your MKS<br />
technology investment by providing the following services:<br />
process assessment<br />
best practice consultation<br />
migration services<br />
upgrade services<br />
implementation services<br />
education and training<br />
9
Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />
10<br />
For more information on MKS professional services:<br />
Your Feedback Is Wel<strong>com</strong>e<br />
Online Web Global www.mks.<strong>com</strong>/services<br />
MKS wel<strong>com</strong>es your feedback on the documentation included with this<br />
product. If you have <strong>com</strong>ments or suggestions about any of the guides or<br />
the online help, send them to:<br />
pubs-mgr@mks.<strong>com</strong><br />
Include the following information with your feedback:<br />
product name and version number (from the About box)<br />
title of manual or online help topic<br />
page number (for manuals only)<br />
your suggested correction or improvement<br />
NOTE<br />
E-mail North America consulting@mks.<strong>com</strong><br />
Europe europe@mks.<strong>com</strong><br />
Telephone North America 800 633 1235<br />
UK +44 (0) 1483 733900<br />
Germany +49 711 351775 0<br />
The e-mail address is provided for <strong>com</strong>ments on the MKS documentation only.<br />
You may not receive a reply to your e-mail. For technical questions or for<br />
software support, you should contact MKS Global Customer Care<br />
(support@mks.<strong>com</strong>).<br />
u s e r g u i d e
Where To Go From Here<br />
To Do This … See …<br />
Where To Go From Here<br />
Install the Integrity Client. “Installing the Integrity Client” on<br />
page 24<br />
Log in to Source Integrity. “Logging In to Source Integrity” on<br />
page 36<br />
Set Source Integrity preferences. “Setting Preferences” on page 40<br />
Create a project. “Creating a Project” on page 116<br />
Create a sandbox. “Creating a Sandbox” on page 135<br />
Add members to a Source Integrity<br />
project.<br />
“Adding Members to a Project” on<br />
page 157<br />
Check out a member. “Checking Out a Member” on<br />
page 178<br />
Check in a member. “Checking In a Member” on page 186<br />
Create a change package “Creating a Change Package” on<br />
page 217<br />
View a project history. “Viewing a Project History” on<br />
page 263<br />
View a member history. “Viewing a Member History” on<br />
page 310<br />
Use Integrity Manager with<br />
Source Integrity.<br />
“Integrating With Integrity Manager” on<br />
page 372<br />
Learn Source Integrity terms. “Glossary of Terms” on page 473<br />
11
Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />
12<br />
u s e r g u i d e
Understanding Source Integrity<br />
2<br />
KEY TERMS: concepts, client, version control, project, sandbox, history, member,<br />
delta, checkpointing, variant, development path, integrated<br />
development environment<br />
Source Integrity is a <strong>com</strong>prehensive, project-oriented, software<br />
configuration management system that gives you control over the changes<br />
to your software applications. Source Integrity not only documents the<br />
changes made to your files, but it also tracks who made them, when they<br />
were made, and the reasons why.<br />
Source Integrity provides project-based functionality that allows team<br />
members to:<br />
group related files into projects that follow your development cycle<br />
effectively manage multiple development projects<br />
secure software assets<br />
meet deadlines<br />
contribute throughout the application lifecycle<br />
Source Integrity has extensive options to support a configuration<br />
management system that conforms with your established policies.<br />
Whether you work in a small development group or as part of a large<br />
team, Source Integrity has the features to help you get the job done.<br />
Source Integrity is also an integral part of the MKS Integrity Solution. The<br />
Integrity Solution manages software applications across your enterprise<br />
with a streamlined process for the creation and approval of mission-critical<br />
business applications. Based on a unique, open, application server<br />
architecture, the Integrity Solution includes:<br />
workflow (Integrity Manager) for collaboration, approval, and change<br />
management<br />
version control (Source Integrity) and configuration for software<br />
management<br />
13
Chapter 2: Understanding Source Integrity<br />
Projects and Sandboxes<br />
Working With Projects<br />
14<br />
A project is any group of files that, taken together, forms a single body of<br />
work. Projects are presented in Project views, which list the members of the<br />
project and provide access to them.<br />
In a development environment using Source Integrity, for example, a<br />
project might include source code files required to build a program<br />
element. In Source Integrity, the files in the project are known as members.<br />
Your organization can use projects to manage a variety of development<br />
initiatives.<br />
All top-level projects and subprojects reside on the Integrity Server.<br />
Source Integrity allows you to create large projects <strong>com</strong>posed of smaller<br />
<strong>com</strong>ponent projects known as subprojects. Subprojects behave in the same<br />
way as projects. Once you create a subproject, it is considered a member of<br />
the project.<br />
Sandboxes can reside on the client machines and allow you to work locally<br />
in your own workspace, without interfering with the work of others. You<br />
can think of the sandbox as a local pointer to the project residing on the<br />
Integrity Server. A sandbox is a mirror image of a Source Integrity project.<br />
Although it looks and acts like the project it mirrors, it is actually a<br />
collection of pointers to its real-life counterparts in the master project.<br />
In basic terms, when a user is ready to work with a file from the<br />
development project or Web site, a check out operation downloads the file<br />
from the server project to the client sandbox. Similarly, a check in operation<br />
updates the server project with content from the sandbox.<br />
Organizing your files in a project allows you to perform configuration<br />
management operations on the files as a group. When an administrator is<br />
ready to place a group of development files under Source Integrity control,<br />
the first step is to create a project on the Integrity Server.<br />
All projects must be registered with the Integrity Server and member<br />
histories are added as members of the registered project.<br />
All files and projects have one thing in <strong>com</strong>mon: Source Integrity can save<br />
them as revisions in a history file and then recreate them at any time. An<br />
object’s content is stored in something known as an archive; for many files,<br />
the content is simply lines of HTML, code, or JavaScript.<br />
u s e r g u i d e
File and Object Histories<br />
File and Object Histories<br />
For projects, however, the saved content is different. A project is a<br />
development object whose content consists of metadata that describes all<br />
the other development objects (that is, the project’s members) and the<br />
relationships between them.<br />
Metadata is <strong>com</strong>posed of all of the information about a revision or archive,<br />
as opposed to the information that is part of the object. For example, a<br />
revision’s Revision Description is metadata since it is information about<br />
the revision, while the contents of the revision is part of the revision itself<br />
and, hence, is not metadata.<br />
Metadata includes:<br />
revision number of the project<br />
location and names of all project members<br />
type and revision number of each member<br />
project-specific configuration<br />
Source Integrity creates a history for each file or object stored in the server<br />
projects. Each submitted update is recorded in an object’s history as a<br />
version and given a sequential number for reference. The original version is<br />
numbered 1.1, and each subsequent version increases the number to the<br />
right of the decimal point by one (for example, 1.2). Each version of the<br />
object can be viewed individually.<br />
15
Chapter 2: Understanding Source Integrity<br />
16<br />
The history for an object with its versions.<br />
How Files and Objects Are Stored<br />
Source Integrity stores your development files and Web objects in projects<br />
and archives, and then manages access to them through sandboxes.<br />
The data preserved in Source Integrity histories can be one of two types,<br />
Binary or Text. Binary is a file containing unprintable characters, or lines<br />
too long to be handled by text editors. Text is the file format expected by<br />
MS-DOS and Windows text file editors. When a file of type “Text” is<br />
checked out, Source Integrity adds the appropriate line ending character<br />
for that type of client.<br />
An archive is a file containing the history of a member (a record of all the<br />
changes made to it since it was put under revision control). From the<br />
information contained in the history, Source Integrity can reconstruct any<br />
previous version of the member. The archive is sometimes referred to as<br />
the RCS file, for historical reasons.<br />
This procedure has a number of advantages over other software<br />
configuration management systems in that it:<br />
simplifies the identification and retrieval of earlier versions of<br />
development objects<br />
provides control over access to data files<br />
keeps team members well informed on project status<br />
u s e r g u i d e
What Is a Project Member?<br />
What Is a Project Member?<br />
You must manage all development objects. This lets you maintain a<br />
<strong>com</strong>plete change history as objects pass through the development cycle.<br />
The administrator is responsible for including these pre-existing objects in<br />
a project to establish their place in the overall development plan. New<br />
objects are then added as your developers create them.<br />
An object under Source Integrity control has three main <strong>com</strong>ponents:<br />
working file where you make your changes (always in a sandbox)<br />
member history file where your history of changes is stored<br />
revision number identifying (per project or variant) which version of<br />
the object is relevant for a given point in time<br />
In a project, a project member is a specific revision of a development object.<br />
When you check out a project member, it is a specific revision of the object<br />
that is copied to a working file, where you can work with it. When you<br />
finish making changes and check the working file back into the history,<br />
Source Integrity creates a new revision in the object’s archive.<br />
At this point, you have the option of updating the project to use the new<br />
revision of the object. In this way, the project stays current with the most<br />
recent changes to its members.<br />
The project has its own history, and so does each individual member.<br />
17
Chapter 2: Understanding Source Integrity<br />
History File: Storing Deltas<br />
18<br />
Keeping a project current with the most recent member changes is the<br />
default behavior for Source Integrity, and it is the re<strong>com</strong>mended way for<br />
most people. If for some reason you need to check in a member without<br />
updating the member revision, the check in process lets you choose.<br />
When Source Integrity performs a check in operation with a text file, it<br />
calculates and stores the changes that must be made to the new revision to<br />
recreate the previous revision in the history.<br />
A revision is a version of a file and is contained in a history. A new revision<br />
is produced in the history each time a working file is checked in.<br />
The set of differences (stored in a history) between one revision and its<br />
immediate ancestor, is known as a delta. Using deltas, the program can<br />
reconstruct the exact contents of any revision without having to store<br />
<strong>com</strong>plete copies. Known also as reverse delta storage, it is the standard RCS<br />
format for archives.<br />
In theory, saving only the changed portion of each revision produces a<br />
smaller history file than if the entire file were saved each time. There are<br />
situations, however, where this method may not be the most efficient.<br />
When Source Integrity <strong>com</strong>pares the file being checked in to the previous<br />
revision, it <strong>com</strong>pares them line by line. While this is a logical and efficient<br />
way to handle text files, it is not always effective with binary files. A<br />
relatively small change at the beginning of a binary file can affect all<br />
subsequent data in the file.<br />
A binary file contains unprintable characters, or lines too long to be handled<br />
by text editors.<br />
As a consequence, the record of changes (that is, the delta) for some binary<br />
files may be as large as, or larger than, the file itself. Source Integrity also<br />
rewrites the member history after each check in operation, making<br />
operations slow for large histories.<br />
To keep the size of the member history relatively small, they can be stored<br />
in the reference format. In this format, the program stores each revision<br />
separately from the member history. The member history then stores a<br />
reference to the revision.<br />
u s e r g u i d e
Project Checkpointing<br />
The member history describes the file’s revisions and the differences<br />
between them.<br />
Project Checkpointing<br />
Source Integrity provides a number of configuration options relating to<br />
how member histories and deltas are stored. For more information on<br />
configuring these options, see the Integrity Server Installation and<br />
Administration <strong>Guide</strong>.<br />
Just as you can check in a source file to preserve the changes made to it<br />
from one revision to another, you can also track the changes to a project. In<br />
Source Integrity, this process is called checkpointing.<br />
Checkpointing saves a copy of the project as a baseline in the project’s<br />
history as a revision, including the list of members along with their<br />
revision numbers and project and member attributes.<br />
You can use the project’s revision number to keep track of your projects,<br />
but to simplify post-release maintenance, you can use a label to identify<br />
significant project development milestones when you checkpoint a project.<br />
For example, if you checkpoint a project and label it with a release<br />
identifier (for example, Release 6.2), you can find and recreate that<br />
particular development state more easily.<br />
19
Chapter 2: Understanding Source Integrity<br />
20<br />
Some sites check in projects daily, while others wait until significant new<br />
functionality is added or until important members reach a particular<br />
promotion state. This diagram shows a series of project checkpoints.<br />
Source Integrity can checkpoint subprojects when a project is<br />
checkpointed.<br />
Using checkpointed projects, Source Integrity also allows you to view a<br />
summary of the changes that have occurred between two versions of a<br />
project.<br />
Source Integrity Change Packages<br />
Work may need to be performed on several members in order to address a<br />
development issue. Source Integrity provides change packages that act as a<br />
container to group all of the necessary changes together.<br />
When used to control development, deferred member operations can be<br />
recorded as change package entries, and then submitted at once to ensure a<br />
<strong>com</strong>plete resolution of the issue. If using change package reviews, changes<br />
for pending operations require review acceptance before <strong>com</strong>mitment to<br />
the repository.<br />
u s e r g u i d e
Working With Variants and Development Paths<br />
Working With Variants and Development<br />
Paths<br />
Regular sandboxes are based on the current state of the project. You can<br />
also create a sandbox that is based on a previously checkpointed revision<br />
of the project. This type of sandbox is called a variant.<br />
When you create a variant project, you choose a checkpoint (baseline) of<br />
your project and use it as the starting point for a new branch of<br />
development. Source Integrity allows you to do this by defining a new<br />
development path.<br />
A development path is an identifier given to a new branch of software<br />
development. Changes made through the new development path are kept<br />
separate from the main development trunk, unless you choose to merge<br />
them later.<br />
The trunk is the primary line of a file’s change history in a history. The first<br />
member of the trunk is always the original file checked into the archive.<br />
Source Integrity allows multiple developers to point to the same<br />
development path, each using their own variant sandbox. In the variant<br />
sandbox, you can see the current state of the project along that<br />
development path and the changes made by other developers using it.<br />
Development paths are useful for:<br />
building customized versions of a product<br />
performing branch development work<br />
performing post-release maintenance<br />
fixing defects in previous versions of the product<br />
testing new features outside of the main development path<br />
experimenting with research that does not affect regular development<br />
21
Chapter 2: Understanding Source Integrity<br />
Integrations Support<br />
22<br />
Source Integrity supports the following integrations::<br />
IDE Versions<br />
Borland CodeWright 7.0c<br />
Borland Delphi 7.0<br />
Borland JBuilder 8.0 Enterprise, and 9.0 Enterprise<br />
Borland Together ControlCenter 6.1<br />
Eclipse (open source) 1.0.0, 2.0.2, 2.1.1, 2.1.x<br />
IBM Rational Rose Enterpise Edition 2000<br />
IBM WebSphere Studio Application<br />
Developer<br />
IBM WebSphere Studio Application<br />
Developer Integration Edition<br />
IBM WebSphere Studio Site<br />
Developer<br />
IBM WebSphere Development Studio<br />
Client for iSeries<br />
IBM WebSphere Development Studio<br />
Client Advanced Edition for iSeries<br />
4.0.x, 5.0, 5.1, 5.1.x<br />
Source Integrity documents the changes made to your files, and also tracks<br />
who made them, when they were made, and the reasons why.<br />
5.0<br />
4.0.x, 5.0, 5.1<br />
5.0 and 5.1<br />
5.0 and 5.1<br />
Mercury Interactive TestDirector 7.6 and 8.0<br />
Microsoft Visual Basic 6.0<br />
Microsoft Visual C++ 6.0<br />
Microsoft Visual J++ 6.0<br />
Microsoft Visual Studio .NET Enterprise Edition 2003<br />
Microsoft Windows Explorer Windows 98 Second Edition, ME,<br />
2000, NT 4.0<br />
Sybase PowerBuilder 8.0.3, and 9.0<br />
u s e r g u i d e
Getting Started Using<br />
Source Integrity<br />
KEY TERMS: Integrity Client, permissions, access control list, preferences<br />
3<br />
Source Integrity uses client/server architecture to protect and manage<br />
your files. Project files reside on the server and are accessed by requests<br />
from the client application on your workstation. Therefore, to access your<br />
project files on the Integrity Server, you must first open a connection<br />
through the Source Integrity client.<br />
This chapter describes the basic steps necessary to start, configure, and<br />
close a session in Source Integrity. Specific topics covered in this chapter<br />
include:<br />
“Installing the Integrity Client” on page 24<br />
“Configuring Environment Variables for UNIX” on page 29<br />
“Uninstalling the Integrity Client” on page 29<br />
“Before You Start the Integrity Client” on page 30<br />
“Starting the Source Integrity Client” on page 34<br />
“Logging In to Source Integrity” on page 36<br />
“Connecting to Multiple Servers” on page 39<br />
“Setting Preferences” on page 40<br />
“Managing Integrations” on page 70<br />
“Quitting a Source Integrity Session” on page 72<br />
23
Chapter 3: Getting Started Using Source Integrity<br />
Installing the Integrity Client<br />
Browser<br />
Support<br />
24<br />
The Intgrity Client contains the Source Integrity graphical user interface.<br />
IMPORTANT<br />
If you are using integrations with Source Integrity, disable all integrations<br />
before you install the new client.<br />
Before installing the Integrity Client, you must have removed any earlier MKS<br />
or Vertical Sky Client (including Source Integrity, Change Integrity, Vertical<br />
Sky Software Manager, or Vertical Sky Collaboration Manager). Failure to do<br />
so may cause operational problems later on.<br />
To install the integrity client from the CD<br />
The Integrity Solution supports Internet Explorer and Netscape browsers.<br />
Specifically, Integrity Manager and Source Integrity Web interfaces require<br />
Internet Explorer 5.5/6.0 (all service packs), or Netscape 6.2.3/7.1.<br />
1 Insert the Integrity Client CD from your package into the CD-ROM<br />
drive.<br />
The Integrity Client CD browser starts automatically and allows you<br />
to select from the following options:<br />
RELEASE NOTES allows you to view the release notes for the<br />
Integrity Client <strong>com</strong>ponents.<br />
DOCUMENTATION allows you to view the product documentation<br />
in Adobe Acrobat PDF format.<br />
INSTALL allows you to install the Integrity Client.<br />
2 To start the installation process, do one of the following:<br />
From the Integrity Client CD browser, click INSTALL.<br />
A page is displayed allowing you to start the installation program<br />
for your particular platform.<br />
For Windows, click the link.<br />
For UNIX, follow the written instructions.<br />
u s e r g u i d e
NOTE<br />
Installing the Integrity Client<br />
For UNIX systems, the Integrity Client installation program reports an error if<br />
there is insufficient free space in the /tmp directory in the $HOME directory.<br />
MKS does not certify any PC X-Servers. If your PC X-server provides full<br />
support for Xwindows, the MKS client may operate.<br />
For Windows, a dialog box is displayed asking you if you want to<br />
run or save the installation program. The installation program file<br />
name is mksclient.exe. Specify one of the following:<br />
Run the installation program directly from its current<br />
location (the CD).<br />
Save the installation program to disk (a location you specify),<br />
and run it from there.<br />
Run, as appropriate for your platform, mksclient.exe or<br />
mksclient.bin, which is located on the Integrity Client CD<br />
in the appropriate installs directory.<br />
3 If you are installing on a UNIX platform, <strong>com</strong>plete the following steps<br />
before continuing; otherwise, go to step 4.<br />
Copy mksclient.bin to a temporary directory on your server<br />
<strong>com</strong>puter.<br />
Make sure the environment variable $DISPLAY is set, if<br />
appropriate.<br />
To make mksclient.bin executable, run:<br />
chmod +x mksclient.bin<br />
To run the installation, type<br />
./mksclient.bin<br />
4 The InstallAnywhere window opens as the files needed for the<br />
installation are extracted, followed by the License Agreement panel.<br />
Before you can continue with the installation, you must read the<br />
license agreement and indicate your acceptance. The default setting is<br />
I do NOT accept the terms of the License Agreement.<br />
To accept the license agreement and continue with the<br />
installation, select I accept the terms of the License Agreement<br />
and click Next.<br />
If you do not accept the license agreement, click Cancel. The<br />
Integrity Client is not installed.<br />
25
Chapter 3: Getting Started Using Source Integrity<br />
26<br />
If you accept the license agreement, the Select Integrity Client<br />
Components panel is displayed.<br />
5 Depending on the product <strong>com</strong>ponents you are licensed to use, select<br />
Integrity Manager, Source Integrity, Administration Client, or a<br />
<strong>com</strong>bination of your choice.<br />
NOTE<br />
To perform configuration tasks for the Integrity Server, administrators should<br />
select Administration Client.<br />
6 To continue, click Next.<br />
The Integrity Client Installation Location panel is displayed.<br />
7 To specify where you want to install the Integrity Client, do one of the<br />
following:<br />
To accept the default path location, click Next. For example, by<br />
default, the Windows Integrity Client is installed to:<br />
C:\Program Files\MKS\IntegrityClient<br />
To find the directory where you want to install the Integrity<br />
Client, click Browse. To continue, click Next.<br />
Type the path of the directory where you want to install the<br />
Integrity Client. If the directory does not exist, it is automatically<br />
created. To continue, click Next.<br />
NOTE<br />
If at any time you want to restore the default location, click Restore Default<br />
Directory and then click Next to continue.<br />
8 In step 5, if you chose to install more than one product, the Specify<br />
Server Connection Default panel is displayed. Select one of the<br />
following options and click Next to continue:<br />
Same Integrity Server for all <strong>com</strong>ponents<br />
Different Integrity Server for each <strong>com</strong>ponent<br />
In step 5, if you chose to install only one product <strong>com</strong>ponent, the<br />
Specify Integrity Server Connections panel is displayed, displaying<br />
fields for server host name(s) and port(s) based on the product you<br />
chose to install. Enter the server host name and port information and<br />
click Next to continue.<br />
u s e r g u i d e
NOTE<br />
Installing the Integrity Client<br />
By default, the listening port for the Integrity Server is 7001. Administrators<br />
must notify users of the assigned port number.<br />
Administrators can change the default listening port for their site by modifying<br />
the property for weblogic.system.listenPort under /<br />
mksis/weblogic.properties. If the Integrity Manager <strong>com</strong>ponent is<br />
running on a different server, the Integrity Manager listening port is set by<br />
modifying the property for im.port under /mksis/<br />
si.properties.<br />
The Specify Integrity Server Connections panel is displayed.<br />
The following shows an example of a <strong>com</strong>pleted panel for Specify<br />
Integrity Server Connections where different servers are selected for<br />
each product. By default, the Administration Client uses the server<br />
and port specified for Source Integrity.<br />
The Select Source Integrity Reporting Application panel is displayed.<br />
The Source Integrity Reporter utility helps you analyze projects, their<br />
members, or individual archives, and allows you to generate a variety<br />
of graphs and reports based on its findings. The Source Integrity<br />
Reporter utility stores its data using Microsoft Access 97.<br />
27
Chapter 3: Getting Started Using Source Integrity<br />
28<br />
Depending on what version of Microsoft Access you have on your<br />
system, the following Source Integrity Reporter options may appear:<br />
Use Existing Microsoft Access 2000 Retail is displayed when you<br />
have Microsoft Access 2000 on your system. Selecting this option<br />
allows Source Integrity’s Reporter utility to use the full version of<br />
Access 2000.<br />
Use Existing Microsoft Access 97 Retail is displayed when you<br />
have Microsoft Access 97 on your system. Selecting this option<br />
allows Source Integrity’s Reporter utility to use the full version of<br />
Access 97.<br />
Install and Use Microsoft Access 97 Runtime allows<br />
Source Integrity’s Reporter utility to use the minimal install of<br />
Access 97 Runtime. This option is available even if you have a full<br />
version of Access already installed on your system.<br />
Use Existing Microsoft Access 97 Runtime is displayed only if you<br />
had a previous version of Source Integrity on your system.<br />
Selecting this option allows the Source Integrity Reporter utility<br />
to use the existing minimal install Access 97 Runtime application.<br />
Do Not Use Source Integrity Reporting means that<br />
Source Integrity’s Reporter utility will not be available.<br />
9 Select a Source Integrity Reporter option and click Install.<br />
The Integrity Client program files are installed on your <strong>com</strong>puter and<br />
the Install Complete panel is displayed.<br />
10 To continue, click Next.<br />
The System Environment Changed panel is displayed, informing you<br />
that your system environment has changed and that you need to log<br />
out and reboot your system for the changes to take effect.<br />
11 To quit the installer, click Done.<br />
12 Restart your <strong>com</strong>puter to have the system environment changes take<br />
effect.<br />
IMPORTANT<br />
For AIX and SuSE Linux, the IntegrityClient.rc file cannot be on an<br />
NFS-mounted drive. Source Integrity cannot be started if $HOME is pointing to<br />
a drive mounted on NFS or NIS. If the system is pulling the NFS mounts over<br />
NIS, then -noac is ignored in the NIS mount options. Select the NIS option for<br />
mounting NFS with -o noac.<br />
u s e r g u i d e
Configuring Environment Variables for<br />
UNIX<br />
Configuring Environment Variables for UNIX<br />
On UNIX, you can decide to configure the following environment<br />
variables once you have installed the Integrity Client:<br />
Add the /bin directory to the PATH<br />
environment variable.<br />
Modifying the PATH environment variable eliminates the requirement<br />
to type the full path to executables for Source Integrity,<br />
Integrity Manager, and the Authorization Administration application.<br />
Add the /etc directory to the MANPATH<br />
environment variable.<br />
Modifying the MANPATH environment variable ensures that the man<br />
<strong>com</strong>mand can access the man pages for Source Integrity,<br />
Integrity Manager, and the Authorization Administration application.<br />
The is the path to the directory where you<br />
installed the Integrity Client.<br />
Uninstalling the Integrity Client<br />
If you have installed and enabled the Windows Explorer integration, you<br />
must exit Windows Explorer before beginning the uninstall process.<br />
To uninstall the Integrity Client on Windows<br />
1 Do one of the following:<br />
From the Windows Start menu, select Programs > MKS Integrity ><br />
Uninstall > Integrity Client Uninstall.<br />
Run the uninstall program file:<br />
\uninstall\IntegrityClientUninstall.exe<br />
where is the path to the directory where you<br />
installed the Integrity Client.<br />
The InstallAnywhere Uninstaller panel is displayed. The uninstall<br />
program removes all installed <strong>com</strong>ponents, except any files or folders<br />
created after the installation.<br />
2 To run the uninstall program, click Uninstall.<br />
29
Chapter 3: Getting Started Using Source Integrity<br />
30<br />
3 To exit the uninstall program, click Done.<br />
To uninstall the Integrity Client on UNIX<br />
Run the uninstall program file:<br />
/uninstall/IntegrityClientUninstall<br />
where is the path to the directory where you installed the<br />
Integrity Client.<br />
The InstallAnywhere Uninstaller panel is displayed. The uninstall program<br />
removes all installed <strong>com</strong>ponents, except any files or directories created<br />
after the installation.<br />
Before You Start the Integrity Client<br />
Understanding<br />
Access<br />
Permissions<br />
Before you start the Source Integrity client, ensure you have the following:<br />
the name and port number of the Integrity Server you want to connect<br />
to<br />
a copy of the Source Integrity client installed locally on your <strong>com</strong>puter<br />
your Source Integrity user name and password<br />
NOTE<br />
Your administrator provides you with a server name, port number, user name,<br />
and password.<br />
Your ability to perform tasks in Source Integrity depends on the<br />
permissions granted to you by your administrator. Access to all functions<br />
is managed through a database that controls the permitted activities for all<br />
Source Integrity users.<br />
Permissions are a collection of pre-defined functionality and operations that<br />
can be assigned to users, granting access to certain Source Integrity tasks.<br />
The set of assigned permissions determines each user’s access to the<br />
various functions of Source Integrity. If a user is not granted the<br />
permission, that user is not able to <strong>com</strong>plete the task. For example,<br />
checking out files in Source Integrity requires the FetchRevision and<br />
Lock permissions.<br />
Depending on your permissions, you can view the permissions assigned<br />
for both projects and project members, but only your administrator can<br />
modify the permissions.<br />
u s e r g u i d e
Understanding<br />
Access Control<br />
Lists<br />
Before You Start the Integrity Client<br />
To view project permissions in the graphical user interface<br />
Do one of the following:<br />
From a Project view, select Project > Properties > Project Permissions.<br />
From a Sandbox view, select Sandbox > Properties > Project<br />
Permissions.<br />
The Project Permissions dialog box opens and displays the assigned access<br />
permissions for the selected project.<br />
To view member permissions in the graphical user interface<br />
From a Project or Sandbox view, select Member > Properties > Member<br />
Permissions.<br />
The Member Permissions dialog box opens and displays the assigned<br />
access permissions for the selected member.<br />
If you find you are unable to perform necessary operations, you must<br />
contact the administrator responsible for Source Integrity at your site to<br />
review the permissions assigned to you. For example, if you are unable to<br />
create a new project, it may mean that you have not been assigned the<br />
required permissions for this operation.<br />
IMPORTANT<br />
If your administrator has assigned you a new set of permissions, you must<br />
update your permissions by disconnecting your Source Integrity client and<br />
then reconnecting to the Integrity Server. An out-of-date permission set may<br />
cause unpredictable behavior when attempting to open projects or perform<br />
other tasks. To disconnect from the server, see “Logging Out of Source<br />
Integrity” on page 72.<br />
An Access Control List (ACL) is a collection of entries that permits or limits<br />
entry to the functionality of a software program or server. The Access<br />
Control List allows the administrator to manage user access by requiring<br />
authentication of the user’s identity or membership in a predefined group.<br />
Access is then granted according to the assigned permissions. Access<br />
Control Lists (ACLs) store security, configuration, and administrative<br />
information for the Integrity Server and Source Integrity. They work in<br />
conjunction with your network’s authentication system to provide control<br />
over features and functions.<br />
31
Chapter 3: Getting Started Using Source Integrity<br />
32<br />
ACLs <strong>com</strong>prise principals and permissions. Principals control the users<br />
and groups who have access to the functionality of Source Integrity<br />
operations. Permissions specify the particular operations that are available.<br />
Each ACL entry identifies the allowance or denial of pre-defined sets of<br />
permissions. These permissions are configured by your administrator.<br />
You can view ACLs through Source Integrity to see which permissions<br />
your administrator has or has not assigned to you.<br />
To view ACLs in the graphical user interface<br />
1 From the Source Integrity application window, do one of the<br />
following:<br />
Select Tools > Manage Projects.<br />
Select Tools > Manage Sandboxes.<br />
A list of the registered projects or sandboxes is displayed in the<br />
Registered Projects or Registered Sandboxes view respectively.<br />
2 Select the project or sandbox you want to view ACLs for.<br />
TIP<br />
The Registered Projects view supports standard shortcut menus. To display<br />
the menu of actions you can perform, select a project and right click.<br />
Source Integrity displays the applicable shortcut menu.<br />
3 Click Permissions.<br />
The ACL dialog box opens and displays the ACLs for the selected<br />
project or sandbox.<br />
u s e r g u i d e
Before You Start the Integrity Client<br />
You can expand each principal to view the permissions.<br />
IMPORTANT<br />
While Source Integrity does allow users to view their ACLs, it is not<br />
re<strong>com</strong>mended that users attempt to modify these ACLs or create any specific<br />
ACLs. For more information on ACLs, see your administrator, and consult the<br />
Integrity Server Installation and Administration <strong>Guide</strong>.<br />
33
Chapter 3: Getting Started Using Source Integrity<br />
Viewing Group<br />
Membership<br />
Administrator<br />
Defined Client<br />
Settings<br />
34<br />
When your ACLs are based on group membership, it can be useful to use<br />
the <strong>com</strong>mand line interface to view the groups that you belong to.<br />
To view groups in the <strong>com</strong>mand line interface<br />
Use the aa users <strong>com</strong>mand<br />
where<br />
aa users --groups username<br />
username specifies the ID of the user who you want to view group<br />
membership for.<br />
As a result of certain Administrator settings, you may experience<br />
additional Integrity Client dialog prompts or behavior that is not<br />
documented in this guide. Contact your administrator for more<br />
information.<br />
Starting the Source Integrity Client<br />
The Source Integrity client is accessible in three interfaces: the graphical<br />
user interface, the Web interface, and the <strong>com</strong>mand line interface.<br />
The Source Integrity Web interface is available for performing a variety of<br />
tasks.<br />
NOTE<br />
You do not need to install the Integrity Client to access the Source Integrity<br />
Web interface.<br />
You can also choose to work alternately between the graphical user<br />
interface and the <strong>com</strong>mand line interface, because most Source Integrity<br />
<strong>com</strong>mands are available in these two interfaces. For example, you can<br />
perform a <strong>com</strong>mand in the <strong>com</strong>mand line interface and view the results in<br />
the graphical user interface.<br />
Instructions for quitting a session are provided in the section entitled<br />
“Quitting a Source Integrity Session” on page 72.<br />
u s e r g u i d e
IMPORTANT<br />
Starting the Source Integrity Client<br />
Ensure that the Integrity Server you are connecting to is the same version as<br />
your Source Integrity client. Attempting to connect with an in<strong>com</strong>patible client<br />
(for example, from an earlier version of Source Integrity or Vertical Sky<br />
Software Manager) results in error messages and unpredictable behavior. To<br />
determine the version of your Source Integrity client, select Help > About. The<br />
client version is displayed on the dialog box. To determine the version of the<br />
Integrity Server, contact your administrator, or in the <strong>com</strong>mand line interface,<br />
use the si servers --showversion <strong>com</strong>mand.<br />
To start the Source Integrity client graphical user interface on<br />
Windows<br />
Select Start > Programs > MKS Integrity > Source Integrity (default Start<br />
menu shortcut).<br />
To start the Source Integrity client graphical user interface on UNIX<br />
1 Open a shell.<br />
2 Type si gui or si -g.<br />
To start the Source Integrity Web interface<br />
1 Open a Web browser and, in the location or address field, type the<br />
URL of the Integrity Server, for example:<br />
http://abc.Business.<strong>com</strong>:7001<br />
2 Press ENTER.<br />
The Integrity Server wel<strong>com</strong>e page opens.<br />
The Integrity Server wel<strong>com</strong>e page provides a link to the read-only<br />
version of the Web interface. You can connect to the read-only Web<br />
interface by clicking the read-only mode link displayed under Start<br />
Source Integrity Enterprise Web Interface.<br />
3 Click Start Source Integrity Web Interface.<br />
The Enter Network Password dialog box is displayed.<br />
4 Type your user ID and password, and press ENTER.<br />
The Source Integrity Web interface opens in a new browser window.<br />
35
Chapter 3: Getting Started Using Source Integrity<br />
Logging In to Source Integrity<br />
36<br />
Source Integrity uses client/server architecture to protect and manage<br />
your files. Project files reside on the server and are accessed by requests<br />
from the client application on your workstation.<br />
Problems and error messages on the Source Integrity client are logged to<br />
/bin/IntegrityClient.log.<br />
For both the graphical user interface and the <strong>com</strong>mand line interface, you<br />
must establish a connection with the Integrity Server before you can<br />
perform any Source Integrity operations on projects or sandboxes.<br />
IMPORTANT<br />
Ensure that the Integrity Server you are connecting to is the same version as<br />
your Source Integrity client. Attempting to connect with an in<strong>com</strong>patible client<br />
(for example, from an earlier version of Source Integrity or Vertical Sky<br />
Software Manager) results in error messages and unpredictable behavior. To<br />
determine the version of your Source Integrity client, select Help > About. The<br />
client version is displayed on the dialog box. To determine the version of the<br />
Integrity Server, contact your administrator, or in the <strong>com</strong>mand line interface,<br />
use the si servers --showversion <strong>com</strong>mand.<br />
All Source Integrity <strong>com</strong>mands automatically prompt you for information<br />
and will connect you to the appropriate server if you are not already<br />
connected. If your system is appropriately configured, there may be<br />
nothing for you to specify. Additionally, if you are using a Win32 system<br />
connecting to an NT server with single signon enabled, you are<br />
automatically authenticated as the current user on your local system.<br />
NOTE<br />
All or some of the login dialog boxes may appear, depending on the<br />
configuration set up by your administrator.<br />
To log in using the graphical user interface<br />
1 Do one of the following:<br />
Select File > Server Connection > Connect.<br />
Click .<br />
The Specify Server Connection dialog box is displayed.<br />
u s e r g u i d e
NOTE<br />
Logging In to Source Integrity<br />
If your preferences are not set to prompt for a server connection, the Specify<br />
Server Connection dialog box does not appear. For more details on<br />
preferences, see “Connection Preferences” on page 43.<br />
2 In the Host Name field, type the name of the Integrity Server you want<br />
to connect to, for example, abcBusiness_nt, or the numerical IP<br />
address, for example 1.2.34.56.<br />
3 In the Port Number field, type the port number.<br />
4 To accept the server information, click OK.<br />
The Enter Credentials dialog box is displayed.<br />
5 In the <strong>User</strong> Name field, type your user name.<br />
Your user name is displayed by default in the <strong>User</strong> Name field.<br />
6 In the Password field, type your password.<br />
7 To accept the user information, click OK.<br />
Source Integrity establishes a connection with the server.<br />
To verify your connection, select File > Server Connection. If you are<br />
connected, your user name, server name, and port number appear in<br />
the Server Connection menu.<br />
37
Chapter 3: Getting Started Using Source Integrity<br />
38<br />
IMPORTANT<br />
In the Server Connection menu, the active connection is displayed with a bullet<br />
next to the connection information. If the bullet does not appear, you are not<br />
connected to the server.<br />
In the lower right corner of the graphical user interface, the following<br />
three icons indicate the status of the server:<br />
Icon Type of Server Connection<br />
To log in using the Web interface<br />
1 Start your Web browser.<br />
2 Browse to the location of the Source Integrity home page. Your<br />
administrator can provide you with its location.<br />
The URL for the Integrity Server home page is displayed in the form:<br />
http://:<br />
for example,<br />
Connected to the Integrity Server.<br />
You are logged in and have an active client session.<br />
Disconnected from the Integrity Server.<br />
You have logged out and closed your client session.<br />
Offline from the Integrity Server.<br />
The connection to the Integrity Server has been dropped or the<br />
network connection is down.<br />
http://intra-wif:7001<br />
The MKS Integrity Server home page is displayed.<br />
3 Click Start Source Integrity Enterprise Web Interface.<br />
A browser password dialog box is displayed, prompting you for your<br />
Source Integrity user name and password.<br />
4 In the <strong>User</strong> Name field, enter your user name.<br />
5 In the Password field, enter your password.<br />
6 To save your password so you do not need to enter it each time you<br />
log in, select the Save this password in your password list option. This<br />
option is available only in Internet Explorer.<br />
u s e r g u i d e
7 To accept the log in information, click OK.<br />
Connecting to Multiple Servers<br />
Source Integrity validates your login information, then the<br />
Source Integrity Web interface is displayed.<br />
When you point to the Source Integrity icon ( ) a ToolTip is displayed<br />
showing your user name, server, and port number for the session. This<br />
information also is displayed in the status bar at the bottom of the browser<br />
window, for example, mkern@dev_nt:7001.<br />
Connecting to Multiple Servers<br />
Source Integrity allows you to work with projects residing on different<br />
Integrity Servers in a single client session.<br />
Connect to multiple servers in the graphical user interface and <strong>com</strong>mand<br />
line interface by following the procedure for logging in. Follow the<br />
procedure twice, specifying a different server each time to establish<br />
different connections. For more information on connecting to multiple<br />
servers by logging in, see “Logging In to Source Integrity” on page 36.<br />
The steps required to log in depend on the configuration set up by your<br />
administrator.<br />
In the graphical user interface, to determine which server a project resides<br />
on, use the mouse pointer and pause over a sandbox name displayed in the<br />
Select a Sandbox dialog box. A ToolTip displays the directory path for the<br />
project mirrored by that sandbox. The server name and port number are<br />
displayed in parentheses. For more information, see “Opening or Viewing<br />
a Sandbox” on page 144.<br />
Accessing any Source Integrity operation on a project or sandbox residing<br />
on a server you are not connected to invokes the user login so that you can<br />
switch between connections as you continue to work.<br />
In the <strong>com</strong>mand line interface, you can use <strong>com</strong>mands without explicitly<br />
specifying a sandbox option, and Source Integrity determines the sandbox<br />
to operate on based on the directory you are working in.<br />
IMPORTANT<br />
If you create two or more sandboxes in the same directory, Source Integrity<br />
cannot clearly determine which sandbox to use in that directory. If this<br />
happens, you are prompted to specify the name of the sandbox you want to<br />
use. In general, you should not create multiple sandboxes in the same<br />
directory.<br />
39
Chapter 3: Getting Started Using Source Integrity<br />
Setting Preferences<br />
40<br />
To disconnect from multiple Integrity Servers in the graphical user<br />
interface<br />
1 Close the projects or sandboxes you are working in.<br />
2 To disconnect from a server, select File > Server Connection and<br />
choose the target server from the list.<br />
3 Select File > Server Connection > Disconnect.<br />
A dialog box is displayed asking you to confirm that you want to<br />
disconnect your server connection.<br />
4 To disconnect from the server, click Yes.<br />
The target server is disconnected.<br />
5 Repeat steps 2 to 4 to close the remaining server connections.<br />
You can customize your Source Integrity client session by editing the client<br />
preferences. For your convenience, preferences for all clients are available<br />
from the same dialog box. Only Source Integrity client and Integrity Client<br />
specific preferences are documented in this guide.<br />
Options that appear in bold are those that are set locally by you. You can<br />
reset to the default settings by clicking the Clear Local Settings button<br />
(available only on the applicable panels).<br />
IMPORTANT<br />
Your administrator may enforce server-side preferences making them<br />
unavailable to you. These server enforced preferences depend on the server<br />
you are connected to while viewing the preferences. If you are not connected or<br />
logged in to a server, Source Integrity displays the local defaults for all<br />
preferences.<br />
To set your preferences accurately, login to the server you want to work from<br />
before setting preferences. The Preferences dialog box displays the server you<br />
are currently connected to in the title bar. For information on how to login to a<br />
server, see “Logging In to Source Integrity” on page 36.<br />
A blank check box ( ) means the option is not enabled, a check mark ( )<br />
means the option is enabled, and a question mark ( ) means you will be<br />
prompted to confirm or specify the option.<br />
u s e r g u i d e
General<br />
Preferences<br />
Setting Preferences<br />
To open the Preferences Configuration dialog box, do one of the following:<br />
Select Tools > Preferences.<br />
Click .<br />
The Preferences Configuration dialog box is displayed.<br />
You can set your general preferences for the following:<br />
look and feel of the graphical user interface<br />
time delay for pop-up windows<br />
the maximum amount of memory reserved for the Source Integrity<br />
client at runtime<br />
To set general preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), in the tree pane, click Integrity Client ><br />
General.<br />
The General pane is displayed.<br />
2 To set the appearance of the graphical user interface, select an option<br />
from the Look and Feel list. The available choices are System,<br />
Windows, Motif, and Metal.<br />
NOTE<br />
You must restart the Source Integrity client for the new look and feel changes<br />
to take effect. See “Shutting Down the Client” on page 74.<br />
3 To set the time in milliseconds before a <strong>com</strong>mand’s status is displayed<br />
in the graphical user interface, type a numeric value in the GUI field<br />
under Popup Status Delay or use the up and down arrows to select a<br />
value. The default value is 2500.<br />
To set the time in milliseconds (ms) that a <strong>com</strong>mand’s status is<br />
displayed in the <strong>com</strong>mand line interface, type a numeric value in the<br />
CLI field under Popup Status Delay or use the up and down arrows to<br />
select a value. The default value is 0.<br />
41
Chapter 3: Getting Started Using Source Integrity<br />
42<br />
4 To set the maximum amount of memory reserved for the Integrity<br />
client at runtime, under Miscellaneous in the Maximum heap size field,<br />
enter a value in megabytes (MB), or use the up and down arrows to<br />
select a value. The minimum value is 5, and the maximum value is<br />
dependent on your available system memory. The default value is 48.<br />
CAUTION<br />
Changing the heap size setting may unfavorably affect the performance of the<br />
Integrity Client and your system. Consult your administrator before making<br />
changes.<br />
For the heap size change to take effect, restart the Integrity client.<br />
Setting Desktop Preferences<br />
You can set desktop preferences specifically for Source Integrity.<br />
To set desktop preferences for Source Integrity in the graphical user<br />
interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), in the tree pane, click Source Integrity ><br />
Desktop.<br />
The Desktop pane is displayed.<br />
2 To restore all active windows when you restart Source Integrity,<br />
under Miscellaneous, select the Restore Desktop option.<br />
IMPORTANT<br />
You must restart the Source Integrity graphical user interface to activate the<br />
Restore Desktop option.<br />
u s e r g u i d e
Connection<br />
Preferences<br />
Setting Preferences<br />
The Restore Desktop option remembers which windows were open<br />
when you last exited the Source Integrity graphical user interface.<br />
When you restart the Source Integrity graphical user interface the<br />
active windows appear automatically in the main view. Restore<br />
Desktop remembers a maximum of 10 windows.<br />
If you were accessing projects or sandboxes residing on different<br />
servers, when you close and restart the Source Integrity graphical user<br />
interface you must log in again. Source Integrity automatically<br />
restores the windows that were open for that particular server<br />
connection.<br />
You can configure the default settings for server and proxy connections.<br />
You can override the default settings when manually connecting to the<br />
Integrity Server.<br />
To set connection preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), in the tree pane, click Source Integrity ><br />
Connection.<br />
The Connection pane is displayed.<br />
2 On the Connection pane configure the following options:<br />
Under Default Server Connection specify the following options:<br />
To specify a default Integrity Server to connect to in the Host<br />
Name field, type the name of the server, for example, abc_nt,<br />
or the numerical IP address, for example, 1.2.34.56.<br />
In the Port field, type the port number.<br />
43
Chapter 3: Getting Started Using Source Integrity<br />
44<br />
To be prompted for the default Integrity Server name and<br />
port number each time you log in to Source Integrity, select<br />
the Prompt for Host Name and Port option.<br />
Under <strong>User</strong> you can specify the following options:<br />
In the <strong>User</strong> Name field, type the user name you want to set as<br />
the default user.<br />
In the Password field, type a password for the user.<br />
If you want to be prompted for the default user name each<br />
time you log in to Source Integrity, select the Prompt for: <strong>User</strong><br />
Name option.<br />
If you want to be prompted for the default password each<br />
time you log in to Source Integrity, select the Prompt for:<br />
Password option.<br />
NOTE<br />
If the security scheme at your site is NT Single Signon (NTSS) the Prompt for:<br />
<strong>User</strong> Name and Prompt for: Password options are ignored unless you specify a<br />
user name that is different than the logged in user name. For information about<br />
your security scheme, see your administrator.<br />
3 Click OK to save your connection preferences.<br />
Your connection preferences are saved.<br />
Proxy Preferences<br />
You can specify advanced proxy server settings for the Source Integrity<br />
client.<br />
Use of a proxy is optional and based on server configuration by your<br />
administrator. Detailed information about proxies at your site, including<br />
host names, port numbers, and connection types are supplied by your<br />
administrator. For more information about using a proxy, contact your<br />
administrator.<br />
For a detailed discussion about using a proxy, see “Implementing<br />
Federated Server Architecture” in the Integrity Server Installation and<br />
Administration <strong>Guide</strong>.<br />
MKS Federated Server Architecture is an implementation of the Integrity<br />
Server structured to serve client requests through a proxy. The proxy<br />
provides access to project members residing on the Integrity Server by<br />
retrieving information from its local cache or, if changes are detected,<br />
directly from the server.<br />
u s e r g u i d e
To configure proxy preferences in the graphical user interface<br />
Setting Preferences<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), in the tree pane, click Integrity Client ><br />
Servers > Proxies. The Proxy pane is displayed.<br />
CAUTION<br />
Do not change proxy settings when the client is connected to the<br />
Integrity Server.<br />
2 On the Proxy pane configure the following options:<br />
NOTE<br />
The names “direct” and “default” in any case, or <strong>com</strong>bination of case, cannot<br />
be used as proxy host names.<br />
Source Integrity considers spaces and <strong>com</strong>mas in the Host Name field invalid<br />
characters.<br />
Host names and port numbers must match to connect to a proxy successfully.<br />
Source Integrity does not search for the correct port number if you provide an<br />
incorrect one.<br />
Select Use same username and password for proxy and server if<br />
you want the same user name and password to be used when<br />
connecting to both the proxy and server.<br />
Selecting this option does not necessarily ensure that<br />
Source Integrity prompts you only once for your user name and<br />
password. If the authentication schemes used do not match,<br />
45
Chapter 3: Getting Started Using Source Integrity<br />
46<br />
Source Integrity prompts you for your user name and password<br />
again.<br />
For information about the authentication schemes used, contact<br />
your administrator.<br />
Select Always confirm proxy username and password if you want<br />
Source Integrity to prompt you for the user name and password<br />
each time you connect to the proxy.<br />
Select Reuse current proxy username and password for all<br />
connections if you want to use the same proxy user name and<br />
password when connecting to multiple remote servers.<br />
Select Use default proxy for all unlisted connections if you want to<br />
specify the proxy server as the default server for unlisted<br />
connections. This option is only enabled when you <strong>com</strong>plete the<br />
details for a default proxy described next.<br />
To specify a default proxy, under Default proxy <strong>com</strong>plete the<br />
following:<br />
In the Host Name field type the name of the server, for<br />
example, proxyhost, or the numerical IP address, for<br />
example, 1.2.34.67.<br />
In the Port field, type the port number, for example, 7761. If<br />
you do not specify a port number, or use 0 as the port<br />
number, Source Integrity assumes a direct connection.<br />
To configure multiple servers you want to connect to, under<br />
Server, do the following:<br />
Click Add. The Add new server connection dialog box is<br />
displayed.<br />
In the Host Name field type the name of the server or the<br />
numerical IP address.<br />
In the Port field, type the port number.<br />
u s e r g u i d e
TIP<br />
Setting Preferences<br />
Select the type of connection you want by clicking it. Direct<br />
connection specifies connecting without a proxy. Use default<br />
proxy specifies connecting using the proxy specified as the<br />
default on the Proxy pane. To specify a different proxy, select<br />
Proxy and <strong>com</strong>plete the Hostname and Port fields.<br />
Click OK to save the server details and return to the Proxy<br />
pane. The server is displayed in the Server list, for example,<br />
proxyhost:7761 with the connection details that you<br />
selected displayed below. You can review the server details<br />
for each server you configure by selecting it from the list.<br />
To edit a previously configured server, select it from the Server list and click<br />
Edit. The Edit server connection dialog box is displayed. Edit the server details<br />
as required and click OK to save your changes.<br />
To delete a previously configured server, select it from the Server list and click<br />
Delete. The server disappears from the Server list.<br />
SOCKS Preferences<br />
You can specify a network proxy.<br />
To configure the SOCKS preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), select Integrity Client > Servers > SOCKS.<br />
The SOCKS pane is displayed.<br />
2 In the Host Name field type the name of the server or the numerical IP<br />
address.<br />
3 In the Port field, type the port number.<br />
4 To save your preferences, click OK.<br />
47
Chapter 3: Getting Started Using Source Integrity<br />
Command<br />
Preferences<br />
48<br />
The Commands pane in the Preferences dialog box contains default<br />
settings for Source Integrity <strong>com</strong>mands. Default settings can always be<br />
overridden for individual <strong>com</strong>mands at the time of their use.<br />
Some preferences may be enforced by the server and not available for<br />
configuration. For information on server side preferences, see your<br />
administrator.<br />
To set <strong>com</strong>mand preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), in the tree pane, click Source Integrity ><br />
Commands.<br />
The <strong>com</strong>mands appear as a list of nodes.<br />
2 From the list of <strong>com</strong>mand names in the tree pane, select a <strong>com</strong>mand to<br />
configure. The available <strong>com</strong>mands and their options are discussed in<br />
detail in the proceeding table.<br />
NOTE<br />
Options that appear in bold indicate local settings configured by you.<br />
3 If necessary, select a <strong>com</strong>mand’s option.<br />
4 To restore a <strong>com</strong>mand’s default options, click Clear Local Settings.<br />
u s e r g u i d e
Command Options<br />
Modify options for <strong>com</strong>mands as listed in the following table:<br />
Setting Preferences<br />
Add Member Attribute Recurse Into Subprojects adds member attributes recursively to selected subproject<br />
members.<br />
Add Label Move Existing Label moves the label, if it already exists, to the revision specified.<br />
Recurse Into Subprojects adds the label recursively to subproject members.<br />
Add Members Author is the author name applied to the new members. Type a name in the Author<br />
field. If you do not type a name, Source Integrity uses the current user name.<br />
Add Members From<br />
Archive<br />
Data Type specifies the member’s data type. To let Source Integrity determine the data<br />
type automatically, select Auto from the Data Type list. To specify a text file, select<br />
Text from the Data Type list. To specify a file containing unprintable characters, or<br />
lines too long to be handled by text editors, select Binary from the Data Type list.<br />
The On Existing Archive options apply in the event that Source Integrity finds an<br />
existing archive for the member you want to add. Query <strong>User</strong> causes<br />
Source Integrity to ask you for confirmation on the action to be taken if an existing<br />
archive is found. Share Archive causes Source Integrity to use the existing archive<br />
for the new member. Create New Archive causes Source Integrity to create a new<br />
archive for the new member. Source Integrity automatically generates the archive<br />
name and leaves the old archive unmodified. Cancel causes Source Integrity to<br />
cancel the operation if an existing member archive is found.<br />
Save Working File Timestamp sets the timestamp of the revision in the history to the<br />
timestamp of the working file, rather than the time of check in.<br />
Close Change Package causes Source Integrity to close any change package<br />
associated with the member revision.<br />
Recurse Into Directories adds members that exist in directories of the current location.<br />
Unexpand Keywords replaces literal values in the working file with keywords.<br />
Defer Add delays the add operation in the project until the deferred operation is<br />
submitted. The operation in the sandbox still takes place immediately.<br />
Lock Revision causes Source Integrity to lock the member revision immediately upon<br />
adding it to the project.<br />
Create Subprojects causes Source Integrity to create subprojects for each<br />
subdirectory encountered when adding members.<br />
Create Subprojects causes Source Integrity to create subprojects for each<br />
subdirectory encountered when adding members.<br />
Recurse Into Directories adds members that exist in directories of the current location.<br />
Close Change Packages causes Source Integrity to close any change package<br />
associated with the member revision.<br />
Defer Add From Archive delays the add operation in the project until the deferred<br />
operation is submitted. The operation in the sandbox still takes place immediately.<br />
Add Project Label Move Existing Label moves the label, if it already exists, to the revision specified.<br />
49
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
50<br />
Add Subproject Select one of the following options as the preferred type of subproject when adding a<br />
subproject to a project:<br />
Normal adds a subproject based on the current state of the project.<br />
Variant adds a subproject based upon a specific revision of the master project and<br />
is used for branching off the main development path.<br />
Build adds a static subproject based upon a specific revision of the master project<br />
that is used for building or testing the project, but not for further development.<br />
Default adds a subproject based on the parent project type. For more information on<br />
the default type, see your administrator.<br />
Append Revision<br />
Description<br />
Recurse Into Subprojects appends the revision description recursively to subproject<br />
members.<br />
Apply Change Package Use Master causes Source Integrity to operate on the top-level sandbox. When the<br />
selected change package is associated with a member in a subsandbox,<br />
specifying Use Master causes the <strong>com</strong>mand to operate on the top-level sandbox for<br />
that subsandbox.<br />
Confirm Actions causes Source Integrity to confirm all operations with you before<br />
starting them.<br />
Verbose provides additional information to track the current state of the <strong>com</strong>mand.<br />
Other Project is Error terminates the <strong>com</strong>mand if the member being applied is in<br />
another project. If this setting is negated (as in noOtherProjectIsError), the<br />
information is displayed as a warning.<br />
Span Projects applies the <strong>com</strong>mand to any member in the specified in the change<br />
package, even if this involves a different project than you are starting from. Warning:<br />
This is the only operation that has the potential to affect other projects.<br />
Ignore Cross-Branch Entries causes Source Integrity to use the most recent revision<br />
when it encounters two revisions of the same member on two development paths.<br />
Close Change Package closes the change package when the <strong>com</strong>mand <strong>com</strong>pletes.<br />
Already in Project is Error terminates the <strong>com</strong>mand if the member being applied is<br />
already in the project. If this setting is negated (as in<br />
noAlreadyInProjectIsError), the information is displayed as a warning.<br />
Ignore Server in Change Package causes Source Integrity to perform the Apply CP<br />
operation even if the change package members reside on different servers.<br />
Create Variants causes Source Integrity to create variant projects within the new<br />
project as required to apply the change package members. This option does not affect<br />
the Apply CP <strong>com</strong>mand.<br />
u s e r g u i d e
Command Options<br />
Apply Change Package<br />
continued<br />
Setting Preferences<br />
Backfill determines how dependent change packages are treated. You can select from<br />
the following options:<br />
Entire Change Package chooses all historic revisions required by the specified<br />
change packages and applies them by updating the member revisions, adding files,<br />
or dropping files. The user is not prompted to confirm the backfill list.<br />
Back Revisions Only processes only the specified change package(s) and<br />
chooses only directly-associated revisions. It does not process any change<br />
packages that are associated with intermediate revisions.<br />
Error terminates the operation if other change packages are required but are not<br />
specified.<br />
Skip Revisions causes Source Integrity to merge around specified backfill<br />
revisions. Because the Apply CP <strong>com</strong>mand does not perform merging, this is<br />
treated as an error.<br />
Ask to Specify allows you to select the specific change packages you want to<br />
include. For the Apply CP operation, a list of additional change packages is<br />
displayed. The presented list of change packages cannot be manipulated. You must<br />
either accept the entire list or the operation fails.<br />
Ignore Update Revision Entries ignores update revision entries in a change package.<br />
There is no user prompt.<br />
Checkpoint Apply Label to All Members applies the checkpoint label to all project members.<br />
Apply State to All Members applies the checkpoint state to all project members.<br />
Notify when Complete causes Source Integrity to confirm that the checkpoint<br />
operation has finished.<br />
Recurse Into Subprojects recursively checkpoints subprojects.<br />
Author is the author name applied to the checkpoint. Type a name in the Author field.<br />
If you do not type a name, Source Integrity uses the current user name.<br />
Check In Move Existing Label moves the label, if it already exists, to the revision specified.<br />
Lock Revision causes Source Integrity to check in the working file, then immediately<br />
lock the new revision. This allows you to update the archive while retaining control of<br />
the revision.<br />
If this option is not set, the new revision is not locked following the check in.<br />
Close Change Package causes Source Integrity to close any change package<br />
associated with the member revision.<br />
Defer Check In causes Source Integrity to delay the check in of the revision. Your lock<br />
remains on the revision and Source Integrity displays version information for both the<br />
working and member revisions. Once you submit the check in, your lock is removed<br />
and the member revision moves to the next number in the sequence, as in the case of<br />
a standard check in operation.<br />
Check In if Unchanged checks in the working file even if it has not changed since it<br />
was checked out.<br />
Update Member Revision makes the new revision the member revision in the project,<br />
replacing the existing member revision.<br />
Author is the author name applied to the revision. Type a name in the Author field. If<br />
you do not type a name, Source Integrity uses the current user name.<br />
51
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
Check In continued Update Member Revision Even on Branch causes Source Integrity to update the<br />
member revision upon check in, even when the locked revision is on a different<br />
branch.<br />
Unexpand Keywords replaces literal values with keywords in the checked in revision.<br />
Force Creation of New Branch causes Source Integrity to create a branch off of the<br />
revision you are checking in.<br />
Save Working File Timestamp sets the timestamp of the revision in the history to the<br />
timestamp of the working file, rather than the time of check in.<br />
Check Out Lock Revision checks out a writable working file, and ensures that no one else can<br />
make changes to the revision while you have it checked out. A revision must be<br />
checked out locked if strict locking is enabled, and you intend to make changes to it.<br />
Overwrite Working File if Changed overwrites the working file even if the member has<br />
changed since it was last checked in.<br />
Overwrite if Deferred Operation Pending overwrites the working file if there is a<br />
deferred operation pending on the member.<br />
Update Member Revision causes the revision you check out to be<strong>com</strong>e the new<br />
member revision of the project. For example, if the current project member is listed as<br />
Revision 2.3 and you check out Revision 1.7 with the Update Member option selected,<br />
Revision 1.7 replaces Revision 2.3 as the member of the project.<br />
52<br />
Force Creation of New Branch causes Source Integrity to force the creation of a new<br />
branch on check out, eliminating the chance of a locking conflict.<br />
Merge Working File if Changed automatically merges any changes from the working<br />
file into the revision being checked out.<br />
Restore Revision Timestamp sets the timestamp of the working file (that the revision is<br />
checked out to) to the date and time of the revision in the history. If this option is<br />
cleared, the working file’s timestamp is set to the current date and time.<br />
Create Branch if Variant causes Source Integrity to create a branch off of the revision<br />
you are checking out, if you are working in a variant sandbox and this is the first time<br />
the member is checked out. This reduces the possibility of locking conflicts with the<br />
member while work is being done in the variant and regular sandboxes.<br />
Keywords allows you to select keyword expansion options when checking out a<br />
member. To leave keywords unexpanded, select Do Not Expand from the Keywords<br />
list. To replace keywords in the revision with literal values in the working file, select<br />
Expand from the Keywords list. To replace literal values in the revision with keywords,<br />
select UnExpand from the Keywords list.<br />
On Lock allows you to select the way Source Integrity will handle automatic branching<br />
and merging. To be asked to confirm the required action each time you check out a<br />
member, select Query <strong>User</strong>. To create a branch upon locking the working file, select<br />
Branch. To make the working file writable upon lock, select Make Writable. To be<br />
asked to confirm branching, select Query <strong>User</strong> to Branch. To be asked to confirm<br />
that you want the working file to be writable, select Query <strong>User</strong> to Make<br />
Writable. To cancel the On Lock option, select Cancel.<br />
By default, Source Integrity asks you to confirm the required action each time you<br />
check out a member.<br />
u s e r g u i d e
Command Options<br />
Setting Preferences<br />
Check Out continued Merge Type specifies the action to be taken when merging revisions. Select one of the<br />
following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time you<br />
merge upon check out.<br />
Cancel causes Source Integrity to cancel the operation.<br />
Automatic causes Source Integrity to perform an automatic merge. For more<br />
information on automatic merging, see “Step Two: Merge Branch” on page 345<br />
Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />
tool.<br />
On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />
the following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time a<br />
conflict occurs.<br />
Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />
Mark For Later Merge causes Source Integrity to mark the files for merging at<br />
another time, allowing you to resolve the conflict first.<br />
Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<br />
Error causes Source Integrity to display an error message prompt.<br />
Ask for change package causes Source Integrity to ask for a change package when<br />
performing a check out.<br />
Close Change Package Release Locks causes Source Integrity to release all locks on members in the change<br />
package.<br />
Allowed Orphaned Deferred Operations allows the change package to be closed<br />
without first submitting its deferred entries.<br />
Note: Orphaned Deferred operations can never be submitted using the Submit<br />
Change Package <strong>com</strong>mand.<br />
Configure Subproject Select one of the following options as the preferred type of subproject when<br />
configuring a subproject:<br />
Normal configures a subproject based on the current state of the project.<br />
Variant configures a subproject based upon a specific revision of the master project<br />
and is used for branching off the main development path.<br />
Build configures a static subproject based upon a specific revision of the master<br />
project that is used for building or testing the project, but not for further<br />
development.<br />
Reset to default value configures a subproject based on the parent project type. For<br />
more information on the default type, see your administrator.<br />
53
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
54<br />
Create Sandboxes Populate Sandbox causes Source Integrity to add working files to the sandbox.<br />
Recurse Into Subprojects creates subsandboxes recursively from subprojects.<br />
Line Terminator determines the type of line terminator Source Integrity uses when<br />
dealing with sandbox members: Native (or automatic, the default setting), LF (or line<br />
feed, primarily for UNIX applications), or CR/LF.<br />
Make Sandbox Sparse creates a sandbox with no working files.<br />
View Sandbox After Creation displays the sandbox after it is created.<br />
Make Sandbox Shared creates a sandbox configured as shared.<br />
Delete Label Recurse Into Subprojects deletes the label recursively from members in subprojects.<br />
Delete Revision Confirm Delete causes Source Integrity to prompt you for confirmation before the<br />
revision is deleted from the project.<br />
Recurse Into Subprojects deletes the revision recursively in members of subprojects.<br />
Demote Recurse Into Subprojects recursively demotes subproject members.<br />
Diff Ignore Blanks ignores whitespace at the end of lines when <strong>com</strong>paring the selected<br />
revision and the member’s working file or another revision.<br />
Ignore Whitespace ignores tabs and spaces anywhere in a line when <strong>com</strong>paring the<br />
selected revision and the member’s working file or another revision.<br />
Ignore Case ignores differences between uppercase and lowercase text when<br />
<strong>com</strong>paring the selected revision and the member’s working file or another revision.<br />
Discard Change Package Confirm Discard confirms the removal of a change package from the repository.<br />
Discard Change Package<br />
Entry<br />
Confirm Discard confirms the removal of a change package entry from the change<br />
package.<br />
Drop Delete Working File deletes the member working file when dropped from the project.<br />
Confirm Drop causes Source Integrity to prompt you for confirmation before the<br />
member is dropped from the project.<br />
Defer Drop Member delays the drop operation in the project until the deferred<br />
operation is submitted. The operation in the sandbox still takes place immediately.<br />
Close Change Package causes Source Integrity to close any change package<br />
associated with the member upon dropping that member.<br />
Drop Member Attribute Recurse Into Subprojects recursively drops member attributes from members in<br />
subprojects.<br />
Drop Sandboxes Delete allows you to select delete options when dropping a sandbox. To drop the<br />
sandbox without deleting any members, select Nothing from the Delete list. To delete<br />
sandbox members only, select Sandbox Members Only from the Delete list. To<br />
delete the sandbox directory and all of its contents, select Entire Sandbox<br />
Directory from the Delete list.<br />
Confirm Drop causes Source Integrity to confirm that the sandbox will be dropped<br />
before it is dropped.<br />
Freeze Recurse Into Subprojects recursively freezes members in subprojects.<br />
u s e r g u i d e
Command Options<br />
Import Members Author allows you to specify the author of the member.<br />
Setting Preferences<br />
Data Type specifies the member’s data type. To let Source Integrity determine the data<br />
type automatically, select Auto from the list. To specify a text file, select Text from the<br />
list. To specify a file containing unprintable characters, or lines too long to be handled<br />
by text editors, select Binary from the list.<br />
Create Subprojects automatically creates a subproject (based on the subdirectories in<br />
which members are located), for imported members.<br />
Recurse Into Directories imports all members in the specified directory location.<br />
Close Change Package closes the change package upon <strong>com</strong>mand <strong>com</strong>pletion.<br />
Unexpand Keywords replaces literal values in the revision with keywords.<br />
Defer Import defers the operation until it is submitted individually or as part of a change<br />
package.<br />
Lock Force Creation of New Branch causes Source Integrity to create a branch off of the<br />
revision being locked.<br />
Recurse Into Subprojects locks all members in subprojects.<br />
Create Branch if Variant causes Source Integrity to create a branch off of the revision<br />
you are checking out, if you are working in a variant sandbox and this is the first time<br />
the member is checked out. This reduces the possibility of locking conflicts with the<br />
member while work is being done in the variant and regular sandboxes.<br />
Ask for change package causes Source Integrity to ask for a change package when<br />
performing a lock.<br />
Merge Branch Lock target revision locks the merged revision when the merge is <strong>com</strong>plete.<br />
Force Creation of New Branch causes Source Integrity to create a branch for the<br />
merged revision.<br />
Create Branch if Variant causes Source Integrity to create a branch for the merged<br />
revision, if you are working in a variant sandbox.<br />
Merge Type specifies the action to be taken when merging revisions. Select one of the<br />
following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time you<br />
merge revisions.<br />
Cancel causes Source Integrity to cancel the operation.<br />
Automatic causes Source Integrity to perform an automatic merge. For more<br />
information on automatic merging, see “Step Two: Merge Branch” on page 345<br />
Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />
tool.<br />
55
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
56<br />
Merge Branch continued On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />
the following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time a<br />
conflict occurs.<br />
Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />
Mark For Later Merge causes Source Integrity to mark the files for merging at<br />
another time, allowing you to resolve the conflict first.<br />
Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<br />
Error causes Source Integrity to display an error message prompt.<br />
Merge Merge Type specifies the action to be taken when merging revisions. Select one of the<br />
following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time you<br />
merge revisions.<br />
Cancel causes Source Integrity to cancel the operation.<br />
Automatic causes Source Integrity to perform an automatic merge. For more<br />
information on automatic merging, see “Merging Revisions Automatically” on<br />
page 354.<br />
Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />
tool.<br />
On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />
the following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time a<br />
conflict occurs.<br />
Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />
Mark For Later Merge causes Source Integrity to mark the files for merging at<br />
another time, allowing you to resolve the conflict first.<br />
Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<br />
Error causes Source Integrity to display an error message prompt.<br />
Move Change Package<br />
Entry<br />
Confirm Move confirms the movement of a change package entry from one change<br />
package to another change package.<br />
Promote Recurse Into Subprojects promotes all members in subprojects.<br />
u s e r g u i d e
Command Options<br />
Setting Preferences<br />
Rename Member Rename Working File renames the working file in your sandbox and preserves any<br />
changes made to that file. If not set, the working file is not renamed and be<strong>com</strong>es a<br />
former member which will be confirmed for deletion the next time the sandbox is<br />
resynchronized. This setting has no effect if the <strong>com</strong>mand is performed directly from a<br />
Project view.<br />
Confirm Rename causes Source Integrity to confirm that you want to rename the<br />
selected member.<br />
Close Change Package closes the specified change package after performing the<br />
rename operation.<br />
Overwrite Existing File replaces the existing working file in the sandbox.<br />
Defer Rename delays the rename operation in the project until the deferred operation<br />
is submitted.<br />
Resynchronize Restore Revision Timestamp sets the timestamp of the working file (that the revision is<br />
checked out to) to the date and time of the revision in the history. If this option is not<br />
set, the working file’s timestamp is set to the current date and time.<br />
Force Overwrite Even if Unchanged overwrites the working file even if it is unchanged.<br />
Overwrite if Pending overwrites the working file even if it is a pending revision.<br />
Recurse into Subprojects recursively resynchronizes members in subprojects.<br />
Overwrite Working File if Changed overwrites the working file even if it has changed.<br />
Overwrite if Deferred Operation Pending overwrites the working file if there is a<br />
deferred operation pending on the member.<br />
Merge Working File if Changed merges the modified working file with the member<br />
revision.<br />
Confirm Populate of a Sparse Sandbox causes Source Integrity to prompt you to<br />
confirm if you want to populate a sparse sandbox.<br />
Keywords allows you to select keyword expansion options when resynchronizing. To<br />
replace keywords in the revision with literal values in the working file, select Expand<br />
from the Keywords list. To leave keywords unexpanded, select Do Not Expand from<br />
the Keywords list. To replace literal values in the revision with keywords, select<br />
Unexpand from the Keywords list.<br />
Merge Type specifies the action to be taken when merging revisions. Select one of the<br />
following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken when merging<br />
upon resync.<br />
Cancel causes Source Integrity to cancel the operation.<br />
Automatic causes Source Integrity to perform an automatic merge. For more<br />
information on automatic merging, see “Step Two: Merge Branch” on page 345<br />
Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />
tool.<br />
57
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
58<br />
Resynchronize continued On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />
the following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken each time a<br />
conflict occurs.<br />
Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />
Mark For Later Merge causes Source Integrity to mark the files for merging at<br />
another time, allowing you to resolve the conflict first.<br />
Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<br />
Resynchronize Change<br />
Package<br />
Use Master causes Source Integrity to operate on the top-level sandbox. When the<br />
selected change package is associated with a member in a subsandbox, specifying<br />
Use Master causes the <strong>com</strong>mand to operate on the top-level sandbox for that<br />
subsandbox.<br />
Overwrite Working File if Changed overwrites the working file even if it has changed.<br />
Perform Merges prompts you for confirmation before performing a merge operation.<br />
Confirm Actions causes Source Integrity to confirm all operations with you before<br />
starting them.<br />
Verbose provides additional information to track the status of the <strong>com</strong>mand.<br />
Already in Project is Error causes Source Integrity to terminate the operation if the<br />
member being applied is already in the project. If this setting is negated (as in<br />
noAlreadyInProjectIsError), the information is displayed as a warning.<br />
Ignore Server in Change Package causes Source Integrity to perform the Resync CP<br />
operation even if the change package members reside on different servers.<br />
Span Projects applies the <strong>com</strong>mand to any member specified in the change package,<br />
even if this involves multiple projects. This option allows Source Integrity to search<br />
across local sandboxes for all entries in the selected change package(s).<br />
Ignore Cross-Branch Entries causes Source Integrity to use the most recent revision<br />
when it encounters two revisions of the same member on different branches.<br />
Restore Revision Timestamp sets the timestamp of the working file to the date and<br />
time of the last checked-in revision in the history. If this option is cleared, the working<br />
file’s timestamp is set to the current date and time. The time stamp is only changed if<br />
the working file is modified. If the resynchronize does not change the working file, its<br />
timestamp remains the same.<br />
Other Project is Error terminates the <strong>com</strong>mand if the member is not in the project you<br />
are applying to, or in its variant.<br />
Allow Open Change Packages allows Source Integrity to work with open change<br />
packages. This facilitates the application of a resolution change package.<br />
Create Variants causes Source Integrity to create new variant subprojects within the<br />
variant project as required to apply the change package members. If the main project<br />
contains required files that reside in a subproject, the Create Variants option creates<br />
variant subprojects for these files to be placed into.<br />
u s e r g u i d e
Command Options<br />
Resynchronize Change<br />
Package continued<br />
Setting Preferences<br />
Merge on Branch causes Source Integrity to perform a merge if the target revision is<br />
on a branch. Source Integrity differences the two file revisions and merges any<br />
changes into the working file without modifying its revision number. You must then<br />
check in the working file to advance the revision to the next available revision number.<br />
Keywords allows you to select keyword options when resynchronizing a member. To<br />
leave keywords unexpanded, select Do Not Expand from the Keywords list. To<br />
replace keywords in the revision with literal values in the working file, select Expand<br />
from the Keywords list. To replace literal values in the revision with keywords, select<br />
Unexpand from the Keywords list.<br />
Backfill determines how dependent change packages are treated. You can select from<br />
the following options:<br />
Entire Change Packages chooses all historic revisions required by the<br />
specified change packages and applies them by updating the member revisions,<br />
adding files, or dropping files. The user is not prompted to confirm the backfill list.<br />
Back Revisions Only processes only the specified change package(s) and<br />
chooses only directly-associated revisions. It does not process any change<br />
packages that are associated with intermediate revisions.<br />
Error terminates the operation if other change packages are required but are not<br />
specified.<br />
Skip Revisions causes Source Integrity to merge around specified backfill<br />
revisions.<br />
Ask to Specify allows you to select the specific change packages you want to<br />
include.<br />
Merge Type determines what occurs if a merge is required to resynchronize the<br />
change package.<br />
Confirm causes Source Integrity to confirm the merge.<br />
Cancel causes Source Integrity to stop the merge from occurring.<br />
Automatic causes Source Integrity to perform the merge without prior<br />
confirmation.<br />
Manual (Launch Tool) launches the default differencing tool.<br />
On Conflicts determines how conflicting rows are treated.<br />
Confirm causes Source Integrity to request input from the user to resolve the<br />
conflict.<br />
Cancel causes Source Integrity to stop the resynchronize.<br />
Mark For Later Merge marks the conflicting lines so they can be addressed at<br />
a later date.<br />
Launch Tool causes Source Integrity to launch the default differencing tool.<br />
Highlight Output File highlights each line conflict in working file.<br />
Error causes Source Integrity to display an error message prompt.<br />
Ignore Update Revision Entries ignores update revision entries in a change package.<br />
There is no user prompt.<br />
59
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
Revert Restore Revision Timestamp sets the timestamp of the working file (that the revision is<br />
checked out to) to the date and time of the revision in the history. If this option is not<br />
set, the working file’s timestamp is set to the current date and time.<br />
Force Overwrite Even if Unchanged overwrites the working file even if it is unchanged.<br />
60<br />
Recurse Into Subprojects recursively reverts members in selected subprojects.<br />
Overwrite Working File if Changed overwrites the working file if it has changed.<br />
Overwrite if Deferred Operation Pending overwrites the working file if there is a<br />
deferred operation pending on the member.<br />
Keywords allows you to select keyword options when reverting a member. To leave<br />
keywords unexpanded, select Do Not Expand from the Keywords list. To replace<br />
keywords in the revision with literal values in the working file, select Expand from the<br />
Keywords list. To replace literal values in the revision with keywords, select Unexpand<br />
from the Keywords list.<br />
Snapshot Sandbox Apply Label to All Members applies the snapshot label to all project members.<br />
Notify when Complete to confirms that the snapshot operation has finished.<br />
Apply State to All Members applies the snapshot state to all project members.<br />
Recurse into Subsandboxes recursively snapshots subsandboxes.<br />
Author is the author name applied to the snapshot. Type a name in the Author field. If<br />
you do not type a name, Source Integrity uses the current user name.<br />
Submit Use the change package provided when the element was deferred selects the change<br />
package that was originally associated with the deferred item.<br />
Override the change package to a specified value allows you to select a different<br />
change package from the one that was originally associated with the deferred item.<br />
Close Change Package closes the change package after the element is submitted.<br />
Submit Change Package Close Change Package closes the change package after submitting the item and<br />
<strong>com</strong>pleting the associated deferred operation.<br />
Commit Changes/Submit for Review (if reviews are mandatory) creates pending<br />
entries without submitting the change package for review.<br />
Allow submit to proceed with deferred entries submits the changes to the repository<br />
(or for review) even there are deferred entries retained through the cancel of an<br />
operation during the submit. For example, cancelling a check in of an unchanged file.<br />
Apply Resolution Change Package applies the change package if it is resolution<br />
change package.<br />
Ignore Absence of Deferred/Lock Entries submits the changes package even if there<br />
are no deferred or lock entries.<br />
Thaw Recurse Into Subprojects recursively thaws members in subprojects.<br />
Unlock Break Lock breaks locks held by other users.<br />
Recurse Into Subprojects recursively unlocks members in subprojects.<br />
Update Revision Recurse Into Subprojects updates the member revision of members in subprojects.<br />
Defer Update Revision delays the update operation until the deferred operation is<br />
submitted. The operation in the sandbox takes place immediately.<br />
Close Change Package closes the associated change package upon <strong>com</strong>mand<br />
<strong>com</strong>pletion.<br />
u s e r g u i d e
View<br />
Preferences<br />
Setting Preferences<br />
The Views pane in the Preferences Configuration dialog box contains<br />
default option settings for Source Integrity views. At any time, you can<br />
reset the default settings for a view by clicking Clear Local Settings.<br />
You can also configure toolbars for Source Integrity views. To configure<br />
select the view and click Toolbar at the bottom left of the Views pane. For<br />
more information on configuring toolbars, see “Configuring the Source<br />
Integrity Toolbars” on page 82.<br />
To set view preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), click the Views node.<br />
The views appear as a list of nodes.<br />
2 Select a view node to configure. The settings for that view appear in<br />
the Views pane. The available views and their options are discussed in<br />
detail in the proceeding table.<br />
If necessary, select a view’s option check box.<br />
To restore a view’s default options, click Clear Local Settings.<br />
61
Chapter 3: Getting Started Using Source Integrity<br />
62<br />
View Options<br />
Modify options for the views as listed in the following table:<br />
Annotated Revision View Under Columns, you can select which columns you want displayed in the<br />
Annotated Revision view:<br />
Author displays the author of the revision.<br />
Labels displays revision labels.<br />
Revision Contents displays the text contained in a revision.<br />
C.P. ID displays the revision’s associated change package ID.<br />
Line displays the line number for each line of text in the revision (for use when<br />
Revision Contents is selected).<br />
Date displays the date each revision in the history was created.<br />
Revision displays the member’s revision number.<br />
Archive Information View Show Labels displays archive labels.<br />
Show Locks displays locks.<br />
Change Package View Show Un<strong>com</strong>mitted Entries displays deferred entries that have not been<br />
submitted and therefore <strong>com</strong>mitted to the repository. Also displays lock entries.<br />
Show Pending Entries displays pending entries that are not <strong>com</strong>mitted to the<br />
repository.<br />
Show Committed Entries displays entries that have been <strong>com</strong>mitted to the<br />
repository.<br />
Show Review Information displays the Review Log panel containing review<br />
information.<br />
Under Columns, you can select which columns you want displayed in the<br />
Change Package View:<br />
Archive displays the archive name of member in the change package entry.<br />
Project displays the name and path of the project where the member revision<br />
change package entry occurred. If the entry occurred from a shared subproject, it<br />
is the subproject name and path that are displayed.<br />
Server displays the host name of the server the entry was made on.<br />
Date Changed displays the date the entry was made.<br />
Revision displays the number of the revision in the change package entry.<br />
Type is the entry type of the change package entry (see “Change Package Entry<br />
Types” on page 220).<br />
Member displays name of the member in the change package entry.<br />
Sandbox displays the name of the sandbox where the deferred operation or<br />
check out took place.<br />
Variant displays the name of the variant development path (if a variant was used)<br />
the change package entry occurred on.<br />
u s e r g u i d e
View Options<br />
Setting Preferences<br />
Change Packages View Under Columns, you can select which columns you want displayed in the<br />
Change Packages View:<br />
Closed Date displays the date the change package was closed.<br />
Description displays the description provided for the change package.<br />
Issue displays the issue ID if the Integrity Manager integration is enabled.<br />
State displays current state of the change package, which can be Open or<br />
Closed.<br />
Created Date displays the date the change package was created.<br />
ID displays the change package ID.<br />
Reason is only relevant when applying change packages, and is not used in the<br />
standalone Change Packages view.<br />
Summary displays the summary statement for the change package.<br />
Creator displays the username who created the change package.<br />
Is Resolution displays yes if the change package is a resolution change<br />
package, and no if it is not.<br />
Resolutions represent the list of change packages that the target change<br />
package addresses.<br />
Member History View Initial View allows you to set the default view for the window, either the<br />
Graphical View, or the List View.<br />
Show Legend displays the legend for the graphical history view.<br />
Show Labels displays the revision labels for the graphical history view.<br />
Show Metadata displays a box containing truncated metadata beside each<br />
revision in the graphical history view. Point to the box to display a tooltip that<br />
contains the full metadata for the revision.<br />
Under Columns, you can select which columns you want displayed in the<br />
Member History List view:<br />
Author displays the author of the member.<br />
Labels displays member labels.<br />
Locker displays who has a member locked.<br />
Locker Host displays the host name of the <strong>com</strong>puter that locked the member.<br />
Revision displays the member’s revision number.<br />
C.P. ID displays the change package ID associated with the revision number.<br />
Lock Timestamp displays the date and time a member is locked.<br />
Locker C.P. ID displays the change package ID for the associated lock entry.<br />
Locker Project displays the name and path of the project where the member<br />
revision was locked from. If the member revision was locked from a shared<br />
subproject, it is the subproject name and path that are displayed.<br />
Revision Description displays the revision description assigned to the project<br />
member.<br />
Date displays the date each revision in the history was created.<br />
Locked Icon displays the padlock icon to indicate a file is locked.<br />
63
Chapter 3: Getting Started Using Source Integrity<br />
View Options<br />
64<br />
Member History View continued Locker Development Path displays the name of the development path where the<br />
lock on the revision was made from. This information is relevant when the locking<br />
policy is set to devpath, allowing a single user to have a single lock on an<br />
archive per development path. Contact your administrator for more information.<br />
Locker Sandbox displays the name of the sandbox where the lock on the revision<br />
was made, and is relevant when viewing the information from the Locker Host.<br />
State displays the state of the member revision.<br />
Member Information View Show Attributes displays member attributes.<br />
Show Labels displays member labels.<br />
Show Change Package Information displays change package information (only if<br />
change packages are enabled).<br />
Member Labels View Recurse Into Subprojects displays the hierarchy of subprojects.<br />
Non-Members View Include specifies file types to include in the Non-Members view. Click Change to<br />
modify the settings (see “Filtering Non-Member Files” on page 156).<br />
Exclude specified files types to exclude from the Non-Members view. Click<br />
Change to modify the settings (see “Filtering Non-Member Files” on page 156).<br />
Recurse Into Subprojects specifies if to apply the Non-Member Filter recursively<br />
to subprojects.<br />
Include Former Members specifies if to include members that have been dropped<br />
from the project, but where there still exists a working file in the sandbox<br />
directory.<br />
Under Columns, you can select which columns you want displayed in the<br />
Non-Members view:<br />
Absolute Path displays the absolute file path of the file.<br />
Last Modified displays the date that the file was last modified.<br />
Closest Project displays the project associated with the sandbox that is closest to<br />
the directory containing the file.<br />
Member ID displays the default member name for the file as it would appear if it<br />
was added to the nearest project. In the case where the nearest project is<br />
subproject, the relative path is displayed with the member name.<br />
Closest Sandbox displays the sandbox that is closest to the directory containing<br />
the file.<br />
Size displays the size of the file in bytes.<br />
Locks View Under Columns, you can select which columns you want displayed in the Locks<br />
View:<br />
Archive Name displays the name of the locked archive.<br />
Host displays the hostname of the <strong>com</strong>puter which the lock was performed on.<br />
Revision displays the locked revision number.<br />
<strong>User</strong> displays the user holding the lock.<br />
C.P. ID displays the change package ID associated with the lock.<br />
Member Name displays the name of the locked member.<br />
Sandbox displays the name of the sandbox where the lock on the revision was<br />
made, and is relevant when viewing the information from the locker host.<br />
u s e r g u i d e
View Options<br />
Setting Preferences<br />
Locks View continued Development Path displays the name of the development path where the lock on<br />
the revision was made from. This information is relevant when the locking policy<br />
is set to devpath, allowing a single user to have a single lock on an archive per<br />
development path.<br />
Project displays the name and path of the project where the member revision<br />
was locked from. If the member revision was locked from a shared subproject, it<br />
is the subproject name and path that are displayed.<br />
Time displays the time the archive was locked.<br />
Project View Recurse Into Subprojects displays the hierarchy of subprojects.<br />
Under Columns, you can select which columns you want displayed in the Project<br />
view.<br />
Attributes displays project attributes.<br />
Labels displays member labels.<br />
Locker displays who has a member locked.<br />
Locker Host displays the host name of the <strong>com</strong>puter that locked the member.<br />
Member CPID displays the change package associated the operation that set the<br />
member revision.<br />
Member Rev. Timestamp displays the date and time the member revision is set.<br />
Pending CPID displays the change package associated with a pending operation.<br />
Creation CPID displays the change package that created the revision that is<br />
currently the member revision. This revision may be different from the Member<br />
CPID if an import, add member from archive, or set member revision operation<br />
was used.<br />
Lock Timestamp displays the date and time a member is locked.<br />
Locker CPID displays the change package associated with the lock on the<br />
member revision.<br />
Locker Project displays the name and path of the project where the member<br />
revision was locked from. If the member revision was locked from a shared<br />
subproject, it is the subproject name and path that are displayed.<br />
Member Rev. displays the member’s revision number.<br />
Name displays the project, subproject, and the project members by file name.<br />
State displays the state of the member revision.<br />
Frozen indicates which project members are frozen with a snowflake icon.<br />
Locked Icon displays the padlock icon to indicate a file is locked.<br />
Locker Development Path displays the name of the development path where the<br />
lock on the revision was made from. This information is relevant when the locking<br />
policy is set to devpath, allowing a single user to have a single lock on an<br />
archive per development path. Contact your administrator for more information.<br />
Locker Sandbox displays the name of the sandbox where the lock on the revision<br />
was made, and is relevant when viewing the information from the Locker Host.<br />
Member Rev. Description displays the revision description assigned to the<br />
project member.<br />
New Revision Delta displays a delta icon to indicate that a new revision for the<br />
member is available.<br />
Type displays the type of each project, and project member.<br />
65
Chapter 3: Getting Started Using Source Integrity<br />
View Options<br />
Project Differences View Show Applied Change Packages displays all the change packages applied<br />
between two project revisions.<br />
Show Revision Changes displays all modifications to each revision.<br />
Show Change Packages displays a list of revision modifications that can be<br />
associated with change packages and a list of those that cannot.<br />
66<br />
Member Attribute Changes displays all modifications of member attributes<br />
between two project revisions.<br />
Show Revision Description displays the content of the revision description.<br />
Recurse into Subprojects displays the hierarchy of subprojects.<br />
Project History View Initial View allows you to set the default view for the window, either the<br />
Graphical View, or the List View.<br />
Show Legend displays the legend for the graphical history view.<br />
Show Labels displays the revision labels for the graphical history view.<br />
Show Metadata displays a box containing truncated metadata beside each<br />
revision in the graphical history view. Point to the box to display a tooltip that<br />
contains the full metadata for the revision.<br />
Under Columns, you can select which columns you want displayed in the Project<br />
History List view:<br />
Author displays the author of the project.<br />
Revision displays the project’s revision number.<br />
Date displays the date each revision in the history was created.<br />
State displays the state of the project revision.<br />
Labels displays project labels.<br />
Project Information View Show Attributes displays project attributes.<br />
Show Development Paths displays development paths for creating variant<br />
sandboxes.<br />
Registered Projects View Show Subprojects displays registered subprojects.<br />
Registered Sandboxes View Show Subsandboxes displays registered subsandboxes.<br />
Revision Information View Show Labels displays labels on the revision.<br />
Show Change Package Information displays change package information (only if<br />
change packages are enabled).<br />
Sandbox View Recurse into Subprojects displays the hierarchy of subprojects.<br />
Under Columns, you can select which columns you want displayed in the<br />
Sandbox view.<br />
Attributes displays member attributes.<br />
Frozen indicates which sandbox members are frozen with a snowflake icon.<br />
Locked Icon displays the padlock icon to indicate a file is locked.<br />
Locker Development Path displays the name of the development path where the<br />
lock on the revision was made from. This information is relevant when the locking<br />
policy is set to devpath, allowing a single user to have a single lock on an<br />
archive per development path. Contact your administrator for more information.<br />
Locker Sandbox displays the name of the sandbox where the lock on the revision<br />
was made, and is relevant when viewing the information from the Locker Host.<br />
u s e r g u i d e
View Options<br />
Setting Preferences<br />
Sandbox View continued Member Rev. Description displays the revision description assigned to the<br />
sandbox member.<br />
New Revision Delta displays a delta icon to indicate that a new revision for the<br />
member is available.<br />
State displays the state of the member revision.<br />
Working File Delta displays a delta icon to indicate that your working file has<br />
changed.<br />
Creation CPID displays the change package that created the revision that is<br />
currently the member revision. This revision may be different from the Member<br />
CPID if an import, add member from archive, or set member revision operation<br />
was used.<br />
Labels displays member labels.<br />
Locker displays who has a member locked.<br />
Locker Host displays the host name of the <strong>com</strong>puter that locked the member.<br />
Member CPID displays the change package associated the operation that set the<br />
member revision.<br />
Member Rev. Timestamp displays the date and time the member revision is set.<br />
Pending CPID displays the change package associated with a pending operation.<br />
Type displays the type of each sandbox, and sandbox member.<br />
Working Rev. displays the checked out revision number that corresponds to the<br />
member’s working file.<br />
Deferred displays a icon to indicate that an operation on a member is<br />
deferred.<br />
Lock Timestamp displays the date and time a member is locked.<br />
Locker CPID displays the change package associated with the lock on the<br />
member revision.<br />
Locker Project displays the name and path of the project where the member<br />
revision was locked from. If the member revision was locked from a shared<br />
subproject, it is the subproject name and path that are displayed.<br />
Member Rev. displays the member’s revision number.<br />
Name displays the sandbox, subsandbox, and the sandbox members by file<br />
name.<br />
Revision Sync Delta displays a delta icon to indicate that your working revision<br />
does not match the member revision (usually due to branching).<br />
Working CPID displays the change package associated with a deferred or a lock<br />
operation performed by the current user from the current sandbox.<br />
Sandbox Information View Show Attributes displays the Project Attributes and Sandbox Attributes tabs.<br />
67
Chapter 3: Getting Started Using Source Integrity<br />
Editor<br />
Preferences<br />
68<br />
The Editor pane in the Preferences Configuration dialog box contains<br />
default settings for the file editor tool used by Source Integrity when<br />
editing members.<br />
To set editor preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), click the Editor node.<br />
The Editor pane is displayed.<br />
2 Select one of the following options:<br />
Use System Editor uses the system’s default editor for the type of<br />
file being edited, for example, Notepad, to edit text files.<br />
Editor allows you to choose the editor. Click Browse, then select<br />
an editor, such as vi.<br />
The Warn when trying to edit more than __ file(s) option prompts<br />
you with a warning when you attempt to edit more than the<br />
specified number of files.<br />
3 Click OK to save your preferences.<br />
u s e r g u i d e
Difference Tool<br />
Preferences<br />
Setting Preferences<br />
The Diff Tool pane in the Preferences Configuration dialog box contains<br />
default settings for the differencing tool used by Source Integrity.<br />
To set difference tool preferences in the graphical user interface<br />
1 From the Preferences Configuration dialog box (see “Setting<br />
Preferences” on page 40), click the Diff Tool node.<br />
The Diff Tool pane is displayed.<br />
2 Select one of the following options:<br />
Select the MKS Visual Difference Tool option to use the MKS<br />
Visual Difference program to view differences between revisions.<br />
For more information on the MKS Visual Difference Tool, see<br />
“MKS Visual Difference Interface” on page 100.<br />
Select the Third Party Difference Tool option if you want to use<br />
one of the following programs to view differences:<br />
Araxis Merge, Araxis Ltd.<br />
Beyond Compare 1.x, Scooter Software<br />
Beyond Compare 2.x, Scooter Software<br />
MKS Visual Difference (Classic), MKS Inc.<br />
Windiff, Microsoft<br />
Select Custom Command to specify a particular program to view<br />
differences.<br />
In the field type the location and executable file name for the<br />
program you want to use, or click the Browse button to browse to<br />
the executable file.<br />
3 Click OK to save your preferences.<br />
69
Chapter 3: Getting Started Using Source Integrity<br />
Shutdown<br />
Preferences<br />
70<br />
You can specify shutdown preferences for all clients globally from one<br />
location.<br />
Disconnection Preferences<br />
When disconnecting from an Integrity Server, you can specify client<br />
preferences.<br />
To specify disconnection preferences in the graphical user interface<br />
From the Preferences Configuration dialog box (see “Setting Preferences”<br />
on page 40), click Commands > Disconnect From Server.<br />
The Disconnect From Server pane is displayed.<br />
Confirm Disconnect specifies if to confirm disconnecting from the server<br />
when using the File > Server Connection > Disconnect <strong>com</strong>mand.<br />
Exit Preferences<br />
When shutting down the client, you can specify preferences.<br />
To specify exit preferences in the graphical user interface<br />
From the Preferences Configuration dialog box (see “Setting Preferences”<br />
on page 40), click Commands > Exit.<br />
The Exit pane is displayed.<br />
Managing Integrations<br />
Shutdown all Integrity Clients specifies if to shut down all clients when<br />
shutting down a client using the File > Shutdown <strong>com</strong>mand.<br />
Source Integrity includes functionality for enabling and disabling<br />
supported integrations. Using the Integrations <strong>com</strong>mand, you can select<br />
from a list of available integrations and enable or disable them as required.<br />
There is no requirement to re-install the Integrity Client.<br />
NOTE<br />
Using the Enable/Disable Integrations dialog box or the <strong>com</strong>mand:<br />
si integrations --action=enable <br />
you can always restore an available integration at a later date.<br />
You can have only one of the following versions of Sybase PowerBuilder<br />
installed: 7.0, or 8.0.3.<br />
u s e r g u i d e
For <strong>com</strong>plete information on using third party integrations with<br />
Source Integrity, see the Integrity Solution Integrations <strong>User</strong> <strong>Guide</strong>.<br />
Managing Integrations<br />
To enable integrations for the Integrity Client using the graphical user<br />
interface<br />
1 Start the Integrity Client.<br />
2 To open the Enable/Disable Integrations dialog box select Tools ><br />
Integrations.<br />
The Enable/Disable Integrations dialog box opens.<br />
3 In the Disabled Integrations list, select the available integration(s) that<br />
you want to enable.<br />
4 To move the selected integrations to the Enabled Integrations list,<br />
click . To move all disabled integrations to the Enabled<br />
Integrations list, click .<br />
TIP<br />
You can select multiple integrations by using CTRL + click.<br />
The selected integration is moved to the Enabled Integrations list and<br />
is displayed in bold type.<br />
5 To activate the selected integration(s), click OK.<br />
The selected integration is activated.<br />
6 To <strong>com</strong>plete the activation, restart your <strong>com</strong>puter.<br />
To disable integrations for the Integrity Client using the graphical<br />
user interface<br />
1 Start the Integrity Client.<br />
2 To open the Enable/Disable Integrations dialog box, select Tools ><br />
Integrations.<br />
The Enable/Disable Integrations dialog box opens.<br />
3 In the Enabled Integrations list, select the Source Integrity<br />
integration(s) that you want to disable.<br />
TIP<br />
You can select multiple integrations by using CTRL + click.<br />
71
Chapter 3: Getting Started Using Source Integrity<br />
72<br />
4 To move the selected integration(s) to the Disabled Integrations list,<br />
click . To move all enabled integrations to the Disabled<br />
Integrations list, click .<br />
The selected integration is moved to the Disabled Integrations list.<br />
5 To disable the selected integration, click OK.<br />
The selected integration is disabled.<br />
6 To <strong>com</strong>plete the process, restart your <strong>com</strong>puter.<br />
Quitting a Source Integrity Session<br />
Logging Out of<br />
Source Integrity<br />
When you are finished working on files in the Source Integrity client, you<br />
have three options for ending your session. You can log out of<br />
Source Integrity, close the client window (but leave Source Integrity<br />
running), or shut down the client <strong>com</strong>pletely.<br />
Since the Source Integrity Web interface does not involve a client, logging<br />
out is sufficient.<br />
You can log out of Source Integrity and log in as another user, or allow<br />
another user to log in.<br />
To log out of Source Integrity using the graphical user interface<br />
1 Select File > Server Connection > Disconnect.<br />
Depending on your system preferences, a dialog box is displayed<br />
asking you to confirm that you want to close all current views and<br />
disconnect your server connection. To disable this dialog box, see the<br />
Disconnect From Server <strong>com</strong>mand in “Command Preferences” on<br />
page 48.<br />
2 To disconnect from the server, click Yes.<br />
NOTE<br />
Disconnecting from the server closes all current views, such as Sandbox views.<br />
The Confirm Disconnect dialog box is displayed.<br />
u s e r g u i d e
Closing the<br />
Client<br />
3 Do one of the following:<br />
Quitting a Source Integrity Session<br />
To disconnect all clients that are connected to that server, click<br />
Yes.<br />
To cancel the disconnect, click No.<br />
If you clicked yes, the server connection is disconnected for all clients.<br />
If multiple servers are available in your Server Connection list, all<br />
clients running will automatically connect using the next available<br />
server for that product. For example, Integrity Manager connects to<br />
the next available Integrity Manager enabled server in the Server<br />
Connection list.<br />
To log in again, see “Logging In to Source Integrity” on page 36.<br />
To log out of a Source Integrity session the Source Integrity Web<br />
interface<br />
1 To quit the Source Integrity Web interface, do one of the following:<br />
Click File > Logout.<br />
Click .<br />
The Logout dialog box confirms that you have successfully logged out.<br />
To start a new session in the Source Integrity Web interface, click the<br />
link for MKS Source Integrity Enterprise Edition.<br />
You can close the Source Integrity client so that is no longer displayed on<br />
the desktop, but leave it running in the background, logged in and client<br />
windows intact.<br />
To quit a Source Integrity session in the graphical user interface<br />
Select File > Exit.<br />
The Source Integrity graphical user interface closes. Even though the client<br />
is not displayed on the desktop, it is still running in the background.<br />
Display the client by clicking the application shortcut (see “Starting the<br />
Source Integrity Client” on page 34).<br />
73
Chapter 3: Getting Started Using Source Integrity<br />
Shutting Down<br />
the Client<br />
74<br />
When you are finished using Source Integrity, you can shut down the<br />
Source Integrity client <strong>com</strong>pletely in one action.<br />
To shut down the Source Integrity client in the graphical user<br />
interface<br />
1 Select File > Shutdown.<br />
The Confirm MKS Integrity Client Shutdown dialog box is displayed.<br />
IMPORTANT<br />
Clicking Yes will shut down all clients in addition to Source Integrity, such as<br />
Integrity Manager.<br />
2 Do one of the following:<br />
To shut down all clients, click Yes.<br />
To shut down just the Source Integrity client, click No.<br />
If you clicked Yes, all Integrity GUI clients close, the connection to the<br />
server is disconnected, then the client process shuts down.<br />
If you clicked No, only the Source Integrity GUI closes.<br />
u s e r g u i d e
Source Integrity Interfaces<br />
4<br />
KEY TERMS: filters, graphical user interface, Web interface, <strong>com</strong>mand line interface,<br />
environment variables, MKS Visual Difference, MKS Visual Merge<br />
Source Integrity includes a number of interfaces that you can use to<br />
ac<strong>com</strong>plish your tasks. These interfaces provide you with the flexibility to<br />
work in the environment that is most <strong>com</strong>fortable and suitable for you.<br />
NOTE<br />
If LDAP is used for user authentication with the Integrity Server, all<br />
Source Integrity interfaces display full user names with the corresponding user<br />
IDs in brackets, for example, James Riley (jriley). In addition, the<br />
Websphere Studio Application Developer integration with Source Integrity<br />
displays full user names.<br />
If the full user name attribute is missing on the LDAP server, or a user’s full<br />
user name entry is blank, the client interfaces display the user ID.<br />
Anywhere that you as a user need to log in or authenticate, a user ID must be<br />
entered, not the LDP user name.<br />
This chapter provides an overview of the interfaces available in<br />
Source Integrity. Specific topics covered in this chapter include:<br />
“Source Integrity Graphical <strong>User</strong> Interface” on page 76<br />
“Source Integrity Web Interface” on page 94<br />
“Command Line Interface” on page 98<br />
“MKS Visual Difference Interface” on page 100<br />
“MKS Visual Merge Interface” on page 107<br />
75
Chapter 4: Source Integrity Interfaces<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
Application<br />
Window<br />
76<br />
Source Integrity includes a graphical user interface from which you can<br />
access all of the Source Integrity features for members in both sandbox and<br />
project views.<br />
The application window contains a number of <strong>com</strong>mon features explained<br />
in this section.<br />
Title Bar<br />
The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />
the left side, the title bar displays the name of the software program. On<br />
the right side, the title bar displays the standard Windows buttons for<br />
minimizing, resizing, and closing the application window.<br />
Menu Bar<br />
The menu bar is located directly below the title bar. Each menu contains<br />
available <strong>com</strong>mands. When you first start Source Integrity, there are four<br />
menus in the menu bar: File, Tools, Window, and Help. The list of available<br />
menus and <strong>com</strong>mands varies depending on which view or window is<br />
active (for example, working with a member history or a sandbox).<br />
To see a list of recently used project and sandbox files, select File from the<br />
menu bar. Recently used files are displayed in a numbered list at the<br />
bottom of the File menu.<br />
u s e r g u i d e
Toolbar<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
Immediately below the menu bar is a toolbar that provides easy access to<br />
the most <strong>com</strong>monly used Source Integrity <strong>com</strong>mands.<br />
You can configure the toolbar to suit your needs. For information on<br />
configuring the toolbar, see “Configuring the Source Integrity Toolbars”<br />
on page 82.<br />
Most toolbar buttons only be<strong>com</strong>e available when an item is selected in a<br />
certain window. For example, selecting a project in a Project view displays<br />
project <strong>com</strong>mand toolbar buttons.<br />
ToolTips, which explain the function of each toolbar button, appear when<br />
you hold the mouse pointer over the button.<br />
Project or Sandbox View<br />
Project and Sandbox views display the project members and hierarchy for<br />
projects registered with the Integrity Server.<br />
The Project view gives you access to project-level functions and a limited<br />
number of member-level functions. The Sandbox view mirrors the content<br />
of the project and allows you to manage the project and work directly with<br />
its members. Typically, you create your own Sandbox for a selected project<br />
and then work with that project through your Sandbox.<br />
For more information on Sandbox and Project views, see “Project Views<br />
(GUI)” on page 457.<br />
TIP<br />
When items in the Name column are too large to see in the current column<br />
width, place the mouse pointer over the item to view a ToolTip of the full<br />
name.<br />
Shortcut Menu<br />
Source Integrity supports standard shortcut menus. To display the menu<br />
of actions you can perform on a selected item, select and right click:<br />
a member in a Project or Sandbox view<br />
a revision in a Project or Member History view<br />
a project in the Registered Projects view<br />
a sandbox in the Registered Sandboxes view<br />
Source Integrity displays the applicable shortcut menu.<br />
77
Chapter 4: Source Integrity Interfaces<br />
Printing Lists<br />
and Views<br />
78<br />
Member Information Pane<br />
The member information pane displays details on the working file and<br />
member revision numbers that are available in the project. When there are<br />
size differences between the working file and member revision, the<br />
member information pane also displays this difference (in kilobytes).<br />
Status Bar<br />
When you select a <strong>com</strong>mand from a Source Integrity menu, a brief<br />
explanation of its purpose and status displays in the status bar. The status<br />
bar also displays the progress and status for <strong>com</strong>mands launched from the<br />
graphical user interface. In addition, when you point to a toolbar button,<br />
you can see an explanation of its function.<br />
Workspace<br />
Everything between the toolbar and the status bar is considered the<br />
workspace. This is where Source Integrity displays windows containing<br />
your projects, sandboxes, or member histories. For example, when you<br />
open a sandbox, its members display in a Sandbox view in the workspace.<br />
When you first start Source Integrity, the workspace is empty.<br />
Filter List<br />
Beside the toolbar is an optional list of built-in filters that allows you to<br />
focus your view on a subset of project members you are currently<br />
interested in. Source Integrity displays only those members that meet the<br />
criteria specified by the filter.<br />
The list of built-in filters only displays when a Project or Sandbox view is<br />
active.<br />
For more information on filters, see “Using Filters” on page 86.<br />
You can print the information from all tabular lists and graphical history<br />
views in the Source Integrity graphical user interface.<br />
To print tabular lists and views in the Source Integrity graphical user<br />
interface<br />
1 Display the window that contains the list or view you want to print.<br />
What is displayed in the window on the screen is what is printed. The<br />
following are some tips on printing tabular lists and views:<br />
Resize the window width to fit columns.<br />
Resize the column widths to fit cell contents.<br />
u s e r g u i d e
Quick Access<br />
Keys<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
2 With the desired information displayed in the window, do one of the<br />
following:<br />
Select File > Print.<br />
Click .<br />
The Print dialog box is displayed.<br />
3 If necessary, modify the general, page setup, and appearance options.<br />
The following are some page setup tips for fitting more information on<br />
a page:<br />
Change the paper orientation to landscape to ac<strong>com</strong>modate larger<br />
window widths.<br />
Decrease page margins to fit more information on a page.<br />
If your printer supports multiple page sizes, select a larger paper<br />
size to fit more information on a page.<br />
NOTE<br />
Information from rows is not split across multiple printed pages.<br />
4 Click OK to print.<br />
The information is printed.<br />
Each printed page contains a header that displays the printing date,<br />
the user printing the document, and the window title. Each printed<br />
page is numbered in the footer.<br />
By default, this guide describes how to perform steps using the mouse. For<br />
your convenience, an alternate way to perform many of those same steps is<br />
available using the keyboard.<br />
Access Keys<br />
Keyboard access keys appear as underlined letters on a menu <strong>com</strong>mand, or<br />
as a dialog box option, allowing you to access most items on the interface.<br />
You use the access keys by pressing and holding the ALT key, then the key<br />
indicated by the underlined letter.<br />
Access keys can also be used in a sequence, for example, ALT, F, S. This<br />
sequence means press down and hold ALT, and then press F, and then S. In<br />
the main application window, performing this sequence would open the<br />
Select a Sandbox view.<br />
79
Chapter 4: Source Integrity Interfaces<br />
Configuring the<br />
Source Integrity<br />
Column Set<br />
80<br />
Shortcut Keys<br />
For some <strong>com</strong>mands, shortcut keys are provided as well as access keys.<br />
Shortcuts appear on menus opposite their <strong>com</strong>mand names. For example,<br />
in the Sandbox view:<br />
pressing the INSERT key is the same as selecting the Add Members<br />
<strong>com</strong>mand from the Sandbox menu or the Import Members <strong>com</strong>mand<br />
from the Project menu.<br />
pressing the F2 function key is the same as selecting the Check Out<br />
<strong>com</strong>mand from the Member menu.<br />
The information in any window displays in columns with headings and<br />
icons. You can configure these columns in many different ways to suit your<br />
needs, including changing the sort order, and adding or removing<br />
columns.<br />
Configuring Column Sorting<br />
You can sort the information in each column in an ascending or descending<br />
order. An arrow is displayed indicating the sort order and the members are<br />
sorted accordingly.<br />
Columns such as Name, Label and State are sorted alphabetically, while<br />
columns such as Member Rev., and C.P.ID are sorted numerically. The<br />
Locked column first sorts alphabetically by the locker’s name (the user that<br />
has a lock on the member) and then it sorts numerically by the date of the<br />
lock timestamp. The delta column is sorted by the delta types. The default<br />
sort order for columns is descending.<br />
To sort a column in the graphical user interface<br />
Do one of the following:<br />
Click the column heading.<br />
The sort order inverts and the members are sorted accordingly.<br />
Right click the column heading and select Sort > Ascending or Sort ><br />
Descending.<br />
The sort order is changed and the members are sorted accordingly.<br />
Adding, Removing, and Repositioning Columns<br />
You can change the columns that appear in your windows. You can add<br />
and remove columns or change the order in which they appear within the<br />
windows.<br />
u s e r g u i d e
To add a column in the graphical user interface<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
Do one of the following:<br />
Right click a column heading and select the column you want to add<br />
from the menu, for example Attributes.<br />
The column is displayed in the window.<br />
Right click a column heading and select Columns.<br />
The Columns dialog is displayed where you can select the column that<br />
you want to add from the Not Visible list and add it to the Visible list<br />
by clicking . Click OK to finish the operation.<br />
The column is displayed in the window.<br />
To remove a column in the graphical user interface<br />
Do one of the following:<br />
Right click the column you want to remove and select Hide.<br />
The column is removed from the window.<br />
Right click a column heading and select Columns.<br />
The Columns dialog is displayed where you can select the column you<br />
want to remove from the Visible list and add it to the Not Visible list by<br />
clicking . Click OK to finish the operation.<br />
The column is removed from the window.<br />
To change the column order in the graphical user interface<br />
1 Right click a column heading and select Columns.<br />
The Columns dialog is displayed<br />
2 Select the column you want to move in the Visible list.<br />
3 Use the and buttons to move the column up or down in the<br />
column order.<br />
4 Click OK to finish the operation.<br />
The columns appear in the new order in the window.<br />
TIP<br />
You can also drag a column to a new location. Click the column heading you<br />
want to move, then drag it to the new location in the column set.<br />
81
Chapter 4: Source Integrity Interfaces<br />
Configuring the<br />
Source Integrity<br />
Toolbars<br />
82<br />
The main Source Integrity toolbar is fully customizable to suit your<br />
individual preferences. Changes made to the main toolbar are displayed<br />
immediately.<br />
Buttons on the main toolbar deal primarily with project and sandbox-level<br />
operations. You can configure the main toolbar to display only those<br />
buttons that you normally use and then position the buttons to suit your<br />
workflow.<br />
You can also define your own toolbar buttons to link to tasks that you<br />
perform frequently, for example, buttons that link to build scripts or other<br />
programs. Use separators to visually separate buttons and arrange<br />
functional groups to suit your workflow.<br />
You can customize the main toolbar by:<br />
hiding or showing specific buttons according to your preferences<br />
changing the sequence of the buttons<br />
using separators to group specific buttons according to your<br />
preferences<br />
resequencing toolbar buttons according to your preferences<br />
adding a custom toolbar button to link to frequently performed tasks<br />
In addition to configuring the main Source Integrity toolbar, you can<br />
configure toolbars associated with all of the views. For more information,<br />
see “To configure a view’s toolbar in the graphical user interface” on<br />
page 86.<br />
To customize the main toolbar in the graphical user interface<br />
1 Select Tools > Preferences.<br />
The Preferences dialog box opens.<br />
2 Under the General tab in the Look And Feel area, click .<br />
The Configure main toolbar dialog box opens.<br />
You can customize the main toolbar in the following ways:<br />
To add a button to the main toolbar, under Available Buttons,<br />
select the desired button. Then under Toolbar Contents, select the<br />
button you want the new button to appear below.<br />
Click .<br />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<br />
The target button is moved to the list of Toolbar Contents and<br />
appears on the main toolbar.<br />
To remove a button from the main toolbar, under Toolbar<br />
Contents, click to highlight the target button and then<br />
click .<br />
The target button is moved to the list of Available Buttons and no<br />
longer appears on the main toolbar.<br />
To add a separator, under Toolbar Contents, click to highlight the<br />
button you want the separator to appear below, then under<br />
Available Buttons, select a separator.<br />
Click .<br />
A separator is added at the specified location under Toolbar<br />
Contents.<br />
On the main toolbar, the separator is positioned to the right of the<br />
existing button or separator. You can remove the separator the<br />
same way as removing a button.<br />
To change the sequence of a button or separator, remove it from<br />
the Available Buttons list and then add it to the desired location.<br />
3 To accept the changes, click OK.<br />
The Configure main toolbar dialog box closes.<br />
4 To close the Preferences dialog box, click OK.<br />
Your changes display immediately on the main toolbar. The target<br />
button no longer appears on the main toolbar.<br />
To add a custom toolbar button to the main toolbar in the graphical<br />
user interface<br />
When adding a new button to the Toolbar Contents, the new button is<br />
inserted below the selected toolbar button or separator. On the graphical<br />
user interface toolbar, the new button is positioned to the right of the<br />
existing button or separator.<br />
83
Chapter 4: Source Integrity Interfaces<br />
84<br />
You can also use separators to separate buttons visually and arrange<br />
functional groups to suit your workflow. For more information on using<br />
separators, see “To customize the main toolbar in the graphical user<br />
interface” on page 82.<br />
NOTE<br />
You cannot delete a custom toolbar button once it is created. You can only hide<br />
the button or redefine it.<br />
1 Select Tools > Preferences.<br />
The Preferences dialog box opens.<br />
2 Under the General tab, Look And Feel, click .<br />
The Configure main toolbar dialog box opens.<br />
3 Under Available Buttons, click <strong>User</strong> 1 or another available custom<br />
toolbar button, then click .<br />
The Customize <strong>User</strong> Button dialog box opens.<br />
Enter the following information into the text fields:<br />
Program is the path to the program or script file that you want<br />
Source Integrity to run.<br />
To select the program, do one of the following:<br />
Enter the path to the program.<br />
Click Browse to select the program.<br />
Parameters are the options or flags the program requires to run. If<br />
no parameters are required, you can leave this field blank.<br />
Description is the descriptive ToolTip text that appears when the<br />
mouse pointer is paused over the button. This field is optional.<br />
Icon File is the path to the icon file that Source Integrity uses to<br />
represent the selected program or script.<br />
u s e r g u i d e
To select the icon file, do one of the following:<br />
Enter the path to the icon file.<br />
Click Browse to select the icon file.<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
Environment File is a path to a text file that stores environment<br />
variables when the button is used. This field is optional. For more<br />
information on environment variables, see “Environment<br />
Variables” on page 92.<br />
To select the environment file, do one of the following:<br />
Enter the path to the environment file.<br />
Click Browse to select the environment file you have already<br />
created.<br />
4 To accept the changes, click OK.<br />
The Configure main toolbar dialog box closes.<br />
5 To close the Preferences dialog box, click OK.<br />
Your changes display immediately on the main toolbar. The new<br />
button icon is now positioned to the right of the selected toolbar<br />
button.<br />
To remove the button from the main toolbar, see “To customize the<br />
main toolbar in the graphical user interface” on page 82.<br />
To redefine a custom toolbar button in the graphical user interface<br />
1 Select Tools > Preferences.<br />
The Preferences dialog box opens.<br />
2 Under the General tab, Look And Feel, click .<br />
The Configure main toolbar dialog box opens.<br />
3 Under Toolbar Contents, double click the custom toolbar button you<br />
want to redefine.<br />
The Customize <strong>User</strong> Button dialog box opens.<br />
Redefine the text fields as required to select a new program or script.<br />
For more information on the Customize <strong>User</strong> Button dialog box, see “To<br />
add a custom toolbar button to the main toolbar in the graphical user<br />
interface” on page 83.<br />
4 To accept the changes, click OK.<br />
The Configure main toolbar dialog box closes.<br />
85
Chapter 4: Source Integrity Interfaces<br />
Dialog Box<br />
Options<br />
Using Filters<br />
86<br />
5 To close the Preferences dialog box, click OK.<br />
Your changes display immediately on the main toolbar. The new<br />
button icon is now positioned to the right of the selected toolbar<br />
button.<br />
To configure a view’s toolbar in the graphical user interface<br />
1 Select Tools > Preferences.<br />
The Preferences dialog box opens.<br />
2 Click the Views tab, then from the View list, select a view.<br />
3 Click .<br />
The Configure toolbar dialog box opens.<br />
4 Configure the toolbar as desired. For more information, see “To<br />
customize the main toolbar in the graphical user interface” on page 82.<br />
Dialog boxes that you may encounter include check boxes for many<br />
options. A blank check box ( ) means the option is not enabled, a check<br />
mark ( ) means the option is enabled, and a question mark ( ) means<br />
you will be prompted to confirm or specify the option.<br />
For large projects, use filters to display only the relevant members for your<br />
task. Filters allow you to view and manipulate a predefined subset of<br />
project members that are grouped according to their properties.<br />
NOTE<br />
The list of built-in filters only displays if a Project or Sandbox view is active.<br />
You must expand your project (including subprojects), or your sandbox<br />
(including subsandboxes), to view the filtered members.<br />
In the graphical user interface, and Project and Sandbox views, filters<br />
appear in the Filter list located on the toolbar.<br />
Filters for the Project History and Member History views are also available.<br />
For information on applying filters in the Project History view, see “Project<br />
History Filters” on page 264. For information on applying filters in the<br />
Member History view, see “Member History Filters” on page 311.<br />
By selecting the option for Hide Empty Sandboxes or Hide Empty Projects,<br />
you can also choose to remove any sandboxes or projects that do not<br />
contain members.<br />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<br />
Selecting the Hide Empty Sandboxes or Hide Empty Projects filters causes<br />
Source Integrity to recursively search each subproject for members and is<br />
therefore a server resource intensive operation. If you have a <strong>com</strong>plex<br />
project with numerous members, you may want to limit your use of this<br />
filtering option.<br />
NOTE<br />
All filters, except the Deferred Items filter, incorrectly show former members in<br />
the filtered view.<br />
Choose one of the following filters, and your view is filtered accordingly:<br />
All Members shows all members of the current project or sandbox.<br />
Any Member Deltas shows only members with working file changes or<br />
out of sync members.<br />
Modified Working Files shows only members with a working file that is<br />
modified.<br />
Out of Sync Members shows only members where the sandbox<br />
revision is not the same as the member revision in the corresponding<br />
project.<br />
New Revision Available shows only those members where a new<br />
revision is available.<br />
NOTE<br />
If you apply the New Revision Available filter in a variant sandbox, the filter<br />
returns only new revisions available in the variant sandbox, it does not return<br />
new revisions from the master project.<br />
Working File Size Deltas shows members with changes in the size (in<br />
bytes) of the working file.<br />
Missing Working Files shows only those members with missing<br />
working files.<br />
Existing Working Files shows members with existing working files.<br />
New Members shows only those members that are newly added to the<br />
project and that have not yet been modified.<br />
Working File on Branch shows members where the working file is on a<br />
branch from a given development path that is not the trunk<br />
development path.<br />
Unresolved Merges shows members affected by unresolved merges.<br />
87
Chapter 4: Source Integrity Interfaces<br />
88<br />
Work in Progress <strong>com</strong>bines the Deferred Items, Members Locked By<br />
Me, and Modified Working Files filters to show members that are<br />
considered work in progress.<br />
Locked Members shows those members locked by any user.<br />
Members Locked By Me shows only members locked by you.<br />
Frozen Members shows only frozen members.<br />
Members with Attribute shows only members with a particular<br />
attribute. If you choose this filter, Source Integrity prompts you for the<br />
target attribute and value. For more information on member<br />
attributes, see “Working With Member Attributes” on page 290.<br />
Enter the target attribute name in the Attribute field and the value for<br />
that attribute in the Value field, then click OK.<br />
Members at Label shows only members that have the specified label<br />
assigned at the member revision. If you choose this filter,<br />
Source Integrity prompts you for the target label.<br />
Enter the label name in the Label field, then click OK.<br />
Members with Label shows only members with the specified label<br />
somewhere in their member history. If you choose this filter,<br />
Source Integrity prompts you for the target label.<br />
Enter the label name in the Label field, then click OK.<br />
Members at State shows only member revisions that have been<br />
assigned a specific promotion state. If you choose this filter,<br />
Source Integrity prompts you to identify the target state. For more<br />
information on promotion states, see “Promoting Members” on<br />
page 299.<br />
Enter a state in the State field, then click OK.<br />
Members with Name shows only members with the specified name. If<br />
you choose this filter, Source Integrity prompts you to identify the<br />
target name.<br />
Enter a name, including the file extension, in the Name field (for<br />
example, utility.dll), then click OK.<br />
Members on Branch shows only members that are off the main<br />
development trunk.<br />
Pending Operations shows any members in your sandbox that are<br />
associated with a pending operations. For more information, see<br />
“Pending Operations” on page 204.<br />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<br />
Deferred Items shows any members in your sandbox that are<br />
associated with a pending deferred operation, such as a deferred add,<br />
drop, check in, or rename.<br />
Once a filter is applied to a project, operations performed on all project<br />
members apply only to those members shown as a result of the filter. For<br />
example, if you apply the filter for Modified Working Files and then<br />
perform a Member > Lock operation for that project, the lock operation<br />
applies only to those members shown by the Modified Working Files filter.<br />
Regular Expression Filter (GUI)<br />
A regular expression is a set of symbols and syntactic characters used to<br />
match patterns of text. The Regular Expression filter allows you to apply a<br />
standard regular expression as a filter to a particular selection within<br />
specific dialog boxes in Source Integrity.<br />
There are three selection elements that the Regular Expression filter applies<br />
to, development paths, revisions, and labels. You can, for example, filter a<br />
long list of development paths to find the particular one you are looking<br />
for without scrolling through that long list.<br />
The following table outlines the specific dialog boxes and selection<br />
elements that you can apply the Regular Expression filter to:<br />
à Ã<br />
Create Sandbox On the Specify Type of Sandbox panel, you can filter on<br />
Variant Development Path Name list, Build Revision<br />
list, and Build Label list.<br />
Check Out Under Revision to Check Out, you can filter on the<br />
Revisions list and Labels list.<br />
Create Development<br />
Path<br />
Remove<br />
Development Path<br />
Under Revision, you can filter on the Revisions list and<br />
Labels list.<br />
You can filter on the Development Path list.<br />
Merge Branch Under Target or Branch, you can filter on the Revision<br />
list.<br />
Member Information On the General panel, you can filter on the Member<br />
Revision list.<br />
Delete Label You can filter on the Label list.<br />
Update Revision Under Revision to Set, you can filter on the Revisions<br />
list and Labels list.<br />
Restore Project Under Revision, you can filter on the Revisions list and<br />
Labels list.<br />
89
Chapter 4: Source Integrity Interfaces<br />
90<br />
If you are unfamiliar with using regular expressions, the following<br />
resources can provide more details:<br />
“Matchmaking with regular expressions” by Benedict Chng at<br />
http://www.javaworld.<strong>com</strong>/javaworld/jw-07-2001/jw-0713regex.html<br />
Mastering Regular Expressions by Jeffrey E. F. Friedl, published in 1997<br />
by O’Reilly (www.oreilly.<strong>com</strong>)<br />
To apply the Regular Expression filter in the Check Out, Create<br />
Development Path, Update Revision, or Restore Project dialog box in<br />
the graphical user interface<br />
1 Click the selection element you want to filter, for example, the<br />
Revisions list.<br />
An example of the Revisions list highlighted as the selection element for<br />
filtering.<br />
2 On the keyboard press CTRL + F3 to initiate the filter.<br />
The Please Supply A Pattern To Use dialog box is displayed.<br />
3 In the Filter Pattern field, type the expression you want to use, for<br />
example, a[bc]*.<br />
TIP<br />
The Regular Expression filter remembers up to 5 previous expressions used in<br />
any given session. To use an expression again, select it from the Filter Pattern<br />
list, and click OK.<br />
To undo a filter and return to your original unfiltered selection list,<br />
select No Filter from the Filter Pattern list, and click OK.<br />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<br />
4 Select the column you want to apply the filter to from the Column to<br />
Filter on list.<br />
5 Click OK to <strong>com</strong>plete the operation.<br />
The selection is filtered. Only files matching your expression<br />
arguments appear available in the selection list.<br />
To apply the Regular Expression filter in the Remove Development<br />
Path, Merge Branch, Member Information, Delete Label or Create<br />
Sandbox dialog box in the graphical user interface<br />
1 Click the selection element you want to filter, highlighting it, for<br />
example, the Revisions list.<br />
An example of the Revisions list highlighted as the selection element for<br />
filtering.<br />
2 On the keyboard press CTRL + F3 to initiate the filter.<br />
The Please Supply A Pattern To Use dialog box is displayed.<br />
3 In the Filter Pattern field, type the expression you want to use, for<br />
example, a[bc]*.<br />
TIP<br />
The Regular Expression filter remembers up to 5 previous expressions used in<br />
any given session. To use an expression again, select it from the Filter Pattern<br />
list, and click OK.<br />
To undo a filter and return to your original unfiltered selection list,<br />
select No Filter from the Filter Pattern list, and click OK.<br />
91
Chapter 4: Source Integrity Interfaces<br />
Environment<br />
Variables<br />
92<br />
4 Click OK to <strong>com</strong>plete the operation.<br />
The selection is filtered. Only files matching your expression<br />
arguments appear available in the selection list.<br />
Environment variables are accessed by external programs configured<br />
under the user toolbar buttons. When using these variables, the names<br />
must be in uppercase or Source Integrity will not recognize them. You can<br />
use the environment variables listed in this section.<br />
Window Type Opened Associated Environment Variable<br />
All The environment variable MKSSI_WINDOW is set in all cases.<br />
If there is no active window, or no window, then:<br />
MKSSI_WINDOW=none<br />
If there is an active window, then:<br />
MKSSI_WINDOW=[project|sandbox|projecthistory]<br />
Otherwise, the value is set to a window-specific value:<br />
MKSSI_WINDOW=archive<br />
If the active window is a different window, then:<br />
MKSSI_WINDOW=unknown<br />
For example, a Project Modifications window that does not produce any specific<br />
environment variables:<br />
MKSSI_WINDOW=unknown<br />
Note: For the values none and unknown, no other variables are set.<br />
All known window types set three variables for the server:<br />
MKSSI_HOST<br />
MKSSI_PORT<br />
MKSSI_USER<br />
Because Source Integrity supports multiple connections to the server, you should<br />
specify the following environment variables when running a <strong>com</strong>mand line<br />
operation from the toolbar:<br />
si --host=$MKSSI_HOST --port=$MKSSI_PORT<br />
--user=$MKSSI_USER<br />
u s e r g u i d e
Window Type Opened Associated Environment Variable<br />
Project For an open project window:<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
MKSSI_WINDOW=project<br />
MKSSI_FILE=server-side-project-path<br />
MKSSI_NMEMBER=number of MKSSI_MEMBERxx entries<br />
MKSSI_NSUBPROJECT=number of MKSSI_SUBPROJECTyy entries<br />
If any members are selected, then the following variables apply:<br />
MKSSI_MEMBERxx=path-relative-to-project<br />
MKSSI_MEMBER_PROJECTxx=server-side-project/subproject-path<br />
If any subprojects are selected, then the following variables apply:<br />
MKSSI_SUBPROJECTyy=path-relative-to-project<br />
MKSSI_SUBPROJECT_PROJECTyy=server-side-project/subprojectpath<br />
That is, if there are n members selected and m subprojects selected then you have<br />
n occurrences of MKSSI_MEMBER numbered from 1 to n and the number n is also<br />
passed in MKSSI_NMEMBER. There are also occurrences of MKSSI_SUBPROJECT,<br />
numbered from 1 to m, and the number m is passed in MKSSI_NSUBPROJECT.<br />
If a subdirectory is selected, then it is as if that subdirectory is recursively<br />
expanded (only the directories, not subprojects) and all members are selected.<br />
Because a given member may not be in the top level project that is open in the<br />
view, each variable for MKSSI_MEMBER and MKSS_SUBPROJECT has a<br />
corresponding entry for MKSSI_MEMBER_PROJECTxx and<br />
MKSSI_SUBPROJECT_PROJECTxx. Therefore, each MEMBER/SUBPROJECT<br />
variable is relative to its corresponding PROJECT entry, not to the top level<br />
indicated in MKSSI_FILE.<br />
For example:<br />
i=1<br />
while [ $i -le $MKSSI_NMEMBER ]<br />
do<br />
eval si <strong>com</strong>mand<br />
-P\${MKSSI_MEMBER_PROJECT$i}\${MKSSI_MEMBER$i}<br />
let i=i+1<br />
done<br />
Note: If set, the environment variables MKSSI_VARIANT and MKSSI_BUILD are<br />
also exported when invoking an si <strong>com</strong>mand with the options for --devpath and<br />
--projectrevision.<br />
Sandbox For an open sandbox window:<br />
MKSSI_WINDOW=sandbox<br />
MKSSI_FILE=full-path-to-sandbox<br />
MKSSI_NMEMBER=number of MKSSI_MEMBER objects<br />
MKSSI_NSUBPROJECT=number of MKSSI_SUBPROJECT objects<br />
Note: The variables MKSSI_MEMBERxx= and MKSSI_SUBPROJECTxx= take the<br />
same settings as for a project window. The corresponding variables<br />
MKSSI_MEMBER_SANDBOXxx and MKSSI_SUBPROJECT_SANDBOXxx are also as<br />
described for a project. If applicable, MKSSI_VARIANT and MKSSI_BUILD are<br />
also set.<br />
93
Chapter 4: Source Integrity Interfaces<br />
Window Type Opened Associated Environment Variable<br />
Member History For an open member history window:<br />
MKSSI_WINDOW=archive<br />
MKSSI_FILE=pathname-relative to project/sandbox of archive<br />
If the window was opened via a sandbox:<br />
MKSSI_WORKINGFILE=full-path-to-working-file<br />
MKSSI_SANDBOX=full-path-to-sandbox<br />
Note: MKSSI_WORKINGFILE is not set if the working file does not exist.<br />
If the window was opened via a project:<br />
MKSSI_PROJECT=server-path-to-project<br />
If the project/sandbox was a variant:<br />
MKSSI_VARIANT=variant-name<br />
If the project/sandbox was a build:<br />
MKSSI_BUILD=build-number<br />
If revisions were selected:<br />
MKSSI_REVISION=highest revision in selection<br />
MKSSI_REVISIONxx=1.2<br />
That is, there are n variables from MKSSI_REVISION1 to MKSSI_REVISIONxx,<br />
containing each selected revision number.<br />
Project History For an open project history window:<br />
MKSSI_WINDOW=projecthistory<br />
MKSSI_FILE=server-side-project-path<br />
Note: MKSSI_REVISIONxx is set in the same way as a member history.<br />
Source Integrity Web Interface<br />
94<br />
Source Integrity includes a Web interface that allows project managers to<br />
perform key tasks related to project members. Using the Source Integrity<br />
Web interface, you can manage projects and project members, view project<br />
and member histories, and work with project and member attributes—and<br />
this functionality is available without you having to install the<br />
Source Integrity client on your machine.<br />
The Web interface is a program interface that appears in a Web browser,<br />
such as Netscape Navigator and Microsoft Internet Explorer. Working in a<br />
Web interface offers the familiar functionality of a Web browser with no<br />
client installation required.<br />
The Source Integrity Web interface accesses only the Project view and<br />
functionality related to managing project members. For example, you can<br />
view a member revision, check out and check in a member. Similarly, you<br />
can view differences between revisions, but you cannot merge those<br />
revisions.<br />
u s e r g u i d e
Application<br />
Window<br />
Source Integrity Web Interface<br />
The Integrity Server wel<strong>com</strong>e page provides a link to the read-only version<br />
of the Web interface. You can connect to the read-only Web interface by<br />
clicking the read-only mode link displayed under Start Source Integrity<br />
Web Interface.<br />
NOTE<br />
Other functionality related to sandboxes is available only through the graphical<br />
user interface and the <strong>com</strong>mand line interface.<br />
The Source Integrity Web interface window contains a number of <strong>com</strong>mon<br />
features explained in this section.<br />
Title Bar<br />
The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />
the left side, the title bar displays the name of the software program. On<br />
the right side, the title bar displays the standard Windows buttons for<br />
minimizing, resizing, and closing the application window.<br />
You can also use the active links in the title bar to navigate within the<br />
project. To navigate to a subproject, click the applicable portion of the link.<br />
Menu Bar<br />
The menu bar is located directly below the title bar. Each menu contains<br />
available <strong>com</strong>mands. When you first start the Source Integrity Web<br />
interface, there are three menus in the menu bar: File, Tools, and Help. The<br />
list of available menus and <strong>com</strong>mands varies depending on the function<br />
you are performing (for example, working with a project or with a member<br />
history).<br />
95
Chapter 4: Source Integrity Interfaces<br />
96<br />
NOTE<br />
In the Source Integrity Web interface, application functionality is not available<br />
through the shortcut menu.<br />
To see the current user and server that the Source Integrity Web interface is<br />
connected to, point to the Source Integrity icon ( ). A ToolTip appears<br />
displaying the user and server, for example, mkern@abc_server:7001.<br />
Toolbar<br />
Immediately below the menu bar is a toolbar that provides easy access to<br />
the most <strong>com</strong>monly used Source Integrity <strong>com</strong>mands. Toolbar functions<br />
are carried out by clicking the appropriate toolbar button with the left<br />
mouse button. ToolTips, which explain the function of each toolbar button,<br />
appear when you hold the mouse pointer over the button.<br />
Most toolbar buttons only be<strong>com</strong>e available when an item is selected in a<br />
certain window. For example, selecting a project in a Project view displays<br />
project <strong>com</strong>mand toolbar buttons.<br />
Project View<br />
The Source Integrity Web interface provides access to the Project view. The<br />
Project view displays the project members and hierarchy for projects<br />
registered with the Integrity Server.<br />
The Project view also gives you access to project-level functions and a<br />
limited number of member-level functions.<br />
Status Bar<br />
When you select a <strong>com</strong>mand from a Source Integrity menu, a brief<br />
explanation of its purpose and status displays in the status bar. The status<br />
bar also displays the user, server and port number currently logged in for<br />
the session. In addition, when you point to a toolbar button, you can see an<br />
explanation of its function.<br />
Filter List<br />
Beside the toolbar is an optional list of built-in filters that allow you to<br />
focus your view on a subset of the project members you are currently<br />
interested in. Source Integrity displays only those members that meet the<br />
criteria specified by the filter.<br />
u s e r g u i d e
Using Filters<br />
Source Integrity Web Interface<br />
For large projects, use filters to display only the relevant members for your<br />
task. Filters allow you to view and manipulate a predefined subset of<br />
project members that are grouped according to their properties.<br />
The Source Integrity Web interface provides a reduced set of filters related<br />
to managing project members. The filters appear in the Filter list located on<br />
the toolbar.<br />
Choose one of the following filters and your view is filtered accordingly:<br />
All Members shows all members of the current project.<br />
Locked Members shows those members locked by any user.<br />
Members Locked By Me shows only members locked by you.<br />
Frozen Members shows only frozen members.<br />
Members at Label shows only members that have the specified label<br />
assigned at the member revision. If you choose this filter,<br />
Source Integrity prompts you for the target label. For more<br />
information on member attributes, see “Working With Member<br />
Attributes” on page 290.<br />
Under Specify a Label, enter the label name in the field, then click OK.<br />
Members with Label shows only members with the specified label<br />
somewhere in their member history. If you choose this filter,<br />
Source Integrity prompts you for the target label.<br />
Under Specify a Label, enter the label name in the field, then click OK.<br />
Members at State shows only member revisions that have been<br />
assigned a specific promotion state. If you choose this filter,<br />
Source Integrity prompts you to identify the target state. For more<br />
information on promotion states, see “Promoting Members” on<br />
page 299.<br />
Under Specify a State, enter the state name in the field, then click OK.<br />
Members with Attribute shows only members with a particular<br />
attribute. If you choose this filter, Source Integrity prompts you for the<br />
target attribute and value.<br />
Under Specify a Member Attribute, enter the attribute name in the<br />
field, then click OK. Enter the target attribute name in the Attribute<br />
field and the value for that attribute in the Value field, then click OK.<br />
Member on Branch shows only members that are off the main<br />
development trunk.<br />
97
Chapter 4: Source Integrity Interfaces<br />
Command Line Interface<br />
Viewing<br />
Available CLI<br />
Commands<br />
Using the<br />
Graphical <strong>User</strong><br />
Interface From<br />
the CLI<br />
98<br />
Once a filter is applied to a project, operations performed on project<br />
members apply only to those members shown as a result of the filter. For<br />
example, if you apply the filter for Members at State and then perform a<br />
Member > Lock operation for that project, the lock operation applies only to<br />
those members shown by the Members at State filter.<br />
Source Integrity provides a <strong>com</strong>mand line interface (CLI) to manage your<br />
projects, sandboxes, and members, and to configure Source Integrity. To<br />
access the <strong>com</strong>mand line interface from a <strong>com</strong>puter running Windows,<br />
from the Start menu select MS-DOS Prompt or Command Prompt<br />
(depending on the version of Windows).<br />
The <strong>com</strong>mand line interface, or CLI, is a program that allows a user to<br />
enter keywords as instructions to a <strong>com</strong>puter or device to perform specific<br />
tasks. (The MS-DOS® Command Prompt is an example of a CLI.) Results<br />
are typically outputted as simple text to the user’s terminal.<br />
The Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> and man pages<br />
provide <strong>com</strong>plete information about all Source Integrity <strong>com</strong>mands and<br />
their options.<br />
NOTE<br />
If you are using the <strong>com</strong>mand line interface with a Linux, Solaris, AIX, or<br />
HP-UX client, you must manually add /bin/ to your<br />
default PATH, located in your home directory startup files.<br />
If you are working within the sandbox directory where you want to perform<br />
<strong>com</strong>mands you do not need to specify the sandbox name in the <strong>com</strong>mand<br />
options.<br />
You can view available Source Integrity <strong>com</strong>mands by typing si.<br />
To view a list of a <strong>com</strong>mand’s options, add -? or --usage to the end of the<br />
<strong>com</strong>mand, for example, si connect -?.<br />
In addition to using the <strong>com</strong>mand line interface by itself, you can also<br />
<strong>com</strong>bine the graphical user interface with <strong>com</strong>mands entered in the<br />
<strong>com</strong>mand line interface. This can be useful if you prefer to perform certain<br />
operations in the <strong>com</strong>mand line interface and others in the graphical user<br />
interface.<br />
u s e r g u i d e
Command<br />
Prompts<br />
Member Name<br />
Arguments<br />
Command Line Interface<br />
For example, you can use the si co <strong>com</strong>mand to check out a file, attaching<br />
-g or --gui to the end of the <strong>com</strong>mand to view the Check Out dialog box.<br />
You can then select check out options.<br />
This allows you to use the Check Out dialog box without having to launch<br />
the graphical user interface.<br />
For more information on using the graphical user interface with the<br />
<strong>com</strong>mand line interface, see the Source Integrity Enterprise Edition CLI<br />
Reference <strong>Guide</strong> and the online man pages.<br />
You can use some Source Integrity <strong>com</strong>mands without specifying any<br />
options, for example, si connect. Entering only the <strong>com</strong>mand prompts<br />
you to add additional information that you would normally add in the<br />
form of <strong>com</strong>mand options. This is useful for <strong>com</strong>mands, such as si<br />
connect, because the prompts may contain default information, for<br />
example, your default Integrity Server and port number. This information,<br />
if it exists, is in your IntegrityClient.rc or<br />
IntegrityClientSite.rc file.<br />
For project and sandbox <strong>com</strong>mands, member refers to members of an<br />
Integrity Server project. If the member argument is omitted for project or<br />
sandbox <strong>com</strong>mands, the <strong>com</strong>mand is applied to all of the members of the<br />
project or sandbox. The member element must be the last entry of a<br />
<strong>com</strong>mand statement.<br />
There are three ways to apply a <strong>com</strong>mand to multiple members:<br />
Type Multiple Member Names<br />
You can enter two or more member names, separated by spaces, as the<br />
member <strong>com</strong>ponent. For example, the <strong>com</strong>mand:<br />
si co -S project.pj prog.c brochur.toc brochur.idx<br />
checks out all three members. You can name as many members as you<br />
like on the <strong>com</strong>mand line (subject to the line length limitations of your<br />
operating system).<br />
NOTE<br />
Source Integrity <strong>com</strong>mands do not span <strong>com</strong>mand shell line lengths.<br />
99
Chapter 4: Source Integrity Interfaces<br />
100<br />
Use Wildcards<br />
Use wildcards in the member <strong>com</strong>ponent. For example, the <strong>com</strong>mand:<br />
si ci -S c:\work\project.pj brochur.*<br />
checks in all members with the base name brochur and any<br />
extension.<br />
Specify a Member List<br />
A member list (specified with the -F member option) is a text file<br />
containing the names of the members a <strong>com</strong>mand should be applied<br />
to. For example, the <strong>com</strong>mand:<br />
si ci -S c:\work\project.pj -F flist.lst<br />
checks in all the members listed in the flist.lst file.<br />
Members named in the member element may have any level of path<br />
qualification.<br />
A member list is a text file containing a list of member names, with each<br />
name on a line by itself. When you pass a member list to Integrity Server, it<br />
reads the member names and applies the <strong>com</strong>mand to them in sequence.<br />
You can create a member list with any text editor by typing member<br />
names—one name per line—in a plain text file. Alternatively, you can<br />
<strong>com</strong>pile a list of members with the find <strong>com</strong>mand and copy them to a text<br />
file. The find <strong>com</strong>mand is a standard UNIX utility and is available on<br />
Win32 based systems with MKS Toolkit.<br />
MKS Visual Difference Interface<br />
The MKS Visual Difference tool is a graphical application that allows you<br />
to <strong>com</strong>pare a working file and a member revision, or two revisions. It<br />
offers two-way differencing of revisions where differences are highlighted<br />
for you.<br />
u s e r g u i d e
Application<br />
Window<br />
MKS Visual Difference Interface<br />
Similar to the Source Integrity application window, MKS Visual Difference<br />
contains a number of <strong>com</strong>mon features explained in this section.<br />
Title Bar<br />
The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />
the left side, the title bar displays the name of the application and the<br />
member name. On the right side, the title bar displays the standard<br />
Windows buttons for minimizing, resizing, and closing the application<br />
window.<br />
Menu Bar<br />
The menu bar is located directly below the title bar. Each menu contains<br />
available operations. When you first start MKS Visual Difference, there are<br />
three menus in the menu bar: File, View, and Help. The list of available<br />
menus and operations varies depending on the function you are<br />
performing (for example, working in differences mode or merge mode).<br />
101
Chapter 4: Source Integrity Interfaces<br />
102<br />
Toolbar<br />
Immediately below the menu bar is a toolbar that provides easy access to<br />
the most <strong>com</strong>monly used Visual Difference operations. Toolbar functions<br />
are carried out by clicking the appropriate toolbar button. Point to a button<br />
to display a ToolTip that contains a description for that button.<br />
Toolbar buttons be<strong>com</strong>e available and unavailable for use depending on<br />
the mode you are in. For more information, see “Modes” on page 104.<br />
Located immediately below the toolbar buttons are display controls that<br />
change what appears in the view panes. These controls are also available in<br />
the View menu.<br />
NOTE<br />
The Ignore Whitespace, Ignore Case, and Ignore Blanks display controls can<br />
only be adjusted before making changes to the Merge Result. Once you begin<br />
to make changes, (merging or editing), the options be<strong>com</strong>e unavailable.<br />
Difference Blocks is a list containing all of the difference blocks in the<br />
revisions, including the type of difference (change, insertion, deletion),<br />
and the line numbers. If you are working in Merge mode, the<br />
Difference Blocks list also includes edit blocks.<br />
To move to a particular difference block, select the block from the<br />
Difference Blocks list.<br />
The selected difference block appears.<br />
Ignore Whitespace ignores tab and white space throughout the lines in<br />
the revisions.<br />
Ignore Case ignores the type case when <strong>com</strong>paring the revisions.<br />
NOTE<br />
Under the View menu, the following controls are also available:<br />
Synchronize Scrolling causes all of the panes to scroll simultaneously. This<br />
control is enabled by default.<br />
Ignore Blanks ignores white space at the end of lines, and changes it to white<br />
space elsewhere in the line.<br />
u s e r g u i d e
View Panes<br />
MKS Visual Difference Interface<br />
The view panes appear within the MKS Visual Difference window and<br />
display the revisions you are <strong>com</strong>paring including line numbers for<br />
navigation (line numbers can be removed through the MKS Visual<br />
Difference options). Scrolling in the view panes is synchronized.<br />
In Merge mode, there are two different layouts for the view panes, vertical<br />
layout and split layout.<br />
The vertical layout displays two revisions side-by-side for <strong>com</strong>parison.<br />
You can view either the Merge From and Merge To, or by clicking the View<br />
Merge Result button, you can view the Merge From and the Merge Result.<br />
The split layout displays three revisions for <strong>com</strong>parison. The Merge From<br />
and Merge To are displayed side-by-side, and the Merge Result pane<br />
appears below them.<br />
In the Merge Result a number immediately to the left of the line numbers<br />
appears to indicate which revision, Merge From (1) or Merge To (2), the<br />
block originated from.<br />
To change the layout of the view panes in Merge mode, use the View<br />
vertical layout and View split layout buttons on the toolbar, or select View ><br />
Vertical Pane Layout or View > Split Pane Layout.<br />
To display a specific line of code, select View > Go to Line or click . In<br />
the Go to dialog box, from the File list, select the file that contains the line<br />
you want to view. In the Go to Line field, enter the number of the line, for<br />
example, 33. The line of code is displayed in the center of the pane if it<br />
exists in a scrolling region.<br />
The Merge From is the revision or working file (as specified by the<br />
Reassign Merge Roles dialog box), from which blocks are merged. For<br />
information on the Reassign Merge Roles dialog box, see “Merging Two<br />
Revisions” on page 356.<br />
The Merge To is the revision or working file (as specified by the Reassign<br />
Merge Roles dialog box), that the Merge Result file is based on.<br />
The Merge Result file is the file that blocks are merged into, and can be<br />
edited and saved to contain the output of the merge.<br />
The Differences mode uses only the vertical layout, which displays the two<br />
selected revisions side-by-side for <strong>com</strong>parison.<br />
103
Chapter 4: Source Integrity Interfaces<br />
Modes<br />
104<br />
Shortcut Menu<br />
MKS Visual Difference supports standard shortcut menus in Merge mode.<br />
To display the menu of actions you can perform, select a line in any pane<br />
and right click. MKS Visual Difference displays the applicable shortcut<br />
menu.<br />
The available actions displayed in the shortcut menu depends on whether<br />
you right click within the Merge From, Merge To or the Merge Result view<br />
panes.<br />
Shortcut Keys<br />
For some operations, shortcut keys are provided. Shortcut keys appear on<br />
menus opposite their operation names.<br />
NOTE<br />
In MKS Visual Difference, the operations available in a given menu depends on<br />
which mode you are working in. For information on modes, see “Modes” on<br />
page 104<br />
Status Bar<br />
The status bar provides a short summary of the difference blocks for Merge<br />
From and Merge To. It shows insertions, deletions, and changes with a<br />
number indicating how many of each exist.<br />
MKS Visual Difference can operate in two different modes depending on<br />
what it is being used for. Since Visual Difference is both a differencing tool<br />
and a merging tool, it has a Differences mode and a Merge mode.<br />
The Differences mode is used to <strong>com</strong>pare revisions and display the<br />
differences between them. No merging operations are available in the<br />
Differences mode.<br />
The Merge mode is used for all merging related operations and editing.<br />
You can toggle between the two modes in Visual Difference by selecting<br />
File > Differences or File > Merge, or you can click the Differences or Merge<br />
buttons on the toolbar.<br />
When you switch from the Differences mode to the Merge mode, the<br />
Reassign Merge Roles dialog box is displayed. This dialog box allows you<br />
to specify which revision you want as the Merge From and Merge To.<br />
A bullet is displayed next to the mode currently being used.<br />
u s e r g u i d e
Preferences<br />
MKS Visual Difference Interface<br />
Preferences allow you to customize the appearance of the MKS Visual<br />
Difference interface. You can configure general preferences, and font and<br />
color preferences.<br />
Setting General Preferences<br />
Under the General tab, you can set your options for the toolbar, line<br />
numbers, and tab expansion.<br />
To set general preferences in the MKS Visual Difference interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box is displayed.<br />
2 To configure your toolbar, click the Toolbar button.<br />
3 Configure the toolbar as desired. For more information, “To customize<br />
the main toolbar in the graphical user interface” on page 82.<br />
NOTE<br />
The toolbar buttons available for configuration varies depending on which<br />
mode you are working in.<br />
105
Chapter 4: Source Integrity Interfaces<br />
106<br />
4 Under Miscellaneous, set the following options:<br />
To display line numbers in the revisions, select Show Line<br />
Numbers. Clear this option if you want to remove line numbers.<br />
To set the tab size, in the Expand tabs to field enter the number of<br />
spaces you want tabs expanded to. Changes to tab size do not<br />
take effect until the tool is invoked again.<br />
5 Click OK to save your changes.<br />
Setting Font and Color Preferences<br />
Under the Fonts & Colors tab, you can set your preferences for the colors<br />
and fonts used in MKS Visual Difference.<br />
You can use the Reset to Defaults button to reset the display to the original<br />
fonts and colors.<br />
To set font and color preferences in the MKS Visual Difference<br />
interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box is displayed.<br />
2 Click the Fonts & Colors tab.<br />
The Fonts & Colors panel is displayed.<br />
u s e r g u i d e
MKS Visual Merge Interface<br />
3 To change the background color of a particular block (Unchanged,<br />
Inserted, Deleted, Changed, Edited), click the corresponding<br />
Background button.<br />
The Choose Background Color dialog box is displayed.<br />
4 Set your preferred color on the Swatches, HSB or RGB tabs. The<br />
Preview at the bottom of the dialog box displays the selected color for<br />
you.<br />
5 Click OK to set the background color.<br />
6 To change the foreground color of a particular block (Unchanged,<br />
Inserted, Deleted, Changed, Edited) click the corresponding<br />
Foreground button.<br />
The Choose Foreground Color dialog box is displayed.<br />
7 Set your preferred color on the Swatches, HSB, or RGB tabs.<br />
The Preview at the bottom of the dialog box displays the selected color<br />
for you.<br />
8 Click OK to set the foreground color.<br />
9 To set the display font for a particular block (Unchanged, Inserted,<br />
Deleted, Changed, Edited), click the corresponding Font button.<br />
The Choose Font dialog box is displayed.<br />
10 Select the Font, Style and Size from the corresponding list.<br />
The Sample at the bottom of the dialog box displays the selected font,<br />
style and size for you.<br />
11 Click OK to set the font.<br />
12 Click OK to save your font and color changes.<br />
MKS Visual Merge Interface<br />
MKS Visual Difference is updated with your changes.<br />
The MKS Visual Merge tool is a graphical application that allows you to<br />
<strong>com</strong>pare revisions and perform edits and merges. It offers three-way<br />
differencing of revisions where conflicts are highlighted for you. It features<br />
in-line editing, differencing, and conflict resolution. It is similar to MKS<br />
Visual Difference in look and feel, but includes many advanced features<br />
used for <strong>com</strong>plicated merging tasks.<br />
107
Chapter 4: Source Integrity Interfaces<br />
Application<br />
Window<br />
108<br />
The three-way differencing in MKS Visual Merge allows you to <strong>com</strong>pare<br />
the two revisions selected for merging, the Merge From revision and the<br />
Merge Base revision, as well as the working file or Merge To file for the<br />
member. The revisions are highlighted for differences and conflicts<br />
allowing you to choose the blocks you want to merge from each revision<br />
and save to the Merge Result file.<br />
Conflicts, if they exist, are highlighted and appear with a red flag next to<br />
the line number. With all three files available for <strong>com</strong>parison in MKS<br />
Visual Merge you can decide which of the conflicting blocks you want to<br />
incorporate into the merge result, or you can use the editing utilities to<br />
insert blocks from each revision into the merge result.<br />
Similar to the Source Integrity application window, MKS Visual Merge<br />
contains a number of <strong>com</strong>mon features explained in this section.<br />
u s e r g u i d e
Title Bar<br />
MKS Visual Merge Interface<br />
The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />
the left side, the title bar displays the name of the application and the<br />
member name. On the right side, the title bar displays the standard<br />
Windows buttons for minimizing, resizing, and closing the application<br />
window.<br />
Menu Bar<br />
The menu bar is located directly below the title bar. Each menu contains<br />
available <strong>com</strong>mands. MKS Visual Merge has four menus in the menu bar:<br />
File, Edit, View, and Help. The list of available <strong>com</strong>mands varies depending<br />
on the function you are performing.<br />
Toolbar<br />
Immediately below the menu bar is a toolbar that provides easy access to<br />
the most <strong>com</strong>monly used MKS Visual Merge <strong>com</strong>mands. Toolbar functions<br />
are carried out by clicking the appropriate toolbar button. Point to a button<br />
to display a ToolTip that contains a description for that button.<br />
Located immediately below the toolbar buttons are display controls that<br />
change what appears in the view panes. These controls are also available in<br />
the View menu.<br />
NOTE<br />
The Ignore Whitespace, Ignore Case, and Ignore Blanks display controls can<br />
only be adjusted before making changes to the Merge Result. Once you begin<br />
to make changes, (merging or editing), the options be<strong>com</strong>e unavailable.<br />
Difference Blocks is a list containing all of the difference blocks in the<br />
revisions, including the type of difference (change, insertion, deletion,<br />
and conflict), and the line numbers.<br />
To move to a particular difference block, select the block from the<br />
Difference Blocks list.<br />
The selected difference block is displayed.<br />
Ignore Whitespace ignores tab and white space throughout the lines in<br />
the revisions.<br />
Ignore Case ignores the type case when <strong>com</strong>paring the revisions.<br />
109
Chapter 4: Source Integrity Interfaces<br />
110<br />
NOTE<br />
Under the View menu, the following controls are also available:<br />
Synchronize Scrolling causes all of the panes to scroll simultaneously. This<br />
control is enabled by default.<br />
Ignore Blanks ignores white space at the end of lines, and changes it to white<br />
space elsewhere in the line.<br />
View Panes<br />
The view panes appear within the MKS Visual Merge window and display<br />
the revisions you are <strong>com</strong>paring including line numbers for navigation<br />
(line numbers can be removed through the MKS Visual Merge options).<br />
There are two different layouts for the view panes, vertical layout and split<br />
layout.<br />
The vertical layout displays the three revisions side-by-side for<br />
<strong>com</strong>parison. You can view the Merge From, Merge Base and Merge To<br />
revisions.<br />
The split layout displays in four panes for <strong>com</strong>parison. The Merge From,<br />
Merge Base and Merge To revisions are displayed side-by-side, and the<br />
Merge Result appears below them.<br />
In the Merge Result pane a number immediately to the left of the line<br />
numbers appears to indicate which revision — Merge From (1), Merge Base<br />
(2) or Merge To (3) — the block originated from.<br />
To change the layout of the view panes, use the View vertical layout and<br />
View split layout buttons on the toolbar, or select View > Vertical Pane<br />
Layout or View > Split Pane Layout.<br />
To display a specific line of code, select View > Go to Line or click . In<br />
the Go to dialog box, from the File list, select the file that contains the line<br />
you want to view. In the Go to Line field, enter the number of the line, for<br />
example, 33. The line of code is displayed in the center of the pane if it<br />
exists in a scrolling region.<br />
The Merge From is the revision from which blocks are merged.<br />
The Merge Base is the revision you want to use as the base for calculating<br />
differences against the Merge From to be applied to the Merge To.<br />
The Merge To is the working file, and is used as the basis for the Merge<br />
Result file.<br />
The Merge Result file is the file that blocks are merged into, and can be<br />
edited and saved to contain the output of the merge.<br />
u s e r g u i d e
Preferences<br />
Scrolling in the view panes is synchronized.<br />
Shortcut Menu<br />
MKS Visual Merge Interface<br />
MKS Visual Merge supports standard shortcut menus. To display the<br />
menu of actions you can perform, select a line in any pane and right click.<br />
MKS Visual Difference displays the applicable shortcut menu.<br />
The available actions displayed in the shortcut menu depends on whether<br />
you right click within the Merge From, Merge Base, and Merge To view<br />
panes or the Merge Result view pane.<br />
Shortcut Keys<br />
For some operations, shortcut keys are provided. Shortcut keys appear on<br />
menus opposite their operation names.<br />
Status Bar<br />
The status bar provides a short summary of the difference blocks for each<br />
revision. It shows conflicts, insertions, deletions, and changes with a<br />
number indicating how many of each exist in each file. For example, the<br />
summary, Inserted: 0/2/5, means that in the Merge From there are no<br />
insertions, while in the Merge Base there are two insertions, and in the<br />
Merge To there are 5 insertions.<br />
Conflict statistics show the total number of conflicts.<br />
Preferences allow you to customize the appearance of the MKS Visual<br />
Merge interface. You can configure general options and font and color<br />
options.<br />
Setting General Preferences<br />
Under the General tab, you can set your preferences for the toolbar, line<br />
numbers, and tab spacing.<br />
To set general preferences in the MKS Visual Merge interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box is displayed.<br />
111
Chapter 4: Source Integrity Interfaces<br />
112<br />
2 To configure your toolbar, click the Toolbar button.<br />
Customize the toolbar as desired. For more information, see “To<br />
customize the main toolbar in the graphical user interface” on page 82.<br />
3 Under Miscellaneous, set the following options:<br />
To display line numbers in the revisions, select Show Line<br />
Numbers. Clear this option if you want to remove line numbers.<br />
To set the tab size, in the Expand tabs to field enter the number of<br />
spaces you want tabs expanded to. Changes to tab size do not<br />
take effect until the tool is invoked again.<br />
4 Click OK to save your changes.<br />
Setting Font and Color Options<br />
Under the Fonts & Colors tab, you can set your options for the colors and<br />
fonts used in MKS Visual Merge.<br />
You can use the Reset to Defaults button to reset the display to the original<br />
fonts and colors.<br />
To set font and color preferences in the MKS Visual Merge interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box is displayed.<br />
2 Click the Fonts & Colors tab.<br />
The Fonts & Colors panel is displayed.<br />
u s e r g u i d e
MKS Visual Merge Interface<br />
3 To change the background color of a particular block (Unchanged,<br />
Inserted, Deleted, Changed, Edited, Conflict), click the corresponding<br />
Background button.<br />
The Choose Background Color dialog box is displayed.<br />
4 Set your preferred color on the Swatches, HSB or RGB tabs. The<br />
Preview at the bottom of the dialog box displays the selected color for<br />
you.<br />
5 Click OK to set the background color.<br />
6 To change the foreground color of a particular block (Unchanged,<br />
Inserted, Deleted, Changed, Edited, Conflict), click the corresponding<br />
Foreground button.<br />
NOTE<br />
The foreground color changes the color of the text that is displayed in a<br />
particular block. If the foreground and background colors of a block are the<br />
same you will not be able to read the text.<br />
The Choose Foreground Color dialog box is displayed.<br />
7 Set your preferred color on the Swatches, HSB or RGB tabs. The<br />
Preview at the bottom of the dialog box displays the selected color for<br />
you.<br />
8 Click OK to set the foreground color.<br />
113
Chapter 4: Source Integrity Interfaces<br />
114<br />
9 To set the display font for a particular block (Unchanged, Inserted,<br />
Deleted, Changed, Edited, Conflict) click the corresponding Font<br />
button.<br />
The Choose Font dialog box is displayed.<br />
10 Select the Font, Style and Size from the corresponding list. The Sample<br />
at the bottom of the dialog box displays the selected font, style and<br />
size for you.<br />
11 Click OK to set the font.<br />
12 Click OK to save your font and color changes.<br />
MKS Visual Merge is updated with your changes.<br />
u s e r g u i d e
Project and Sandbox<br />
Operations<br />
KEY TERMS: project, subproject, sandbox, member, revision, variant, build,<br />
development path, deferred operations, keywords<br />
5<br />
This chapter describes the Source Integrity project related features you<br />
will use in your day-to-day activities, such as creating a sandbox.<br />
The tasks you can perform are restricted by the permissions assigned to<br />
you by your administrator. If you find you are unable to perform necessary<br />
operations, you must contact the administrator responsible for<br />
Source Integrity at your site to review the permissions assigned to you.<br />
NOTE<br />
If your administrator has assigned you a new set of permissions, you must<br />
update your permissions by disconnecting your Source Integrity client and<br />
then reconnecting to Integrity Server. An out-of-date permission set may cause<br />
unpredictable behavior when attempting to open projects or perform other<br />
tasks.<br />
This chapter provides details on the following:<br />
“Working With Projects” on page 116<br />
“Working With Subprojects” on page 124<br />
“Working With Sandboxes” on page 135<br />
115
Chapter 5: Project and Sandbox Operations<br />
Working With Projects<br />
Creating a<br />
Project<br />
116<br />
When you are ready to place a related group of files under Source Integrity<br />
control, the first step is to create a project. A project is a container for a<br />
group of files that reside on the Integrity Server.<br />
In addition to creating a project, you can import an existing project from an<br />
earlier version of Source Integrity or, if a project is no longer active, you<br />
may also want to drop the project from the Integrity Server.<br />
This section provides the procedures for:<br />
creating a project<br />
importing a project<br />
dropping a project<br />
adding a project<br />
opening or viewing a project<br />
When creating a project, you only create the project file. To add files, or<br />
members to the project, you must create a sandbox that points to the project<br />
and then add the project members through that sandbox.<br />
You can create a project from the Registered Projects view. With the<br />
Registered Projects view open, click Create (or select Create from the<br />
shortcut menu), and the Specify Project to Create dialog box is displayed.<br />
Specify the location for the project (by typing the path and file name, or<br />
browsing), and specify a project name, then click OK. The project appears<br />
in a Project view.<br />
TIP<br />
For suggested best practices on creating projects, see the Integrity Server<br />
Installation and Administration <strong>Guide</strong>.<br />
To create a project in the graphical user interface<br />
1 Do one of the following:<br />
Select File > New Project.<br />
Click .<br />
The Specify the Project to Create dialog box is displayed.<br />
u s e r g u i d e
Importing a<br />
Project<br />
Working With Projects<br />
2 If your administrator has specified multiple server roots, from the<br />
Look in list select a location where you want to create the project.<br />
Otherwise, go to the next step.<br />
If multiple server roots are specified, the Look in list contains the<br />
possible choices. Once you select a location, its name appears in<br />
brackets in the title bar of the dialog box, for example, (c:/). For<br />
more information on multiple server roots, consult your administrator<br />
or see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />
3 Enter the path and file name, or browse to a location on the Integrity<br />
Server where you want to create the project, for example, C:/<br />
Aurora_Program.<br />
If the project path does not exist on the Integrity Server, the new path<br />
is created.<br />
NOTE<br />
When you specify the name of the new project, Source Integrity automatically<br />
assigns the .pj file extension. If you specify a .pj file extension in uppercase<br />
or mixed case, Source Integrity replaces that file extension with the correct<br />
lowercase .pj file extension. If you specify a file extension other than .pj,<br />
Source Integrity appends the .pj file extension to the file name. For backwards<br />
<strong>com</strong>patibility, you can import projects and subprojects that do not have the<br />
.pj file extension.<br />
4 Enter a name for the project, for example, project.pj.<br />
IMPORTANT<br />
A single project name can be used only once in the same location.<br />
Source Integrity does not distinguish between project names differing only in<br />
case. For example, if project.pj already exists in C:/Aurora_Program,<br />
you cannot create PROJECT.pj in C:/Aurora_Program. This results in an<br />
error and Source Integrity asks you to specify a different path and file name, or<br />
a different project name.<br />
5 Click OK.<br />
The project appears in a Project view (see “Project View” on page 457).<br />
You can now create a sandbox, then add members to the sandbox. For<br />
more information, see “Working With Sandboxes” on page 135.<br />
When you create a project, it is automatically registered with the Integrity<br />
Server; however, projects created with older versions of Source Integrity<br />
must be imported and registered with the Integrity Server.<br />
117
Chapter 5: Project and Sandbox Operations<br />
118<br />
Importing a project registers it with the Integrity Server. Once a project is<br />
imported, Source Integrity <strong>com</strong>mands can be performed upon it.<br />
NOTE<br />
To add projects that were previously dropped from Source Integrity, see<br />
“Adding a Project” on page 120.<br />
To import a project in the graphical user interface<br />
1 Do one of the following:<br />
Select Tools > Manage Projects.<br />
Click .<br />
The Registered Projects view is displayed.<br />
TIP<br />
The Registered Projects view supports standard shortcut menus. To display<br />
the menu of actions you can perform, select a sandbox and then right click it.<br />
Source Integrity displays the applicable shortcut menu.<br />
2 Click Import.<br />
The Select One or More Projects dialog box is displayed.<br />
3 Browse to the project file on the server.<br />
To filter the dialog box to display only project files, from the Files of<br />
type list, select MKS Source Integrity Project files.<br />
NOTE<br />
If your connection to the Integrity Server is disconnected while you are<br />
browsing for a file, the file browser does not show any files or directories.<br />
4 Click OK.<br />
u s e r g u i d e
Dropping a<br />
Project<br />
IMPORTANT<br />
Working With Projects<br />
You cannot import a project that is already registered. Source Integrity does<br />
not distinguish between project names that differ only in case. For example, if<br />
project.pj is already registered in C:/Aurora_Program, you cannot<br />
import PROJECT.pj into C:/Aurora_Program. This results in an error and<br />
Source Integrity does not import the project.<br />
The project is added to the Registered Projects view.<br />
When a project has outlived its usefulness or just does not belong on the<br />
Integrity Server anymore, you can remove it at any time.<br />
To drop a project means that the project is no longer registered with the<br />
Integrity Server. Once a project is dropped, it cannot be accessed with<br />
Source Integrity. However, if the project is not deleted and you can import<br />
it again if you want it to be accessible in Source Integrity.<br />
To add projects that were previously dropped from Source Integrity, see<br />
“Adding a Project” on page 120.<br />
To drop a project in the graphical user interface<br />
1 Do one of the following:<br />
Select Tools > Manage Projects.<br />
Click .<br />
The Registered Projects view appears.<br />
119
Chapter 5: Project and Sandbox Operations<br />
Adding a<br />
Project<br />
120<br />
TIP<br />
The Registered Projects view supports standard shortcut menus. To display<br />
the menu of actions you can perform, select a sandbox and then right click it.<br />
2 Select the project you want to drop.<br />
3 Click Drop.<br />
The Confirm Project Drop dialog appears.<br />
4 To drop the selected project click Yes.<br />
The project is removed from the list of registered projects.<br />
5 Close the Registered Projects view.<br />
You can add the following:<br />
a dropped project that still resides on the server (in the repository)<br />
an existing subproject as a top-level project<br />
a project that was imported but not added to Source Integrity<br />
To add a project in the graphical user interface<br />
1 Do one of the following:<br />
Select Tools > Manage Projects.<br />
Click .<br />
The Registered Projects view appears.<br />
2 Click Add.<br />
The Select One or More Projects dialog box appears.<br />
3 Enter the path and file name, or browse to a location on the Integrity<br />
Server the project is located.<br />
4 Click OK.<br />
The project is added to Source Integrity and is displayed on the<br />
Regular panel in the Registered Projects view.<br />
5 Close the Registered Projects view.<br />
u s e r g u i d e
Opening or<br />
Viewing a<br />
Project<br />
Working With Projects<br />
Opening a project in the graphical user interface allows you to view the<br />
project and perform certain <strong>com</strong>mands with its members.<br />
The Project view displays the members and subprojects of a project.<br />
To open a project in the graphical user interface<br />
1 Do one of the following:<br />
Select File > Open Project.<br />
Click .<br />
The Open Project Wizard appears.<br />
2 In the Project Name field, enter the path and name of the project, or<br />
click Select and choose a project from the list.<br />
3 Click Next.<br />
The second panel of the Open Project Wizard appears.<br />
121
Chapter 5: Project and Sandbox Operations<br />
122<br />
4 Select the type of project you want to open by clicking a project type<br />
option. The available types are:<br />
Normal opens a project based upon the current state of the project.<br />
Variant opens a project based upon a specific revision of the<br />
master project and is used for branching off the main<br />
development path.<br />
NOTE<br />
From the Development Path Name list, select a development path<br />
name, for example, Aurora_Beta_Variant.<br />
The Variant option is unavailable if there are no available development paths.<br />
To create a development path, see “Creating a Development Path” on page 147.<br />
A variant project must be based on a top-level project only.<br />
Build opens a static project based upon a specific revision of the<br />
master project that is used for building or testing the project, but<br />
not for further development.<br />
To specify a revision to base the build project, do one of the<br />
following:<br />
Select Revision, and from the list, select a project revision<br />
number, for example, 1.1.<br />
Select Label, and from the list, select a project label.<br />
u s e r g u i d e
TIP<br />
Working With Projects<br />
You can also open a project from the Registered Projects view. With the<br />
Registered Projects view open, select the project you want to open and click<br />
Open, or select Open from the shortcut menu. The project appears in a Project<br />
view.<br />
5 To accept the options, click Finish. To modify the options, click Back.<br />
The project opens in a Project view.<br />
To open a project in the Web interface<br />
1 Select File > Open Project.<br />
The Select Project dialog box is displayed.<br />
2 Click to highlight the project you want to open.<br />
3 Click OK.<br />
The project opens.<br />
To open a variant project, select File > Open Variant Project. You can<br />
also open a variant project from a Project view by choosing Project ><br />
Open Variant Project.<br />
To open a build project, select File > Open Build Project.<br />
You can also use the active links in the title bar to navigate within a<br />
project. To navigate to a subproject, click the applicable portion of the<br />
link.<br />
123
Chapter 5: Project and Sandbox Operations<br />
Working With Subprojects<br />
Creating a<br />
Subproject<br />
124<br />
Source Integrity allows you to create large projects <strong>com</strong>posed of smaller<br />
<strong>com</strong>ponent projects. These smaller projects are known as subprojects.<br />
Subprojects behave in the same way as projects, and can be accessed with<br />
most project and sandbox <strong>com</strong>mands.<br />
Once you create a subproject, it is considered a member of the project. For<br />
suggested best practices on creating subprojects, see the Integrity Server<br />
Installation and Administration <strong>Guide</strong>.<br />
Components usually fall into the following categories:<br />
source files for creating individual executables<br />
source files for <strong>com</strong>mon libraries<br />
graphic files<br />
documentation<br />
This section discusses the procedures for:<br />
creating a subproject<br />
adding a subproject<br />
creating a shared subproject<br />
configuring a subproject<br />
dropping a subproject<br />
You can create a new subproject with the Subproject > Create <strong>com</strong>mand.<br />
Once you have created a subproject you can add members and configure<br />
the subproject if necessary.<br />
To create a subproject in the graphical user interface<br />
1 With a Project or Sandbox view open, select the project or sandbox to<br />
add the subproject to.<br />
2 From a Project view, select Project > Subproject > Create.<br />
From a Sandbox view, select Sandbox > Subproject > Create.<br />
The Specify the Subproject to Create on localhost:portnumber dialog<br />
box is displayed.<br />
3 Select the subproject to create, or enter the name for the subproject, for<br />
example, applications.pj.<br />
u s e r g u i d e
Adding a<br />
Subproject<br />
4 Click OK.<br />
Working With Subprojects<br />
The subproject appears in a Project or Sandbox view (see “Project<br />
View” on page 457 or “Sandbox View” on page 469).<br />
You can now add members to the subproject as you would with a<br />
project.<br />
When a subproject is dropped from a project the subproject’s historical<br />
information remains. The Subproject > Add <strong>com</strong>mand allows you to re-add<br />
a dropped subproject.<br />
NOTE<br />
In a variant sandbox, you cannot add an existing subproject that does not have<br />
the variant defined.<br />
To add a subproject in the graphical user interface<br />
1 With a Project or Sandbox view open, select the project or sandbox<br />
you want to add the subproject to.<br />
2 From a Project view, select Project > Subproject > Add.<br />
From a Sandbox view, select Project > Subproject > Add.<br />
The Add Subproject Wizard appears.<br />
125
Chapter 5: Project and Sandbox Operations<br />
126<br />
3 In the Subproject Location field, browse to the subproject to add, or<br />
enter the path and name for the subproject, for example,<br />
Libra_Project/applications.pj, and click Next.<br />
Click Finish to add the subproject without specifying a type. The<br />
subproject is added as the default type. For information on the default<br />
type, see your administrator.<br />
The Specify Type of Subproject to Add panel appears.<br />
4 Select one of the following options for the type of subproject you want<br />
to add:<br />
Normal adds a subproject based upon the current state of the<br />
subproject.<br />
Variant adds a subproject based upon a specific revision of the<br />
master project and is used for branching off the main<br />
development path.<br />
NOTE<br />
From the Development Path Name list, select a development path<br />
name, for example, Libra_Beta_Variant.<br />
The Variant option is unavailable if there are no available development paths.<br />
To create a development path, see “Creating a Development Path” on page 147.<br />
u s e r g u i d e
Adding a<br />
Shared<br />
Subproject<br />
Working With Subprojects<br />
Build adds a static subproject based upon a specific revision of the<br />
project that is used for building or testing the project, but not for<br />
further development.<br />
To specify a revision to base the build project, do one of the<br />
following:<br />
Select Revision, and from the list select a project revision<br />
number, for example, 1.1.<br />
Select Label, and from the list select a project label.<br />
Default creates a project based on the type specified in the server<br />
preferences. For information on what the default type is, see your<br />
administrator.<br />
5 To accept the options, click Finish. To modify the options, click Back.<br />
The subproject appears in the Project or Sandbox view (see “Project<br />
View” on page 457 or “Sandbox View” on page 469).<br />
A shared subproject is a subproject that is a member of more than one<br />
project. Source Integrity allows you to share a subproject between two or<br />
more projects by referencing the original subproject. A shared subproject<br />
allows you to access <strong>com</strong>mon members across many projects. Shared<br />
subprojects are not required to be located within the same directory<br />
structure or project hierarchy.<br />
The first step to sharing a subproject is to select an existing subproject, or<br />
master project that you want to add to another project. This existing<br />
subproject will continue to reside within its original master project, but<br />
will be referenced by the other project and shown as a shared subproject.<br />
The next step is creating a new subproject file to represent the shared<br />
subproject. In reality, a shared subproject is actually a new project which<br />
shares the same archive as its original project.<br />
Once you have selected a subproject you want to share and the project you<br />
want to share it to, you can decide what type of subproject you want it to<br />
be to <strong>com</strong>plete the operation.<br />
A shared subproject functions the same as an unshared subproject and is<br />
accessible by the most <strong>com</strong>mands.<br />
127
Chapter 5: Project and Sandbox Operations<br />
128<br />
NOTE<br />
When working with shared subprojects, Source Integrity uses the actual name<br />
of the subproject in the file system, rather than its relative name in the project<br />
hierarchy. This enhances the portability of change packages across different<br />
projects.<br />
You cannot import members into a shared subproject from its shared location.<br />
Shared subprojects (out-of-tree subprojects) that were created in a previous<br />
version of Source Integrity (Standard Edition) are detected as they are<br />
accessed by Source Integrity Enterprise Edition without disrupting the<br />
operation. The format of these subprojects is retained until you change or<br />
update it to the new format by re-configuring it.<br />
To add a shared subproject in the graphical user interface<br />
1 With a Project or Sandbox view open, select the project or sandbox<br />
you want to add the shared subproject to.<br />
2 From a Project view, select Project > Subproject > Add Shared.<br />
From a Sandbox view, select Sandbox > Subproject > Add Shared.<br />
The Add Shared Subproject Wizard appears.<br />
u s e r g u i d e
Working With Subprojects<br />
3 In the Project to be Shared field, click Select to browse to the<br />
subproject to add, or enter the path and name for the subproject, for<br />
example, c:/Libra_Program/tools/project.pj.<br />
The subproject you select in this step is the subproject you want to<br />
reference.<br />
4 Click Next.<br />
The Specify the subproject to add panel appears.<br />
5 In the Subproject Name field, browse or enter the path for the location<br />
of the shared subproject.<br />
The project you select in this step is the project that you want to share<br />
the subproject (selected in step 3) to.<br />
NOTE<br />
The Subproject Name must be in-tree.<br />
6 Click Next.<br />
Click Finish to add the shared subproject without specifying a type.<br />
The subproject is added as the default type. For information on the<br />
default type, see your administrator.<br />
The Specify Type of Subproject to Add panel appears.<br />
129
Chapter 5: Project and Sandbox Operations<br />
130<br />
7 Select one of the following options for the type of shared subproject<br />
you want to add:<br />
Normal adds a subproject based upon the current state of the<br />
subproject.<br />
Variant adds a subproject based upon a specific revision of the<br />
master project and is used for branching off the main<br />
development path.<br />
NOTE<br />
From the Development Path Name list, select a development path<br />
name, for example, Aurora_Beta_Variant.<br />
The Variant option is unavailable if there are no available development paths.<br />
To create a development path, see “Creating a Development Path” on page 147.<br />
Build adds a static subproject based upon a specific revision of the<br />
master project that is used for building or testing the project, but<br />
not for further development.<br />
To specify a revision to base the build project, do one of the<br />
following:<br />
Select Revision, and from the list select a project revision<br />
number.<br />
Select Label, and from the list select a project label.<br />
u s e r g u i d e
Configuring a<br />
Subproject<br />
Working With Subprojects<br />
Default adds a subproject based on the parent project type.<br />
8 To accept the options, click Finish. To modify the options, click Back.<br />
The shared subproject appears in the Project or Sandbox view with a<br />
shared icon (Project view: or Sandbox view: ). For more<br />
information, see “Project View” on page 457 or “Sandbox View” on<br />
page 469.<br />
Once you have created or added a subproject you can modify the type to<br />
suit your needs. For example, you can change a normal subproject to a<br />
build subproject in order to suspend development, or you can change a<br />
variant subproject to a normal subproject to continue development on the<br />
main trunk.<br />
Any changes you make when configuring a subproject will affect the<br />
project as a whole and any shared subprojects within it. Deltas reflecting<br />
these changes appear in the Project or Sandbox view. Some of the<br />
differences you may see include:<br />
Members existing in the original version and configured version of the<br />
subproject display a delta if the working revision in the sandbox is<br />
different from the new member revision.<br />
Members that did not exist in the original version of the subproject but<br />
do exist in the configured subproject display a delta to indicate that<br />
the sandbox does not have a working file for the new member.<br />
Members that existed in the original version of the subproject but do<br />
not exist in the configured subproject display as former members.<br />
Subproject that existed as members in the original version of the<br />
subproject but do not exist in the configured subproject display as<br />
former subprojects.<br />
Resynchronize the subproject to resolve the differences.<br />
When configuring shared subprojects it is important to remember that each<br />
shared subproject is configured independently. This means that when you<br />
configure a shared subproject that the re-configuration does not change all<br />
instances of that subproject. For example, if the subproject tools.pj is<br />
shared in the two projects, Aurora.pj and Libra.pj, a change to the<br />
configuration of Aurora/tools.pj does not affect the configuration of<br />
Libra/tools.pj.<br />
Configured subprojects, or frozen subprojects that were created in a<br />
previous version of Source Integrity (Standard Edition) are detected as<br />
they are accessed by Source Integrity Enterprise Edition without<br />
disrupting the operation. The format of these subprojects is retained until<br />
you change or update it to the new format by re-configuring it.<br />
131
Chapter 5: Project and Sandbox Operations<br />
132<br />
To configure a subproject in the graphical user interface or the Web<br />
interface<br />
1 With a Project or Sandbox view open, select the subproject you want<br />
to configure.<br />
2 In the GUI, from a Project view, select Project > Subproject ><br />
Configure.<br />
In the GUI, from a Sandbox view, select Sandbox > Subproject ><br />
Configure.<br />
In the Web, from a Project view, select Project > Configure Subproject.<br />
The Configure Subproject dialog box is displayed.<br />
3 Under Options, select the configuration type you want for the<br />
subproject. The available types are:<br />
Normal configures a subproject based upon the current state of the<br />
subproject.<br />
Variant configures a subproject based upon a specific revision of<br />
the master project and is used for branching off the main<br />
development path.<br />
NOTE<br />
From the Development Path Name list, select a development path<br />
name, for example, Aurora_Beta_Variant.<br />
The Variant option is unavailable if there are no available development paths.<br />
To create a development path, see “Creating a Development Path” on page 147.<br />
u s e r g u i d e
Dropping a<br />
Subproject<br />
Working With Subprojects<br />
Build configures a static subproject based upon a specific revision<br />
of the master project that is used for building or testing the<br />
project, but not for further development.<br />
To specify a revision to base the build project, do one of the<br />
following:<br />
Select Revision, and from the list select a project revision<br />
number.<br />
Select Label, and from the list select a project label.<br />
Reset to default value configures a subproject to the parent project<br />
type.<br />
4 Click OK to <strong>com</strong>plete the operation.<br />
The subproject is re-configured.<br />
Subprojects configured as a build subproject appear with a build<br />
project icon (Project view: or Sandbox view: ), and the revision<br />
or label that the build project is based on, for example, tools.pj<br />
(1.1).<br />
Subprojects configured as a variant subproject appear with a variant<br />
project icon (Project view: or Sandbox view: ), and the<br />
development path that the variant project is based on, for example,<br />
tools.pj (release_1).<br />
Subprojects configured as a normal subproject appear with the<br />
standard project and sandbox icons.<br />
Depending on what the default project type is, subprojects configured<br />
as default projects, may or may not appear with a different icon.<br />
If a subproject has outlived its usefulness or just does not belong in a<br />
project anymore, you can remove it at any time. You can remove a<br />
subproject through a Project view or through a Sandbox view. For more<br />
details on removing a subproject through a Sandbox view, see “Dropping<br />
Members From a Project” on page 172.<br />
After you remove a subproject from a project, it is no longer listed as part<br />
of the sandbox or master project, but the subproject’s history remains in the<br />
project record, in case you need to recreate an earlier version of the project.<br />
IMPORTANT<br />
When you remove a subproject, you also remove all members within that<br />
subproject.<br />
133
Chapter 5: Project and Sandbox Operations<br />
134<br />
To drop a subproject in the graphical user interface<br />
1 With the Manage Projects dialog box, or a Project or Sandbox view<br />
open, select one or more subprojects to remove.<br />
NOTE<br />
In the Manage Projects dialog box, you can only drop one subproject at a time.<br />
2 From the Manage Projects dialog box, click Drop.<br />
From the Project view, select Project > Drop Members.<br />
From the Sandbox view, select Sandbox > Drop Members.<br />
The Drop Subproject dialog box is displayed.<br />
3 Under Options, select Confirm Drop to have Source Integrity prompt<br />
you to confirm the operation.<br />
The Confirm Drop message appears.<br />
If you did not select the Confirm Drop option on the Drop Subproject<br />
dialog box, the Confirm Drop dialog box does not appear.<br />
4 To remove the subproject, click Yes (for multiple subprojects, click Yes<br />
to All).<br />
The project is updated to reflect the removed subproject.<br />
The subproject is removed from the project.<br />
To retain the subproject, click No (for multiple subprojects, click No to<br />
All).<br />
u s e r g u i d e
Working With Sandboxes<br />
Creating a<br />
Sandbox<br />
Working With Sandboxes<br />
When you want to work with a project, you create a sandbox. A sandbox<br />
resides on your local drive and is a mirror image of the project. Working in<br />
a sandbox allows you to operate in your own workspace without<br />
interfering with the work of others.<br />
Different types of sandboxes are available for different types of<br />
development. Normal sandboxes are useful for the sequential development<br />
of a project over the long or short term. Variant sandboxes are useful for<br />
branching off the main development path. Build sandboxes are useful for<br />
testing a specific revision of the project.<br />
Once a sandbox is created, you can add files or members to that sandbox.<br />
The project is then updated to reflect the addition of new project members.<br />
The following provides procedures for creating sandboxes—normal,<br />
variant, and build—using the graphical user interface. You can also create<br />
subsandboxes.<br />
A subsandbox is a sandbox within a sandbox. Subsandboxes are typically<br />
smaller <strong>com</strong>ponents of a sandbox, such as documentation or graphic files.<br />
NOTE<br />
While it is possible to create more than one sandbox in a single directory it is<br />
not re<strong>com</strong>mended.<br />
To create a sandbox in the graphical user interface<br />
1 Do one of the following:<br />
Select File > New Sandbox.<br />
Click .<br />
The Create Sandbox Wizard appears.<br />
2 In the Project Name field, enter the path and name of the project, or<br />
click Select.<br />
If you have a Project view open, the project path and name appears in<br />
the Project Name field. If you click Select, the Select One or More<br />
Projects dialog box is displayed.<br />
3 Select a project.<br />
135
Chapter 5: Project and Sandbox Operations<br />
136<br />
4 Click Next.<br />
The second panel of the Create Sandbox Wizard appears.<br />
5 In the Sandbox Location field, enter the directory in which you want<br />
to create the sandbox, or click Browse, then browse to a location on<br />
your local drive.<br />
6 Under Options, choose sandbox options by selecting check boxes.<br />
The available options are:<br />
Populate Sandbox adds working files to the sandbox.<br />
Recurse into Subprojects creates subsandboxes recursively from<br />
subprojects and populates the subsandboxes with working files.<br />
If you choose not to recurse into subprojects when creating a<br />
sandbox, subprojects are still created but they are not populated<br />
with working files. To create working files for members at a later<br />
date, use the Resynchronize <strong>com</strong>mand (see “Resyncing<br />
Members” on page 197).<br />
Line Terminator determines the type of ASCII character<br />
Source Integrity recognizes as the end of a line of text: Native (or<br />
automatic, the default setting), LF (or line feed, primarily for<br />
UNIX applications), or CR/LF.<br />
u s e r g u i d e
Working With Sandboxes<br />
Make Sandbox Sparse creates a sandbox with no working files. A<br />
sparse sandbox does not retain working files even when a<br />
member is checked in, and continues to function this way<br />
throughout its use.<br />
View Sandbox After Creation displays the sandbox after it is<br />
created.<br />
Make Sandbox Shared creates a sandbox that is available for<br />
sharing with other users (see “Sharing Sandboxes” on page 139).<br />
7 Click Next.<br />
If the directory you specify does not exist, a Confirm Create Sandbox<br />
Location dialog box is displayed asking if you want to create the new<br />
location. To create the path, click Yes. To change the sandbox location,<br />
click No.<br />
The third panel of the Create Sandbox Wizard appears.<br />
8 Select the type of sandbox you want to create by clicking a sandbox<br />
type option. The available types are:<br />
Normal creates a sandbox based upon the current state of the<br />
project.<br />
137
Chapter 5: Project and Sandbox Operations<br />
Importing a<br />
Sandbox<br />
138<br />
Variant creates a sandbox based upon a specific revision of the<br />
master project and is used for branching off the main<br />
development path. For more information on variant sandboxes,<br />
see “Creating Variant Sandboxes and Development Paths” on<br />
page 146.<br />
NOTE<br />
From the Development Path Name list, select a development path<br />
name, for example, Aurora_Beta_Variant.<br />
The Variant option is unavailable if there are no available development paths.<br />
To create a development path, see “Creating a Development Path” on page 147.<br />
Build creates a static sandbox based upon a specific revision of the<br />
master project that is used for building or testing the project, but<br />
not for further development. For more information on build<br />
sandboxes, see “Using Build Sandboxes” on page 150.<br />
To specify a revision to base the build project, do one of the<br />
following:<br />
Select Revision, and from the list select a project revision<br />
number, for example, 1.1.<br />
Select Label, and from the list select a project label.<br />
9 To accept the options, click Finish.<br />
The sandbox appears in a Sandbox view (see “Sandbox View” on<br />
page 469).<br />
To modify the options, click Back.<br />
You can also create a sandbox from the Registered Sandboxes view.<br />
With the Registered Sandboxes view open, click Create. Specify the<br />
server name and port number in the Specify Server Connection dialog<br />
box, and click OK. The Create Sandbox Wizard appears. To finish<br />
creating your sandbox <strong>com</strong>plete previous steps 2 through 9.<br />
When you create a sandbox, it is automatically registered with the Integrity<br />
Server; however, sandboxes created with earlier versions of<br />
Source Integrity must be imported to register them with the Integrity<br />
Server.<br />
u s e r g u i d e
Sharing<br />
Sandboxes<br />
NOTE<br />
The master project of the sandbox must also be registered with the<br />
Integrity Server before the sandbox is imported.<br />
To import a sandbox in the graphical user interface<br />
1 Do one of the following:<br />
Select Tools > Manage Sandboxes.<br />
Click .<br />
The Registered Sandboxes view is displayed.<br />
Working With Sandboxes<br />
TIP<br />
The Registered Sandboxes view supports standard shortcut menus. To display<br />
the menu of actions you can perform, select a sandbox and right click.<br />
Source Integrity displays the applicable shortcut menu.<br />
2 Click Import.<br />
The Select One or More Files dialog box is displayed.<br />
3 Browse to the sandbox file on your local drive.<br />
If your connection to the Integrity Server is disconnected while you<br />
are browsing for a file, the file browser does not show any files or<br />
directories.<br />
4 Click Open.<br />
The Specify Server Connection dialog box is displayed.<br />
5 Specify the host name and port number for the server on which the<br />
corresponding project resides.<br />
6 Click OK.<br />
The sandbox is added to the Registered Sandboxes view.<br />
Source Integrity provides a way to create a <strong>com</strong>mon build location using<br />
shared sandboxes. Shared sandboxes provide developers and buildmasters<br />
with a window into a single shared work location.<br />
The following is the intended use for sandbox sharing:<br />
1 There exists a <strong>com</strong>mon build location that contains files that<br />
developers need to access in order to build their source before<br />
checking it into the build.<br />
139
Chapter 5: Project and Sandbox Operations<br />
140<br />
2 <strong>User</strong>s share the sandbox by importing it through the network or<br />
mapped drive. The imported sandbox is by reference, so no working<br />
files are stored on the users’ machines.<br />
3 <strong>User</strong>s who imported the shared sandbox now have access to the<br />
working files in the shared sandbox, and use those files to create test<br />
builds on their machines without requiring those files to be stored<br />
locally.<br />
NOTE<br />
To share sandboxes, all clients connecting to the shared sandbox must be<br />
Source Integrity 8.6 or later.<br />
Imported<br />
Sandbox 1<br />
References<br />
Working Files<br />
Shared Sandbox<br />
Common<br />
Location With<br />
Working Files<br />
Imported<br />
Sandbox 2<br />
References<br />
Working Files<br />
Sandbox Shared With Multiple <strong>User</strong>s<br />
<strong>User</strong>s sharing sandboxes:<br />
must select View > Scan for Changes for the project to update their<br />
Sandbox view to see the true state of the sandbox (top level project<br />
updates recursively)<br />
should all be in same time zone<br />
can see deferred operations in their sandbox views that were created<br />
by other users, but those operations do not appear as entries in their<br />
individual Change Package views for the change packages<br />
corresponding to the deferred operations<br />
u s e r g u i d e<br />
Imported<br />
Sandbox 3<br />
References<br />
Working Files
Working With Sandboxes<br />
must have read and write permission for the shared location where<br />
the shared sandbox resides, as well as for the files in that location<br />
cannot submit deferred operations in the sandbox made by other users<br />
using the Submit Change Package <strong>com</strong>mand (their deferred and lock<br />
entries do not appear in your Change Package view)<br />
only top level sandboxes can be shared (Shared, Sparse, and<br />
Line Terminator options in the Sandbox Information view are disabled<br />
for subsandboxes)<br />
CAUTION<br />
In a shared sandbox, to prevent overwriting another user’s changes, do not<br />
make changes to working files for member revisions that are locked by another<br />
user.<br />
Configuring a Sandbox as Shared<br />
For users to share a sandbox, the creator of the sandbox must first<br />
configure the sandbox as shared. Only the sandbox creator can configure<br />
the sandbox as shared. When a top-level sandbox is configured to be<br />
shared, all subsandboxes are shared as well. Subsandboxes cannot be<br />
individually configured to be shared or not shared.<br />
To share out a sandbox in the graphical user interface<br />
1 Do one of the following:<br />
From a Sandbox view, select Sandbox > Properties > Sandbox<br />
Information.<br />
From the Registered Sandboxes view, select a sandbox. Then<br />
click Information.<br />
The Sandbox Information dialog box is displayed with the General<br />
panel displayed.<br />
2 Enable the Shared option.<br />
IMPORTANT<br />
If clients on different platforms are sharing a sandbox, you may need to modify<br />
the line terminator setting to ensure <strong>com</strong>patibility with file editors.<br />
141
Chapter 5: Project and Sandbox Operations<br />
142<br />
3 To finish and share the sandbox, click OK.<br />
If the Sandbox view is open, the title displays Shared. Otherwise, the<br />
the title displays Shared the next time the sandbox is opened in a<br />
Sandbox view.<br />
Importing a Shared Sandbox<br />
Access another user’s shared sandbox using the Import <strong>com</strong>mand. Do so by<br />
browsing through the network to the user’s shared sandbox directory. For<br />
more information on importing sandboxes, see “Importing a Sandbox” on<br />
page 138. When you share another user’s sandbox, no working files are<br />
stored on your local machine.<br />
Only import another user’s sandbox through the network if that sandbox<br />
has sharing enabled. For more information, see “Configuring a Sandbox as<br />
Shared” on page 141.<br />
Only top-level sandboxes can be imported as shared.<br />
Removing Sharing From a Sandbox<br />
When there is no longer a need for a <strong>com</strong>mon location, the creator of the<br />
sandbox can remove the sharing from the sandbox. When sandbox sharing<br />
is removed, users sharing that sandbox no longer have access to it.<br />
Only the creator of the shared sandbox can remove sharing (or edit<br />
sandbox information).<br />
To remove sharing from a sandbox in the graphical user interface<br />
1 Do one of the following:<br />
From a Sandbox view, select Sandbox > Properties > Sandbox<br />
Information.<br />
From the Registered Sandboxes view, select a sandbox. Then<br />
click Information.<br />
The Sandbox Information dialog box is displayed with the General<br />
panel displayed.<br />
2 Clear the Shared option selection.<br />
u s e r g u i d e
Dropping a<br />
Sandbox<br />
3 To finish and remove sharing, click OK.<br />
Working With Sandboxes<br />
The sandbox is no longer shared. If the Sandbox view is open, Sharing<br />
is removed from the title. Otherwise, the next time you open the<br />
Sandbox view, Sharing does not appear in the title bar.<br />
<strong>User</strong>s sharing the sandbox each receive an error message stating the<br />
change in sharing configuration the next time they attempt to access<br />
the sandbox or perform an operation on its contents.<br />
When a sandbox has outlived its usefulness or just does not belong<br />
anymore, you can remove it at any time.<br />
To drop a sandbox means that the sandbox is no longer registered with the<br />
Integrity Server. Once a sandbox is dropped, it cannot be accessed with<br />
Source Integrity. However, the sandbox is not deleted and you can import<br />
it again if you want it to be accessible in Source Integrity.<br />
To drop a sandbox in the graphical user interface<br />
1 Do one of the following:<br />
Select Tools > Manage Sandboxes.<br />
Click .<br />
The Registered Sandboxes view is displayed.<br />
TIP<br />
The Registered Sandboxes view supports standard shortcut menus. To display<br />
the menu of actions you can perform, select a sandbox and right click.<br />
Source Integrity displays the applicable shortcut menu.<br />
2 Select the sandbox you want to drop.<br />
3 Click Drop.<br />
4 Confirm that you want to drop the sandbox by clicking OK.<br />
The Drop Sandbox dialog box is displayed.<br />
143
Chapter 5: Project and Sandbox Operations<br />
Opening or<br />
Viewing a<br />
Sandbox<br />
144<br />
5 From the Delete list, select a delete option.<br />
Nothing does not delete any files from the sandbox directory.<br />
Sandbox Members Only deletes the sandbox members.<br />
Entire Sandbox Directory deletes the sandbox directory and<br />
all of its contents.<br />
CAUTION<br />
If you select the Entire Sandbox Directory option, Source Integrity<br />
deletes all files in the sandbox directory and all files in subdirectories, if any<br />
exist. This includes files not created by Source Integrity.<br />
6 To drop the sandbox, click OK (for multiple sandboxes, click OK to<br />
All).<br />
The sandbox is removed from the list of registered sandboxes.<br />
7 Close the Registered Sandboxes view.<br />
Opening a sandbox in the graphical user interface allows you to view and<br />
work with the sandbox and its members.<br />
The Sandbox view displays the members and subsandboxes of a single<br />
sandbox.<br />
To see a list of recently used files, select File from the menu bar. Recently<br />
used files displays in a numbered list at the bottom of the File menu.<br />
To open a sandbox in the graphical user interface<br />
1 Do one of the following:<br />
Select File > Open Sandbox.<br />
Click .<br />
The Select a Sandbox dialog box is displayed.<br />
u s e r g u i d e
Viewing Which<br />
Sandbox<br />
Locked a<br />
Member<br />
2 To select a sandbox type, click a sandbox type tab.<br />
Regular is a sandbox used for regular development.<br />
Working With Sandboxes<br />
Variant is a sandbox used for branching off the main development<br />
path of another project.<br />
Build is a sandbox based upon a specific revision of a project, but<br />
is used for building or testing the project, not for further<br />
development.<br />
3 Select a sandbox from the displayed sandbox list.<br />
4 Click OK.<br />
The sandbox opens in a Sandbox view.<br />
You can also open a sandbox from the Registered Sandboxes view.<br />
With the Registered Sandboxes view open, select the sandbox you<br />
want to open, and click Open, or select Open from the shortcut menu.<br />
The sandbox appears in a sandbox view (see “Sandbox View” on<br />
page 469).<br />
You can view which sandbox locked a member from the Member History<br />
view, Locks view, Project view and Sandbox view, by setting the view<br />
preferences to display the information. For more information, see “View<br />
Preferences” on page 61.<br />
145
Chapter 5: Project and Sandbox Operations<br />
Creating Variant<br />
Sandboxes and<br />
Development<br />
Paths<br />
146<br />
While a regular sandbox is based on the current state of the project, a<br />
variant sandbox is based on a previously checkpointed revision of the<br />
project. When you create a variant sandbox, you choose a checkpoint<br />
(snapshot) of your project and use it as the starting point for a new branch<br />
of development. Source Integrity allows you to do this by defining a new<br />
development path.<br />
NOTE<br />
You must define the development path before creating the variant sandbox.<br />
A development path is an identifier given to a new branch of software<br />
development. Changes made through the new development path are kept<br />
separate from the main development trunk unless you choose to merge<br />
them later.<br />
Source Integrity allows multiple developers to point to the same<br />
development path, each using their own variant sandbox. In the variant<br />
sandbox, you can see the current state of the project along that<br />
development path and the changes made by other developers using it.<br />
When a variant sandbox is created for the first time, it is also created for all<br />
subprojects, reserving the assigned name as a unique identifier and<br />
ensuring no two paths can share the same name.<br />
Development paths are useful for:<br />
extracting and building from previous versions of a project<br />
building customized versions of a product<br />
performing branch development work<br />
performing post-release maintenance<br />
fixing defects in previous versions of the product<br />
testing new features outside of the main development path<br />
experimenting with research that does not affect regular development<br />
Variant sandboxes pointing to a post-release development path allow you<br />
to make changes to a previous revision of a project. Any fixes, patches, or<br />
changes you check in go into a branch and do not affect the main project,<br />
unless you later choose to merge them.<br />
u s e r g u i d e
Working With Sandboxes<br />
Preventing Conflicts With Other Development Paths<br />
Development paths can conflict when developers working on different<br />
paths need to work on the same revision of a file. There is also the potential<br />
for conflict when development paths access the same member histories.<br />
For example, the current version of a project includes utility.dll,<br />
version 1.4 and the variant sandbox contains utility.dll, version 1.3.<br />
Both versions are stored in the same member history.<br />
Other potential conflicts include:<br />
a developer with a variant sandbox locks revisions needed by<br />
developers working in regular sandboxes<br />
work on one development path locks out those working on a different<br />
development path<br />
To prevent potential conflicts, Source Integrity assumes that locking a<br />
revision is appropriate when you check out a revision when working in a<br />
variant sandbox. You are further prompted to branch the member history<br />
when you check out a revision with a potential conflict, for example:<br />
The project Apex.pj, version 1.2 was checkpointed at version 1.2 and<br />
included utility.dll version 1.2 and library.lib version 1.3.<br />
A development path is created for Apex.pj, version 1.2.1.1 and<br />
includes the same file versions for utility.dll (version 1.2) and<br />
library.lib (version 1.3).<br />
Branching the member history gives each development path its own copy<br />
of the revision.<br />
Creating a Development Path<br />
A variant sandbox uses a project checkpoint as the starting point for new<br />
development. In Source Integrity, you define a new development path for<br />
the variant sandbox.<br />
The development path:<br />
identifies a new direction of development<br />
includes a new revision history<br />
keeps changes separate from the main development path or trunk<br />
You must first create and name the development path, and then create the<br />
variant sandbox.<br />
147
Chapter 5: Project and Sandbox Operations<br />
148<br />
To create a development path in the graphical user interface and Web<br />
interface<br />
1 With a Project, Project History, or Sandbox view open, select the<br />
project you want to create the development path.<br />
To create a variant sandbox using the graphical user interface, see<br />
“Creating a Sandbox” on page 135. from. For more information on<br />
working with subprojects, see “Working With Subprojects” on<br />
page 124.<br />
NOTE<br />
You cannot create a development path based on a variant subproject or build<br />
subproject.<br />
2 In the GUI, from a Project view, select Project > Development Path ><br />
Create.<br />
3 In the Web, from a Project view, select Project > Create Development<br />
Path.<br />
From a Project History view, select History > Create Development Path.<br />
From a Sandbox view, select Sandbox > Development Path > Create.<br />
The Create Development Path dialog box is displayed.<br />
u s e r g u i d e
Removing a<br />
Development<br />
Path<br />
Working With Sandboxes<br />
4 Under Revision, click the desired tab, then modify the Create<br />
Development Path options.<br />
The Selection tab allows you to select the revision to create a<br />
development path from.<br />
To create a development path from a particular type of revision, select<br />
the Pre-Defined Revision option, then choose a revision type from the<br />
list.<br />
Head creates a development path from the head revision in the<br />
project.<br />
Trunk Tip creates a development path from the latest revision in<br />
the trunk, independent of default branch settings.<br />
To create a development path from a specific revision, select the<br />
Specific Revision option, then click the Revisions or Labels tabs to<br />
choose the revision.<br />
The Revisions tab allows you to create a development path from a<br />
specific revision.<br />
The Labels tab allows you to create a development path from a<br />
specific labeled revision.<br />
5 In the Development Path Name field, enter a name for the development<br />
path, for example, Aurora_Beta_Variant.<br />
6 To create the development path, click OK.<br />
The development path is created.<br />
Once a development path is no longer needed or useful, you can remove it<br />
at any time.<br />
CAUTION<br />
If you remove a development path that is referenced by a variant sandbox, you<br />
cannot open that variant sandbox.<br />
To remove a development path in the graphical user interface and<br />
Web interface<br />
1 With a Project, Project History, or Sandbox view open, select the<br />
project.<br />
149
Chapter 5: Project and Sandbox Operations<br />
Using Build<br />
Sandboxes<br />
150<br />
2 In the GUI, from a Project view, select Project > Development Path ><br />
Remove.<br />
In the Web, from a Project view, select Project > Remove Development<br />
Path.<br />
From a Project History view, select History > Remove Development<br />
Path.<br />
From a Sandbox view, select Sandbox > Development Path > Remove.<br />
The Remove Development Path dialog box is displayed.<br />
3 From the Development Path list, select a development path to remove.<br />
For more information, see “Controlling Projects” on page 258.<br />
4 To remove the development path, click OK.<br />
The development path is removed.<br />
After major milestones, such as product releases, you might want to<br />
recreate a static version of an entire project as it existed at some point in the<br />
past. You create a build sandbox, to build or test the project, not to begin<br />
further work along a new development path. Build sandboxes could be<br />
used for quality assurance or production to distribute files in a fixed<br />
configuration.<br />
A build sandbox is a sandbox associated with a particular project revision,<br />
and has no development path (since it is static and not meant for further<br />
development). No further development can be carried out in a build<br />
sandbox.<br />
To create a build sandbox, see “Creating a Sandbox” on page 135. To view<br />
a build project, see “Opening or Viewing a Project” on page 121.<br />
Within a build sandbox, you can:<br />
change labels and states<br />
resynchronize your sandbox<br />
<strong>com</strong>pare a member revision in the build sandbox to another revision<br />
u s e r g u i d e
Working With Sandboxes<br />
merge a member revision in the build sandbox with another revision<br />
(of course, you cannot check a merged file back into the build<br />
sandbox)<br />
check for differences between project revisions, such as changes to a<br />
project since it was last checkpointed<br />
When you create a build sandbox, you choose the project revision on<br />
which to base the build sandbox.<br />
However, with a build sandbox, you cannot:<br />
check out, lock, or check in members<br />
add or remove members<br />
set the development path<br />
calculate dependencies<br />
freeze or thaw members<br />
checkpoint the master project<br />
modify project or member attributes<br />
revert members<br />
set the member revision<br />
Each of these represents further development -- which requires a normal or<br />
variant sandbox.<br />
151
Chapter 5: Project and Sandbox Operations<br />
152<br />
u s e r g u i d e
Member Operations<br />
6<br />
KEY TERMS: member, revision, defer, resync, rename, lock, submit, resynchronize<br />
This chapter describes the Source Integrity member related features you<br />
will use in your day-to-day activities, such as adding and checking out<br />
members.<br />
The tasks you can perform are restricted by the permissions assigned to<br />
you by your administrator. If you find you are unable to perform necessary<br />
operations, you must contact the administrator responsible for<br />
Source Integrity at your site to review the permissions assigned to you.<br />
NOTE<br />
If your administrator has assigned you a new set of permissions, you must<br />
update your permissions by disconnecting your Source Integrity client and<br />
then reconnecting to Integrity Server. An out-of-date permission set may cause<br />
unpredictable behavior when attempting to open projects or perform other<br />
tasks.<br />
This chapter provides details on the following:<br />
“Managing Project Members” on page 154<br />
“Performing Member Operations” on page 176<br />
“Deferring Member Operations” on page 200<br />
“Comparing Differences” on page 205<br />
“Using Keywords” on page 207<br />
153
Chapter 6: Member Operations<br />
Managing Project Members<br />
Displaying<br />
Non-Members<br />
154<br />
You can manage project members by adding them to a project, importing<br />
them into Source Integrity, or dropping them from a project.<br />
From Source Integrity, you can view non-member files residing in your<br />
sandbox directory. The Non-Members view is useful when used<br />
recursively to identify all of the files that need to be placed under source<br />
control. By default, former members are not displayed in the<br />
Non Members view (to modify the default view settings, see “View<br />
Preferences” on page 61). You cannot display multiple Non-Members<br />
views for the same sandbox.<br />
The Non-Members view does not display files that are:<br />
deferred imported members<br />
deferred add members from archive<br />
pending members (add, add from archive, import)<br />
working files from members that are renamed but not resynchronized<br />
Non-members can only be viewed in a sandbox context, and not from any<br />
project view operation.<br />
To display non-member files located in the sandbox directory in the<br />
graphical user interface<br />
1 From a Sandbox view with a project, subproject, or member selected,<br />
select Sandbox > View Non-Members.<br />
The Non-Members view is displayed.<br />
2 By default, if no filter criteria is specified, all non-members are<br />
displayed. To specify filter criteria, see “Filtering Non-Member Files”<br />
on page 156.<br />
NOTE<br />
If a member is selected when you display the Non-Members view, the nonmembers<br />
for the nearest project or subproject are displayed. The project or<br />
subproject name used by the Non-Members view displays in the title bar.<br />
u s e r g u i d e
Managing Project Members<br />
The Non-Members view displays the following information:<br />
Closest Project displays the project or subproject, with file path,<br />
corresponding to the sandbox that is closest to the directory<br />
containing the file.<br />
Closest Sandbox displays the sandbox or subsandbox, with file<br />
path, that is closest to the directory containing the file.<br />
Member ID displays the default member name for the file as it<br />
would appear if it was added to the nearest project. In the case<br />
where the nearest project is a subproject, the relative path is<br />
displayed with the member name.<br />
Absolute Path displays the absolute file path of the file.<br />
Size displays the size of the file in bytes.<br />
Last Modified displays the date that the file was last modified.<br />
You can modify which columns appear in the Non-Members view by<br />
changing the Non-Members view preferences. For more information,<br />
see “View Preferences” on page 61. You can also right-click column<br />
headers and select columns to view.<br />
3 From the Non-Members view, you can perform the following<br />
operations:<br />
To add non-member files to the project, select the member in the<br />
list, then do one of the following:<br />
Select Non-Member > Add.<br />
Click .<br />
<br />
For more information, see “Adding Members to a Project” on<br />
page 157.<br />
To delete non-member files from the sandbox directory, select the<br />
members in the list, then do one of the following:<br />
Select Non-Member > Delete.<br />
Click .<br />
To edit non-member files, select the members in the list, then do<br />
one of the following:<br />
Select Non-Member > Edit.<br />
Click .<br />
155
Chapter 6: Member Operations<br />
156<br />
To exclude non-members by name, including non-members in<br />
subdirectories, select the non-member files in the list; then select<br />
Non-Member > Exclude with Name. Each file name appears in the<br />
Exclude panel in the Non-Member Filter the next time it is<br />
opened, though the information does not persist once the Non-<br />
Member view is closed.<br />
To exclude non-members by file extension, select the nonmembers<br />
in the list, then select Non-Member > Exclude with<br />
Extension. Files that do not have an extension are not excluded.<br />
The file extension appears in the Exclude panel in the Non-<br />
Member Filter the next time it is opened, though the information<br />
does not persist once the Non-Member view is closed. The<br />
wildcard (*) is used to specify all files of a specified extension, for<br />
example, *.java.<br />
To change the filter criteria (include and exclude settings), do one<br />
of the following:<br />
Select View > Filters.<br />
Click .<br />
For more information, see “Filtering Non-Member Files” on<br />
page 156.<br />
To refresh the contents of the view and display non-members<br />
further added to the sandbox directory, select View > Refresh.<br />
TIP<br />
To add selected non-member files to a project or subproject, with a Sandbox<br />
view open, drag the files from the Non Members view to the sandbox or<br />
subsandbox that corresponds to that project or subproject to which you want to<br />
add the project. Subdirectories that do not correspond to subprojects are not<br />
maintained.<br />
Filtering Non-Member Files<br />
You can add filters to determine what file types and folders are displayed<br />
in the Non-Member view.<br />
To filter non-member files in the graphical user interface<br />
1 Select View > Filters.<br />
The Non-Member Filter dialog box is displayed with the Include panel<br />
displayed.<br />
u s e r g u i d e
Adding<br />
Members to a<br />
Project<br />
NOTE<br />
Managing Project Members<br />
If filters are specified in the Non-Members view preferences, those filter<br />
settings appear in the Non-Member Filter dialog box. Only modifications made<br />
to the filter settings in the Preferences Configuration dialog box are saved. For<br />
more information, see “View Preferences” on page 61.<br />
The Include panel displays the Files and Directories tabs. You can add<br />
any <strong>com</strong>bination of files or directories to appear in the Non-Member<br />
view by adding them from the Include panel. By specifying files types<br />
to include, all file types not specified are excluded. To include all<br />
possible file types, clear the list.<br />
Similarly, on the Exclude panel, you can add files or directories to the<br />
exclude list, thereby preventing them from appearing in the<br />
Non-Member view. All file types not specified are included.<br />
In the event of a conflict, the values in the Exclude panel supersede the<br />
values in the Include panel.<br />
2 To add a file or directory, click the appropriate tab to display the<br />
panel.<br />
3 In the text entry field, enter the name of the file or directory, then click<br />
Add.<br />
TIP<br />
To specify all files with a specific file extension, use the wildcard (*), for<br />
example, *.java.<br />
To edit the name of the file or directory, select the name in the list,<br />
then click Edit.<br />
To remove a file or directory, select the name in the list, then click<br />
Remove.<br />
4 When you are finished, click OK to save the filter settings.<br />
Once you create a project, you can add files to it, making them members of<br />
that project.<br />
A project member is any file that is included in a project. Project members<br />
are displayed in the Project view.<br />
In the graphical user interface you can add members through the sandbox.<br />
In the Web interface, because sandboxes do not exist, you can add<br />
members through the project only.<br />
157
Chapter 6: Member Operations<br />
158<br />
Once you have added members to your project, you can check them out for<br />
editing, and then check them in to preserve your changes.<br />
Project members may be one of following types of files: archived (files<br />
under Source Integrity revision control), or subproject (another<br />
Source Integrity project).<br />
NOTE<br />
Adding a large number of members, or a directory with a large number of<br />
members to a Source Integrity sandbox may cause the client to stall if the<br />
Integrity Server does not have the re<strong>com</strong>mended system configuration.<br />
Consult your administrator for more information.<br />
A batch server-side utility, the si import <strong>com</strong>mand, is available for<br />
adding files. For more information on this advanced administration task,<br />
see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />
You can import members in the graphical user interface. For information<br />
on importing members, see “Importing Members” on page 169.<br />
You can also add members that are dropped from a project, using the<br />
working file as the file selection. If no working file exists, use the Add<br />
Members From Archive <strong>com</strong>mand to add the member from an archive<br />
located on the server (see “Adding Members From Archive to a Project” on<br />
page 166).<br />
You can also add a member to the project on a deferred basis. Deferring the<br />
addition of a member allows you to work with the member in your<br />
sandbox without causing any changes in the project. For more information<br />
on deferred operations, see “Deferring Member Operations” on page 200.<br />
NOTE<br />
If there is a deferred add operation associated with a member, you cannot view<br />
the member history for that member because it has not yet been added to the<br />
actual project.<br />
To add members in the graphical user interface<br />
1 With a Sandbox view open, select the sandbox or subsandbox you<br />
want to add members to.<br />
u s e r g u i d e
2 Do one of the following:<br />
Select Sandbox > Member > Add New Members.<br />
Click .<br />
The Add Members Wizard appears.<br />
3 To add a list of files to the project, click Add File.<br />
Managing Project Members<br />
4 To add a directory of files to the project, click Add Directory.<br />
The Select One or More Members to Add to the Sandbox dialog box is<br />
displayed.<br />
5 Select one or more files from the displayed file list, navigating to the<br />
desired directory if necessary.<br />
By default, Non-Members is selected in the Files of type list, which<br />
displays files that are located in the sandbox directory, but are not<br />
members.<br />
TIP<br />
To select multiple files in the graphical user interface, hold CTRL and click the<br />
left mouse button while highlighting each file you want to add.<br />
6 Click Open.<br />
The files are added to the members list. To remove files, select the files,<br />
then click Remove.<br />
159
Chapter 6: Member Operations<br />
160<br />
7 To add members recursively to the project, select Recurse Into<br />
Directories.<br />
8 To create subprojects, select Create Subproject.<br />
9 To <strong>com</strong>plete the operation, click Finish. To make changes, click Back.<br />
The Create Archive dialog box is displayed.<br />
10 Modify the following Create Archive options as necessary:<br />
In the Archive Description field, describe the purpose of the<br />
member archive.<br />
The archive description contains text that describes the purpose of<br />
an archive. Each time you create an archive, you can assign a<br />
description to it.<br />
To add the operation to a change package, from the Change<br />
Package list select a change package. To create a change package,<br />
click Create. For more information, see “Creating a Change<br />
Package” on page 217.<br />
In the Author field, if necessary, enter your user name. The user<br />
name specified in the Add Members <strong>com</strong>mand configuration<br />
appears by default.<br />
u s e r g u i d e
Managing Project Members<br />
In the Revision Number field, if necessary, enter a revision<br />
number for the member. Source Integrity creates the revision<br />
number 1.1 by default.<br />
In the Data Type field, select a file data type from the list. The<br />
archive is stored in the specified format. The available options are:<br />
Auto means the file data type is determined automatically by<br />
Source Integrity. For binary files less than 16K, specify the<br />
Binary file data type.<br />
Text is the file format expected by text file editors.<br />
Binary is file data type containing unprintable characters or<br />
lines too long to be handled by text editors.<br />
In the field for On Existing Archive, the following options apply in<br />
the event that Source Integrity finds an existing archive for the<br />
member you propose to add:<br />
Query <strong>User</strong> causes Source Integrity to ask you for<br />
confirmation on the action to be taken.<br />
Share Archive causes Source Integrity to use the existing<br />
archive for the new member.<br />
Create New Archive causes Source Integrity to create a<br />
new archive for the new member. Source Integrity<br />
automatically generates the archive name and leaves the old<br />
archive unmodified.<br />
Cancel causes Source Integrity to cancel the operation.<br />
To set the timestamp of the revision in the history to the<br />
timestamp of the working file, rather than the time the member<br />
was added, select the Save Working File Timestamp option.<br />
To close the associated change package, select the Close Change<br />
Package option.<br />
To replace literal values in the revision with keywords, select the<br />
Unexpand Keywords option.<br />
To defer adding the member to the project, select Defer Add. This<br />
delays the add operation in the project until the deferred<br />
operation is submitted (see “Submitting Deferred Operations” on<br />
page 202). The operation in the sandbox still takes place<br />
immediately and Source Integrity displays the icon.<br />
If the change package reviews are mandatory, select this option to<br />
create a pending entry for this operation at the time of change<br />
package submission. If this option is not enabled, Source Integrity<br />
161
Chapter 6: Member Operations<br />
162<br />
creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />
more information, see “Change Package Review Process” on<br />
page 240. When a deferred add member operation is submitted as<br />
part of a review, a pending member is created (see “Working<br />
With Pending Revisions” on page 335).<br />
To lock the revision, select the Lock Revision option.<br />
To keep the working file of a newly added member, select the<br />
Retain Working File option.<br />
11 To accept the information, click OK. To accept the information for<br />
multiple members, click OK to All.<br />
If you are adding a dropped member and the member’s archive still<br />
exists, the Existing archive detected dialog box is displayed informing<br />
you that an archive already exists for the member.<br />
12 Select from the following available options:<br />
To add the member and associate it with the existing archive,<br />
select Share the existing archive.<br />
To create a new archive for the member, select Create new archive.<br />
A new archive name is generated automatically and the old<br />
archive is left unmodified.<br />
To cancel the operation and not associate or create an archive,<br />
select Cancel this operation.<br />
13 To <strong>com</strong>plete the operation, click OK.<br />
To <strong>com</strong>plete an operation affecting multiple files, click OK to All.<br />
14 Repeat steps 1 to 12 for the remaining members, if necessary.<br />
The newly added members appear in your Sandbox view.<br />
u s e r g u i d e
To add members in the Web interface<br />
Managing Project Members<br />
1 With the project you want to add a member to open, do one of the<br />
following:<br />
Select Project > Add Member.<br />
Click .<br />
The Non-Member Selection dialog box is displayed.<br />
2 In the field, enter the name of the new member, including the file<br />
extension. For example, features.gif.<br />
3 Click OK.<br />
The Create Archive dialog box is displayed.<br />
4 Modify the following Create Archive options as necessary:<br />
In the Archive Description field, enter a description of the<br />
member.<br />
163
Chapter 6: Member Operations<br />
164<br />
IMPORTANT<br />
The Change Package options, such as Close Change Package, appear only<br />
if change packages are enabled.<br />
In the Author field, if necessary, enter your user name. The user<br />
name specified in the Add Members <strong>com</strong>mand configuration<br />
appears by default.<br />
In the Revision Number field, if necessary, enter a revision<br />
number for the member. Source Integrity creates the revision<br />
number 1.1 by default.<br />
In the Data Type field, select a file data type from the list. The<br />
archive is stored in the specified format. The available options are:<br />
Auto means the file data type is determined automatically by<br />
Source Integrity.<br />
Text is the file format expected by text file editors.<br />
Binary is file data type containing unprintable characters or<br />
lines too long to be handled by text editors.<br />
In the field for On Existing Archive, the following options apply in<br />
the event that Source Integrity finds an existing archive for the<br />
member you propose to add:<br />
Query <strong>User</strong> causes Source Integrity to ask you for<br />
confirmation on the action to be taken.<br />
Share Archive causes Source Integrity to use the existing<br />
archive for the new member.<br />
Create New Archive causes Source Integrity to create a<br />
new archive for the new member. Source Integrity<br />
automatically generates the archive name and leaves the old<br />
archive unmodified.<br />
Cancel causes Source Integrity to cancel the operation.<br />
In the field for Close Change Package, select one of the following<br />
options:<br />
Yes causes Source Integrity to close the associated change<br />
package.<br />
No causes Source Integrity to keep the associated change<br />
package open.<br />
u s e r g u i d e
Managing Project Members<br />
Confirm causes Source Integrity to ask you for confirmation<br />
on the action to be taken.<br />
To lock the revision, select the Lock Revision option.<br />
To replace literal values in the revision with keywords, select the<br />
Unexpand Keywords option.<br />
5 To accept the information, click OK.<br />
The Specify Source File dialog box is displayed.<br />
6 In the field, enter or browse to the source file for the member you want<br />
to add and click OK.<br />
If you are re-adding a dropped member and the member’s archive still<br />
exists, the Existing archive detected dialog box is displayed informing<br />
you that an archive already exists for the member.<br />
Select from the following available options:<br />
To add the member and associate it with the existing archive,<br />
select Share the existing archive.<br />
To create a new archive for the member, select Create new archive.<br />
A new archive name is generated automatically and the old<br />
archive is left unmodified.<br />
To cancel the operation and not associate or create an archive,<br />
select Cancel this operation.<br />
165
Chapter 6: Member Operations<br />
Adding<br />
Members From<br />
Archive to a<br />
Project<br />
166<br />
7 Click OK.<br />
8 Repeat steps 2 through 6 for other members you want to add to the<br />
project.<br />
The member is added and appears in your Project view.<br />
The Add Members From Archive <strong>com</strong>mand can be used for the following:<br />
Add previously dropped members without requiring a sandbox<br />
working file, while preserving the member history.<br />
Add a member that shares the history of another existing member,<br />
where the source member can be located in another project from the<br />
added member.<br />
Note the following about the <strong>com</strong>mand:<br />
It can be deferred when performed from a sandbox.<br />
It may be part of change package review (displayed as pending<br />
members in the project).<br />
It supports multiple selection of archives using the wizard.<br />
To add members from archive in the graphical user interface<br />
1 Do one of the following:<br />
With a Sandbox view open, select the sandbox or subsandbox you<br />
want to add members to.<br />
With a Project view open, select the project or subproject you<br />
want to add members to.<br />
2 Where applicable, do one of the following:<br />
Select Sandbox > Member > Add Members From Archive.<br />
Select Project > Member > Add Members From Archive.<br />
The Add Members From Archive wizard is displayed.<br />
u s e r g u i d e
Managing Project Members<br />
3 Members are added by specifying a member name with an archive<br />
location; together they define an entry that represents the destined<br />
member.<br />
Do one of the following:<br />
Click Select Archives to browse the repository for an archive.<br />
The Locate the Member Archive(s) dialog box is displayed.<br />
Select the archives corresponding to the members you want to<br />
add to the project. Archives are identified by the icon, and by<br />
default are located in the subdirectory named rcs.<br />
To add the selection as an entry in the list, click OK.<br />
In the first field, enter the name that represents the member being<br />
added. Then enter the archive location in the subsequent field<br />
(requires a valid location to an existing archive). The default<br />
archive location is the project selected in step 1.<br />
To add the entry to the list, click Add.<br />
Repeat to add additional entries. Added entries appear in the<br />
following tabular list:<br />
Member Name displays the name of the member (may differ from<br />
the archive file name).<br />
Archive Location displays the absolute path of the archive and the<br />
archive file name.<br />
167
Chapter 6: Member Operations<br />
168<br />
To remove an entry from the list, click Remove. Repeat to remove<br />
additional entries.<br />
4 When you are finished specifying entries to add, click Finish.<br />
The Add Member From Archive dialog box is displayed.<br />
5 The archive location is displayed in the Archive Location field. To<br />
change the location, specify a new location in the field, or click Locate<br />
Archive to select it.<br />
6 To add the operation to a change package, from the Change Package<br />
list, select a change package. To create a change package, click Create.<br />
For more information, see “Creating a Change Package” on page 217.<br />
7 To specify the revision for the added member, in the Revision Number<br />
field, enter the revision number.<br />
8 If desired, select from the following options:<br />
To create subprojects for each subdirectory encountered when<br />
adding members, select Create Subprojects.<br />
To recursively add members that exist in the specified directory<br />
location, select Recurse into Directories.<br />
To close the associated change package after the operation is<br />
<strong>com</strong>plete, select Close Change Package.<br />
To delay the add operations in the project until the deferred<br />
operation is submitted, select Defer Add From Archive (only<br />
available from Sandbox view).<br />
If reviews are mandatory and this option is not selected, a<br />
pending member (and a pending change package entry) is created<br />
when the operation is <strong>com</strong>pleted. For more information, see<br />
“Change Package Review Process” on page 240.<br />
u s e r g u i d e
Importing<br />
Members<br />
Managing Project Members<br />
9 When you are finished, click OK to add the member to the project. To<br />
add all subsequent members specified in the Add Members From<br />
Archive wizard, click OK to All.<br />
The member is added to the project. The member appears in the<br />
Sandbox or Project view.<br />
When you add a member, it is automatically registered with the Integrity<br />
Server; however, members added with earlier versions of Source Integrity<br />
or server resident files must be imported to register them with the Integrity<br />
Server.<br />
NOTE<br />
The master project must be registered with the Integrity Server before the<br />
member is imported.<br />
You cannot import members into a shared subproject. For more information on<br />
shared subprojects, see “Adding a Shared Subproject” on page 127.<br />
Do not use the Import Member <strong>com</strong>mand to add members that are dropped<br />
from a project. Instead, use the Add Members From Archive <strong>com</strong>mand (see<br />
“Adding Members From Archive to a Project” on page 166).<br />
To import a member in the graphical user interface<br />
1 Do one of the following:<br />
From a Project view, select Project > Member > Import Members.<br />
From a Sandbox view, select Sandbox > Member ><br />
Import Members.<br />
The Import Members Wizard is displayed.<br />
169
Chapter 6: Member Operations<br />
170<br />
2 To import a list of files to the project, click Add File.<br />
To import a directory and its contents, click Add Directory.<br />
The Select One or More Members to Import to the Project dialog box is<br />
displayed.<br />
3 Select one or more files from the displayed list, navigating to the<br />
desired directory if necessary. To select multiple files in the graphical<br />
user interface, hold CTRL and click the left mouse button while<br />
highlighting each file you want to add.<br />
NOTE<br />
If your connection to the Integrity Server is disconnected while you are<br />
browsing for a file, the file browser does not show any files or directories.<br />
4 Click Open.<br />
The files are added to the members list.<br />
To remove files, select the files, then click Remove.<br />
5 Click Next to specify options, or click Finish to import files without<br />
specifying options.<br />
The next panel of the Import Members Wizard appears.<br />
u s e r g u i d e
Managing Project Members<br />
6 To add the operation to a change package, from the Change Package<br />
list, select a change package. To create a change package, click Create.<br />
For more information, see “Creating a Change Package” on page 217.<br />
7 Under Options, you can specify the following information:<br />
In the Author field, if necessary, enter your user name. The user<br />
name specified in the <strong>com</strong>mand configuration appears by default.<br />
In the Data Type field, select a file data type from the list. The<br />
archive is stored in the specified format. The available options are:<br />
Auto: file type determined automatically by Source Integrity.<br />
Text: file format expected by text file editors.<br />
Binary: file containing unprintable characters or lines too<br />
long to be handled by text editors.<br />
In the Revision Number field, if necessary, enter a revision<br />
number for the member. Source Integrity creates the revision<br />
number 1.1 by default.<br />
In the Description field, enter a description of the member.<br />
To create subprojects, select the Create Subprojects option.<br />
To import members that exist in the specified directory location<br />
recursively, select the Recurse into Directories option.<br />
171
Chapter 6: Member Operations<br />
Dropping<br />
Members From<br />
a Project<br />
172<br />
To close the change package, select the Close Change Package<br />
option.<br />
To replace literal values in the revision with keywords, select the<br />
Unexpand Keywords option.<br />
To defer importing the member into the project, select Defer<br />
Import (only available when the operation is performed from a<br />
Sandbox view). This delays the import operation in the project<br />
until the deferred operation is submitted (see “Submitting<br />
Deferred Operations” on page 202). The operation in the sandbox<br />
still takes place immediately.<br />
If the change package reviews are mandatory, select this option to<br />
create a pending entry for this operation at the time of change<br />
package submission. If this option is not enabled, Source Integrity<br />
creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />
more information, see “Change Package Review Process” on<br />
page 240. When a deferred import member operation is<br />
submitted as part of a review, a pending member is created (see<br />
“Working With Pending Revisions” on page 335).<br />
To <strong>com</strong>plete the operation, click Finish. To make changes, click Back.<br />
The members appear in the Project or Sandbox view.<br />
If a member has outlived its usefulness or just does not belong in a project<br />
anymore, you can remove it at any time.<br />
In the graphical user interface, you can remove a member through a<br />
Sandbox view, or through a Project view. For more details on removing<br />
members through a Project view, see “Dropping a Subproject” on<br />
page 133.<br />
In the Web interface, because sandboxes do not exist, you can remove<br />
members through the Project view only.<br />
After you remove a member from a project, the member is no longer listed<br />
as part of the sandbox or master project, but the member’s history remains<br />
in the project record, in case you need to recreate an earlier version of the<br />
project.<br />
A former member is one that is dropped from the project. Source Integrity<br />
retains the member history for former members as part of the project.<br />
Depending on the options you select when dropping the member,<br />
Source Integrity can also delete the member’s working file and close any<br />
associated change package.<br />
u s e r g u i d e
NOTE<br />
Managing Project Members<br />
You cannot check in a member that is associated with a deferred drop<br />
operation.<br />
To drop a member in the graphical user interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
remove from the project or sandbox.<br />
2 From a Project view, do one of the following:<br />
Select Project > Drop Members.<br />
Click .<br />
From a Sandbox view, do one of the following:<br />
Select Sandbox > Drop Members.<br />
Click .<br />
The Drop Member dialog box is displayed.<br />
3 Choose the options you want to apply by selecting a check box.<br />
IMPORTANT<br />
The Change Package options, such as Close Change Package, appear only<br />
if change packages are enabled.<br />
The Drop Member options are:<br />
Change Package displays the associated change package, if any.<br />
Delete Working File deletes the working files of the members<br />
being dropped.<br />
173
Chapter 6: Member Operations<br />
174<br />
Confirm Drop prompts you to confirm the drop for each selected<br />
member.<br />
Defer Drop Member delays the drop operation in the project until<br />
the deferred operation is submitted (see “Submitting Deferred<br />
Operations” on page 202). The operation in the sandbox still takes<br />
place immediately and Source Integrity displays the icon.<br />
If the change package reviews are mandatory, select this option to<br />
create a pending entry for this operation at the time of change<br />
package submission. If this option is not enabled, Source Integrity<br />
creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />
more information, see “Change Package Review Process” on<br />
page 240.<br />
Close Change Package closes any associated change package.<br />
For information on the Integrity Manager integration see, “The<br />
Integrity Manager Integration” on page 371.<br />
4 To drop the selected member, click OK. To drop multiple members,<br />
click OK to All.<br />
IMPORTANT<br />
If change packages are enabled, the Associate Change Package with dropped<br />
member dialog box is displayed.<br />
The project or sandbox is updated to reflect the removed member, and<br />
the member is removed from the project.<br />
Once a member is dropped from a project, the change is not<br />
immediately reflected in other sandboxes. Other users must<br />
resynchronize their sandboxes. For more information on<br />
resynchronizing, see “Resyncing Members” on page 197.<br />
To drop a member in the Web interface<br />
1 From a Project view, select the member(s) you want to drop from the<br />
project by clicking the corresponding check box(es).<br />
2 Do one of the following:<br />
Select Project > Drop Members.<br />
Click .<br />
The Drop Member dialog box is displayed.<br />
u s e r g u i d e
Managing Project Members<br />
3 Choose the options you want to apply by selecting from the drop<br />
down list or a check box.<br />
The Drop Member options are:<br />
Change Package displays the associated change package, if any.<br />
Confirm Drop prompts you to confirm the drop for each selected<br />
member.<br />
Close Change Package closes any associated change package.<br />
Select one of the following options:<br />
Yes causes Source Integrity to close the associated change<br />
package.<br />
No causes Source Integrity to keep the associated change<br />
package open.<br />
Confirm causes Source Integrity to ask for confirmation<br />
about the action to be taken.<br />
4 To drop the selected member, click OK. To drop multiple members,<br />
click OK to All.<br />
If you selected the Confirm Drop option in step 3, the Confirm Drop<br />
dialog box is displayed.<br />
To drop the selected member(s), click Yes. To cancel the operation,<br />
click No.<br />
IMPORTANT<br />
If change packages are enabled, the Associate Change Package with dropped<br />
member dialog box is displayed. For information on the Integrity Manager<br />
integration see, “The Integrity Manager Integration” on page 371.<br />
175
Chapter 6: Member Operations<br />
Performing Member Operations<br />
Selecting<br />
Members<br />
176<br />
The member is dropped from the project. The project is updated to<br />
reflect the dropped member.<br />
During development, operations can be performed on project members.<br />
The Select <strong>com</strong>mand allows you to highlight any members of the current<br />
sandbox or project that meet specified selection criteria. Members selected<br />
with this <strong>com</strong>mand can be manipulated as a group by other<br />
Source Integrity <strong>com</strong>mands.<br />
To select specific members (graphical user interface only)<br />
1 With a Project or Sandbox view open, do one of the following:<br />
Select View > Select.<br />
Click .<br />
The Select Members dialog box is displayed.<br />
2 Choose the selection criteria you want to use by selecting a check box.<br />
The available options are:<br />
All Members selects all visible members.<br />
u s e r g u i d e
Performing Member Operations<br />
Changed Members selects members that have specific changes to<br />
them.<br />
To choose all members that have changes, from the Changed<br />
Members list, select All Changes.<br />
To choose all members that have working file changes, from the<br />
Changed Members list, select Working File Changes.<br />
To choose members whose working file revision is different from<br />
the member revision, from the Changed Members list, select Out<br />
of Sync Members.<br />
To choose members that have a new revision available, select New<br />
Revision Available from the Changed Members list.<br />
Members Locked By selects members locked by a specific user.<br />
To choose members locked by you, select from the Members<br />
Locked By list.<br />
To choose members locked by any user, select from the<br />
Members Locked By list.<br />
To choose members locked by a specific user, select a user name,<br />
for example, , from the Members Locked By list.<br />
Members With Label selects members with a specific label. Select a<br />
label from the Members With Label list.<br />
To choose members with any label, select from<br />
the Members With Label list.<br />
Members With State selects members with a specific state. Select a<br />
state from the Members With State list.<br />
Members With Attribute selects members with a specific attribute.<br />
Select an attribute from the Members With Attribute list.<br />
Deferred Items selects members with a deferred operation<br />
associated with it. Select a deferred operation from the Deferred<br />
Items list.<br />
Frozen Members selects all frozen members (members that are in<br />
a state that prevents changes being made to the member<br />
information).<br />
Members With Name selects members with a specific name. Enter<br />
a member name in the Members With Name field. Wildcards such<br />
as ? and * are supported.<br />
177
Chapter 6: Member Operations<br />
Checking Out a<br />
Member<br />
178<br />
Working revision branched from Member Revision selects<br />
members where the working file is on a branch from a given<br />
development path that is not the trunk development path.<br />
Members on Branch selects only members that are off the main<br />
development trunk.<br />
Pending Operations selects members with pending operations<br />
associated with them. Select the pending operation from<br />
the Pending Operations list.<br />
NOTE<br />
All options only apply to visible members. Members in unexpanded directories<br />
and subprojects are not selected.<br />
3 If two or more criteria are selected, they can be joined using the<br />
Logical AND or Logical OR option.<br />
4 To accept the selection criteria, click OK.<br />
The members are selected in the Project or Sandbox view.<br />
Before you can make changes to a member, you must first check it out.<br />
When you check out a revision, it is copied to a working file where you can<br />
view or modify its contents.<br />
Checking out a member extracts the contents of a revision in a member<br />
history and copies it to the working file. You can check out any revision by<br />
specifying either its revision number or label.<br />
If you already have a member checked out, and you have not made any<br />
changes to the member, Source Integrity does not perform the check out a<br />
second time. While the check out dialog does appear, the original check out<br />
stands.<br />
If you already have a member checked out, and you make changes, and<br />
then attempt to check out the member a second time, the Confirm Working<br />
File Update dialog box is displayed. If you want to retain your changes in<br />
the working file, click Yes (Yes to All for multiple members). If you do not<br />
want to retain your changes in the working file, click No (No to All for<br />
multiple members).<br />
In the Source Integrity Web interface, when you check out a revision, it is<br />
downloaded to a working file for editing. This occurs because sandboxes<br />
do not exist in the Web interface.<br />
u s e r g u i d e
To check out a member in the graphical user interface<br />
Performing Member Operations<br />
1 With a Sandbox or Member History view open, select one or more<br />
members to check out.<br />
2 From the Sandbox view, do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
From the Member History view, do one of the following:<br />
Select History > Check Out.<br />
Click .<br />
The Check Out dialog box is displayed.<br />
3 Click the desired tab, then modify the check out options. For more<br />
information, see “Check Out Options” on page 182.<br />
179
Chapter 6: Member Operations<br />
180<br />
NOTE<br />
If the change packages are enabled, the Change Package options appear on the<br />
General tab.<br />
4 To check out a single selected member, click OK. To check out all<br />
selected members, click OK to All.<br />
The member is checked out for editing, indicated by a lock icon, who<br />
locked the revision, and when it was locked.<br />
For information on advanced check in and check out operations, see<br />
“Branching and Merging Revisions” on page 337.<br />
To check out a member in the Web interface<br />
1 With a Project or Member History view open, select a member to<br />
check out by clicking the corresponding check box.<br />
NOTE<br />
In the Web interface, you can check out only one member per operation.<br />
Multiple member selections for check out cause an error.<br />
2 From the Project view, do one of the following:<br />
Select Member > Check Out<br />
Click .<br />
From the Member History view, do one of the following:<br />
Select History > Check Out.<br />
Click .<br />
The Check Out dialog box is displayed.<br />
u s e r g u i d e
Performing Member Operations<br />
3 Click the desired tab, then modify the check out options. For more<br />
information, see “Check Out Options” on page 182.<br />
NOTE<br />
If the change packages are enabled, the Change Package options appear on the<br />
General tab.<br />
4 To check out the member, click OK.<br />
The File Download dialog box is displayed.<br />
NOTE<br />
Once you have reached the file download stage of the check out operation, if<br />
you cancel the file download the member appears locked in the project. This<br />
occurs because the member is checked out and saved to a temporary location<br />
pending your download options.<br />
To unlock the member, if you have cancelled the file download, select the<br />
member by clicking the corresponding check box and then select Member ><br />
Unlock.<br />
181
Chapter 6: Member Operations<br />
182<br />
5 To download the member, select either of the following options:<br />
To open the member in its associated program immediately,<br />
select Open this file from its current location and click OK. The file<br />
is automatically sent to a temporary directory on your system.<br />
If the member you are checking out is a program or application<br />
(executable format) the File Download dialog box reappears with<br />
the following options:<br />
To run the program immediately, select Run this program<br />
from its current location and click OK.<br />
To save the program to a specified location on your local<br />
drive, select Save this Program to disk and click OK. The Save<br />
As dialog box is displayed. Specify a location for the program<br />
and click Save.<br />
To save the member to a specified location on your local drive,<br />
select Save this file to disk and click OK.<br />
The Save As dialog box is displayed. Specify a location for the<br />
member and click Save.<br />
The member is checked out for editing, indicated by a lock icon, who<br />
locked the revision, and when it was locked.<br />
Check Out Options<br />
Check Out Dialog Box Tab Revision to Check Out Options<br />
Selection Specifies which revision of the member to check out.<br />
To check out a pre-defined revision, click Pre-Defined Revision, then select a<br />
revision type from the list. The available options are:<br />
Member checks out the member revision, that is, the revision shown in the<br />
Sandbox view (this is the default). Head checks out the head revision. Trunk<br />
Tip checks out the latest member revision in the trunk. Member Branch Tip<br />
checks out the latest revision along the member’s current branch of development.<br />
To check out the latest revision, select Specific Revision. The Specific Revision<br />
option selects the most recent revision by default and displays it in brackets, for<br />
example, (1.1).<br />
To check out a revision by state, click Latest revision with State, then select a<br />
state from the list. The options in the list depend on the states configured by your<br />
administrator. This option is only available when Promotion is enabled by your<br />
administrator and is only visible in the graphical user interface.<br />
Revisions Allows you to select a specific member revision to check out. Select a revision<br />
from the member history.<br />
Labels Allows you to select a revision to check out by label. Select a label from the label<br />
list.<br />
u s e r g u i d e
Check Out Dialog Box Tab Revision to Check Out Options<br />
Project allows you set the member revision for the following options:<br />
Performing Member Operations<br />
Member revision on Variant allows you to make a specific variant revision the<br />
member revision.<br />
Member revision on a Project Build allows you to make a specific build revision<br />
the member revision.<br />
General Specifies the following general check out options:<br />
Lock Revision checks out a writable working file and ensures that other users<br />
cannot make changes to the revision by locking the revision. A revision must be<br />
checked out locked if strict locking is enabled, and you intend to make changes<br />
to it.<br />
Overwrite Working File if Changed (graphical user interface only) overwrites the<br />
working file even if it is modified.<br />
Overwrite if Deferred Operation Pending (graphical user interface only)<br />
overwrites the working file if the file has changed and there is a deferred<br />
operation pending on the member.<br />
Change Package options, appear only when change packages are enabled.<br />
Line Terminator (Web interface only) determines the type of line terminator<br />
Source Integrity uses when dealing with members: lf (or line feed, primarily for<br />
UNIX applications), or crlf.<br />
Advanced Specifies the following advanced check out options:<br />
Update Member Revision causes the revision you check out to be<strong>com</strong>e the new<br />
member revision of the project. For example, if the current project member is<br />
listed as Revision 2.3 and you check out Revision 1.7 with the Update Member<br />
Revision option selected, Revision 1.7 replaces Revision 2.3 as the member<br />
revision of the project.<br />
Force Creation of New Branch causes Source Integrity to force the creation of a<br />
new branch on check out.<br />
Merge Working File if Changed (graphical user interface only) automatically<br />
merges any changes from the revision being checked out into the working file.<br />
Restore Revision Timestamp (graphical user interface only) sets the timestamp<br />
of the working file, to which the revision is checked out, to the date and time of<br />
the revision in the history. If this option is not set, the working file’s timestamp is<br />
set to the current date and time.<br />
Create Branch if Variant causes Source Integrity to create a branch off of the<br />
revision you are checking out, if you are working in a variant sandbox and this is<br />
the first time the member is checked out. This reduces the possibility of locking<br />
conflicts with the member while work is being done in the variant and regular<br />
sandboxes.<br />
In the Web interface only, select from one of the following options:<br />
Select Yes to create a branch.<br />
Select No to not create a branch.<br />
Select Confirm to be asked for confirmation of the action to be taken.<br />
183
Chapter 6: Member Operations<br />
Check Out Dialog Box Tab Revision to Check Out Options<br />
Advanced continued Keywords allows you to select keyword expansion options when checking out a<br />
member. To leave keywords unexpanded, select Do Not Expand from the<br />
Keywords list. To replace keywords in the revision with literal values in the<br />
working file, select Expand from the Keywords list. To unexpand keywords in the<br />
working file, select Unexpand from the Keywords list.<br />
On Lock allows you to select a locked file for check out. To be asked to confirm<br />
the required action each time you check out a member, select Query <strong>User</strong>. To<br />
create a branch upon locking the working file, select Branch. To make the<br />
working file writable upon lock, select Make Writable. To be asked to confirm<br />
branching, select Query <strong>User</strong> to Branch. To be asked to confirm that you<br />
want the working file to be writable, select Query <strong>User</strong> to Make Writable.<br />
To cancel the On Lock option, select Cancel. By default, Source Integrity asks<br />
you to confirm the required action each time you check out a member.<br />
Viewing and<br />
Editing a<br />
Member<br />
184<br />
Merge Type (graphical user interface only) specifies the action to be taken when<br />
merging revisions. Select one of the following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken when<br />
merging upon check out.<br />
Cancel causes Source Integrity to cancel the operation.<br />
Automatic causes Source Integrity to perform an automatic merge. For more<br />
information on automatic merging, see “Step Two: Merge Branch” on page 345<br />
Manual causes Source Integrity to initiate the MKS Visual Merge tool.<br />
On Conflicts (graphical user interface only) specifies the action to be taken when<br />
merge conflicts occur. Select one of the following options from the list:<br />
Confirm causes Source Integrity to confirm the action to be taken when a<br />
conflict occurs.<br />
Cancel causes Source Integrity to cancel the operation when a conflict<br />
occurs.<br />
Mark For Later Merge causes Source Integrity to mark the files for<br />
merging at another time, allowing you to resolve the conflict first.<br />
Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in<br />
the resulting merged revision.<br />
Error causes Source Integrity to display an error message prompt.<br />
You can open a member or a deferred member in your default editor<br />
application.<br />
The default editor is the editor used to display a working file or revision,<br />
for example, Microsoft Windows Notepad or MKS Toolkit’s vi for<br />
Windows editor.<br />
Whether you can edit or just view the contents of the member depends<br />
upon whether you have read-only or read-write access to the member. You<br />
must have a member locked in your name to be able to check it in.<br />
u s e r g u i d e
Performing Member Operations<br />
Changes to member information are automatically displayed in the<br />
Sandbox view. You can also use the Scan for Changes feature to display<br />
changes if the client is offline from the server or if you need to see changes<br />
on your local drive.<br />
To view or edit a member in the graphical user interface<br />
1 With a Sandbox view open, select the member you want to view or<br />
edit.<br />
2 Do one of the following:<br />
Select Member > Working File > Edit.<br />
Click .<br />
Double click the file icon.<br />
The member’s working file is opened in your default editor or in the<br />
editor associated with the file’s extension. To configure your default<br />
editor, see “Setting Preferences” on page 40.<br />
To view a member in the Web interface<br />
1 With a Project view open, select the member you want to view.<br />
2 Select Member > View Member.<br />
The member is opened in a second browser window.<br />
Scanning for Changes<br />
Member information in a Sandbox view is automatically updated<br />
whenever changes are made, for example, if another user locks a member.<br />
You only need to scan for changes if your connection to the Integrity Server<br />
is offline or if you need to see changes to members on your local drive.<br />
To scan a sandbox for changes in the graphical user interface<br />
1 With a Sandbox view open, select the members you want to scan for<br />
changes.<br />
2 Select View > Scan for Changes.<br />
The Sandbox view displays members whose working file has changed<br />
(indicated by working file deltas, ), or a message informing you<br />
there are newer revisions available in the Member History (indicated<br />
by member deltas, ).<br />
185
Chapter 6: Member Operations<br />
Checking In a<br />
Member<br />
186<br />
When you are satisfied with the changes you have made to a member, you<br />
should check in the member to preserve those changes as a new revision in<br />
the member’s history. Members should be checked in on a regular basis.<br />
checking in a member creates a new revision of a member and adds it to the<br />
member history. When a member is checked in to a revision other than the<br />
head revision or a branch tip revision, a new branch is created.<br />
The author name is the name you associate with revisions upon check in. By<br />
default, your author name is your user name.<br />
In the Source Integrity Web interface, because sandboxes do not exist, a<br />
source file (working file) for the member is specified and checked in as the<br />
new revision.<br />
Starting a Branch When Checking In a Member<br />
Source Integrity usually places a new revision at the top of the trunk,<br />
assigning it a two-part revision number, such as 1.15. There are times,<br />
however, when you do not want your work to be checked into the trunk.<br />
You may be pursuing a line of development that will not be included in the<br />
finished product, or you may be doing post-release maintenance while<br />
development for the next release continues on the trunk. For information<br />
on branching, see “Branching and Merging Revisions” on page 337.<br />
Divergent lines of development in the same archive are managed through<br />
the use of branches. A branch is an independent revision line that uses an<br />
existing revision as its starting point. Members of a branch revision are<br />
identified by their revision numbers. Whereas revisions on the trunk are<br />
characterized by two-part revision numbers (for example, 1.2 or 3.5),<br />
branch revision numbers are prefixed with the number of the revision they<br />
start from. For example, if a branch revision is started from revision<br />
number 1.2, the members of that branch are numbered<br />
1.2.1.3<br />
1.2.1.2<br />
1.2.1.1<br />
and so on. The first two digits of the number identify the revision where<br />
the branch diverges from the trunk, and the last two represent a position<br />
on the branch.<br />
Assigning Revision Numbers<br />
By default, when you check in a member, Source Integrity automatically<br />
assigns a unique revision number to the new revision. It does this by<br />
incrementing the current revision number by one. For example, if the<br />
previous revision is 1.3, the new revision is assigned number 1.4.<br />
u s e r g u i d e
Performing Member Operations<br />
You can choose the revision number of the changes you are checking in, so<br />
long as your revision number:<br />
is greater than the last revision number (you cannot use previously<br />
“skipped” revision numbers)<br />
has no leading zeros (zeros as <strong>com</strong>plete revision numbers are<br />
acceptable)<br />
starts a new branch based on an existing revision<br />
If you check in a revision using an already existing revision number,<br />
Source Integrity attempts to add one to the revision number and check it in<br />
as that revision. If that revision already exists, Source Integrity then<br />
chooses the next available branch number and creates a new branch.<br />
For example, if you are checking in a new revision to an archive where the<br />
head revision is 1.7, the following numbers are valid:<br />
1.8 (greater than head revision)—if you check in a revision as 1.7,<br />
which already exists, Source Integrity assigns it 1.8<br />
1.10 (greater than head revision)<br />
1.72 (none of the numbers between 7 and 72 may be used afterwards)<br />
2.0<br />
1.7.1.1 (if it starts a new branch)<br />
1.7.0.1 (leading zero as the branch number)<br />
The following numbers are invalid:<br />
1.3 even if there was no revision 1.3 previously (Source Integrity<br />
branches the archive and assigns 1.3.x.1, where x is the first available<br />
branch number)<br />
1.08 (leading 0 in last portion)<br />
02.1 is considered the same as 2.1 (leading zero in branch number)<br />
Assigning Revision Descriptions<br />
A revision description is text that be<strong>com</strong>es a permanent part of the archive’s<br />
metadata. It allows you to provide a record of the changes you made and<br />
why you made them. This can be of great value to you or other team<br />
members if it ever be<strong>com</strong>es necessary to revise or update the member.<br />
187
Chapter 6: Member Operations<br />
188<br />
IMPORTANT<br />
The maximum size for a revision description is 64 KB. If you exceed this size<br />
the member history may be<strong>com</strong>e unreadable.<br />
Once a new revision is checked in, its revision description cannot be<br />
changed. You can, however, append new information to a revision<br />
description.<br />
To check in a member in the graphical user interface<br />
NOTE<br />
You cannot check in a member that is associated with a deferred drop<br />
operation.<br />
1 With a Sandbox or Member History view open, select one or more<br />
members to check in.<br />
2 From the Sandbox view, do one of the following:<br />
Select Member > Check In.<br />
Click .<br />
From the Member History view, do one of the following:<br />
Select History > Check In.<br />
Click .<br />
The Check In dialog box is displayed.<br />
TIP<br />
Click the Differences button on the Check In dialog box to view the differences<br />
between your working file and the revision you checked out.<br />
u s e r g u i d e
NOTE<br />
Performing Member Operations<br />
The Change Package options, such as Close Change Package, appear only if<br />
change packages are enabled.<br />
If the member you are checking in had a change package associated with it at<br />
the time of check out, that change package appears by default in the<br />
Change Package field in the Change Package options.<br />
3 In the Revision Description field, enter a <strong>com</strong>ment about the new<br />
revision. For example, you can enter a detailed description of what<br />
you changed, what bug in the software the changes were meant to<br />
correct, or instructions for the next person who works on the member.<br />
IMPORTANT<br />
The maximum size for a revision description is 64 KB. If you exceed this size<br />
the member history may be<strong>com</strong>e unreadable.<br />
If your administrator has set the feature for enforced revision<br />
descriptions, you must make an entry in the Revision Description<br />
field. If the field is blank, Source Integrity displays an error message<br />
and the member is not checked in.<br />
4 Under Options, click the desired tab, then modify the check in options.<br />
For more information, see “Check In Options” on page 192.<br />
189
Chapter 6: Member Operations<br />
190<br />
5 To check in the member, click OK. To check in all remaining members,<br />
click OK to All. For information on advanced check in and check out<br />
operations, see “Branching and Merging Revisions” on page 337.<br />
The member is checked in.<br />
If change package reviews are mandatory, a pending revision is<br />
created. For more information, see “Working With Pending<br />
Revisions” on page 335.<br />
To check in a member in the Web interface<br />
NOTE<br />
You cannot check in a member that is associated with a deferred drop<br />
operation.<br />
1 With a Project or Member History view open, select a member to<br />
check in by clicking the corresponding check box.<br />
In the Web interface, you can check in only one member per operation.<br />
Multiple member selections for check in cause an error.<br />
2 From the Project view, do one of the following:<br />
Select Member > Check In.<br />
Click .<br />
From the Member History view, do one of the following:<br />
Select History > Check In.<br />
Click .<br />
The Check In dialog box is displayed.<br />
u s e r g u i d e
NOTE<br />
Performing Member Operations<br />
The Change Package options, such as Close Change Package, appear only if<br />
change packages are enabled.<br />
3 In the Revision Description field, enter a <strong>com</strong>ment about the new<br />
revision. For example, you can enter a detailed description of what<br />
you changed, what bug in the software the changes were meant to<br />
correct, or instructions for the next person who works on the member.<br />
IMPORTANT<br />
The maximum size for a revision description is 64 KB. If you exceed this size<br />
the member history may be<strong>com</strong>e unreadable.<br />
If your administrator has set the feature for enforced revision<br />
descriptions, you must make an entry in the Revision Description<br />
field. If the field is blank, Source Integrity displays an error message<br />
and the member is not checked in.<br />
4 Under Options, click the desired tab, then modify the check in options<br />
and click OK. For more information, see “Check In Options” on<br />
page 192.<br />
The Specify Source File dialog box is displayed.<br />
191
Chapter 6: Member Operations<br />
Check In Dialog Box Options<br />
192<br />
5 In the field, enter or browse to the location of the working file for the<br />
member you want to check in.<br />
6 To check in the member, click OK.<br />
If the name of the source file you specify is different than the member<br />
name, depending on how you have the Different Member/Source File<br />
Name option set, one of the following occurs:<br />
Source Integrity confirms if you want to proceed. Click No if you<br />
do not want to check in a source file different from the member.<br />
Click Yes if you want to check in a source file different from the<br />
member.<br />
Source Integrity cancels the check in operation because the file<br />
names do not match.<br />
The member is checked in.<br />
If change package reviews are mandatory, a pending revision is<br />
created. For more information, see “Working With Pending<br />
Revisions” on page 335.<br />
Check In Options<br />
General Specifies the following general check in options:<br />
Label is a unique string that identifies the new revision. Revision labels are<br />
usually assigned during check in, but can be assigned later, for instance, using<br />
the Member > Properties > Add Label <strong>com</strong>mand.<br />
Move Existing Label moves the label if it already exists on another revision.<br />
In the Web interface only, select from one of the following options:<br />
Select Yes to move the label.<br />
Select No to not move the label.<br />
Select Confirm to be asked for confirmation of the action to be taken.<br />
Lock Revision causes Source Integrity to check in the working file, then<br />
immediately lock the new revision. This allows you to update the archive while<br />
retaining control of the revision. If this option is not selected, the working file is<br />
checked into the archive unlocked.<br />
u s e r g u i d e
Check In Dialog Box Options<br />
Performing Member Operations<br />
General continued Close Change Package closes the change package associated with the member,<br />
and if the Integrity Manager integration is enabled, updates the issue status in<br />
Integrity Manager.<br />
In the Web interface only, select from one of the following options:<br />
Select Yes to close the associated change package.<br />
Select No to keep the associated change package open.<br />
Select Confirm to be asked for confirmation of the action to be taken.<br />
Defer Check In (graphical user interface only) causes Source Integrity to delay<br />
the check in of the revision. Your lock remains on the revision and<br />
Source Integrity displays the icon and the version information for both the<br />
working and member revisions. Once you submit the check in, your lock is<br />
removed and the member revision moves to the next number in the sequence, as<br />
in the case of a standard check in operation.<br />
Check In if Unchanged checks in the working file even if it has not changed since<br />
it was last checked out.<br />
Update Member Revision makes the new revision the member revision in the<br />
project, replacing the existing member revision.<br />
Different Member/Source File Name (Web interface only) confirms the action to<br />
be taken if the specified source file name and member name are different.<br />
Select Yes to allow the different file names.<br />
Select No to disallow the different file names.<br />
Select Confirm to be asked for confirmation of the action to be taken.<br />
Advanced Specifies the following advanced check in options:<br />
Author is the author name applied to the revision. If necessary, enter a name.<br />
The user name specified in the Add Members <strong>com</strong>mand configuration appears<br />
by default.<br />
Update Member Revision Even on Branch causes Source Integrity to update the<br />
member revision upon check in, even when the locked revision is on a different<br />
branch.<br />
In the Web interface only, select from one of the following options:<br />
Select Yes to update the member revision.<br />
Select No to not update the member revision.<br />
Select Confirm to be asked for confirmation of the action to be taken.<br />
Unexpand Keywords replaces literal values with keywords in the new revision.<br />
Retain Working File (graphical user interface only) causes Source Integrity to<br />
check in the working file and immediately resynchronize it. If this option is<br />
cleared, the working file is deleted after it is checked in.<br />
Revision Number specifies the revision number you want to assign to the<br />
revision. By default, Source Integrity creates the next logical revision number, for<br />
example, 1.1 to 1.2. Optionally, you can enter a revision number.<br />
Force Creation of New Branch causes Source Integrity to create a branch off of<br />
the revision you are checking in.<br />
Save Working File Timestamp (graphical user interface only) sets the timestamp<br />
of the revision in the history to the timestamp of the working file, rather than the<br />
time of check in.<br />
193
Chapter 6: Member Operations<br />
Renaming a<br />
Member<br />
194<br />
You can rename individual members while working from a Project or<br />
Sandbox view. When you rename a member, member attributes are copied<br />
from the old member name to the new member name.<br />
The member’s archive remains the same, and points to the old member<br />
name so that change packages, member histories, and project histories<br />
continue to work.<br />
You can defer the renaming of a member by selecting Defer Rename or<br />
the si rename --defer <strong>com</strong>mand. For more information deferred<br />
operations, see “Deferring Member Operations” on page 200.<br />
NOTE<br />
Because renaming a member effects a change on other users on the same<br />
development path, the member you want to rename must not be locked by any<br />
other user.<br />
Renaming a locked revision in a variant project moves the lock to the duplicate<br />
revision, even if the lock was generated in the master project.<br />
Renaming a Member That Is the Tip Revision<br />
The tip revision is the most recent revision on a branch in a history.<br />
When you rename an unlocked member, Source Integrity places a lock on<br />
that member and creates a new, unlocked revision at the tip. For example,<br />
if you rename an unlocked member (1.3), Source Integrity locks revision<br />
1.3 and checks in a duplicate file for revision 1.4, with the new member<br />
name, leaving 1.4 unlocked.<br />
If you rename a locked member, Source Integrity performs the rename<br />
operation and retains your lock. For example, if you rename a locked<br />
revision (1.3), Source Integrity performs the rename by checking in a<br />
duplicate file for 1.4 and then moves your lock to revision 1.4.<br />
If you rename a member in a variant project while you also have the<br />
member locked in the master project, Source Integrity performs the rename<br />
operation but moves your lock to the variant member.<br />
Renaming Members on a Branch<br />
If you rename a member that is not the tip revision, that is, a revision along<br />
the branch, Source Integrity creates a duplicate of that revision along a new<br />
branch and updates the member revision to that branch.<br />
To rename a member in the graphical user interface<br />
1 With a Project or Sandbox view open, select the member you want to<br />
rename.<br />
u s e r g u i d e
2 Select Member > Rename.<br />
Performing Member Operations<br />
The Rename Member dialog box opens, displaying the existing name<br />
of the selected member, as well the name of the project (or sandbox)<br />
the member resides in.<br />
3 In the New Name text field, enter the new name of the member.<br />
4 Under Change Package, select a change package, if applicable, or<br />
create a change package to link to.<br />
NOTE<br />
The requirement for change package information applies only if the integration<br />
with Integrity Manager is enabled.<br />
5 Under Options, click a check box to choose the preferred options for<br />
the rename operation. The available options are:<br />
Rename Working File renames the working file in your sandbox<br />
and preserves any changes made to that file. If not set, the<br />
working file is not renamed and be<strong>com</strong>es a former member which<br />
will be confirmed for deletion the next time the sandbox is<br />
resynchronized. This setting has no effect if the <strong>com</strong>mand is<br />
performed directly from a Project view.<br />
Confirm Rename causes Source Integrity to confirm that you want<br />
to rename the selected member.<br />
Close Change Package closes the specified change package after<br />
performing the rename operation.<br />
195
Chapter 6: Member Operations<br />
Discarding<br />
Changes to a<br />
Member<br />
196<br />
Overwrite Existing File replaces an existing working file in the<br />
sandbox for the new file name.<br />
Defer Rename delays the rename operation in the project until the<br />
deferred operation is submitted. The rename operation in the<br />
sandbox still takes place immediately and Source Integrity<br />
displays the icon.<br />
If the change package reviews are mandatory, select this option to<br />
create a pending entry for this operation at the time of change<br />
package submission. If this option is not enabled, Source Integrity<br />
creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />
more information, see “Change Package Review Process” on<br />
page 240.<br />
6 To <strong>com</strong>plete the rename operation, click OK.<br />
The new member name is displayed in the list of project members.<br />
Source Integrity creates a new, duplicate revision in the archive so that<br />
a change package can be associated with the operation.<br />
If you are sure you do not want to check in a member’s modified working<br />
file, you can revert it to its state before it was checked out.<br />
Reverting a member discards any changes made to a member’s working<br />
file since it was checked out, and then unlocks it.<br />
When you revert a deferred add operation, Source Integrity retains the<br />
working file for the pending member. After the revert operation, the file<br />
be<strong>com</strong>es a non-member, rather than a former member, because it was<br />
never added to the project.<br />
To discard changes to a member’s working file in the graphical user<br />
interface<br />
1 With a Sandbox, or Member History view open, select one or more<br />
members that are checked out in your name or are modified.<br />
2 From a Sandbox view, do one of the following:<br />
Select Member > Revert.<br />
Click .<br />
From a Member History view, do one of the following:<br />
Select History > Revert.<br />
A confirmation dialog box is displayed if the working file is modified.<br />
u s e r g u i d e
Resyncing<br />
Members<br />
Performing Member Operations<br />
3 To proceed with the revert operation for a member, click Yes (for<br />
multiple members click Yes to All).<br />
The member is reverted to its original state, prior to check out.<br />
When many users are working from sandboxes based on the same master<br />
project, it is <strong>com</strong>mon for the members in an individual sandbox to be<strong>com</strong>e<br />
out of sync with the member revisions in the master project. For example,<br />
the member revision of a particular file may be at 1.5, while you still have<br />
revision 1.2 in your sandbox.<br />
When this happens, a member delta symbol ( ) appears next to the<br />
member in the graphical user interface, signaling its status. In the<br />
<strong>com</strong>mand line interface, you can use the si viewsandbox <strong>com</strong>mand to<br />
display changes to files and archives.<br />
To update out of sync working files to the most current member revisions,<br />
you resynchronize the members.<br />
For information on Resyncing members with deferred operations, see<br />
“Resyncing Members With Deferred Operations” on page 203<br />
To resynchronize a member in the graphical user interface<br />
1 With a Sandbox view open, select one or more members that contain<br />
member deltas.<br />
2 Do one of the following:<br />
Select Member > Resynchronize.<br />
Click .<br />
If you have made changes to your working file (without a lock), and<br />
then attempt to check out the member, the Confirm Working File<br />
Update dialog box is displayed. If you want to retain your changes in<br />
the working file, click Yes (Yes to All for multiple members). If you do<br />
not want to retain your changes in the working file, click No (No to All<br />
for multiple members).<br />
If the working file is writable, you will be asked to confirm<br />
overwriting it.<br />
When working in your sandbox, you can also apply the<br />
Resynchronize By CP <strong>com</strong>mand. When you select a member and use<br />
Resynchronize By CP, Source Integrity automatically searches the<br />
change package associated with the member you are resynchronizing<br />
and then brings the changes from the project to your sandbox. If the<br />
member you want to resynchronize has more than one change<br />
package associated with it (different change packages can exist for<br />
197
Chapter 6: Member Operations<br />
Locking a<br />
Member<br />
198<br />
each revision of a member), you must apply the Resynchronize By CP<br />
<strong>com</strong>mand for each change package associated with the member. For<br />
more information on resynchronizing by change package, see “Using<br />
the Resync By CP Command” on page 436.<br />
3 To resynchronize the member, click Yes (for multiple members, click<br />
Yes to All).<br />
The selected member is updated.<br />
If the working file of the member you are resyncing is modified,<br />
Source Integrity asks you to confirm that you want to merge your<br />
modifications into the working file. For more information on merging<br />
on a resyncing, see “Automatic Merging on Resync” on page 352.<br />
Locking a member prevents more than one user from simultaneously<br />
making changes to the same revision. When a revision is locked, no one<br />
other than the locker can check in changes to that revision.<br />
Normally you lock a member during a check out. Sometimes, however,<br />
you may have made changes to a working file that was not checked out in<br />
your name first. In this case, you can set a lock without overriding your<br />
changes.<br />
In the graphical user interface, a locked member is denoted with a padlock<br />
symbol ( ), along with the locker’s name, and the date and time the<br />
member was locked.<br />
The person who has a revision locked is referred to as the locker.<br />
NOTE<br />
Locking a member does not affect the working file in any way. Source Integrity<br />
does not make the working file writable if it was read-only, and does not verify<br />
that it corresponds to the revision being locked. Make sure the working file<br />
corresponds to the revision you want to lock.<br />
To lock a member in the graphical user interface and Web interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
lock.<br />
2 Do one of the following:<br />
Select Member > Lock.<br />
Click .<br />
u s e r g u i d e
Performing Member Operations<br />
If your administrator has enabled the integration with<br />
Integrity Manager and set the option for IMTrackLocksEnabled,<br />
Source Integrity displays the Lock Revision dialog box.<br />
3 Configure the following options as necessary:<br />
Change Package options appear only if change packages are<br />
enabled. Select a change package from the Change Package drop<br />
down list, or click Create to create a new change package.<br />
Force Creation of New Branch causes Source Integrity to create a<br />
branch off of the revision you are locking.<br />
In the Web interface only, select an option from the drop down<br />
list:<br />
Select Yes create a new branch.<br />
Select No to not create a new branch.<br />
Select Confirm to be asked for confirmation of the action to<br />
be taken.<br />
Create Branch if Variant causes Source Integrity to create a branch<br />
off of the revision you are locking, if you are working in a variant<br />
sandbox. This option is available only through the graphical user<br />
interface and <strong>com</strong>mand line interface.<br />
To apply the lock with the selected options, click OK. To apply locks to<br />
multiple files, click OK to All.<br />
A padlock symbol appears next to the revision number, and your user<br />
name and the date/time you locked the revision display in the Locked<br />
column.<br />
Depending on your view preferences (see “View Preferences” on<br />
page 61), additional lock information may be available in columns,<br />
199
Chapter 6: Member Operations<br />
Unlocking a<br />
Member<br />
200<br />
such as Lock Timestamp, Locker Development Path, Locker Sandbox,<br />
Locker Project, Locker, or Locker Host.<br />
If the locked member is selected in Sandbox or Project view,<br />
information about the lock is displayed in the Member Information<br />
Pane. Lock information is also available as a ToolTip when pointing to<br />
the lock icon.<br />
To manage your locks, see “Managing Revision Locks” on page 328.<br />
When you no longer need the exclusive ability to change a member, you<br />
can unlock it again. This is normally done by default when you check the<br />
member in. You can unlock a member without checking it in, but your<br />
changes will not be recorded if you choose to do so.<br />
Depending on the permissions your administrator has defined, you may<br />
also be able to unlock a revision that is locked by another user.<br />
To unlock a member in the graphical user interface and Web interface<br />
Do one of the following:<br />
With a Project or Sandbox view open, select one or more locked<br />
members to unlock, then do one of the following:<br />
Select Member > Unlock.<br />
Click .<br />
With the Locks for <strong>User</strong> window open (see “Locks View” on<br />
page 450), select one or more locked members, then select Locks ><br />
Unlock.<br />
The revision is unlocked and the padlock symbol ( ) is removed.<br />
Deferring Member Operations<br />
For certain operations in Source Integrity, you can defer the <strong>com</strong>pletion of<br />
the <strong>com</strong>mand until a later time. The defer option allows you to see the<br />
effect of the operation in your sandbox without affecting the project. The<br />
deferral of operations is provided as a selectable option in two ways:<br />
through the graphical user interface and in the <strong>com</strong>mand line interface as<br />
the --defer option.<br />
u s e r g u i d e
You can apply the defer option to the following operations:<br />
“Adding Members to a Project” on page 157<br />
Deferring Member Operations<br />
“Adding Members From Archive to a Project” on page 166<br />
“Dropping Members From a Project” on page 172<br />
“Checking In a Member” on page 186<br />
“Renaming a Member” on page 194<br />
“Importing Members” on page 169<br />
“Updating a Member’s Revision” on page 293<br />
TIP<br />
You can also apply the Deferred Items filter to display any members that are<br />
associated with deferred operations. For more information on using the<br />
Deferred Items filter, see “Using Filters” on page 86.<br />
A deferred member is a member that is associated with any deferred<br />
operation (add, drop, check in, rename). A deferred member appears in the<br />
sandbox, but the deferred operation is not shown in the project until the<br />
deferred operation is submitted.<br />
Deferred operations are visible only from the client-side sandbox and are<br />
seen in the project only when they are submitted. It is important to note<br />
that deferred operations can be added to a change package and then<br />
submitted as a group of changes, but the deferred operations do not appear<br />
on the Integrity Server until they are submitted to the project. For more<br />
information, see “Submitting Change Packages” on page 238.<br />
With the exception of deferred rename and check in operations,<br />
Source Integrity supports only single deferred operations on a member. If<br />
you try to perform multiple deferred operations on a single member,<br />
Source Integrity reports an error.<br />
NOTE<br />
Once you have specified a deferred operation on a member, Source Integrity<br />
does not allow any further operations that would cause that member to be<br />
modified.<br />
201
Chapter 6: Member Operations<br />
Submitting<br />
Deferred<br />
Operations<br />
202<br />
You can simultaneously defer rename and check in operations on a single<br />
member. When these deferred operations are submitted, Source Integrity<br />
first performs the check in operation followed by the rename operation.<br />
The sequence for performing these operations is set by default and is not<br />
configurable.<br />
If change package reviews are mandatory, ensure that the deferred option<br />
is enabled in <strong>com</strong>mand dialog boxes, or Source Integrity creates pending<br />
entries (and if necessary pending revisions) at the time the <strong>com</strong>mand<br />
operation is <strong>com</strong>pleted rather than when the associated change package is<br />
submitted. For more information, see “Change Package Review Process”<br />
on page 240.<br />
IMPORTANT<br />
When adding multiple deferred operations on the same member to a change<br />
package, only <strong>com</strong>binations of deferred check in and deferred rename<br />
are possible.<br />
To submit, or <strong>com</strong>plete, a deferred operation, you use the Member > Submit<br />
<strong>com</strong>mand. Submitting the operation <strong>com</strong>pletes the <strong>com</strong>mand and makes it<br />
visible in the associated project.<br />
If change package reviews are mandatory, when you submit deferred<br />
operations using the Member > Submit <strong>com</strong>mand, pending entries (and if<br />
necessary pending revisions) are created. You must still submit the<br />
associated change package for review before the changes are <strong>com</strong>mitted to<br />
the repository. For more information, see “Submitting Change Packages”<br />
on page 238 and “Change Package Review Process” on page 240.<br />
To submit a deferred operation in the graphical user interface<br />
1 From a Sandbox view, select the member with the deferred operation<br />
you want to submit (for example, a deferred check in, add, drop, or<br />
rename operation).<br />
2 From the menu bar, select Member > Submit.<br />
The Submit dialog box opens.<br />
u s e r g u i d e
Cancelling<br />
Deferred<br />
Operations<br />
Resyncing<br />
Members With<br />
Deferred<br />
Operations<br />
Deferring Member Operations<br />
3 Under Options, click to select the options for each item being<br />
submitted:<br />
Use the change package provided when the element was deferred<br />
selects the change package that was originally associated with the<br />
deferred item.<br />
Override the change package to a specified value provides the<br />
means to select (or create) a different change package from the<br />
one that was originally associated with the deferred item.<br />
Close Change Package causes Source Integrity to close the change<br />
package after submitting the item and <strong>com</strong>pleting the associated<br />
deferred operation.<br />
4 To <strong>com</strong>plete the submission, click OK.<br />
Source Integrity submits the item and <strong>com</strong>pletes the deferred<br />
operation.<br />
Once you have deferred an operation, you must use the Member > Revert<br />
<strong>com</strong>mand to cancel the defer operation. For more information on the revert<br />
<strong>com</strong>mand, see “Discarding Changes to a Member” on page 196.<br />
When you revert a deferred add operation, Source Integrity retains the<br />
working file for the deferred member.<br />
After the revert operation, the file be<strong>com</strong>es a non-member, rather than a<br />
former member, because it was never added to the project.<br />
When you resynchronize a member associated with a deferred operation,<br />
Source Integrity performs the following:<br />
Deferred Add<br />
When resynchronizing a member associated with a deferred add,<br />
Source Integrity does not make any changes to the working file.<br />
203
Chapter 6: Member Operations<br />
Pending<br />
Operations<br />
204<br />
Deferred Drop<br />
When resynchronizing a member associated with a deferred drop,<br />
where the working file is modified, Source Integrity asks you if you<br />
want to overwrite the existing working file.<br />
Deferred Rename<br />
When resynchronizing a member associated with a deferred rename,<br />
Source Integrity asks you if you want to overwrite the existing<br />
working file. If the new working file is missing, Source Integrity<br />
resynchronizes it. The working file with the old name is then deleted<br />
from the sandbox.<br />
Deferred Checkin<br />
When resynchronizing a member associated with a deferred check in,<br />
Source Integrity asks you if you want to overwrite the existing<br />
working file.<br />
Deferred Update Revision<br />
When resynchronizing a member associated with a deferred update<br />
revision, Source Integrity asks you if you want to overwrite the<br />
existing working file.<br />
Deferred Import<br />
When resynchronizing a member associated with a deferred import,<br />
Source Integrity asks you if you want to delete the existing working<br />
file.<br />
For additional information on resyncing members, see “Resyncing<br />
Members” on page 197<br />
If change package reviews are mandatory, then pending operations are<br />
created when deferred operations are submitted either individually, or as<br />
part of a change package (see “Submitting Deferred Operations” on<br />
page 202 and “Submitting Change Packages” on page 238). Pending<br />
operations correspond to pending entries in the associated change<br />
package.<br />
Pending operations are operations whose proposed changes reside on the<br />
server, but have not been <strong>com</strong>mitted to the repository.<br />
The changes are <strong>com</strong>mitted to the repository once the change package is<br />
accepted upon review (see “Change Package Review Process” on<br />
page 240). Pending operations can create pending revisions and members<br />
(see “Working With Pending Revisions” on page 335).<br />
u s e r g u i d e
Resyncing<br />
Pending<br />
Revisions<br />
Comparing Differences<br />
Comparing Differences<br />
When reviews are not mandatory, pending entries are created when the<br />
changes are not successfully <strong>com</strong>mitted to the database. Source Integrity<br />
moves the change package to the CommitFailed state. You can open the<br />
change package and then submit it again, or continue development and<br />
submit it later.<br />
Pending operations cannot be reverted like deferred operations, but must<br />
be discarded from the associated change package. For more information,<br />
see “Discarding CP Entries” on page 254.<br />
When checking out a member that has a pending update to a member<br />
revision that was submitted by you, the pending revision is selected by<br />
default in the GUI and Web.<br />
When resynchronizing a member with a pending revision, clicking Yes to<br />
the confirmation message replaces a pending revision with the member<br />
revision; with the working file corresponding to the member revision. For<br />
more information, see “Working With Pending Revisions” on page 335.<br />
After you have made changes to a member’s working file, you usually<br />
check in those changes as a new revision. But you may also decide that<br />
those changes should be discarded. Before you make this decision, you<br />
have to be able to view the changes that you are checking in, or those that<br />
you are discarding if you choose.<br />
Source Integrity Visual Difference allows you to view the differences<br />
between the member’s working file and its member revision. You can also<br />
select two specific revisions and <strong>com</strong>pare them. For information on<br />
<strong>com</strong>paring revisions, see “Comparing Revisions” on page 331.<br />
You can also <strong>com</strong>pare differences between your checked out working file<br />
and the locked revision through the Check In dialog. For details on viewing<br />
differences through the Check In dialog, see “Checking In a Member” on<br />
page 186.<br />
Source Integrity allows you to use a third party differencing tool, in the<br />
graphical user interface, if you do not want to use Visual Difference. You<br />
can specify a third party difference tool in your preferences. For<br />
information on setting up third party differencing tools, see “Difference<br />
Tool Preferences” on page 69.<br />
205
Chapter 6: Member Operations<br />
206<br />
NOTE<br />
In the Source Integrity Web interface you cannot <strong>com</strong>pare a working file to its<br />
member revision but you can <strong>com</strong>pare revision differences. For information on<br />
<strong>com</strong>paring revisions, see “Comparing Revisions” on page 331.<br />
For information on merging revisions, see “Merging Revisions” on<br />
page 353 or “Branching and Merging Revisions” on page 337.<br />
To <strong>com</strong>pare a member’s working file to its member revision in the<br />
graphical user interface<br />
1 With a Sandbox view open, select a member that has a modified<br />
working file (indicated by a working file delta ), or a member that<br />
has a new revision available (indicated by a member delta ).<br />
2 Do one of the following:<br />
Select Member > Diff/Merge > Differences.<br />
Click .<br />
Visual Difference launches and displays the member’s working file<br />
and member revision side-by-side, highlighting the differences<br />
between them, or Source Integrity informs you there are no<br />
differences between the files.<br />
u s e r g u i d e
Using Keywords<br />
Using Keywords<br />
A keyword is a placeholder that can be inserted into text-based working<br />
files. This placeholder is a special variable (for example, $Date$,<br />
$Author$, $State$) used to represent textual information in a working<br />
file. Keywords can be expanded (that is, replaced with their literal values)<br />
when a revision is checked out.<br />
To use a keyword, simply include it in a working file, surrounded by<br />
dollar signs (for example, $Date$) and check the file back into its archive.<br />
207
Chapter 6: Member Operations<br />
208<br />
NOTE<br />
Your administrator may define custom keywords for your use. For information<br />
about these keywords, see your administrator or the Integrity Server Installation<br />
and Administration <strong>Guide</strong>.<br />
The next time you check out the revision, Source Integrity scans it for<br />
keywords and replaces them with the appropriate information, if keyword<br />
expansion is turned on.<br />
Keyword expansion is the process of automatically adding or updating<br />
information to a keyword reference when a revision is checked out or<br />
viewed.<br />
For example, if the $Date$ keyword is encountered, the date and time of<br />
the revision (assigned at check in) is added to the working file as part of the<br />
keyword. When expanded, the entry would look something like<br />
$Date: 2002/06/12 10:25:32$<br />
This method of adding or updating information in a keyword is called<br />
keyword expansion.<br />
For example, if the member main.c has the keywords $Author$ and<br />
$State$ embedded within it, checking out main.c and issuing the<br />
<strong>com</strong>mand:<br />
returns<br />
ident main.c<br />
main.c:<br />
$author: paula_t $<br />
$state: Exp $<br />
The following Source Integrity <strong>com</strong>mands contain keyword expansion<br />
options:<br />
Add Members<br />
Check Out<br />
Check In<br />
Resynchronize<br />
Revert Member<br />
Keyword expansion is configured using the Preferences dialog box in the<br />
graphical user interface or the si setprefs <strong>com</strong>mand in the <strong>com</strong>mand<br />
line interface. The <strong>com</strong>mand line interface settings and dialog boxes in the<br />
u s e r g u i d e
Using Keywords<br />
graphical user interface can override the default settings. For information<br />
on setting <strong>com</strong>mand keyword options, see “Command Preferences” on<br />
page 48.<br />
For information on setting the keyword options for individual <strong>com</strong>mands,<br />
see Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> or man pages.<br />
Keyword expansion applies to text files only. It is disabled for binary files.<br />
Text before and after the keyword is preserved, making it suitable for use<br />
within expressions, as above, and within <strong>com</strong>ments.<br />
If keyword expansion is enabled and you are checking out a text file that<br />
contains the string<br />
$Revision$<br />
Source Integrity, when it encounters this string, automatically adds the<br />
value of the keyword $Revision$ in the format<br />
where<br />
$Revision: value $<br />
value is the appropriate value of the keyword (in this case, the revision<br />
number).<br />
For example, including the statement<br />
char revnum[] = "$Revision$";<br />
in a C source file creates a character string named revnum containing the<br />
file’s revision number. The program can then be configured to display this<br />
string when it starts up, automatically presenting the current revision of<br />
the program’s source file.<br />
Using the $Revision$ keyword to obtain the revision number of a file is<br />
one of the <strong>com</strong>mon applications of keywords. Other <strong>com</strong>mon applications<br />
include:<br />
The $Header$ keyword provides a one-line summary of useful<br />
information associated with a revision. Including this information in a<br />
<strong>com</strong>ment makes the information available to anyone looking at the<br />
member.<br />
The $Log$ keyword supplies the same sort of information as<br />
$Header$ plus the revision description. The $Log$ keyword provides<br />
a <strong>com</strong>plete list of changes that are made to the member over time.<br />
209
Chapter 6: Member Operations<br />
Locating<br />
Keywords<br />
Table of<br />
Keywords<br />
210<br />
NOTE<br />
Ã<br />
The keyword format of $$ causes Source Integrity to replace<br />
between the first $ and the next $. If you use a keyword in the format<br />
$, Source Integrity continues to replace until it encounters another<br />
$. It is possible that Source Integrity may not encounter another $ until the file<br />
is checked out again. This type of keyword use returns results that are similar<br />
to logging.<br />
You can use the ident <strong>com</strong>mand in the <strong>com</strong>mand line interface to locate<br />
and display keywords (expanded or unexpanded) in one or more<br />
members. For more information about the ident <strong>com</strong>mand, see the<br />
Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> or the online man<br />
pages.<br />
This <strong>com</strong>mand displays the name of each member that contains keywords,<br />
as well as the keywords themselves. This provides an easy way to extract<br />
identification information from source files, as well as <strong>com</strong>piled object<br />
files.<br />
Source Integrity maintains several keywords that can be used in working<br />
files. Keywords are case-sensitive.<br />
Your administrator may create custom keywords. For information on<br />
using custom keywords contact your administrator.<br />
The following table describes default keywords and what each expands to.<br />
$Author$ The name of the user who checked in the revision.<br />
$CompanyInfo$ The name of the <strong>com</strong>pany and/or other <strong>com</strong>pany info including<br />
address, E-mail and phone numbers.<br />
Strings may contain standard escapes like “\n” for new lines, but<br />
must be in ISO-646.<br />
$Date$ The check in date and time of the revision (as assigned at check<br />
in). The time is shown in Greenwich Mean Time (GMT/ or<br />
Coordinated Universal Time).<br />
$Header$ The file name of the archive, as well as the revision number, date<br />
and time, author, state, and locker (if locked).<br />
$Id$ The same as $Header$.<br />
$Locker$ The user ID of the user who locked the revision (empty if not<br />
locked).<br />
u s e r g u i d e
Ã<br />
Using Keywords<br />
$Log$ The revision description supplied during check in, preceded by<br />
the archive’s member name, revision number, author, and revision<br />
date.<br />
Repeated check out operations append revision descriptions,<br />
rather than replacing existing ones.<br />
Note: this keyword does not unexpand.<br />
$Name$ The revision label (or labels) attached to a revision.<br />
$ProjectName$ The fully qualified name of the project of which the archive is a<br />
member.<br />
$ProjectRevision$ The revision number of the project that the archive is related. For<br />
use in build sandboxes only.<br />
$ProjectSetting attribute The current value of the attribute defined in Source Integrity. For<br />
example, if the project contains pj set OS=unix, the keyword<br />
$Setting OS$ is expanded to $Setting OS: unix$<br />
$RCSfile$ The archive’s unqualified member name.<br />
$Revision$ The revision number.<br />
$SandboxSetting attribute The current value of the attribute defined in Source Integrity. For<br />
example, if the sandbox contains pj set OS=unix, the keyword<br />
$Setting OS$ is expanded to $Setting OS: unix$<br />
$Setting attribute$ The current value of the attribute defined in Source Integrity. For<br />
example, if the member contains pj set OS=nt, the keyword<br />
$Setting OS$ is expanded to $Setting: nt$.<br />
$Source$ The same as $RCSfile$. The archive’s unqualified member<br />
name.<br />
$State$ The state setting of the revision.<br />
211
Chapter 6: Member Operations<br />
212<br />
u s e r g u i d e
Using Change Packages<br />
and Reviews<br />
7<br />
KEY TERMS: change package, change package ID, submit change package, change<br />
package entry, change package review<br />
When addressing a development issue, work may need to be performed<br />
on several members. Source Integrity provides change packages to group<br />
all of the necessary changes together. When used with lock tracking and<br />
deferred operations, change packages provide an essential tool for<br />
controlling and monitoring development.<br />
This chapter provides details on the following:<br />
“What Are Change Packages?” on page 214<br />
“Why Use Change Packages?” on page 215<br />
“Using Change Packages to Control Development” on page 216<br />
“Creating a Change Package” on page 217<br />
“Adding Entries to a Change Package” on page 219<br />
“Managing Change Packages” on page 220<br />
“Submitting Change Packages” on page 238<br />
“Change Package Review Process” on page 240<br />
“Managing Change Package Entries” on page 252<br />
“Viewing CP Entry Member Differences” on page 255<br />
213
Chapter 7: Using Change Packages and Reviews<br />
What Are Change Packages?<br />
214<br />
A change package is a group of changes made by a single user that can be<br />
considered a logical unit of work. Only the creator of a change package<br />
may add entries to that change package. Change package entries take the<br />
form of operations, both deferred and <strong>com</strong>mitted. When reviews are<br />
mandatory, change package entries take the form of pending entries before<br />
they are <strong>com</strong>mitted.<br />
For more information on change package entries, see “Change Package<br />
Entry Types” on page 220 and “CP Entry Categories” on page 244<br />
A change package administrator is a user with the permission to discard,<br />
close, and submit change packages that were not created by that user.<br />
The following rules apply when using issues and change packages:<br />
Each change package has a unique change package ID (CP ID). The CP<br />
ID is a colon separated identifier of the following form:<br />
:<br />
NOTE<br />
If Integrity Manager integration is enabled, then the issue ID is used as the<br />
container ID. For more information, see “The Integrity Manager Integration”<br />
on page 371.<br />
A change package acts as a log of both the changes to members that<br />
have already been <strong>com</strong>mitted to the repository (server), and as a<br />
record of work in progress, which is only visible to the user on the<br />
desktop and not <strong>com</strong>mitted to the repository. It tracks the work in<br />
progress using deferred operations that can be associated with a<br />
change package. When reviews are mandatory, a change package acts<br />
as a control placed on changes to the repository, by making them<br />
pending before they are <strong>com</strong>mitted (see “Change Package Review<br />
Process” on page 240).<br />
A traditional change package has the following states: Open, Closed,<br />
Discarded, and CommitFailed. A change package is open, or “in<br />
progress” until you close it, which signifies that work on the change is<br />
<strong>com</strong>pleted. If the changes fail to <strong>com</strong>mit to the repository, then the<br />
change package can be submitted again, or opened to continue work.<br />
When reviews are mandatory, a change package has additional states<br />
before it is closed (see “CP States” on page 241).<br />
u s e r g u i d e
Operations That Add Entries to a Change Package<br />
Only the creator of a change package or a change package<br />
administrator can close a change package.<br />
Once a change package is closed, it can only reopened by a<br />
change package administrator.<br />
Operations That Add Entries to a<br />
Change Package<br />
Why Use Change Packages?<br />
The following member operations add entries to a change package:<br />
“Checking Out a Member” on page 178<br />
“Renaming a Member” on page 194<br />
“Locking a Member” on page 198<br />
“Adding Members to a Project” on page 157<br />
“Adding Members From Archive to a Project” on page 166<br />
“Dropping Members From a Project” on page 172<br />
“Checking In a Member” on page 186<br />
“Updating a Member’s Revision” on page 293<br />
“Importing Members” on page 169<br />
“Apply CP Procedures” on page 398<br />
Change packages provide the following advantages:<br />
Change packages allow related changes to be grouped as a logical<br />
unit.<br />
Change packages allow work in progress to be submitted to the<br />
repository (server) all at once (using submit change package), which<br />
prevents users from partially submitting related work in progress.<br />
Change packages provide a way to apply related changes to a project<br />
or sandbox in one operation.<br />
Using change packages, users are able to resync the changes required<br />
to address a specific issue without resyncing the entire project.<br />
215
Chapter 7: Using Change Packages and Reviews<br />
216<br />
Because a change package is stored with each new revision, there is a<br />
relationship between every change in the repository and all of the<br />
other changes made by the author.<br />
Using change packages with the track locks feature, managers can<br />
monitor work in progress.<br />
Groups of changes can be reviewed as a unit. If reviews are<br />
mandatory, changes are reviewed before they are <strong>com</strong>mitted to the<br />
server repository.<br />
TIP<br />
You can expand the capabilities of change packages with Integrity Manager to<br />
take advantage of workflow and process management through the use of<br />
issues. The change packages can then be associated with issues. Enabling the<br />
Integrity Manager integration also permits multiple change packages for each<br />
issue. For more information, see “The Integrity Manager Integration” on<br />
page 371.<br />
Using Change Packages to Control<br />
Development<br />
The following is an example of a way to use change packages to control<br />
development. You can <strong>com</strong>bine this example with the review process to<br />
control what changes be<strong>com</strong>e a permanent part of the repository (see<br />
“Change Package Review Process” on page 240).<br />
1 Open the Manage Change Packages window (see “Managing Change<br />
Packages” on page 220). This is your control center for managing your<br />
development activities.<br />
2 Create a change package (see “Creating a Change Package” on<br />
page 217) for the changes you need to make to address an issue. The<br />
change package acts as a container, grouping together the specific<br />
members (files) that need to be changed to address the issue.<br />
Source Integrity assigns the change package an ID and leaves the<br />
change package in an open state.<br />
You can see the change package listed in the Manage Change<br />
Packages window.<br />
3 View the change package in the Change Package view (see “Viewing<br />
Change Package Details and Entries” on page 226). All operations you<br />
associate with the change package appear in this window.<br />
u s e r g u i d e
Creating a Change Package<br />
4 As part of your development process, identify the members that are<br />
affected by the issue. Associate the members with the change package<br />
(see “Operations That Add Entries to a Change Package” on<br />
page 215).<br />
NOTE<br />
You can only add change package lock entries to a change package through a<br />
check out and member lock if lock tracking is enabled. For more information on<br />
lock tracking, see your administrator.<br />
The operations are listed in the Change Package view.<br />
5 When all of the development to address the issue is <strong>com</strong>pleted, submit<br />
the change Package (see “Submitting Change Packages” on page 238).<br />
Any locked members are converted to deferred check in operations,<br />
then checked in.<br />
All of the deferred operations are submitted.<br />
Creating a Change Package<br />
Although you can submit operations individually, or check in a<br />
member without deferring it, submitting all of your operations at one<br />
time ensures that changes are submitted as a group.<br />
If reviews are mandatory, the review process begins here. Do not<br />
continue with the following step. For more information, see “CP<br />
Review Workflow” on page 242.<br />
6 Close the change package when the work to address the issue is<br />
<strong>com</strong>pleted. The change package is moved to the Closed state, and the<br />
change package disappears from the Manage Change Packages<br />
window.<br />
To find the change package and view its entries, see “Finding Change<br />
Packages” on page 222).<br />
You can create a change package from Source Integrity views and when<br />
performing member operations.<br />
You can also create change packages from Integrity Manager. For more<br />
information, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
217
Chapter 7: Using Change Packages and Reviews<br />
218<br />
To create a change package in the graphical user interface<br />
1 Create a change package in one of the following ways:<br />
With a Project, Sandbox, or Member History view open, select<br />
Change Package > Create.<br />
With a Manage Change Packages window open, do one of the<br />
following:<br />
Select Change Package > Create.<br />
Click .<br />
Create a change package when performing a member operation<br />
(see “Operations That Add Entries to a Change Package” on<br />
page 215).<br />
In to the Change Package portion of the panel, click Create.<br />
The Create Change Package dialog box is displayed.<br />
2 In the Summary field, enter a summary of the change package. A value<br />
for this field is mandatory<br />
3 In the Description field, if necessary, enter a detailed description of the<br />
change package.<br />
NOTE<br />
If the Integrity Manager integration is enabled, when you create a change<br />
package you can associate it with an issue. For more information, see “Creating<br />
a Change Package for an Issue” on page 375.<br />
u s e r g u i d e
4 Click OK.<br />
Adding Entries to a Change Package<br />
The change package is created. To view the change package, see<br />
“Viewing Change Package Details and Entries” on page 226.<br />
Adding Entries to a Change Package<br />
Once a change package is created, you can add entries to that change<br />
package when performing member operations (see “Operations That Add<br />
Entries to a Change Package” on page 215).<br />
Refer to the Change Package portion of the panel.<br />
From the change package list, select a change package. The list presents the<br />
Change package ID then the summary, for example, 13:1 Failed<br />
install.<br />
After the operation is <strong>com</strong>pleted, the entry is added to the change package.<br />
Depending on the operation, the change package’s ID appears in one of the<br />
member’s CPID (change package ID) columns in the Project or Sandbox<br />
view. Not all CPID columns appear by default. For information on the<br />
possible CPID columns, see “Sandbox View” on page 66.<br />
If the change package contains deferred operations or lock entries, a<br />
icon is displayed beside the change package ID in the Working CPID<br />
column of the Sandbox view.<br />
TIP<br />
You can also add an entry to a change package by dragging the member from a<br />
Sandbox view to a a Change Package view (or change package in the Manage<br />
Change Packages window). The Check Out dialog box is displayed with the<br />
change package selected. For more information, see “Checking Out a Member”<br />
on page 178.<br />
Lock tracking must be enabled for the Lock change package entry to<br />
appear in the Manage Change Packages window when viewed from a<br />
client on another machine.<br />
219
Chapter 7: Using Change Packages and Reviews<br />
220<br />
NOTE<br />
To add change package entries to a change package, the integrity client must be<br />
connected to the server on which the change package resides.<br />
Change Package Entry Types<br />
The following table displays the operation for each change package entry<br />
type.<br />
Change Package Entry<br />
Types<br />
Managing Change Packages<br />
Operation<br />
Add Add Member<br />
AddFromArchive Add Member From Archive<br />
Check In Deferred Check In<br />
Drop Drop Member<br />
Import Import Member<br />
Lock Lock Member, Check Out<br />
Rename Rename Member<br />
Update Check In, Update Member Revision<br />
UpdateRevision Update Member Revision<br />
UpdateArchive Check In (without updating member revision)<br />
Source Integrity provides a central location to manage change packages<br />
you have created that contain entries that have not been <strong>com</strong>mitted to the<br />
server repository. From one location, you can view a change package and<br />
its entries, view any issues associated with a change package, submit any<br />
deferred operations for that change package, close a change package, edit a<br />
change package, or create a new change package.<br />
If reviews are mandatory, submitted change packages continue to appear<br />
in the Manage Change Packages window until they are successfully<br />
<strong>com</strong>mitted to the repository.<br />
u s e r g u i d e
Managing Change Packages<br />
To manage change packages in the graphical user interface<br />
Do one of the following:<br />
Select Tools > Manage My Change Packages.<br />
Click .<br />
The Manage Change Packages window is displayed.<br />
By default, the Manage Change Packages window displays the following<br />
information:<br />
ID displays the change package ID.<br />
Issue displays the issue ID if Integrity Manager is enabled.<br />
Creator displays the user name of the person who created the change<br />
package.<br />
State displays current state of the change package (see “CP States” on<br />
page 241).<br />
Summary displays the summary statement for the change package.<br />
Additional columns are available in the client preferences. To change the<br />
displayed columns, see the Change Packages View option in the “View<br />
Preferences” on page 61.<br />
TIP<br />
Right-click the column header to hide, show, or sort the available columns.<br />
From the Manage Change Packages window, you can perform the<br />
following tasks using the Change Package menu:<br />
View Change Package entries and information (see “Viewing Change<br />
Package Details and Entries” on page 226)<br />
View Issue associated with the change package (see “Viewing a<br />
Change Package’s Issue” on page 376)<br />
Submit the change package (see “Submitting Change Packages” on<br />
page 238)<br />
221
Chapter 7: Using Change Packages and Reviews<br />
Finding Change<br />
Packages<br />
222<br />
Discard an existing change package (see “Discarding Change<br />
Packages” on page 236)<br />
Open a closed change package (see “Opening Change Packages” on<br />
page 249)<br />
Close a change package (see “Closing a Change Package” on page 235)<br />
Edit an existing change package (see “Editing a Change Package” on<br />
page 233)<br />
Accept casts an accept vote on a change package that is under review<br />
(see “Accepting a Change Package” on page 245<br />
Reject rejects a change package that is under review (see “Rejecting a<br />
Change Package” on page 247).<br />
Create a new change package (see “Creating a Change Package” on<br />
page 217)<br />
For information on the Review Log panel, see “Viewing the CP Review<br />
Log” on page 250.<br />
Source Integrity provides you with a way to search through all of the<br />
change packages created by anyone, including closed change packages.<br />
If the Integrity Manager integration is enabled you can use a query to find<br />
change packages based on <strong>com</strong>plex criteria. See “Finding Change Packages<br />
Using a Query” on page 378 for more information.<br />
To find change packages in the graphical user interface<br />
1 Select Tools > Find > Change Packages.<br />
The Find Change Packages dialog box is displayed with the By Filter<br />
panel displayed.<br />
u s e r g u i d e
Managing Change Packages<br />
If you want to find change packages using a filter, continue. To find a<br />
change package using its ID, go to step 3.<br />
2 You can search for change packages using the following filters:<br />
State finds change packages if they are currently in the specified<br />
state.<br />
Created By finds change packages that were created by a specified<br />
user.<br />
Creation Date finds change packages that were created on a<br />
specified date. The default date is today. Click Change to specify<br />
another date using the Creation Date Filter.<br />
Closed Date finds change packages that were closed on a specified<br />
date. The default date is today. Click Change to specify another<br />
date using the Creation Date Filter.<br />
Member finds change packages that contain a specified member<br />
name.<br />
Project finds change packages whose members belong to a<br />
specified project.<br />
Summary finds change packages that contain specified text in the<br />
change package summary.<br />
223
Chapter 7: Using Change Packages and Reviews<br />
224<br />
Description finds change packages that contain specified text in<br />
the change package description.<br />
Entry Type Modifier finds change packages based on their<br />
category. The categories are Committed and Pending. For more<br />
information, see “CP Entry Categories” on page 244.<br />
Entry Type finds change packages that contain a specified entry<br />
type. For more information, see “Change Package Entry Types”<br />
on page 220.<br />
NOTE<br />
Lock tracking must be enabled to filter by the Lock entry type. The Entry Type<br />
filter only finds locks that were made from a Project view.<br />
Pending Review By finds change packages submitted for review<br />
but not yet been accepted or rejected by a specified reviewer.<br />
Accepted By finds change packages accepted by a specified user.<br />
Rejected By finds change packages rejected by a specified user.<br />
Associated with Issue finds change packages that are associated<br />
with an Integrity Manager issue, if the integration is enabled. For<br />
more information, see “The Integrity Manager Integration” on<br />
page 371.<br />
To <strong>com</strong>bine filters, select the desired filters, then select Logical<br />
AND or Logical OR to specify their relationship.<br />
To invert a filter, click the filter a second time and the ! symbol<br />
appears. For example, search for change packages that are not<br />
associated with a specified project.<br />
When you are finished, go to step 5.<br />
3 To find a change package by using the change package ID, click the By<br />
ID tab.<br />
The By ID panel is displayed.<br />
u s e r g u i d e
4 Enter one of the following into the ID field:.<br />
Managing Change Packages<br />
A container ID, for example 12. This finds all changes packages<br />
with that container ID. If the Integrity Manager integration is<br />
enabled, the container ID is the same as the issue ID.<br />
The full change package ID, for example 12:1. This finds the single<br />
change package.<br />
To add the ID to the list, click Add.<br />
The ID appears in the list. Add as many IDs to the list as you want.<br />
To remove IDs from the list, select the IDs from the list, then click<br />
Remove.<br />
NOTE<br />
If the Integrity Manager integration is enabled, the By Query panel is available.<br />
For more information, see “Finding Change Packages Using a Query” on<br />
page 378.<br />
5 Click OK.<br />
The results are displayed in the Filtered Change Packages window.<br />
The Filtered Change Packages window displays change packages in<br />
the same way as the Change Packages view does. For more<br />
information, see “Change Packages View” on page 444.<br />
225
Chapter 7: Using Change Packages and Reviews<br />
Viewing Change<br />
Package Details<br />
and Entries<br />
226<br />
To update the search criteria with current data, select View > Refresh.<br />
To refine your search results, from the Filtered Change Packages<br />
window, select View > Filter.<br />
To start a new search, repeat this procedure.<br />
Once you add members to a change package (see “Adding Entries to a<br />
Change Package” on page 219), you can use Source Integrity to view the<br />
change package information for those members or revisions.<br />
NOTE<br />
When working with shared subprojects, Source Integrity uses the actual name<br />
of the subproject in the file system rather than its relative name in the project<br />
hierarchy. Therefore, the change package entries for a shared subproject use<br />
the actual file system name of the subproject. This enhances the portability of<br />
change packages across different projects.<br />
To view change package information and entries in the graphical user<br />
interface<br />
1 Do one of the following:<br />
From a Project or Sandbox view, select View Change Package,<br />
then one of the following:<br />
Working displays the change package associated with a<br />
deferred or a lock operation performed by the current user<br />
from the current sandbox (available only from Sandbox<br />
view).<br />
Member displays the change package associated the<br />
operation that set the member revision.<br />
Creation displays the change package that created the<br />
revision that is currently the member revision. This revision<br />
may be different from the member change package ID if an<br />
import, add member from archive, or set member revision<br />
operation was used.<br />
Locker displays the change package associated with the lock<br />
on the member revision.<br />
Pending displays the change package associated with a<br />
pending operation.<br />
u s e r g u i d e
Do one of the following:<br />
Managing Change Packages<br />
From the Annotated Revision view (see “Viewing an<br />
Annotated Revision” on page 316), select the annotation<br />
block corresponding to the change package you want to<br />
view.<br />
With the Manage Change Packages view open (see<br />
“Managing Change Packages” on page 220), select the<br />
change package you want to view.<br />
Then do one of the following:<br />
Select Change Package > View Change Package.<br />
Click .<br />
Double click the change package name.<br />
The Change Package view is displayed.<br />
2 To view change package information, click the Attributes tab.<br />
The Attributes panel is displayed.<br />
The Attributes panel displays the change package ID, summary,<br />
current change package state, person who created the change package,<br />
date the change package was created, and description (if one was<br />
provided). If applicable, the Attributes panel also displays the closed<br />
date and reolution information.<br />
3 To view change package entries, click the Entries tab.<br />
The Entries panel is displayed.<br />
By default, the Entries panel displays the following information for<br />
each change package entry:<br />
Type is the entry type of the change package entry. For<br />
information on possible entry types, see “Change Package Entry<br />
Types” on page 220.<br />
227
Chapter 7: Using Change Packages and Reviews<br />
228<br />
Member displays name of the member associated with the change<br />
package entry.<br />
When it is a Rename entry type, the member name is displayed in<br />
the form: newname(oldname).<br />
Revision displays the revision number associated with the change<br />
package entry.<br />
Sandbox displays the name of the sandbox where the deferred<br />
operation, check out, or lock took place.<br />
Project displays the name and path of the project that the member<br />
belongs to. If the entry occurred from a shared subproject, the<br />
subproject name and path are displayed.<br />
Variant displays the name of the variant development path (if a<br />
variant was used) the change package entry is derived from.<br />
Date Changed displays the date the entry was made.<br />
Server displays the host name of the server the entry was made<br />
on.<br />
Additional columns are available in the client preferences. To change<br />
the displayed columns, see “View Preferences” on page 61.<br />
TIP<br />
Right click the column header to hide, show, or sort columns.<br />
4 From the Entries panel, you can select a change package entry and<br />
then perform the following tasks from the Change Package Entry<br />
menu:<br />
View Differences for the entry (see “Viewing CP Entry Member<br />
Differences” on page 255).<br />
View Revision that is associated with the entry (see “Viewing a<br />
Member’s Working File or Revision” on page 322). This always<br />
displays the revision stored in the repository.<br />
TIP<br />
Double click a locked member, a deferred check in, or a pending update entry<br />
to display the working file.<br />
View Revision Information associated with the entry (see<br />
“Viewing and Editing Revision Information” on page 314).<br />
u s e r g u i d e
Managing Change Packages<br />
View the Member History associated with the entry (see “Viewing<br />
a Member History” on page 310).<br />
Submit selected deferred entries (see “Submitting Deferred<br />
Operations” on page 202).<br />
Edit Settings for the selected deferred entries (see “Submitting<br />
Deferred Operations” on page 202).<br />
Discard discards the selected entries (see “Discarding CP Entries”<br />
on page 254).<br />
Move moves the selected entries to another change package (see<br />
“Moving CP Entries” on page 252).<br />
Edit Working File that is associated with a entry (see “Viewing a<br />
Member’s Working File or Revision” on page 322).<br />
Check In the selected lock entries (.see “Checking In a Member”<br />
on page 186).<br />
To update the list of change package entries with the most recent<br />
changes, select View > Refresh.<br />
To display or not display un<strong>com</strong>mitted entries (deferred entries and<br />
lock entries), select View > Show Un<strong>com</strong>mitted. Repeat to enable or<br />
disable the option.<br />
To display or not display entries that are pending, select View ><br />
Show Pending. Repeat to enable or disable the option.<br />
To display or not display <strong>com</strong>mitted entries, select View > Show<br />
Committed. Repeat to enable or disable the option.<br />
To view change package information and entries in the Web interface<br />
1 Do one of the following:<br />
With a Project view open, select the member whose change<br />
package you want to view.<br />
With a Member History view open, select the member revision<br />
whose change package you want to view.<br />
2 Select Change Package > View Change Package.<br />
TIP<br />
Click the change package ID to view the change package.<br />
The Change Package view is displayed.<br />
229
Chapter 7: Using Change Packages and Reviews<br />
230<br />
For more information on the change packages view, see “Change Package<br />
View” on page 443.<br />
To view a member’s change package information in the graphical user<br />
interface<br />
1 With a Project or Sandbox view open, select the member whose<br />
information you want to view.<br />
2 Do one of the following:<br />
Select Member > Properties > Member Information.<br />
Click .<br />
The Member Information dialog box is displayed.<br />
3 Click the Change Package tab.<br />
The Change Package panel appears.<br />
The issue ID and summary are displayed. If the member is not<br />
associated with a change package, No Change Package<br />
Information Available appears in the Change Package panel.<br />
The change package that appears is associated with the operation that<br />
created the member revision.<br />
4 When you are finished viewing the member information, click OK.<br />
u s e r g u i d e
Managing Change Packages<br />
To view a member’s change package information in the Web interface<br />
1 With the Project view open, select the member whose information you<br />
want to view.<br />
2 Select Member > Member Information.<br />
3 Scroll to the Change Package section.<br />
4 The CP ID and summary are displayed. If the member is not<br />
associated with a change package, No Change Package<br />
Information Available appears in the Change Package section.<br />
5 When you have finished viewing the member information, click OK.<br />
To view a revision’s change package information in the graphical user<br />
interface<br />
1 With a Member History view open, select the revision whose<br />
information you want to view.<br />
2 Do one of the following:<br />
Select History > Revision Information.<br />
Click .<br />
The Revision Information dialog box is displayed.<br />
3 Click the Change Package tab.<br />
The Change Package panel appears.<br />
231
Chapter 7: Using Change Packages and Reviews<br />
232<br />
The CP ID and summary are displayed. If the revision is not<br />
associated with a change package, No Change Package<br />
Information Available appears in the Change Package panel.<br />
4 When you are finished viewing the revision information, click OK.<br />
To view a revision’s change package information in the Web interface<br />
1 With a Member History view open, select the revision whose<br />
information you want to view.<br />
2 Do one of the following:<br />
Select History > Revision Information.<br />
Click .<br />
The Revision Information dialog box is displayed.<br />
3 Scroll down to view the change package information.<br />
u s e r g u i d e
Editing a<br />
Change<br />
Package<br />
Managing Change Packages<br />
The CP ID and summary are displayed. If the revision is not<br />
associated with a change package, No Change Package<br />
Information Available appears in the Change Package panel.<br />
4 When you are finished viewing the revision information, click OK.<br />
You can update a change package when necessary. You can update the<br />
summary, state, and description of a change package.<br />
NOTE<br />
You can only edit a change package that you created, unless you have<br />
administrator permissions.<br />
To edit a change package in the graphical user interface<br />
1 Do one of the following:<br />
With the Manage Change Packages view open (see “Managing<br />
Change Packages” on page 220), select the change package you<br />
want to edit.<br />
From a Sandbox view, select the member whose associated<br />
change package you want to edit.<br />
In a Change Package view, display the change package you want<br />
to edit (see “Viewing Change Package Details and Entries” on<br />
page 226).<br />
233
Chapter 7: Using Change Packages and Reviews<br />
234<br />
2 Do one of the following:<br />
Select Change Package > Edit.<br />
Click .<br />
The Edit Change Package dialog box is displayed.<br />
3 Edit the change package as required:<br />
In the Summary field, enter a new summary for the change<br />
package or add to the existing summary.<br />
In the State field, select a state for the change package from the<br />
list (see “CP States” on page 241).<br />
If reviews are mandatory, change packages in state CommitFailed,<br />
Rejected, or Discarded can be moved to the Open state as part of<br />
the state workflow. For more information, see “Change Package<br />
Review Process” on page 240.<br />
In the Description field, enter a new description for the change<br />
package or add to the existing description.<br />
4 Click OK to save your changes.<br />
To edit a change package in the Web interface<br />
1 In a Project view, select the member that is associated with the change<br />
package you want to edit.<br />
2 Under the C.P.ID column, click the number link for the change<br />
package.<br />
The Change Package view opens.<br />
3 Do one of the following:<br />
Under the Actions menu, click Edit Change Package.<br />
Click .<br />
u s e r g u i d e
Closing a<br />
Change<br />
Package<br />
The Edit Change Package dialog box is displayed.<br />
4 Edit the change package as required:<br />
Managing Change Packages<br />
In the Summary field, enter a new summary for the change<br />
package or add to the existing summary.<br />
In the State field, select a state for the change package from the<br />
list (see “CP States” on page 241).<br />
If reviews are mandatory, change packages in state CommitFailed,<br />
Rejected, or Discarded can be moved to the Open state as part of<br />
the state workflow. For more information, see “Change Package<br />
Review Process” on page 240.<br />
In the Description field, enter a new description for the change<br />
package or add to the existing description.<br />
5 Click OK to save your changes.<br />
Once the necessary changes are made to the members and they are<br />
<strong>com</strong>mitted to the repository, the change package can be closed.<br />
In addition to this procedure, you can close a change package in the<br />
graphical user interface when performing member operations (see<br />
“Operations That Add Entries to a Change Package” on page 215).<br />
If the Integrity Manager integration is enabled, closing a change package<br />
allows the issue to move forward in the Integrity Manager workflow. For<br />
more information, see “The Integrity Manager Integration” on page 371.<br />
NOTE<br />
You can only close a change package that you have created unless you have<br />
administrative permissions.<br />
235
Chapter 7: Using Change Packages and Reviews<br />
Discarding<br />
Change<br />
Packages<br />
236<br />
If reviews are mandatory, you cannot close a change package. It must<br />
follow the review process and be closed by the Integrity Server. For more<br />
information, see “Change Package Review Process” on page 240.<br />
To close a change package in the graphical user interface<br />
1 Do one of the following:<br />
With the Manage Change Packages window open (see<br />
“Managing Change Packages” on page 220), select the change<br />
package you want to close.<br />
From a Sandbox view, select the member whose associated<br />
change package you want to close.<br />
In a Change Package view, display the change package you want<br />
to close (see “Viewing Change Package Details and Entries” on<br />
page 226).<br />
2 Do one of the following:<br />
Select Change Package > Close.<br />
Click .<br />
The Confirm Close Change Package dialog box is displayed.<br />
3 To close the change package, click OK.<br />
The change package is closed.<br />
To close a change package when performing an operation in the<br />
graphical user interface<br />
You can close a change package when performing member operations (see<br />
“Operations That Add Entries to a Change Package” on page 215).<br />
To close the change package when performing a member operation: on the<br />
dialog box, enable the Close Change Package option.<br />
After the operation is <strong>com</strong>pleted, the change package is closed.<br />
Source Integrity provides a way to remove change packages from active<br />
use when they are not needed by discarding them.<br />
Change packages can only be discarded if they are in the Open or<br />
Rejected states. In order to discard a change package, that change<br />
package must be both created by you and not contain any <strong>com</strong>mitted<br />
entries. However, a change package administrator may discard a change<br />
package created by another user.<br />
u s e r g u i d e
TIP<br />
Managing Change Packages<br />
If only specific entries need to be removed from a change package, see<br />
“Discarding CP Entries” on page 254.<br />
When a change package is discarded, the following happens where<br />
applicable:<br />
All un<strong>com</strong>mitted entries are removed from the change package.<br />
Al deferred operations corresponding to deferred entries are reverted.<br />
All locks on members corresponding to lock entries are released.<br />
All pending operations corresponding to pending entries are reverted,<br />
and appear as discarded entries in the review log (to preserve the<br />
review history).<br />
All pending revisions that correspond to pending entries are deleted.<br />
Any archives created for pending members associated with pending<br />
entries in the change package are deleted from the server (pre-existing<br />
archives that were shared to create a pending member are not<br />
deleted).<br />
Note the following about discarded change packages:<br />
The change package ID for the discarded change package can never be<br />
used for any future change packages that are created.<br />
Discarded change packages have a state of Discarded, and can still be<br />
viewed using the Change Package filter (see “Finding Change<br />
Packages” on page 222).<br />
If the change package has undergone a review, the review log persists.<br />
Discarded change packages can be opened and used again (see<br />
“Opening Change Packages” on page 249).<br />
To discard change packages in the graphical user interface<br />
1 Do one of the following:<br />
In the Change Package view (see “Viewing Change Package<br />
Details and Entries” on page 226), display the change package<br />
you want to discard.<br />
From the Manage Change Packages view (see “Managing Change<br />
Packages” on page 220), select the change packages to be<br />
discarded.<br />
237
Chapter 7: Using Change Packages and Reviews<br />
238<br />
From the Sandbox view, select member revisions associated with<br />
the change packages to be discarded.<br />
2 Select Change Package > Discard.<br />
The Confirm Discard Change Package dialog box is displayed.<br />
3 To discard the change packages, click Yes.<br />
If the change package contains entries, the Confirm Discard Change<br />
Package Entry dialog box is displayed. To discard all entries in the<br />
change package, click Yes to All .<br />
The change packages are moved to the Discarded state.<br />
To discard a change package in the Web interface<br />
1 Display the change package you want to discard in the Change<br />
Package view. For more information, see “To view change package<br />
information and entries in the Web interface” on page 229.<br />
2 From the Change Package view, select Actions > Discard Change<br />
Package.<br />
The Confirm Discard Change Package dialog box is displayed.<br />
3 To discard the change package, click Yes.<br />
If the change package contains entries, the Confirm Discard Change<br />
Package Entry dialog box is displayed. To discard all entries in the<br />
change package, click Yes to All.<br />
The change package is moved to the Discarded state.<br />
Submitting Change Packages<br />
Although you can submit operations individually, you can ensure that no<br />
operations are missed by submitting a change package that contains<br />
deferred operations. Deferred operations are visible only from the<br />
Source Integrity Client, and are not <strong>com</strong>mitted to the repository until they<br />
are submitted. You can submit change packages containing any<br />
<strong>com</strong>bination of deferred, pending, and <strong>com</strong>mitted entries.<br />
When reviews are mandatory, submitting a change package begins the<br />
review process (see “Change Package Review Process” on page 240).<br />
u s e r g u i d e
To submit change package in the graphical user interface<br />
1 Do one of the following:<br />
Submitting Change Packages<br />
From the Manage Change Packages view (see “Managing Change<br />
Packages” on page 220), select the change packages you want to<br />
submit.<br />
In the Change Package view (see “Viewing Change Package<br />
Details and Entries” on page 226), display the change package<br />
you want to submit.<br />
From a Sandbox view, select the member whose associated<br />
change package you want to submit.<br />
2 To submit the change package, do one of the following:<br />
Select Change Package > Submit.<br />
Click .<br />
NOTE<br />
Locked members with lock entries in a change package are checked in when<br />
the change package is submitted.<br />
The Submit Change Package Status dialog box is displayed,<br />
containing information on the status of your change package. The<br />
dialog box notifies you if your change package is submitted,<br />
<strong>com</strong>mitted, or failed to <strong>com</strong>mit.<br />
IMPORTANT<br />
If when a change package is submitted it only contains pending entries, you are<br />
prompted, and in order to <strong>com</strong>mit those pending entries you must click Yes to<br />
submit the change package even if there are no deferred or lock entries. To set<br />
this option as default, see “Command Preferences” on page 48.<br />
If a review is mandatory for any project that the member<br />
corresponding to a change package entry is associated with, the<br />
Submit Change Package <strong>com</strong>mand begins the review process which<br />
must be <strong>com</strong>pleted before the changes are <strong>com</strong>mitted to the<br />
repository.<br />
If the change package is a resolution change package, by default you<br />
are prompted with the option to apply the change package after it is<br />
submitted. For more information, see “Working With a Resolution<br />
CP” on page 428.<br />
239
Chapter 7: Using Change Packages and Reviews<br />
Change Package Review Process<br />
How the CP<br />
Review Works<br />
240<br />
A change package review is a review of changes by specified reviewers<br />
before the changes are <strong>com</strong>mitted to the server repository.<br />
If change package reviews are mandatory globally, then all change<br />
packages must progress through the change package review process.<br />
If change package reviews are mandatory at the project level only, then a<br />
change package only progresses through the review process if it contains<br />
at least one entry associated with a member in a project that requires a<br />
review. Change packages follow the review process before the changes are<br />
successfully <strong>com</strong>mitted to the server repository. All other change packages<br />
function as non-review change packages.<br />
IMPORTANT<br />
To use change package reviews, you must use Source Integrity 8.6 or later.<br />
A change package reviewer is a user specified by your administrator to<br />
review change packages containing members associated with specific<br />
projects. The reviewer may be individually specified or a member of a<br />
specified reviewer group. In the case of a reviewer group, any member of<br />
that group casts an accept or reject vote on behalf of the entire group.<br />
A change package watcher is a user specified by your administrator who is<br />
notified when a reviewed change package is closed after being successfully<br />
<strong>com</strong>mitted to the repository. Change package watchers may be<br />
individually specified or a member of a specified watcher group.<br />
A Super Reviewer is a user with permission to vote on change packages that<br />
the user is not a listed reviewer for. Voting as a super reviewer overrides<br />
all other votes, for example casting an accept vote as a super reviewer is<br />
sufficient for accepting the change package.<br />
Following is a summary of how the change package review process works:<br />
1 The review starts when a developer (change package creator) submits<br />
a change package containing deferred entries (or any <strong>com</strong>bination of<br />
deferred, pending, or <strong>com</strong>mitted entries).<br />
2 Source Integrity creates a pending change package entry for each<br />
deferred entry, and where necessary pending revisions.<br />
3 Change Package Reviewers (possibly a mentor or a senior developer)<br />
accept or reject the change package.<br />
u s e r g u i d e
CP States<br />
Change Package Review Process<br />
4 The change package entries are either <strong>com</strong>mitted to the database<br />
(accepted case) or the developer opens the change package and<br />
continues development (rejected case)<br />
For a detailed description of the change package review process, see “CP<br />
Review Workflow” on page 242.<br />
NOTE<br />
Although the review process describes submitting change packages with<br />
deferred entries thereby creating pending entries; if deferred operations are not<br />
mandatory, you can create pending entries at the time the operation is<br />
<strong>com</strong>pleted by clearing the deferred option. You can then submit the change<br />
package containing the pending entries for review.<br />
Submit<br />
Change Package<br />
Pending Entries<br />
and Revisions<br />
Change Package Review Overview<br />
ACCEPT or REJECT<br />
Committed<br />
Open and<br />
Work<br />
Server<br />
The following table provides details on change package states. Where<br />
specified, some are only used in the review workflow:<br />
Change Package State Details<br />
Open The only state where work can be performed using a<br />
change package (new entries created).<br />
Submitted The state the change package is in while it is being<br />
reviewed. All operations are pending.<br />
241
Chapter 7: Using Change Packages and Reviews<br />
CP Review<br />
Workflow<br />
242<br />
Change Package State Details<br />
Accepted An intermediate state denoting that the change<br />
package is accepted by all of the reviewers.<br />
Source Integrity automates the state change from<br />
Accepted to Closed if the changes are successfully<br />
<strong>com</strong>mitted to the repository.<br />
CommitFailed The state signifying that the pending changes could<br />
not be <strong>com</strong>mitted to the repository.<br />
Rejected The state denoting that the change package is<br />
rejected by a reviewer. The creator must manually<br />
move the change package to Open to continue<br />
development.<br />
Discarded Empty change packages or change packages with<br />
changes that do not need to be <strong>com</strong>mitted to the<br />
repository are moved by the creator to the<br />
Discarded state. Discarded change packages can<br />
be opened at a later date if needed.<br />
Closed The end state for the change package, when<br />
pending changes are successfully <strong>com</strong>mitted to the<br />
repository.<br />
A change package under review progresses through states in a workflow.<br />
For a graphical representation of the workflow, see the diagram “Change<br />
Package State Workflow” on page 244.<br />
The following is the change package progression through the workflow:<br />
1 A change package is created, and in the Open state. Entries are added<br />
to the change package by the developer.<br />
2 The developer submits the change package to begin the change<br />
package review process (see “Submitting Change Packages” on<br />
page 238), and Source Integrity moves the change package to the<br />
Submitted state.<br />
An e-mail is sent to notify the reviewers of the change package<br />
submission (if the server is configured to send e-mail notifications).<br />
The e-mail contains both change package and review information.<br />
3 The reviewer or reviewers, either accept the change package or reject<br />
it. The following can then happen:<br />
If all individual reviewers and at least one reviewer from a<br />
reviewer group (if any exist) accept the change package, it is<br />
moved to the Accepted state. For each vote cast by a reviewer,<br />
Source Integrity sends the reviewers an e-mail notification of the<br />
u s e r g u i d e
Change Package Review Process<br />
accept vote. When all reviewers have voted to accept the change<br />
package, Source Integrity sends each reviewer and the creator an<br />
e-mail notification that the change package is accepted.<br />
Source Integrity then <strong>com</strong>mits the changes to the repository, and<br />
then closes the change package. If Source Integrity fails to <strong>com</strong>mit<br />
the changes to the repository, it moves the change package to the<br />
CommitFailed state and an e-mail notification is sent to the creator<br />
stating the <strong>com</strong>mit failure and the error associated with that<br />
failure.<br />
From the CommitFailed state, once the <strong>com</strong>mit failure reason is<br />
remedied, the creator can submit the change package again. Since<br />
the review is already <strong>com</strong>pleted, the change package moves to the<br />
Closed state without requiring passage through the review<br />
process an additional time, or any additional e-mail notifications<br />
to be sent.<br />
From the CommitFailed state, the creator can also move the<br />
change package back to Open, continue development, and then<br />
submit it for review again.<br />
If an accepted change package is successfully <strong>com</strong>mitted to the<br />
repository, Source Integrity then closes the change package and<br />
an e-mail notification is sent to the change package watchers.<br />
Change packages in the Closed state cannot be opened.<br />
If a reviewer (either an individual or a group member) rejects the<br />
change package, Source Integrity moves it to the Rejected state<br />
and an e-mail notification is sent to each reviewer and the creator.<br />
The creator of the change package then moves the change<br />
package to the Open state (by editing the change package and<br />
changing the state), continues development, and then submits the<br />
change package again.<br />
NOTE<br />
The creator of the change package continues development on pending<br />
revisions by checking them out. For more information, see “Working With<br />
Pending Revisions” on page 335.<br />
The user can also discard the change package if it is no longer<br />
needed for development (thereby discarding entries contained int<br />
he change package). Change packages in the Discarded state can<br />
be moved back to the Open state if they are needed again.<br />
243
Chapter 7: Using Change Packages and Reviews<br />
CP Entry<br />
Categories<br />
244<br />
Change Package State Workflow<br />
There are four categories of change package entries: deferred, pending,<br />
discarded, and <strong>com</strong>mitted. For a <strong>com</strong>plete list of change package entry<br />
types, see “Change Package Entry Types” on page 220.<br />
The following are change package entry type categories and their<br />
descriptions:<br />
deferred entries appear only when the change package is in the Open<br />
state, for deferred operations (see “Deferring Member Operations” on<br />
page 200).<br />
pending entries appear only when the change package is in the Open,<br />
Submitted, Accepted, Rejected, and CommitFailed states, for<br />
operations performed when reviews are mandatory, and when<br />
deferred operations are submitted (see “Submitting Change Packages”<br />
on page 238 and “Submitting Deferred Operations” on page 202).<br />
discarded entries can only be viewed from the review log. For more<br />
information, see “Discarding CP Entries” on page 254 and “Viewing<br />
the CP Review Log” on page 250.<br />
<strong>com</strong>mitted entries are entries that are <strong>com</strong>mitted to the repository. They<br />
are denoted simply by the change package entry type name, for<br />
example update.<br />
u s e r g u i d e
Reviewing<br />
Changes<br />
Accepting a<br />
Change<br />
Package<br />
NOTE<br />
Change Package Review Process<br />
For change packages that are not under review, only the deferred and<br />
<strong>com</strong>mitted entry types are available for use in Source Integrity.<br />
You can use the Resync CP <strong>com</strong>mand to create working files in your<br />
sandbox for all of the changes in the change package you intend to review.<br />
For more information, see “Using the Resync CP Command” on page 406.<br />
After a change package is submitted, each individual reviewer and one<br />
member of each reviewer group (if specified) in the reviewer list must<br />
accept the change package before it can be <strong>com</strong>mitted to the repository and<br />
then closed.<br />
To view the list of reviewers and reviewer groups, see “Viewing the CP<br />
Review Log” on page 250.<br />
NOTE<br />
To accept a change package, the integrity client must be connected to the server<br />
on which the change package resides.<br />
To accept a change package in the graphical user interface and<br />
Web interface<br />
1 Do one of the following:<br />
From the graphical user interface, do one of the following:<br />
From the Change Packages for to review view<br />
(see“Viewing Your Pending Reviews” on page 250), select<br />
the change package you want to accept.<br />
From the Change Packages view, select the change package<br />
you want to accept.<br />
In the Change Package view (see “Viewing Change Package<br />
Details and Entries” on page 226), display the change<br />
package you want to accept.<br />
Select Change Package > Accept or click .<br />
From the Web interface, with a Project or Member History view<br />
open, click the change package ID. The Change Package View is<br />
displayed.<br />
Select Actions > Accept Change Package or click .<br />
245
Chapter 7: Using Change Packages and Reviews<br />
246<br />
The Accept Change Package dialog box is displayed.<br />
The following information is displayed:<br />
ID displays the change package ID number.<br />
Summary displays the summary description of change package.<br />
Creator displays the user name of the user who created the<br />
change package.<br />
Review As displays the user name of the reviewer accepting the<br />
change package.<br />
2 In the Capacity list, select the capacity in which you are the reviewer.<br />
Due to factors determined by your administrator, the options in the<br />
list vary per user for each change package. The possible options are:<br />
Individual casts a vote as an individual reviewer in the<br />
reviewer list.<br />
Member of casts a vote on behalf of the entire group<br />
(only a one user from a group is necessary to vote on behalf of the<br />
entire group).<br />
All Reviewers casts a vote as a specific user and any group to<br />
which the reviewer belongs.<br />
Super Reviewer casts an overriding accept vote that is sufficient<br />
for accepting the change package even if there are additional<br />
reviewers. A super reviewer does is not required to be a listed<br />
reviewer for the change package.<br />
3 Enter <strong>com</strong>ments on the change package elements in the Comments<br />
field if desired.<br />
4 To accept the change package, click OK.<br />
The accept vote is cast and recorded in the review log (see “Viewing<br />
the CP Review Log” on page 250).<br />
If there reviewers in addition to yourself, an e-mail is sent to notify<br />
those reviewers that you have cast an accept vote for the change<br />
package.<br />
When all of the individual reviewers and at least one reviewer from<br />
each reviewer group have accepted the change package, an e-mail is<br />
sent to notify the reviewers and the creator that the change package is<br />
accepted.<br />
u s e r g u i d e
Rejecting a<br />
Change<br />
Package<br />
Change Package Review Process<br />
Once the change package is accepted, it is <strong>com</strong>mitted to the server<br />
repository. If the change package is successfully <strong>com</strong>mitted to the<br />
repository, it then moves to a state of Closed. For more information on<br />
change package states, see “CP Review Workflow” on page 242.<br />
If the change package under review is closed, an e-mail notification of<br />
the Closed state is sent to the change package watchers.<br />
All e-mail notifications contain Change Package and Review<br />
information.<br />
If a reviewer of a change package determines that invalid changes were<br />
made, or additional development must be <strong>com</strong>pleted to resolve an issue;<br />
the reviewer can reject the change package. A single reviewer rejection is<br />
enough to reject a change package, even if there are multiple reviewers.<br />
The creator of the change package can reject it without being listed as a<br />
reviewer.<br />
To view the list of reviewers and reviewer groups, see “Viewing the CP<br />
Review Log” on page 250.<br />
To reject a change package in the graphical user interface and<br />
Web interface<br />
1 Do one of the following:<br />
From the graphical user interface, do one of the following:<br />
From the Change Packages for to review view<br />
(see“Viewing Your Pending Reviews” on page 250), select<br />
the change package you want to reject.<br />
From the Change Packages view, select a change package<br />
you want to reject.<br />
In the Change Package view (“Viewing Change Package<br />
Details and Entries” on page 226), display the change<br />
package you want to reject.<br />
Select Change Package > Reject or click .<br />
From the Web interface, with a Project or Member History view<br />
open, click the change package ID. The Change Package View is<br />
displayed.<br />
Select Actions > Reject Change Package or click .<br />
The Reject Change Package dialog box is displayed.<br />
247
Chapter 7: Using Change Packages and Reviews<br />
248<br />
The following information is displayed:<br />
ID is the change package ID number.<br />
Summary is the summary description of change package.<br />
Creator is the user name who created the change package.<br />
Review As is the user name of the reviewer rejecting the change<br />
package.<br />
2 In the Capacity list, select the capacity in which you are the reviewer.<br />
Due to factors determined by your administrator, the options in the<br />
list vary per user for each change package. The possible options are:<br />
Individual casts a vote as an individual reviewer in the<br />
reviewer list.<br />
Member of casts a vote on behalf of the entire group<br />
(only a one user from a group is necessary to vote on behalf of the<br />
entire group).<br />
All Reviewers casts a vote as a specific user and any group to<br />
which the reviewer belongs.<br />
Super Reviewer casts an overriding reject vote that is sufficient<br />
for rejecting the change package even if there are additional<br />
reviewers. A super reviewer does is not required to be a listed<br />
reviewer for the change package.<br />
3 Enter <strong>com</strong>ments on the change package elements in the Comments<br />
field if desired.<br />
4 To reject the change package, click OK.<br />
The change package moves to a state of Rejected and the vote is<br />
recorded in the review log (see “Viewing the CP Review Log” on<br />
page 250). An e-mail notification of the change package’s rejection is<br />
sent to the reviewers and creator.<br />
From the Rejected state, the change package can be discarded, or<br />
reopened. For more information on change package states, see “CP<br />
Review Workflow” on page 242.<br />
u s e r g u i d e
Opening<br />
Change<br />
Packages<br />
CP Review<br />
Notifications<br />
Change Package Review Process<br />
The open state is the only state you can add new entries to a change<br />
package. As part of the review workflow, change packages in the following<br />
states can be opened: CommitFailed, Rejected, and Discarded.<br />
CAUTION<br />
Only a Change Package Administrator can open a change package in the<br />
Closed state. Modifying closed change package contents can <strong>com</strong>promise the<br />
integrity of the server repository.<br />
To open a change package in the graphical user interface and<br />
Web interface<br />
1 Do one of the following:<br />
From the graphical user interface, do one of the following:<br />
From the Manage Change Packages view, select the change<br />
packages to be opened.<br />
Display the change package in the Change Package view<br />
Select Change Package > Open or click .<br />
From the Web interface, with a Project or Member History view<br />
open, click the change package ID. The Change Package View is<br />
displayed.<br />
Select Actions > Open Change Package or click .<br />
The change package is opened.<br />
E-mail notifications are sent out to change package reviewers, watchers,<br />
and the creator at points throughout the change package review process.<br />
For specific information on when each e-mail notification is sent, see the<br />
individual procedures; or for an overview, see “CP Review Workflow” on<br />
page 242.<br />
Each e-mail notification contains a description of the action that prompted<br />
the notification, change package information containing the details and<br />
entries, and Review information containing reviewer and voting<br />
information. Some aspects of e-mail notification may be configured<br />
specifically for your review implementation, including no e-mail<br />
notification. Contact your administrator for more information.<br />
249
Chapter 7: Using Change Packages and Reviews<br />
Viewing Reviews<br />
Viewing Your<br />
Pending<br />
Reviews<br />
Viewing the CP<br />
Review Log<br />
250<br />
Source Integrity provides you with a list of all of the change packages you<br />
are currently listed as a reviewer for. Review information is viewable from<br />
the Change Package view review log.<br />
As a reviewer, you can view all of the change packages you are to review<br />
from one convenient view. A change package only appears in the list after<br />
it is submitted. You can then view all of the review information<br />
individually for each change package.<br />
NOTE<br />
It is possible for you to be a reviewer of a change package you created. Contact<br />
your administrator for more information.<br />
To view your reviews in the graphical user interface<br />
1 Select Tools > My Reviews.<br />
The Change Packages for to review view is displayed.<br />
By default, the following information is displayed:<br />
ID is the change package ID.<br />
Issue is the issue ID if the Integrity Manager integration is<br />
enabled.<br />
Creator is the user name who created the change package.<br />
State is current state of the change package (see “CP States” on<br />
page 241).<br />
Summary is the summary statement for the change package.<br />
The columns are the same as those in the Change Package view. To<br />
modify the columns that appear, see “View Preferences” on page 61.<br />
Source Integrity provides review logs as part of a <strong>com</strong>plete review audit<br />
process. A log consists of individual records for each reviewer vote cast.<br />
Each time the change package is submitted for review, a new log begins.<br />
To view the change package review log in the graphical user interface<br />
and Web interface<br />
From the Change Package view (see “Viewing Change Package Details and<br />
Entries” on page 226), click the Review Log tab.<br />
u s e r g u i d e
The Review Log panel appears.<br />
Viewing Reviews<br />
Each change package review log contains a record of every vote by a<br />
reviewer on the change package. Each review record contains the<br />
following information:<br />
Review State<br />
The possible review states are:<br />
Review Pending the change package is still in a state of Submitted and<br />
there are outstanding votes to be cast by reviewers.<br />
Accepted the change package is in a state of Accepted, and all of the<br />
individual reviewers and a user from each reviewer group have<br />
accepted the change package.<br />
Rejected the change package is in a state of Rejected, and at least one<br />
reviewer has rejected the change package.<br />
Reviewer Type<br />
The possible reviewer types are:<br />
<strong>User</strong> Reviewer is a user voting in an individual capacity.<br />
Group Reviewer is a user voting in a group capacity on behalf of that<br />
group.<br />
Super Reviewer is a user casting an overriding vote in a super<br />
reviewer capacity, and is not required to be a user on the reviewer list<br />
or in a group on the group reviewer list.<br />
Vote<br />
The possible vote values are:<br />
Pending signifies that the reviewer or group reviewer has not yet cast<br />
a vote.<br />
Accepted signifies that the user has cast an accept vote for the change<br />
package.<br />
Rejected signifies that the user has cast a reject vote for the change<br />
package.<br />
Comments<br />
Displays information that reviewers optionally provide to clarify their<br />
votes.<br />
251
Chapter 7: Using Change Packages and Reviews<br />
252<br />
Changes<br />
Displays in tabular form the changes that were made to members upon<br />
submission of the change package. For information on the columns<br />
displayed, see “Change Package View” on page 443.<br />
Managing Change Package Entries<br />
Moving CP<br />
Entries<br />
Source Integrity provides flexibility for managing change package entries.<br />
You can move change package entries from one change package to<br />
another. For example, if you checked in a member with the incorrect<br />
change package, you can move that change package entry to the correct<br />
change package, thereby ensuring auditing accuracy.<br />
Note the following about moving change package entries:<br />
Only the change package creator can move entries from one change<br />
package to another.<br />
Both the originating and the target change packages must be open.<br />
Only a change package administrator can move entries from one<br />
closed change package to another open change package, and only if<br />
the closed change package is not one that was reviewed. A change<br />
package administrator can also move entries from one open change<br />
package to another open change package.<br />
To move change package entries in the graphical user interface<br />
1 From the Entries panel on the Change Package view, select the change<br />
package entries you want to move.<br />
2 Do one of the following:<br />
Select Change Package Entry > Move.<br />
Click .<br />
The Move Change Package Entry dialog box is displayed.<br />
u s e r g u i d e
Managing Change Package Entries<br />
3 From the Target Change Package list, select the change package you<br />
want to move the entries to. The change packages are listed with the<br />
C.P. ID and the summary.<br />
If you want to create a new change package for the entries, click<br />
Create. For more information, see “Creating a Change Package” on<br />
page 217.<br />
If you are a change package administrator, the Show all open Change<br />
Packages option is available. Select the option to make change<br />
packages that you did not create available in the Target Change<br />
Package list.<br />
4 When you are finished, click OK.<br />
The Confirm Move Change Package dialog box is displayed.<br />
5 To move each entry presented, click Yes. To move all entries without<br />
viewing individual prompts, click Yes to All.<br />
The change package entries are moved to the selected change package.<br />
TIP<br />
You can move change package entries by dragging them from one change<br />
package view to another.<br />
To move change package entries in the Web interface<br />
1 With a Project or Member History view open, click the change<br />
package ID.<br />
The Change Package view is displayed.<br />
2 Click the Entries tab.<br />
The Entries panel is displayed.<br />
3 Select the change package entries you want to move.<br />
4 Do one of the following:<br />
Select Actions > Move Change Package Entry.<br />
Click .<br />
The Move Change Package Entry dialog box is displayed.<br />
253
Chapter 7: Using Change Packages and Reviews<br />
Discarding CP<br />
Entries<br />
254<br />
5 From the Target Change Package list, select the change package you<br />
want to move the entries to. The change packages are listed with the<br />
C.P. ID and the summary, for example, 10:1 help dialog broken.<br />
If you want to create a new change package for the entries, click<br />
Create. For more information, see “Creating a Change Package” on<br />
page 217.<br />
6 When you are finished, click OK.<br />
The Confirm Move Change Package dialog box is displayed.<br />
7 To move the entry, click Yes. Repeat for additional entries.<br />
The change package entries are moved to the selected change package.<br />
You can remove entries from a change package by discarding them. To<br />
discard entries, the change package must be in an Open or Rejected state.<br />
Only a change package administrator can discard entries from closed<br />
change packages, and only if reviews are not mandatory.<br />
When a change package entry is discarded, the following happens if<br />
applicable:<br />
Deferred operations corresponding to deferred entries are reverted.<br />
Locks on members corresponding to lock entries are released and<br />
working file changes are reverted. Source Integrity confirms all<br />
working file overwrites.<br />
Pending operations corresponding to pending entries are reverted,<br />
and discarded entries are created (to preserve the review history).<br />
Pending revisions corresponding to pending entries are deleted.<br />
Archives created for pending members associated with entries in the<br />
change package are deleted from the server (pre-existing archives that<br />
were shared to create a pending member are not deleted).<br />
Note the following about discarding change package entries:<br />
Only the creator of the change package or a change package<br />
administrator can discard entries.<br />
If change packages are mandatory, <strong>com</strong>mitted entries cannot be<br />
discarded (contact your administrator for more information).<br />
To discard change package entries in the graphical user interface<br />
1 From the Entries panel on the Change Package view, select the change<br />
package entries you want to discard.<br />
u s e r g u i d e
Viewing CP<br />
Entry Member<br />
Differences<br />
2 Do one of the following:<br />
Select Change Package Entry > Discard.<br />
Click .<br />
Managing Change Package Entries<br />
The Confirm Discard Change Package Entry dialog box is displayed.<br />
3 To discard each entry presented, click Yes. To discard all entries<br />
without viewing individual prompts, click Yes to All.<br />
The change package entry or entries are discarded.<br />
To discard change package entries in the Web interface<br />
1 With a Project or Member History view open, click the change<br />
package ID.<br />
The Change Package view is displayed.<br />
2 Click the Entries tab.<br />
The Entries panel is displayed.<br />
3 Select the change package entries you want to discard.<br />
4 Do one of the following:<br />
Select Actions > Discard Change Package Entry.<br />
Click .<br />
The Confirm Discard Change Package Entry dialog box is displayed.<br />
5 To discard the entry, click Yes. Repeat for additional entries.<br />
The change package entry or entries are discarded.<br />
From the Change Package view, you can view the member differences of<br />
any change package entry.<br />
For updates, Source Integrity <strong>com</strong>pares the most recent revision checked<br />
into the change package with its immediately preceding revision. For<br />
example, if you want to view the differences for the member readme.txt<br />
at revision 1.3, Source Integrity <strong>com</strong>pares revisions 1.3 and 1.2,<br />
displaying them in the Differences window<br />
For lock entries in the graphical user interface, Source Integrity <strong>com</strong>pares<br />
the working file with its immediately preceding revision. You cannot<br />
difference a lock entry that does not have an associated sandbox.<br />
255
Chapter 7: Using Change Packages and Reviews<br />
256<br />
To view change package entry member differences in the Graphical<br />
user interface<br />
1 With the Manage Change Packages window open (see “Managing<br />
Change Packages” on page 220), select the change package that<br />
contains entries that you want to difference.<br />
2 Do one of the following:<br />
Select Change Package > View Change Package.<br />
Double click the change package.<br />
The Change Package view is displayed.<br />
3 Select the change package entry you want to difference<br />
4 Select Change Package Entry > View Differences.<br />
The Differences window appears displaying the two revisions sideby-side,<br />
highlighting the differences between them, or<br />
Source Integrity informs you that there are no differences. For more<br />
information, see “Comparing Differences” on page 205.<br />
To view change package entry member differences in the Web<br />
interface<br />
1 In a Project view, select a member that has a change package<br />
associated with it.<br />
2 Under the C.P.ID column, click the number link for the change<br />
package.<br />
The Change Package view is displayed.<br />
3 Select the change package entry you want to difference.<br />
4 Do one of the following:<br />
Under the Actions menu, click View Member Differences.<br />
Click .<br />
The Differences window appears displaying the two revisions sideby-side,<br />
highlighting the differences between them, or<br />
Source Integrity informs you that there are no differences. For more<br />
information, see “Comparing Differences” on page 205.<br />
u s e r g u i d e
Viewing and Editing<br />
Projects, Sandboxes, and<br />
Members<br />
8<br />
KEY TERMS: project information, project history, label, promote, demote, checkpoint,<br />
attribute, member information, freezing, thawing, member revision<br />
Source Integrity allows you to perform a variety of functions to control<br />
projects, sandboxes, and members during your development cycle. For<br />
example, you can freeze members to prevent changes and thaw them to<br />
allow changes. You can also checkpoint projects to provide a snapshot of<br />
their contents at particular development points, so you can always<br />
reproduce <strong>com</strong>plete project configurations (including the files and the<br />
directory trees they reside in) at any time in the future.<br />
This chapter provides details on the following:<br />
“Controlling Projects” on page 258<br />
“Controlling Sandboxes” on page 280<br />
“Controlling Members” on page 287<br />
“Generating Reports” on page 303<br />
257
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Controlling Projects<br />
Viewing and<br />
Editing Project<br />
Information<br />
258<br />
To help you control your projects, Source Integrity provides functionality<br />
for working with project information such as project histories, labels,<br />
states, development checkpoints, and project revisions.<br />
Source Integrity allows you to view and edit three categories of project<br />
information:<br />
general project information<br />
project attributes<br />
development path information<br />
To view or edit project information in the graphical user interface and<br />
Web interface<br />
1 With a Project or Sandbox view open, select the project or sandbox.<br />
2 In the GUI from a Project view, select Project > Properties > Project<br />
Information.<br />
In the GUI from a Sandbox view, select Sandbox > Properties > Project<br />
Information.<br />
In the Web from a Project view, select Project > Project Information.<br />
The Project Information dialog box is displayed.<br />
3 View or make changes to the project information as required.<br />
u s e r g u i d e
The General tab displays the following project information:<br />
Project Name is the path and name of the project.<br />
Controlling Projects<br />
Shared From appears only if the project you selected is a shared<br />
subproject and displays the path and name of the project where<br />
the shared subproject originated. For information on Shared<br />
Subprojects, see “Adding a Shared Subproject” on page 127.<br />
Server is the Integrity Server name and port number where the<br />
project resides.<br />
Development Path displays the development path name (if a<br />
variant project on a development path, or project contains a<br />
variant subproject on a development path).<br />
Revision is the project’s current revision number.<br />
Last Checkpointed is the last date and time the project was<br />
checkpointed.<br />
Members is the number of members in the project, not including<br />
subprojects.<br />
Subprojects is the number of subprojects in the project.<br />
Description is a free-form text description of the master project.<br />
Edit the existing description, or enter a new description.<br />
For information about the Attributes tab, see “Working With Project<br />
Attribute Information” on page 259. For information about the<br />
Development Paths tab, see “Working With Development Path<br />
Information” on page 261.<br />
4 To accept any changes you have made, click OK.<br />
The project information is saved.<br />
Working With Project Attribute Information<br />
Configuration options in project files are sometimes called attributes.<br />
Within project files, you can set your own attributes as well as those<br />
predefined as options. You can set these attributes from the graphical user<br />
interface or Web interface.<br />
In the graphical user interface, you can view and edit project attribute<br />
information through the Attributes tab. Attributes define local variables or<br />
set options. You can set either master project attributes to apply across an<br />
entire project or sandbox attributes that apply only in your workspace,<br />
sometimes overriding project attributes.<br />
259
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
260<br />
Attributes can have either of the following formats:<br />
variable<br />
variable=value<br />
For more information on project attributes, see the Integrity Server<br />
Installation and Administration <strong>Guide</strong>.<br />
To view or edit project attribute information in the graphical user<br />
interface<br />
1 Select the target project.<br />
2 Select Project > Properties > Project Information.<br />
The Project Information dialog box is displayed.<br />
3 Click the Attributes tab.<br />
The Attributes panel appears.<br />
4 In the Variable field, enter a variable, for example, OS.<br />
NOTE<br />
The variable name cannot include the “=” character.<br />
5 In the Value field, enter a value, for example, Win32.<br />
6 To add the attribute, click Add. To remove attributes, select them, then<br />
click Remove.<br />
The attributes appear in the attributes list.<br />
u s e r g u i d e
7 To accept any changes you have made, click OK.<br />
The project information is saved.<br />
Controlling Projects<br />
To view or edit project attribute information in the Web interface<br />
1 Open the target project by selecting File > Open Project.<br />
2 Select Project > Project Information.<br />
The Project Information dialog box opens.<br />
3 Scroll to the Attributes section.<br />
4 In the Variable field, enter a variable, for example, OS.<br />
5 In the Value field, enter a value, for example, Win32.<br />
6 To add the attribute, click Add.<br />
The attributes appear in the attributes list.<br />
To remove attributes, select them, then click Remove.<br />
7 To accept any changes you have made, click OK.<br />
The project information is saved.<br />
Working With Development Path Information<br />
A development path is an identifier given to a new direction of file<br />
development. Changes made through the new development path are kept<br />
separate from the main development trunk unless you later choose to<br />
merge them.<br />
261
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
262<br />
In the graphical user interface, the Development Paths tab shows a<br />
selectable list of any development paths created from the current project. A<br />
development path is identified by name, with the revision number (on<br />
which the development path is based) in brackets, for example,<br />
Aurora_Beta_Variant (1.1).<br />
CAUTION<br />
If you remove a development path that is referenced by a variant sandbox, you<br />
can no longer open that variant sandbox.<br />
To view or edit project development path information in the graphical<br />
user interface<br />
1 Select the target project.<br />
2 Select Project > Properties > Project Information.<br />
The Project Information dialog box is displayed.<br />
3 Click the Development Paths tab.<br />
The Development Paths panel appears.<br />
4 To delete a development path, select one from the list.<br />
5 Click Delete.<br />
The development path is deleted from the list.<br />
6 To accept any changes you have made, click OK.<br />
The project information is saved.<br />
u s e r g u i d e
Viewing a<br />
Project History<br />
TIP<br />
Controlling Projects<br />
To create a development path, see “Creating a Development Path” on page 147.<br />
To view development path information in the Web interface<br />
1 Open the target project by selecting File > Project.<br />
2 Select Project > Project Information.<br />
The Project Information dialog box opens.<br />
3 Scroll to the Development Paths section.<br />
4 Review the development path information presented in the text field.<br />
When you want to view the history of a project, you can open its project<br />
history. Opening the project history of a sandbox is the same as viewing<br />
the project history of its master project.<br />
The Project History view is a window that displays the revision history of a<br />
project, including details on the revision number, author, date, labels, and<br />
promotion state of the project.<br />
To view a project history in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select the project or sandbox.<br />
2 From a Project view, select Project > View Project History.<br />
From a Sandbox view, select Sandbox > View Project History.<br />
The Project History view is displayed.<br />
In the graphical user interface, you can toggle between the Graphical<br />
History view and the List view in the Project History view. For more<br />
information on toggling views, see “Changing Views (GUI)” on<br />
page 449.<br />
263
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
264<br />
Project History Filters<br />
Like the filters in the Project and Sandbox views, the Project History filters<br />
allow you to view and manipulate a predefined subset of project revisions<br />
that are grouped according to their properties.<br />
You can apply filters to a Project History in either the Graphical History<br />
view or the List view. Project History filters are located in the View menu.<br />
Choose one of the following filters, and your view is filtered accordingly:<br />
All Revisions shows all the revisions in the project.<br />
You cannot use the All Revisions filter in <strong>com</strong>bination with other<br />
filters. Selecting the All Revisions filter deactivates other filters. A<br />
bullet next to the All Revisions filter indicates that it is active.<br />
Development Paths shows all the revisions with a development path.<br />
Labeled shows all revisions that have labels.<br />
You can use the Development Paths filter and Labeled filter in<br />
<strong>com</strong>bination to show all the revisions with a current development<br />
path and a label. A check mark next to the filter indicates the active<br />
filter.<br />
u s e r g u i d e
Opening a Build<br />
Project<br />
Adding Project<br />
Labels<br />
Controlling Projects<br />
Once a filter is applied, operations performed on project members<br />
apply only to those members shown as a result of the filter. For<br />
example, if you apply the filter for Labeled and then perform a History<br />
> Lock operation for that project, the lock operation applies only to<br />
those members shown by the Labeled filter.<br />
A Build project is a static project based upon a specific revision of the<br />
master project. It is used for building or testing the project, but not for<br />
further development.<br />
To open a build project in the graphical user interface<br />
1 With a Project History view open, select the revision you want to open<br />
as a Build project.<br />
2 Select History > Open Build Project.<br />
The Build project appears in a new Project view.<br />
To open a build project in the Web interface<br />
1 From the File menu, select Open Build Project.<br />
The Select Build Project dialog box opens.<br />
2 Select the project you want to open from the Project list, and specify<br />
the project revision (if necessary) in the Project Revision list.<br />
The Build project appears in a Project view.<br />
As with project members, you can add labels to project revisions. Labels are<br />
unique text that describe the product stage or release, or the content of the<br />
project. Project labels can be based on any information that would be<br />
useful in identifying that particular revision of the project. Labels appear in<br />
alphabetical order.<br />
To add a label to a project in the graphical user interface and Web<br />
interface<br />
1 With a Project History view open, select the revision you want to label.<br />
2 Do one of the following:<br />
Select History > Add Label.<br />
Click .<br />
The Add Project Label dialog box is displayed.<br />
265
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Deleting Project<br />
Labels<br />
266<br />
TIP<br />
In the Source Integrity Web interface, you can also add a project label from the<br />
Project view by selecting Project > Add Label.<br />
3 In the Label field, enter a label for the project, for example, Bug Fixes.<br />
Labels cannot contain colons (:), square brackets ([ ]), or leading<br />
spaces. Additionally they cannot have the same format as a valid<br />
revision number.<br />
4 In the graphical user interface, to move an existing label to another<br />
revision, select the Move Existing Label option.<br />
In the Web interface select one of the following options from the list:<br />
Select Yes to move an existing label to another revision.<br />
Select No to maintain the label location.<br />
Select Confirm to be asked for confirmation about the action to be<br />
taken.<br />
5 To accept the new label, click OK.<br />
The project revision is labeled.<br />
As with project members, you can delete project labels. Deleting project<br />
labels may be appropriate in situations where a label is no longer relevant<br />
or where an incorrect label is applied.<br />
To delete a project label in the graphical user interface and Web<br />
interface<br />
1 With a Project History view open, do one of the following:<br />
Select History > Delete Label.<br />
Click .<br />
The Delete Project Label dialog box is displayed.<br />
u s e r g u i d e
Promoting a<br />
Project<br />
TIP<br />
Controlling Projects<br />
In the Source Integrity Web interface, you can also delete a project label from<br />
the Project view by selecting Project > Delete Label.<br />
2 From the Label list, select a label to delete from the project, for<br />
example, Bug Fixes.<br />
3 To confirm the deletion, click OK.<br />
The project label is deleted.<br />
As with a project member, you can promote the project itself (or change its<br />
state). Controlling a project’s state helps in managing the entire project<br />
through the development cycle, especially if the promotion function is<br />
restricted to key project personnel.<br />
Promotion is the process of managing data as it moves through a<br />
structured development cycle. Any project (whether it is software<br />
development, document production, or any other type of data<br />
management) goes through recognizable phases: from inception, through<br />
development, testing, quality assurance, and <strong>com</strong>pletion.<br />
Typically, you promote a project (or set its state) when you checkpoint it,<br />
but you can do so at any time.<br />
The available promotion states are defined by your administrator.<br />
When you promote a project, only the project (.pj) file is affected.<br />
Individual members of the project are not changed.<br />
To promote a project in the graphical user interface and Web interface<br />
1 With a Project History view open, select the revision you want to<br />
promote.<br />
267
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Demoting a<br />
Project<br />
268<br />
2 Do one of the following:<br />
Select History > Promote.<br />
Click .<br />
The Promote Project dialog box is displayed.<br />
TIP<br />
In the Source Integrity Web interface, you can also promote a project from the<br />
Project view by selecting Project > Promote.<br />
3 Select a new state from the Promote to State list, for example, Beta.<br />
4 To accept the new state, click OK.<br />
The project is promoted.<br />
As with a project member, you can demote the project itself (or change its<br />
state). Typically, you demote a project (or set its state) when you<br />
checkpoint it, but you can do so at any time.<br />
NOTE<br />
When you demote a project, only the project file (.pj) is affected. Individual<br />
members of the project are not changed.<br />
To demote a project in the graphical user interface and Web interface<br />
1 With a Project History view open, select the revision you want to<br />
demote.<br />
2 Do one of the following:<br />
Select History > Demote.<br />
Click .<br />
The Demote Project dialog box is displayed.<br />
u s e r g u i d e
Checkpointing<br />
a Project<br />
TIP<br />
Controlling Projects<br />
In the Source Integrity Web interface, you can also demote a project from the<br />
Project view by selecting Project > Demote.<br />
3 Select a state from the Demote to State list, for example, Exp.<br />
4 To accept the new state, click OK.<br />
Just as you check in a source file to preserve the changes made to it from<br />
one revision to another, you can also track the evolution of an entire<br />
project. In Source Integrity, this process is called checkpointing.<br />
Checkpointing a project creates a new revision of the project and adds it to<br />
the project history. When you checkpoint a project, you save all the<br />
information needed to recreate the project <strong>com</strong>pletely at any time in the<br />
future. The saved information includes the project structure and the list of<br />
members with their revision numbers.<br />
A checkpoint saves a copy of the project in the project’s history as a<br />
revision, including the list of members along with their revision numbers,<br />
and project and member attributes.<br />
You can use the project’s revision number to keep track of your projects,<br />
but to simplify post-release maintenance, use a label to identify significant<br />
project development milestones when you checkpoint a project.<br />
For example, if you checkpoint a project and label it with a release<br />
identifier (for example, Release 6.2), you can find and recreate that<br />
particular development state more easily.<br />
NOTE<br />
Checkpointing a project affects the project only; it does not check in every<br />
member of the project.<br />
If you are working in a sandbox, issuing a checkpoint <strong>com</strong>mand<br />
checkpoints the sandbox’s master project.<br />
269
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
270<br />
If you want to create a variant or build sandbox, you must first checkpoint<br />
the project.<br />
To checkpoint a project in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select the project or sandbox.<br />
2 From a Project view, do one of the following:<br />
Select Project > Checkpoint Project.<br />
Click .<br />
From a Sandbox view, do one of the following:<br />
Select Sandbox > Checkpoint Project.<br />
Click .<br />
The Checkpoint dialog box is displayed.<br />
3 Click an option tab, if necessary, then modify the checkpoint options.<br />
The General tab specifies general checkpoint options:<br />
Label is a unique text string assigned by you to identify a new<br />
project revision, for example, Beta. Labels cannot contain colons<br />
(:), square brackets ([ ]), or leading spaces. Additionally they<br />
cannot have the same format as a valid revision number. To add<br />
labels to a project from a Project or Sandbox view, see “Adding<br />
Labels to Members” on page 297.<br />
u s e r g u i d e
Restoring a<br />
Project<br />
NOTE<br />
Controlling Projects<br />
If you specify a label that contains the same name as one used for another<br />
project revision in the history, and have the MoveProjectLabel permission,<br />
the label from the earlier project revision is moved to the new revision. For<br />
more information, contact your administrator.<br />
Apply Label to All Members applies the checkpoint label to all<br />
project members.<br />
Notify when Complete (graphical user interface) causes<br />
Source Integrity to confirm that the checkpoint operation has<br />
finished.<br />
State is a one-word description of a new revision’s status. Select a<br />
state from the State list, for example, Exp.<br />
Apply State to All Members applies the checkpoint state to all<br />
project members.<br />
The Advanced tab specifies advanced checkpoint options:<br />
Recurse into Subprojects recursively checkpoints subprojects.<br />
This option must be selected for the entire project to be<br />
checkpointed.<br />
If a subproject is a build project, the checkpoint references the<br />
subproject and identifies it as being of build type, but does not<br />
checkpoint it.<br />
Author is the author name applied to the checkpoint. Your user<br />
name appears by default.<br />
4 In the Checkpoint Description field, enter a description of the<br />
checkpoint, for example, Ready for peer review.<br />
5 To accept the checkpoint, click OK.<br />
The Restore Project <strong>com</strong>mand allows you to restore a project to a<br />
previously checkpointed revision. When you apply the Restore Project<br />
<strong>com</strong>mand, Source Integrity modifies the selected project to reflect the<br />
member list of the target project revision. Any further development then<br />
proceeds from the restored project revision.<br />
271
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
272<br />
Restoring a project is useful when development must revert back to an<br />
earlier version and there are no plans to proceed from the current version<br />
of the project. Restoring a project is not an option when the goal is to test a<br />
particular version.<br />
IMPORTANT<br />
Do not use the Restore Project <strong>com</strong>mand to create a new development branch<br />
from a previously checkpointed project revision. For new development paths,<br />
you should instead create a development path (see “Creating Variant<br />
Sandboxes and Development Paths” on page 146).<br />
Source Integrity performs the Restore Project <strong>com</strong>mand as follows:<br />
A checkpoint is performed on the current project revision.<br />
The project is restored to the target revision.<br />
A final checkpoint of the restored revision is made.<br />
Therefore, for each project you restore, two revisions are generated. For<br />
example, if the head revision of the project is 1.4 and you decide to restore<br />
it to Revision 1.2, the following project revisions are generated:<br />
1.6 final checkpoint<br />
1.5 pre-checkpoint<br />
You would then continue your project development work from revision<br />
1.6.<br />
You can effectively undo the Restore Project <strong>com</strong>mand by restoring the<br />
project to the pre-checkpointed revision. Build projects cannot be restored<br />
using the Restore Project <strong>com</strong>mand.<br />
You can restore any registered project or subproject through the graphical<br />
user interface, using either a Project or Sandbox view, or through the<br />
<strong>com</strong>mand line interface. When you work through a sandbox or<br />
subsandbox, the corresponding master project is referenced. The Restore<br />
Project <strong>com</strong>mand can be applied to both normal and variant projects.<br />
To restore a project or subproject in the graphical user interface<br />
1 With a Project or Sandbox view open, select the project or sandbox.<br />
2 From a Project view, select Project > Restore Project.<br />
From a Sandbox view, select Sandbox > Restore Project.<br />
The Restore Project dialog box is displayed.<br />
u s e r g u i d e
Controlling Projects<br />
By default, Source Integrity selects the head revision as the project<br />
revision to restore.<br />
3 Click an option tab, and then modify the options for restoring the<br />
project:<br />
The Selection tab provides two methods for selecting the project<br />
revision you want to restore.<br />
Pre-Defined Revision that is, by default, the Head revision of the<br />
project. The Head revision represents the latest revision on the<br />
default branch of development (or on the trunk, if no default is<br />
specified).<br />
The Trunk Tip represents the latest revision in the main branch<br />
of development, independent of the default branch settings.<br />
To select a pre-defined project revision, choose the desired<br />
revision from the list.<br />
Specific Revision that is, by default, the most recently<br />
checkpointed project revision.<br />
To change the specific revision, select the Revisions tab or the<br />
Labels tab.<br />
The Revisions tab allows you to select a specific project revision by<br />
number from the list of existing project revisions (in other words, from<br />
all previously checkpointed versions of the project).<br />
273
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
274<br />
The Labels tab allows you to select a specific project revision by label<br />
from the list of existing project revisions (in other words, from all<br />
previously checkpointed versions of the project).<br />
4 In the Reason For Restore field, enter a description of the reason for<br />
restoring the project.<br />
5 To <strong>com</strong>plete the restore operation, click OK.<br />
The selected version of the project is restored.<br />
In the member information pane of your Sandbox view,<br />
Source Integrity displays information on the corresponding working<br />
file and available revision.<br />
u s e r g u i d e
Viewing Project<br />
Differences<br />
Controlling Projects<br />
6 To update the working file to the member revision number of the<br />
target project, highlight the member and resynchronize it by choosing<br />
Member > Resynchronize.<br />
Source Integrity updates the working files to the member revision<br />
number of the target project. All restored members are returned to the<br />
initial state (by default, this is EXP).<br />
Typically, the next time you check in the restored members, the<br />
member revision number is incremented to the next sequential level.<br />
Source Integrity allows you to view a summary of the changes that have<br />
occurred between two versions of a project. In the graphical user interface<br />
and Web interface, this functionality is provided through View Project<br />
Differences. In the <strong>com</strong>mand line interface, you can access this<br />
functionality through the si mods <strong>com</strong>mand.<br />
Information is provided on any change packages that have been applied<br />
between two revisions of the project. This information is extremely useful<br />
for confirming the specific content of a project.<br />
For more information on checkpointing, see “Checkpointing a Project” on<br />
page 269.<br />
As you work with the project and its members, the content of the project<br />
file changes:<br />
The revision number of the project is updated each time you<br />
checkpoint that project.<br />
As you check in individual project members, their revision numbers<br />
change.<br />
Project members may be added or deleted.<br />
Project attributes may be added or deleted.<br />
Source Integrity can also checkpoint subprojects if a project is<br />
checkpointed recursively.<br />
The changes to a project and its members are not tracked as they happen,<br />
but rather the View Project Differences <strong>com</strong>mand takes two checkpoints (or<br />
a checkpoint and the current version) of the project and then <strong>com</strong>pares<br />
them.<br />
The View Project Differences <strong>com</strong>mand can <strong>com</strong>pare the following:<br />
two specified revisions of the project<br />
the current revision of the project with a specified revision<br />
the current version of the project with the last checkpointed revision<br />
275
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
276<br />
Change package information displayed on the By Change Package panel is<br />
drawn from the modifications calculated from the checkpoint <strong>com</strong>parison.<br />
For more information, see “Project Differences View” on page 462.<br />
Viewing Differences Between Two Specified<br />
Revisions of the Project<br />
To view differences between two specified revisions of a project, you select<br />
the individual revisions so that Source Integrity can <strong>com</strong>pare them.<br />
To view project revision differences in the graphical user interface<br />
If you select more than two project revisions, the View Project Differences<br />
<strong>com</strong>mand is disabled. You can only view project differences for one project<br />
or between two versions of a project.<br />
1 With a Project or Sandbox view open, select the project whose<br />
differences you want to view.<br />
2 From a Project view, select Project > View Project History.<br />
From a Sandbox view, select Sandbox > View Project History.<br />
The Project History view is displayed.<br />
3 From the Project History view, select the two revisions of the project<br />
you want to <strong>com</strong>pare. Use CTRL when clicking to select or clear a<br />
selection.<br />
u s e r g u i d e
4 With the required versions selected, do one of the following:<br />
Select History > View Project Differences.<br />
Click .<br />
Controlling Projects<br />
The Project Differences view opens, displaying the list of project<br />
differences.<br />
For information about the view, see “Project Differences View” on<br />
page 462.<br />
To perform further <strong>com</strong>parisons, close the Project Differences view<br />
and return to the Project History view.<br />
To return to the Project History view, select Window from the<br />
Source Integrity menu and choose Project History from the list.<br />
To view project revision differences in the Web interface<br />
If you select more than two project revisions, the View Project Differences<br />
<strong>com</strong>mand is disabled. You can only view project differences for one project<br />
or between two versions of a project.<br />
1 Select the project whose differences you want to view.<br />
2 From a Project view, click Project > View Project History.<br />
The Project History view is displayed.<br />
3 From the Project History view, click the check boxes of the project<br />
versions you want to <strong>com</strong>pare.<br />
4 With the required versions selected, do one of the following:<br />
Click History > View Project Differences.<br />
Click .<br />
The Changes Since view opens, displaying the list of project<br />
differences.<br />
277
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
278<br />
Using a Project view in the Web interface, you can also <strong>com</strong>pare the<br />
current version of the project with the last checkpointed revision by<br />
clicking Project > View Project Differences.<br />
Viewing Differences Between the Current Revision<br />
of the Project With a Specified Revision<br />
To <strong>com</strong>pare the current revision of a project with a specified revision, you<br />
select the individual revision and Source Integrity <strong>com</strong>pares it to the<br />
current revision.<br />
In the graphical user interface, from the Project History view (in either the<br />
List view or the Graphical History view), select one version of the project.<br />
Then select History > View Project Differences, Source Integrity <strong>com</strong>pares<br />
the current project revision with the specified revision.<br />
The Project Differences view opens, displaying the list of project<br />
differences. For information, see “Project Differences View” on page 462.<br />
In the Web interface, from the Project History view, select one version of<br />
the project. Then select History > View Project Differences, Source Integrity<br />
<strong>com</strong>pares the current project revision with the specified revision.<br />
The Changes Since view opens, displaying the list of project differences.<br />
u s e r g u i d e
Controlling Projects<br />
Viewing Differences Between the Current Version of<br />
the Project With the Last Checkpointed Revision<br />
When no specific version of the project is selected, Source Integrity<br />
<strong>com</strong>pares the current revision of the project with the last checkpointed<br />
revision. This <strong>com</strong>parison shows all of the changes to the project since it<br />
was created or since the last time it was checkpointed.<br />
In the graphical user interface (in the List view or the Graphical History<br />
view), no project is selected so that Source Integrity <strong>com</strong>pares the current<br />
revision of the project with the last checkpointed revision. This <strong>com</strong>parison<br />
shows all of the changes to the project since it was created or since the last<br />
time it was checkpointed. For information about the view, see “Project<br />
Differences View” on page 462.<br />
In the Web interface, no project is selected so that Source Integrity<br />
<strong>com</strong>pares the current revision of the project with the last checkpointed<br />
revision. This <strong>com</strong>parison shows all of the changes to the project since it<br />
was created or since the last time it was checkpointed.<br />
Using a Project view in the Web interface, you can also <strong>com</strong>pare the<br />
current version of the project with the last checkpointed revision by<br />
clicking Project > View Project Differences.<br />
279
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Controlling Sandboxes<br />
Viewing<br />
General<br />
Sandbox<br />
Information<br />
280<br />
To help you manage your individual sandboxes, Source Integrity allows<br />
you to view two categories of sandbox information:<br />
general sandbox information<br />
project attributes<br />
sandbox attributes<br />
General sandbox information includes the name you have given the<br />
sandbox and the project it points to, together with the host name and port<br />
number of the Integrity Server where the project resides, the current<br />
revision of the project, the last checkpointed revision, and the number of<br />
members and subsandboxes in the sandbox.<br />
To view sandbox information in the graphical user interface<br />
1 Do one of the following:<br />
From the Registered Sandboxes view, select the sandbox. Then<br />
click Information.<br />
With a Sandbox view open, select the sandbox. Then select<br />
Sandbox > Properties > Sandbox Information.<br />
The Sandbox Information dialog box is displayed.<br />
u s e r g u i d e
Viewing Project<br />
Attributes From<br />
a Sandbox<br />
Controlling Sandboxes<br />
The General tab displays the following general sandbox information:<br />
Sandbox Name is the path and name of the sandbox.<br />
Project Name is the path and name of the master project.<br />
Server is the Integrity Server name and port number where the<br />
master project resides.<br />
Revision is the master project’s current revision number.<br />
Last Checkpointed is the last date and time the master project was<br />
checkpointed.<br />
Members is the number of members in the sandbox.<br />
Subsandboxes is the number of subsandboxes in the sandbox.<br />
Sparse setting determines if the selected sandbox is a sparse<br />
sandbox.<br />
Shared setting determines if the selected sandbox is a shared<br />
sandbox.<br />
Line Terminator setting determines the type of ASCII character<br />
Source Integrity recognizes as the end of a line of text: Native (or<br />
automatic, the default setting), LF (or line feed, primarily for<br />
UNIX applications), or CR/LF.<br />
Project Description is a description of the master project.<br />
Working from your sandbox, you can view project attribute information<br />
through the graphical user interface. These are the attributes that apply<br />
across the entire project. To modify project attributes, see “Working With<br />
Project Attribute Information” on page 259.<br />
Attributes can have either of the following formats:<br />
variable<br />
variable=value<br />
To view project attributes in the graphical user interface<br />
1 Do one of the following:<br />
From the Registered Sandboxes view, select the sandbox. Then<br />
click Information.<br />
With a Sandbox view open, select the sandbox. Then select<br />
Sandbox > Properties > Sandbox Information.<br />
The Sandbox Information dialog box is displayed.<br />
281
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Viewing<br />
Sandbox<br />
Attributes<br />
282<br />
2 Click the Project Attributes tab.<br />
The Project Attributes panel appears.<br />
The project attributes are displayed view-only.<br />
3 To close the Sandbox Information dialog box, click OK.<br />
Working from your sandbox, you can view and edit sandbox attribute<br />
information through the graphical user interface. These are sandbox<br />
attributes that apply to your workspace.<br />
Attributes can have either of the following formats:<br />
variable<br />
variable=value<br />
To view or edit sandbox attribute information in the graphical user<br />
interface<br />
1 Do one of the following:<br />
From the Registered Sandboxes view, select the sandbox. Then<br />
click Information.<br />
With a Sandbox view open, select the sandbox. Then select<br />
Sandbox > Properties > Sandbox Information.<br />
The Sandbox Information dialog box is displayed.<br />
2 Click the Attributes tab.<br />
The Attributes panel appears.<br />
u s e r g u i d e
Taking Sandbox<br />
Snapshots<br />
3 In the Variable field, enter a variable, for example, OS.<br />
NOTE<br />
The variable name cannot include the “=” character.<br />
4 In the Value field, enter a value, for example, Win32.<br />
Controlling Sandboxes<br />
5 To add the attribute, click Add. To remove attributes, select them, then<br />
click Remove.<br />
The attributes appear in the attributes list.<br />
6 To accept any changes you have made, click OK.<br />
The sandbox information is saved.<br />
A snapshot is a capture of the current state of a sandbox, where each<br />
element in the sandbox can be identified with a pre-existing entity in the<br />
repository on the Integrity Server. The sandbox snapshot creates a<br />
standard project revision from which a build sandbox can be created and a<br />
development path assigned. The project revision number takes the form of<br />
a branched revision in the project history. For example, if the head revision<br />
of the project is 1.1, then the project revision created by the snapshot will<br />
be 1.1.1.1.<br />
The set of sandbox elements includes the following:<br />
sandbox members identified with an archive and working revisions<br />
from which the archive was created<br />
former members that were dropped but are still present in your<br />
sandbox<br />
subsandboxes, identified by project name and type<br />
former subsandboxes that were dropped but are still present in your<br />
sandbox<br />
Note the following about sandbox snapshots:<br />
To be included in the snapshot, there must be no working file changes<br />
in the sandbox.<br />
If the working file revision differs from the member revision, it is the<br />
working file revision that is included in the snapshot.<br />
Members with no working files are not included in the snapshot.<br />
Former members that still have working files in the sandbox directory<br />
appear as members in the snapshot.<br />
283
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
284<br />
Former subprojects that are still in the sandbox view appear as<br />
subprojects in the snapshot.<br />
Source Integrity always uses the actual name of the member working<br />
file for the snapshot.<br />
You cannot take a snapshot of a sparse sandbox.<br />
The Snapshot Sandbox <strong>com</strong>mand is performed on the entire sandbox,<br />
independently of the filter used to display the contents of a sandbox.<br />
Differencing can be performed between a project revision created by a<br />
snapshot and another project revision (including revisions created by<br />
a snapshot) in the project history, but the revision cannot be<br />
differenced with the sandbox contents.<br />
In order to specify an existing development path when taking a<br />
sandbox snapshot, you must use the CLI. For more information, see<br />
The Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong>.<br />
Members of a sandbox need to be associated with a corresponding<br />
archive on the Integrity Server.<br />
When recursing into subsandboxes, the snapshot represents exactly<br />
the same directory structure and files of your sandbox. All subproject<br />
elements be<strong>com</strong>e the same type and shared subprojects of different<br />
types be<strong>com</strong>e shared subprojects of the same type.<br />
When you snapshot a sandbox recursively that contains<br />
subsandboxes, for those subsandboxes the snapshot creates a<br />
branched project revision based on the revision of the subproject<br />
captured in the last checkpoint of the master project (if one exists), not<br />
the current revision of the subproject in your sandbox. Member<br />
revisions are unaffected.<br />
When you snapshot a sandbox non-recursively the subproject<br />
elements refer to the exact type they were in the sandbox at the time<br />
the snapshot is performed, so configured subprojects remain<br />
configured. For more information, see “Configuring a Subproject” on<br />
page 131.<br />
The following is the re<strong>com</strong>mended scenario for when to take a sandbox<br />
snapshot in a development environment:<br />
1 You are in a situation where you are working in a regular sandbox, but<br />
should be working in a variant sandbox.<br />
2 Instead of checking in your changes to the main development path,<br />
check in (or merge in) your changes on a branch.<br />
3 Snapshot the sandbox.<br />
u s e r g u i d e
Controlling Sandboxes<br />
4 Create a development path from the project revision that corresponds<br />
to the snapshot (see “Creating a Development Path” on page 147).<br />
5 Create a variant sandbox from the development path you created, and<br />
then continue work on that development path.<br />
TIP<br />
From the CLI, you can specify an existing development path at the time you<br />
take the snapshot. For more information, see the Source Integrity Enterprise<br />
Edition CLI Reference <strong>Guide</strong>.<br />
The following is the re<strong>com</strong>mended scenario for when to take a sandbox<br />
snapshot in a build environment:<br />
1 Checkpoint the project.<br />
2 Create a build sandbox for the build.<br />
3 The build fails, but since development has continued, some of the<br />
required members are at later revisions than the last checkpoint.<br />
4 Perform a resynchronize of the required revisions to fix the build (you<br />
can use resync cp).<br />
5 Snapshot the sandbox, and use the project revision created by the<br />
snapshot to recreate the build in the future using a build sandbox,<br />
instead of using the original project checkpoint.<br />
To take a snapshot of a sandbox in the graphical user interface<br />
1 From a Sandbox view, select Sandbox > Snapshot Sandbox.<br />
The Snapshot Sandbox dialog box is displayed.<br />
285
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
286<br />
2 Click an option tab, if necessary, then modify the snapshot. options.<br />
The General tab specifies general snapshot options:<br />
Label is a unique text string assigned by you to identify the<br />
project revision created by the snapshot. Labels cannot contain<br />
colons (:), square brackets ([ ]), or leading spaces. Additionally<br />
they cannot have the same format as a valid revision number.<br />
TIP<br />
When creating a build sandbox, labels to identify the project revision created<br />
by the snapshot.<br />
Apply Label to All Members applies the snapshot label to all<br />
sandbox members.<br />
Notify when Complete causes Source Integrity to confirm that the<br />
snapshot operation has finished. The notification message<br />
displays the name and path of the sandbox, and revision number<br />
of the project revision created by the snapshot.<br />
u s e r g u i d e
Controlling Members<br />
State is a one-word description of the snapshot revision’s status.<br />
Select a state from the State list, for example, Exp.<br />
Apply State to All Members applies the revision state to all project<br />
members.<br />
The Advanced tab specifies advanced snapshot options:<br />
Recurse into Sub-sandboxes recursively snapshots the sandbox.<br />
This option must be selected to snapshot the entire sandbox, and<br />
is by default, selected.<br />
Author is the author name applied to the snapshot. Your user<br />
name appears by default.<br />
3 If desired, in the Snapshot Description field, enter a description for the<br />
snapshot.<br />
4 When you are finished, to snapshot the sandbox, click OK.<br />
The sandbox snapshot is taken and appears as a branched project<br />
revision in the project history. To see the revision in the history, see<br />
“Viewing a Project History” on page 263.<br />
NOTE<br />
Controlling Members<br />
Viewing and<br />
Editing Member<br />
Information<br />
If working files are missing from the sandbox, a warning appears listing the<br />
missing working files that will not appear in the snapshot. If you want to<br />
include those working files in the snapshot, cancel the operation, provide the<br />
working files (by resynchronizing the corresponding members), then perform<br />
the snapshot.<br />
To help you control your project members, Source Integrity provides<br />
functionality for working with member information such as member<br />
revisions, labels, development states, and information states.<br />
Source Integrity allows you to view and edit four types of member<br />
information:<br />
general<br />
attributes<br />
labels<br />
change package<br />
287
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
288<br />
To view or edit member information in the graphical user interface<br />
and Web interface<br />
1 With a Project or Sandbox view open, select the member whose<br />
information you want to view or edit.<br />
2 From the GUI, do one of the following:<br />
Select Member > Properties > Member Information.<br />
Click .<br />
From the Web, do one of the following:<br />
Select Member > Member Information.<br />
Click .<br />
The Member Information dialog box is displayed.<br />
3 View or make changes to the member information as required.<br />
The Member Information dialog box presents the following<br />
information on the General panel:<br />
Member Name is the path and name of the member.<br />
Project/Sandbox Name is the path and name of the member’s<br />
project or sandbox.<br />
u s e r g u i d e
NOTE<br />
Controlling Members<br />
As part of the Change Package review process, if the member has a pending<br />
operation against it or one of its revisions, the information appears in a note,<br />
for example, This member has a pending update to member<br />
revision 1.2 by devans.<br />
Member Revision is the displayed member revision. To select<br />
another member revision, choose a revision from the Member<br />
Revision list.<br />
Created By is the name of the user who created the revision and<br />
the date and time it was created.<br />
Locked By is the name of the user who locked the revision, and<br />
the date and time it was locked.<br />
Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />
where the lock on the revision was made.<br />
State is the state assigned to the revision. To change the state of<br />
the revision, choose a state from the State list. For more<br />
information on states, see “Promoting Members” on page 299.<br />
Revision Description is a brief description of the revision. You<br />
cannot change an existing revision description from this dialog<br />
box, but you can append additional <strong>com</strong>ments to it. To do so,<br />
enter any supplemental information in the Revision Description<br />
field below the present information (indicated by a line if an<br />
existing description is present).<br />
For information on the Attributes tab, see “To view or edit member<br />
attributes in the graphical user interface” on page 290. For information<br />
on the Labels tab, see “To view or edit member labels in the graphical<br />
user interface” on page 292. For information on the Change Package<br />
tab, see “To view a member’s change package information in the<br />
graphical user interface” on page 230.<br />
4 When you are finished viewing or editing the member information,<br />
click OK to accept the changes.<br />
The member information is saved.<br />
289
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
290<br />
Working With Member Attributes<br />
You can add or delete member attributes that allow you to categorize<br />
members, and then perform operations on them as a group. For example,<br />
in the graphical user interface, you could use the Select <strong>com</strong>mand to<br />
highlight only those members with the attribute sys=dos and then check<br />
them out as a group.<br />
Every project member can have any number of attribute statements that<br />
define variables for the member. Attributes can have either of the<br />
following formats:<br />
variable<br />
variable=value<br />
To view or edit member attributes in the graphical user interface<br />
1 Select the target member.<br />
2 Select Member > Properties > Member Information.<br />
The Member Information dialog box is displayed.<br />
3 Click the Attributes tab.<br />
The Attributes panel appears.<br />
4 In the Variable field, enter a variable, for example, os.<br />
u s e r g u i d e
NOTE<br />
The variable cannot include the “=” character.<br />
5 In the Value field, enter a value, for example, dos.<br />
6 To add the attribute, click Add.<br />
The attributes appear in the attributes list.<br />
To remove an attribute, select it, then click Remove.<br />
7 To accept the changes, click OK.<br />
Controlling Members<br />
To view or edit member attribute information in the Web interface<br />
1 With the Project view open, select the member whose information you<br />
want to view or edit.<br />
2 Select Member > Member Information.<br />
The Member Information dialog box opens.<br />
3 Scroll to the Attributes section.<br />
4 In the Variable field, enter a variable for example, os.<br />
5 In the Value field, enter a value, for example, win32.<br />
6 To add the attribute, click Add.<br />
The attributes appear in the attributes list.<br />
To remove attributes, select them, then click Remove.<br />
7 To accept any changes you have made, click OK.<br />
The member information is saved.<br />
Working With Member Labels<br />
Labels are unique text that describe and refer to a revision of a member.<br />
Labels can be based on the product release the revision was included in, on<br />
the content of the revision, on changes made to the revision, or any other<br />
sort of information that would be useful in identifying that particular<br />
revision.<br />
Although you generally assign a label to a new revision upon check in, you<br />
may sometimes want to add an additional label or change the label<br />
assigned to a revision.<br />
Labels appear in alphabetical order.<br />
291
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
292<br />
To view or edit member labels in the graphical user interface<br />
1 Select the target member.<br />
2 Right click and select Member Information.<br />
The Member Information dialog box is displayed.<br />
3 Click the Labels tab.<br />
The Labels panel appears.<br />
4 In the Label field, enter a label for the member revision, for example,<br />
Draft1.<br />
5 To add the label, click Add.<br />
6 To remove an existing label, select it from the list of labels, then click<br />
Remove.<br />
7 To accept the changes, click OK.<br />
To view or edit member label information in the Web interface<br />
1 With the Project view open, select the member whose information you<br />
want to view or edit.<br />
2 Select Member > Member Information.<br />
The Member Information dialog box opens.<br />
3 Scroll to the Labels section.<br />
4 In the Label field, enter a variable for example, Draft1.<br />
5 To add the label, click Add.<br />
u s e r g u i d e
Updating a<br />
Member’s<br />
Revision<br />
Controlling Members<br />
6 To remove an existing label, select it from the list of Labels, then click<br />
Remove.<br />
The attributes appear in the attributes list.<br />
7 To accept the changes, click OK.<br />
The member information is saved.<br />
Within the graphical user interface, you can use the Update Member<br />
Revision option when you are checking in a member to ensure the most<br />
recent revision of each member is added to the list of members in the<br />
project. If the option is not enabled, the project list might not reflect the<br />
most current revision of each member’s history.<br />
For example, if the current project member is revision 2.7 of an archived<br />
file, but a newer revision (revision 2.8) has been added to the member’s<br />
history, you can update the member to the new revision.<br />
You can also update the member revision by using the Update Revision<br />
<strong>com</strong>mand.<br />
NOTE<br />
You cannot update a frozen member’s revision. You must first thaw the<br />
member and then update it. For information on thawing members, see<br />
“Thawing Members” on page 302.<br />
To update a member’s revision in the graphical user interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
update.<br />
2 Select Member > Properties > Update Revision.<br />
The Set Member Revision dialog box is displayed.<br />
293
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
294<br />
3 Click an option tab, if necessary, then modify the set member revision<br />
options.<br />
The Selection tab allows you to select a revision to update to.<br />
NOTE<br />
If Promotion is enabled by your administrator, the Last revision with State<br />
option appears. This option allows you to update the revision by a specific<br />
state.<br />
To check out a revision by state, click Latest revision with State, then select a<br />
state from the list. The options in the list depend on the states configured by<br />
your administrator. For more information on the available states, see your<br />
administrator.<br />
A pre-defined revision is a symbolic revision that represents a location<br />
in the development path. To select a pre-defined revision to update<br />
the member to, click Pre-Defined Revision, then choose a pre-defined<br />
revision from the list. The available pre-defined revisions are:<br />
Working updates the member revision to the version of the<br />
working file.<br />
Head updates the member revision to the member’s head<br />
revision.<br />
Trunk Tip updates the member revision to the latest revision in<br />
the trunk, independent of the default branch settings.<br />
u s e r g u i d e
Controlling Members<br />
Member Branch Tip updates the member revision to the latest<br />
revision along the member’s current branch of development.<br />
Saved Revision Rule updates the member revision to a saved<br />
revision. The revision is one that was saved in the CLI using<br />
--save option with the si updaterevision <strong>com</strong>mand, and can<br />
be a specified revision or any symbolic revision. For more<br />
information, see the Source Integrity Enterprise Edition CLI<br />
Reference <strong>Guide</strong>.<br />
To select a specific revision, click Specific Revision, then click the<br />
Revisions, Labels, or Project tab to choose a revision.<br />
The Revisions tab allows you to select a specific revision to make<br />
the member revision.<br />
The Labels tab allows you to make a specific labeled revision the<br />
member revision.<br />
The Project tab allows you set the member revision for the<br />
following options:<br />
Member revision on Variant allows you to make a specific<br />
variant revision the member revision.<br />
Member revision on a Project Build allows you to make a<br />
specific build revision or label the member revision.<br />
4 To add the operation to a change package, from the Change Package<br />
list, select a change package. To create a change package, click Create.<br />
For more information, see “Creating a Change Package” on page 217.<br />
5 Under Options, you can specify the following information:<br />
6 To <strong>com</strong>mit the operation later, select Defer Update Revision.<br />
If the change package reviews are mandatory, select this option to<br />
create a pending entry for this operation at the time of change package<br />
submission. If this option is not enabled, Source Integrity creates the<br />
pending entry at the <strong>com</strong>pletion of this procedure. For more<br />
information, see “Change Package Review Process” on page 240.<br />
7 To close the change package when the operation is <strong>com</strong>plete, select<br />
Close Change Package.<br />
8 To set the member revision, click OK (for multiple members, click OK<br />
to All).<br />
The member is updated to the specified revision.<br />
295
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
296<br />
To update a member’s revision in the Web interface<br />
1 With a Project view open, select one or more members to update.<br />
2 Select Member > Update Revision.<br />
The Update Member Revision dialog box is displayed.<br />
3 Click an option tab, if necessary, then modify the set member revision<br />
options.<br />
The Selection tab allows you to select a revision to update to.<br />
To select a pre-defined revision to update, click Pre-Defined Revision,<br />
then choose a pre-defined revision from the list. The available predefined<br />
revisions are:<br />
Head updates the member revision to the member’s head<br />
revision.<br />
Trunk Tip updates the member revision to the latest revision in<br />
the trunk, independent of the default branch settings.<br />
Member Branch Tip updates the member revision to the latest<br />
revision along the member’s current branch of development.<br />
Working updates the member revision to the version of the<br />
working file.<br />
Saved Revision Rule updates the member revision to a saved<br />
revision. The revision is one that was saved in the CLI using<br />
--save option with the si updaterevision <strong>com</strong>mand, and can<br />
u s e r g u i d e
Adding Labels<br />
to Members<br />
Controlling Members<br />
be a specified revision or any symbolic revision. For more<br />
information, see the Source Integrity Enterprise Edition CLI<br />
Reference <strong>Guide</strong>.<br />
To select a specific revision, click Specific Revision, then click the<br />
Revisions or Labels tab to choose a revision.<br />
The Revisions tab allows you to select a specific revision to make<br />
the member revision.<br />
The Labels tab allows you to make a specific labeled revision the<br />
member revision.<br />
4 To add the operation to a change package, from the Change Package<br />
list, select a change package.<br />
5 In the field for Close Change Package, select one of the following<br />
options:<br />
Yes causes Source Integrity to close the associated change<br />
package.<br />
No causes Source Integrity to keep the associated change package<br />
open.<br />
Confirm causes Source Integrity to ask you for confirmation on<br />
the action to be taken.<br />
6 To set the member revision, click OK (for multiple members, click OK<br />
to All).<br />
The member is updated to the specified revision.<br />
Labels are unique text that describe and refer to a revision. Labels can be<br />
based on the product release the revision was included in, on the content of<br />
the revision, on changes made to the revision, or any other sort of<br />
information that would be useful in identifying that particular revision.<br />
Although you generally add a label to a new revision upon check in, there<br />
may be times when you want to add an additional label or change the label<br />
assigned to a revision.<br />
In the Web interface, Source Integrity displays up to three member labels<br />
in the Labels column of the Project view. If a member has more than three<br />
labels, Source Integrity displays a link ( ) that you can click to view all<br />
the member labels.<br />
Labels appear in alphabetical order in selection lists.<br />
297
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Deleting<br />
Member Labels<br />
298<br />
To add a label to a member in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
label.<br />
2 In the GUI, select Member > Properties > Add Label.<br />
3 In the Web, select Member > Add Label.<br />
The Add Label dialog box is displayed.<br />
:member appears in the Revision field indicating the label will be<br />
applied to the member revision.<br />
4 In the Label field, enter a label for the member, for example, Draft1.<br />
Labels cannot contain colons (:), square brackets ([ ]), or leading<br />
spaces. Additionally they cannot have the same format as a valid<br />
revision number.<br />
TIP<br />
You can also add labels to the member in the Member Information dialog box.<br />
5 To move the label, if it already exists on another revision, select the<br />
Move Existing Label option.<br />
6 To accept the new label, click OK (for multiple members, click OK to<br />
All).<br />
The member is labeled.<br />
Sometimes you may want to delete a member label. For instance, you may<br />
decide the label no longer accurately reflects that particular revision. In<br />
addition, if you have assigned the same label to a number of members, you<br />
might want to remove them all with one <strong>com</strong>mand.<br />
u s e r g u i d e
Promoting<br />
Members<br />
Controlling Members<br />
To delete a member label in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
delete labels from.<br />
2 In the GUI, select Member > Properties > Delete Label.<br />
In the Web, select Member > Delete Label.<br />
The Delete Label dialog box is displayed.<br />
3 Select a label to delete from the Label list.<br />
TIP<br />
You can also delete a member’s labels in the Member Information dialog box.<br />
4 To accept the deletion, click OK (for multiple members, click OK to<br />
All).<br />
The member label is deleted.<br />
Promotion is the process of managing data as it moves through a<br />
structured development cycle. Each phase is represented by states that are<br />
defined by the administrator. Project members can also be demoted to a<br />
predefined lower state.<br />
At particular milestones, project members are ready to move to the next<br />
stage of their development cycle (for example, from Development to<br />
Test).<br />
If no state system is defined, a default value of Exp (Experimental) is<br />
assigned to all revisions.<br />
299
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Demoting<br />
Members<br />
300<br />
To promote a member in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
promote.<br />
2 In the GUI, select Member > Properties > Promote.<br />
In the Web, select Member > Promote.<br />
The Promote Member dialog box is displayed.<br />
:member appears in the Revision field indicating the member revision<br />
will be promoted.<br />
3 Select a new state from the Promote to State list, for example, Test.<br />
4 To accept the new promotion state, click OK (for multiple members,<br />
click OK to All).<br />
The member is promoted.<br />
Project members can also be demoted to a predefined lower state of<br />
development.<br />
To demote a member in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select one or more members to<br />
demote.<br />
2 In the GUI, select Member > Properties > Demote.<br />
In the Web, select Member > Demote.<br />
The Demote Member dialog box is displayed.<br />
u s e r g u i d e
Freezing<br />
Members<br />
Controlling Members<br />
:member appears in the Revision field indicating the member revision<br />
will be demoted.<br />
3 Select a new state from the Demote to State list, for example,<br />
Development.<br />
4 To accept the new state, click OK (for multiple members, click OK to<br />
All).<br />
The member is demoted.<br />
When your development team has largely finished a portion of a project<br />
and some project members are in a stable state, you can freeze individual<br />
members within a project or sandbox.<br />
Freezing a member places it in a state that prevents changes from being<br />
made to the member information that resides in the project file. For<br />
example, you cannot update the member revision or change the attributes<br />
of a frozen member. Freezing is the opposite of thawing a member.<br />
Freezing restricts member information from being updated, preventing<br />
these members from being changed by accident. However, development<br />
work can still continue in the member file itself. For example, if new<br />
revisions are checked into the member’s archive, Source Integrity does not<br />
update the project’s member revision.<br />
Freezing is useful for facilitating:<br />
project checkpointing<br />
member promotion<br />
software distribution<br />
Freezing prevents changes to member information in the project, but does<br />
not affect the member file itself. Revisions can still be checked out,<br />
modified, and checked in, but none of the changes are included as part of<br />
the member information in the project.<br />
301
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Thawing<br />
Members<br />
302<br />
You can change the label or state of frozen members, but not their<br />
attributes. Freezing can be used immediately before a checkpoint operation<br />
to ensure no one changes the project or its members before the checkpoint<br />
is <strong>com</strong>plete.<br />
When you want to allow project members to be changed, you can thaw<br />
them (see “Thawing Members” on page 302).<br />
If a member is frozen, Source Integrity reports the availability of new<br />
revisions when anyone checks them into the archive. Source Integrity does<br />
not update the project to the latest revision, so an appropriate person must<br />
make the decision to thaw the member and update the project as a whole.<br />
A sample freezing sequence is as follows:<br />
Working with the Apex.pj project, a release engineer freezes project<br />
member utility.dll at revision 1.2.<br />
The snowflake symbol appears beside utility.dll, revision 1.2 in<br />
the Apex.pj Project view. (The snowflake symbol appears only in the<br />
context of the project.)<br />
A developer checks out utility.dll, revision 1.2, modifies it, and<br />
checks it back in.<br />
The new version of utility.dll is not accessible to the Apex.pj<br />
project until revision 1.2 is thawed.<br />
To freeze a member in the graphical user interface and Web interface<br />
1 With a Project or Sandbox view open, select the member you want to<br />
freeze.<br />
2 In the GUI, select Member > Properties > Freeze.<br />
In the Web, select Member > Freeze.<br />
A snowflake symbol ( ) appears beside the selected member.<br />
When you decide to allow project members to evolve again, you can thaw<br />
any frozen ones.<br />
Thawing a member removes the restriction on changing member<br />
information in the project and makes previously checked in member<br />
information available to the project. Thawing a member is the opposite of<br />
freezing a member.<br />
A sample thawing sequence is as follows:<br />
As part of the development cycle of the Apex.pj project, the release<br />
engineer freezes the file utility.dll, revision 1.2.<br />
u s e r g u i d e
Generating Reports<br />
About the<br />
Report<br />
Information<br />
Generating Reports<br />
A developer checks out utility.dll, revision 1.2, modifies it, and<br />
checks it back in.<br />
The new version of utility.dll (that is, version 1.3) is not accessible<br />
to the Apex.pj project until revision 1.2 is thawed.<br />
The release engineer thaws utility.dll, revision 1.2.<br />
Thawing revision 1.2 of utility.dll makes the changes available to<br />
the Apex.pj project.<br />
Source Integrity notifies that a newer revision of utility.dll<br />
(version 1.3) is available to the project.<br />
Once the developer’s modifications are reviewed and accepted, the<br />
release engineer incorporates the modifications by choosing Member ><br />
Properties > Update Revision in the GUI, or Member > Update Revision<br />
in the Web interface. Source Integrity updates Apex.pj to include the<br />
modifications previously checked in by the developer.<br />
Revision 1.3 be<strong>com</strong>es the head revision for the project member<br />
utility.dll.<br />
To thaw a member in the graphical user interface and Web interface<br />
1 With a Project or Sandbox view open, select the member you want to<br />
thaw. The member is one that is marked with a snowflake symbol<br />
( ).<br />
2 In the GUI, select Member > Properties > Thaw.<br />
In the Web, select Member > Thaw.<br />
The snowflake symbol beside the selected member disappears.<br />
In the graphical user interface, Source Integrity Reporter analyzes projects,<br />
their members, or individual archives, and allows you to generate a variety<br />
of reports and graphs based on its findings. Reports and graphs can be<br />
printed or viewed on the screen. To use Reporter, you must have a default<br />
printer installed.<br />
Reporter calculates a summary of the changes to a project or archive, then<br />
displays or prints the summary as text or, for some reports, as a graph.<br />
Customized reports, created using Microsoft Access, can also be<br />
produced.<br />
303
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
About Graphs<br />
Report Types<br />
304<br />
Reporter’s data files (containing the results of its project or archive<br />
analysis) can be saved as text files that can be read by most database<br />
applications.<br />
Reporter generates the following summaries:<br />
changes introduced by individual authors<br />
changes between the member revision and a revision with a particular<br />
label<br />
changes between the member revision and any other revision<br />
a list of locked members and the names of users who locked them<br />
a list of revisions with a particular label or state<br />
project member history (including revision descriptions) by file<br />
Whenever graphs are available in Reporter, you are given the option of<br />
displaying the report in a text version (the default) or as a graph. If you<br />
display a report as a graph, you can define how you want it to look. Using<br />
graphs, you can give reports a custom look to suit your preferences or for<br />
quick, project-specific identification.<br />
Reporter allows you to generate different types of reports based on the<br />
information Source Integrity maintains about project members and<br />
revisions in the archives. Reporter can generate the following report types:<br />
Changes Grouped by Author<br />
This type of report lists changes to members or revisions grouped by the<br />
person who made them. For example, if both Fred and Ethel made changes<br />
to several members, the report would include two sections, one for Fred<br />
and one for Ethel. Each section of the report shows:<br />
name of the member<br />
revision number of changed revisions<br />
date the change was made<br />
number of lines (or bytes for binary files) that were added or deleted<br />
This type of report offers two additional options:<br />
The report can be on a single, specified author, or all authors.<br />
It can be restricted to changes made before or after a specified date.<br />
u s e r g u i d e
Changes Grouped by Author (Summary)<br />
Generating Reports<br />
This type of report shows a brief summary of changes made by each user.<br />
Each type of project member (Text, Binary, Auto-Detect) appears in a<br />
separate section of the report, subdivided according to the person who<br />
made the changes.<br />
The information summarized includes:<br />
name of the member<br />
total number of revisions changed by each person<br />
total number of lines (or bytes for binary files) that were added or<br />
deleted by each person<br />
This report type offers two additional options:<br />
The report can be on a single, specified author, or all authors.<br />
It can be restricted to changes made before or after a specified date.<br />
Revisions Newer Than Member Revision<br />
This report tells you which members have more recent revisions available.<br />
For example, if a member revision is revision number 1.3, but the archive<br />
contains revisions numbered 1.4, 1.5, and 1.6, this report lists the newer<br />
available revisions and information about each, including:<br />
name of the member<br />
revision numbers of newer revisions in the archive<br />
date of the newer revisions<br />
revision description for each newer revision<br />
Changes From Member Revision to Label<br />
This report lists all revisions in a member’s archive between the member<br />
revision and another revision with a specified label. This report can be<br />
generated for a single member, or for all project members.<br />
For each member, the report shows:<br />
name of the member<br />
revision numbers of all the revisions between the member and the<br />
labeled revision<br />
author of each revision<br />
date of each revision<br />
revision description for each revision<br />
305
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
306<br />
Changes From Member Revision to Revision<br />
This report lists all revisions in the member archive between the member<br />
revision and another revision with a specified revision number. This report<br />
can be generated for a single member, or for all project members.<br />
For each member, the report shows:<br />
name of the member<br />
revision numbers of all the revisions between the member revision<br />
and the selected revision number<br />
author of each revision<br />
date of each revision<br />
revision description for each revision<br />
List Locked Revisions<br />
This report lists all locked revisions in a project or archive. For each locked<br />
revision, the report lists:<br />
name of the member<br />
revision number<br />
person who has it locked<br />
List Revisions Associated With Labels<br />
This report scans the archives of all project members and extracts any<br />
labels they contain. For each label it finds, the report lists:<br />
name of the label<br />
name of the member archive<br />
revision number the label is associated with<br />
List Revisions Associated With States<br />
This report scans the archives of all project members and extracts any state<br />
settings they contain. For each state setting it finds, the report lists:<br />
state setting<br />
name of the member archive<br />
most recent revision the state is associated with<br />
u s e r g u i d e
Creating a Report<br />
Project Member History<br />
Generating Reports<br />
This report displays all the revisions of a specified project member. For<br />
each revision, it shows:<br />
revision number<br />
revision date<br />
revision description<br />
When you choose the member to report on, you can specify that the<br />
information should be sorted according to Revision Number or Revision<br />
Date, in either ascending or descending order.<br />
Source Integrity provides you with the ability to create reports.<br />
Reports are summaries of the data in your project. Reports are based on the<br />
standard and custom fields of issue types. Reports can be customized to<br />
include images, fonts, hyperlinks, and can be saved as HTML files for<br />
viewing on the Web.<br />
To create a report in the graphical user interface<br />
1 With a Project or Sandbox view open, select the project or sandbox<br />
you want to report on.<br />
2 From a Project view, select Project > Reports.<br />
From a Sandbox view, select Sandbox > Reports.<br />
The Select Report Type dialog box is displayed.<br />
3 To save the results of the Reporter’s analysis to data files that can be<br />
read by most database applications, select the Save Data Files option.<br />
307
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
308<br />
4 If you have created customized reports with Microsoft Access that you<br />
want to use with Reporter, select the Show Customized Reports<br />
option, then specify the report name with the Custom Reports selector.<br />
5 From the Report Type list, select a report type to generate, as described<br />
in “Report Types” on page 304.<br />
6 Click OK.<br />
If the report type requires additional information (for example, a<br />
range of revisions), a second dialog box is displayed to collect it.<br />
Reports appear in plain text format by default. Some report types,<br />
however, allow you to display the information graphically.<br />
7 To display a report as a report, click Report.<br />
To display a report as a graph, click Graph.<br />
8 If necessary, type in any additional information.<br />
9 Click OK.<br />
The report or graph appears in a scrollable, scalable window.<br />
u s e r g u i d e
Viewing and Editing<br />
Member Histories and<br />
Revisions<br />
9<br />
KEY TERMS: member history, archive information, revision information, working file,<br />
locking, unlocking, branching, merging<br />
While sandboxes and projects allow you to manage and access project<br />
members and the contents of individual members—the history of changes<br />
are saved in member histories.<br />
Source Integrity lets you save and recreate every stage (or revision) in the<br />
development of each member you use.<br />
When you make changes to a project member and check it back in, your<br />
changes are automatically added to the member history. If you ever need<br />
to see that version of the member again, check out the appropriate revision,<br />
and Source Integrity rebuilds an exact copy for you.<br />
This chapter provides details on the following:<br />
“Viewing a Member History” on page 310<br />
“Viewing and Editing Archive Information” on page 312 and<br />
“Viewing and Editing Revision Information” on page 314<br />
“Viewing an Annotated Revision” on page 316<br />
“Viewing and Editing Revision Labels” on page 319<br />
“Viewing a Member’s Working File or Revision” on page 322<br />
“Promoting Revisions” on page 323 and “Demoting Revisions” on<br />
page 324<br />
“Locking Revisions” on page 324, “Unlocking Revisions” on page 326,<br />
“Locking Multiple Revisions” on page 327, and “Managing Revision<br />
Locks” on page 328<br />
“Setting the Member Revision” on page 330, “Deleting Revisions” on<br />
page 331, and “Comparing Revisions” on page 331<br />
309
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Viewing a Member History<br />
310<br />
You can view the entire history of a member, including information about<br />
who modified individual revisions, revision labels, and revision<br />
descriptions.<br />
To view a member history in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox view open, select the member whose<br />
history you want to view.<br />
NOTE<br />
In the Source Integrity Web interface, application functionality is not available<br />
through the shortcut menu.<br />
2 Do one of the following:<br />
Select Member > View Member History.<br />
Click .<br />
The member history appears in a Member History view.<br />
u s e r g u i d e
NOTE<br />
Viewing a Member History<br />
If there is an pending add operation for a member, you cannot view the<br />
member history for that member because it has not yet been added to the actual<br />
project.<br />
You can toggle between the Graphical History view and List view in<br />
the Member History view. For more information on toggling views,<br />
see “Changing Views (GUI)” on page 449.<br />
IMPORTANT<br />
If you choose a project and select the View Member History <strong>com</strong>mand,<br />
Source Integrity opens the member history for each member of the project. For<br />
larger projects, this action requires a long execution time.<br />
Member History Filters<br />
Like the filters in the Project and Sandbox views, the Member History<br />
filters allow you to view and manipulate a predefined subset of project<br />
members that are grouped according to their properties.<br />
311
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
312<br />
You can apply filters to a Member History in either the Graphical History<br />
view or the List view. Member History filters are located in the View menu.<br />
Choose one of the following filters, and your view is filtered accordingly:<br />
All Revisions shows all the revisions of the selected member.<br />
You cannot use the All Revisions filter in <strong>com</strong>bination with other<br />
filters. Selecting the All Revisions filter deactivates other filters. A<br />
bullet next to the All Revisions filter indicates that it is active.<br />
Branched shows all the revisions that are branched.<br />
Labeled shows all revisions with a label.<br />
Locked shows all the revisions locked by any user.<br />
Member shows the member revision, and shows the revision with the<br />
working file (if it is different than the member revision).<br />
Pending shows all pending revisions.<br />
You can use filters in <strong>com</strong>bination (except the All Revisions filter) to show<br />
all the revisions on the current development path with a label. A check<br />
mark next to the filter indicates the active filter.<br />
Once a filter is applied, operations performed on project members apply<br />
only to those members shown as a result of the filter.<br />
Viewing and Editing Archive Information<br />
Just as it maintains information about each project member,<br />
Source Integrity also maintains historical information about each member<br />
archive called archive information. This information, includes revision<br />
labels, users who have locks on revisions in the archive, the starting point<br />
of the default branch revision, the data type (text or binary), whether the<br />
archive is <strong>com</strong>pressed, whether strict-locking applies to the archive, and a<br />
description of the archive.<br />
The default branch is the branch Source Integrity tries to check in files to. If<br />
unspecified during a check in, files are checked in to the trunk.<br />
u s e r g u i d e
Viewing and Editing Archive Information<br />
To view or edit archive information in the graphical user interface and<br />
Web interface<br />
1 With a Member History view open, do one of the following:<br />
Select History > Archive Information.<br />
Click .<br />
The Archive Information dialog box is displayed.<br />
2 Click an option tab, if necessary, then view or modify the archive<br />
information:<br />
The General tab specifies general archive information options.<br />
Member Name is the path and name of the member that the<br />
archive is for.<br />
Project/Sandbox Name is the path and name of the member’s<br />
project or sandbox.<br />
Archive Name is the path and name of the displayed archive.<br />
Archive Type displays the type of data stored in the archive.<br />
Default Branch specifies the starting point of the default branch.<br />
To specify a default branch, enter a branch number in the Default<br />
Branch field, for example, 2.1.1.<br />
313
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
314<br />
Strict Locking specifies if a strict locking policy is in effect for the<br />
archive. With strict locking on, a user must have a revision locked<br />
before checking in any changes. To enable strict locking, select the<br />
Strict Locking option.<br />
Compressed specifies if the archive is <strong>com</strong>pressed. To <strong>com</strong>press<br />
the archive, select the Compressed option.<br />
Store by Reference causes each revision to be saved to a separate<br />
file, instead of saving all revisions to one file. This feature<br />
improves performance for archives that contain large binary files.<br />
To store the archive by reference, select the Store by Reference<br />
option.<br />
Archive Description describes the archive. If necessary, enter or<br />
edit a description.<br />
The Labels panel displays a list of revision labels in the archive, for<br />
example, Draft1 1.1.<br />
The Locks panel displays a list of users who have locks on revisions in<br />
the archive, for example, sholmes 1.2.<br />
3 To save your changes, click OK.<br />
The archive information is saved.<br />
Viewing and Editing Revision Information<br />
Source Integrity maintains detailed information about each member<br />
revision in a member history. In the graphical user interface, this revision<br />
information displays in columns in the Member History view.<br />
Each revision is assigned a unique revision number used to identify a<br />
revision in a history. Revisions on the trunk are numbered as two-part<br />
decimals (such as, 1.1, 1.2, 1.3, 1.4, …). Revisions on a branch are numbered<br />
by adding two-part decimals to the number of the revision they branch<br />
from. For example, if a branch is started from revision 1.3, its revisions<br />
would be numbered 1.3.1.1, 1.3.1.2, 1.3.1.3, and so on.<br />
The revision can also be viewed and modified with the Revision<br />
Information <strong>com</strong>mand.<br />
The Labels tab displays the labels assigned to the selected revision and also<br />
allows you to add or remove labels. For more information on viewing and<br />
editing revision labels, see “Viewing and Editing Revision Labels” on<br />
page 319.<br />
u s e r g u i d e
Viewing and Editing Revision Information<br />
The Change Package tab provides information on change packages<br />
associated with the revision. The Change Package tab only appears if<br />
change packages are enabled.<br />
To view or edit general revision information in the graphical user<br />
interface and Web interface<br />
1 With a Member History view open, select the revision whose<br />
information you want to view or edit.<br />
2 Do one of the following:<br />
Select History > Revision Information.<br />
Click .<br />
The Revision Information dialog box is displayed.<br />
3 View or make changes to the member information as allowed.<br />
The General tab displays the following information:<br />
Member Name is the path and name of the member.<br />
Project/Sandbox Name is the path and name of the member’s<br />
project or sandbox.<br />
Revision is the revision corresponding to the displayed<br />
information. If the revision is pending, then pending appears in<br />
parenthesis (see “Working With Pending Revisions” on<br />
page 335).<br />
Created By is the name of the user who created the revision, and<br />
the date and time it was created.<br />
315
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
316<br />
Locked By is the name of the user who locked the revision, and<br />
the date and time it was locked.<br />
Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />
where the lock on the revision was made.<br />
State is the state assigned to the member. To apply a different<br />
state to the member, choose a state from the State list.<br />
Revision Description is a brief description of the revision. You<br />
cannot change an existing revision description from this dialog<br />
box, but you can append additional <strong>com</strong>ments to it. To do so,<br />
enter any supplemental information in the Revision Description<br />
field below the present information (indicated by a line if an<br />
existing description is present).<br />
4 To accept the changes, click OK.<br />
The revision information is saved.<br />
Viewing an Annotated Revision<br />
Source Integrity provides an annotated revision view for member<br />
revisions. Use it when you want to investigate the reason and<br />
circumstances a revision was introduced or changed. Rather than<br />
searching the content of revisions in the history one revision at a time, you<br />
can see the content and information for all of the revisions in an annotated<br />
list.<br />
In annotation blocks, each line of the revision is displayed, with information<br />
about the last modification made to each line of the revision’s contents. By<br />
default, the annotated revision list includes the revision number, author,<br />
date, line number, and revision contents.<br />
You can view annotated revision information from the Project, Sandbox, or<br />
Member History views.<br />
When using the Annotated view:<br />
you can only view annotation for one member at a time.<br />
you must close and then reopen the view to see subsequent updates to<br />
the member<br />
only content that was added or changed on a per revision basis is<br />
displayed, not deleted content<br />
u s e r g u i d e
NOTE<br />
Viewing an Annotated Revision<br />
The annotated view can only be displayed for members of text format.<br />
To view annotated revisions in the graphical user interface and Web<br />
interface<br />
1 With a Project, Sandbox, or Member History view open, select the<br />
revision you want to view.<br />
2 From a Project or Sandbox view, select Member > View Annotated<br />
Member.<br />
From a Member History view, do one of the following:<br />
Select History > View Annotated Revision.<br />
Click .<br />
The Annotated Revision view is displayed.<br />
The Annotated Revision view displays the following information:<br />
Revision displays the revision number for each annotated block.<br />
If the revision is pending, then pending appears in parenthesis<br />
(see “Working With Pending Revisions” on page 335).<br />
Author displays the author of the revision.<br />
317
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
318<br />
Date displays the date each member revision was created.<br />
Line displays the line number for each line of text in the revision.<br />
Revision Contents displays the text contained in each annotation<br />
block.<br />
C.P. ID displays the change package ID for the annotation block.<br />
In the Web interface, the Revision Information for the specified<br />
revision is displayed in the bottom frame.<br />
To customize the fields displayed in the Annotated Revision view, see<br />
“View Preferences” on page 61.<br />
From the View menu, you can perform the following tasks:<br />
Find ( )searches for the first instance of a text string in the<br />
<br />
revision contents column and highlights the text.<br />
Find Next applies the last search to the remaining revision<br />
contents column and highlights the next instance the text appears.<br />
Find Previous applies the last search for the text string to the<br />
revision contents column in reverse order.<br />
Go to Line ( )displays a specific line of text. To go to a specific<br />
line, enter the number for the line, for example, 33. The line of<br />
code is displayed in the center of the pane if it exists in a scrolling<br />
region.<br />
3 Select an annotation block, then from the History menu, select one of<br />
the following:<br />
Revision Information, see “Viewing and Editing Revision<br />
Information” on page 314.<br />
View Revision, see “Viewing a Member’s Working File or<br />
Revision” on page 322.<br />
View Member History, see “Viewing a Member History” on<br />
page 310.<br />
From the Change Package menu, select one of the following:<br />
View Change Package, see “Using Change Packages and<br />
Reviews” on page 213.<br />
View Issue, see “Viewing a Change Package’s Issue” on page 376.<br />
u s e r g u i d e
TIP<br />
Viewing and Editing Revision Labels<br />
From the graphical user interface, right click the annotation block and then<br />
select an option.<br />
Viewing and Editing Revision Labels<br />
Although you generally assign a label to a new revision upon check in,<br />
there may be times you want to add an additional label or change the label<br />
assigned to a revision.<br />
A revision label is a textual name that describes and refers to revisions in a<br />
history. When a file is checked in, you are given the option of assigning it a<br />
revision label. Revisions in a history can be displayed and selected either<br />
by revision number or revision label.<br />
To view or edit revision labels in the graphical user interface<br />
1 With a Member History view open, select the revision whose<br />
information you want to view or edit.<br />
2 Do one of the following:<br />
Select History > Revision Information.<br />
Click .<br />
The Revision Information dialog box is displayed.<br />
3 Click the Labels tab.<br />
The Labels panel appears.<br />
4 In the Label field, enter a label for the revision, for example, Beta<br />
Fixes. Labels cannot contain colons (:), square brackets ([ ]), or<br />
leading spaces. Additionally they cannot have the same format as a<br />
valid revision number.<br />
319
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Adding<br />
Revision Labels<br />
320<br />
5 To add the label, click Add.<br />
6 To remove an existing label, select it from the list, then click Remove.<br />
7 To accept the changes, click OK.<br />
The revision information is saved.<br />
Although you generally assign a label to a new revision upon check in,<br />
there may be times when you want to add an additional label or change the<br />
label that is already assigned to a revision.<br />
In the Web interface, Source Integrity displays up to three revision labels in<br />
the Labels column of the Project view. If a revision has more than three<br />
labels, Source Integrity displays a link ( ) that you can click to view all<br />
the revision labels.<br />
To add a label to a revision in the graphical user interface and Web<br />
interface<br />
1 With a Member History view open, select the revision you want to<br />
label.<br />
2 Do one of the following:<br />
Select History > Add Label.<br />
Click .<br />
u s e r g u i d e
Deleting<br />
Revision Labels<br />
TIP<br />
Viewing and Editing Revision Labels<br />
You can also add a label using the Revision Information dialog box, as<br />
described in “Viewing and Editing Revision Information” on page 314.<br />
The Add Label dialog box is displayed.<br />
3 In the Label field, enter a label for the revision, for example, Draft1.<br />
Labels cannot contain colons (:), square brackets ([ ]), or leading<br />
spaces. Additionally they cannot have the same format as a valid<br />
revision number.<br />
4 To move an existing label from the revision, select the Move Existing<br />
Label option.<br />
5 To add a label, if it already exists, to another revision, click OK (for<br />
multiple members, click OK to All).<br />
The revision label is added.<br />
If you have assigned the wrong label to a revision, you can delete that label<br />
either through the graphical user interface or the <strong>com</strong>mand line interface.<br />
To delete a revision label from a revision in the graphical user<br />
interface and Web interface<br />
1 With a Member History view open, do one of the following:<br />
Select History > Delete Label.<br />
Click .<br />
TIP<br />
You can also delete a label using the Revision Information dialog box, as<br />
described in “Viewing and Editing Revision Information” on page 314.<br />
321
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
322<br />
The Delete Label dialog box is displayed.<br />
2 From the Label list, select a label to delete, for example, Draft1.<br />
3 To accept the deleted label, click OK (for multiple members, click OK<br />
to All).<br />
The revision label is deleted.<br />
Viewing a Member’s Working File or<br />
Revision<br />
When you view a revision, Source Integrity copies the revision to a readonly<br />
temporary file and opens it for you. The temporary file is not the<br />
revision. If you make changes to the file and want to save it, the actual<br />
revision is not modified.<br />
Although it can be used to show the contents of any revision in an archive,<br />
this <strong>com</strong>mand is typically used with the working file, since it provides a<br />
mechanism to open the member without leaving the Source Integrity<br />
application environment.<br />
A working file is a file that contains a working copy of a checked out<br />
revision. <strong>User</strong>s edit and change the working file, not the revision itself.<br />
Changes to the working file are added to the history (as a new revision)<br />
when the working file is checked in.<br />
To view a member’s working file or revision in the graphical user<br />
interface or Web interface<br />
1 With a Member History view open, select the working file or revision<br />
you want to view.<br />
u s e r g u i d e
2 Do one of the following:<br />
Select History > View Revision.<br />
Click .<br />
Promoting Revisions<br />
Promoting Revisions<br />
The member’s working file or revision is opened in your default editor<br />
or in the editor associated with the file’s extension.<br />
Normally, you promote a member’s revision (set its state) when you<br />
checkpoint its master project, but you can do so at any time.<br />
To promote a revision in the graphical user interface and Web<br />
interface<br />
1 With a Member History view open, select a revision to promote.<br />
2 Do one of the following:<br />
Select History > Promote.<br />
Click .<br />
The Promote Member dialog box is displayed.<br />
3 Select a new state from the Promote to State list, for example, Beta.<br />
The next highest state appears in the Promote to State list.<br />
4 To accept the new state, click OK (for multiple members, click OK to<br />
All).<br />
The revision is promoted.<br />
323
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Demoting Revisions<br />
Locking Revisions<br />
324<br />
You can demote a revision by changing its promotion state setting from a<br />
higher level to a lower one.<br />
To demote a revision in the graphical user interface and Web interface<br />
1 With a Member History view open, select a revision to demote.<br />
2 Do one of the following:<br />
Select History > Demote.<br />
Click .<br />
The Demote Member dialog box is displayed.<br />
3 Select a new state from the Demote to State list.<br />
By default, the next lowest state appears in the Demote to State list.<br />
4 To accept the new state, click OK (for multiple members, click OK to<br />
All).<br />
The revision is demoted.<br />
Revisions are normally locked at checkout time, but you can lock a revision<br />
without checking it out of the archive. Locking a revision ensures that no<br />
one else can modify that revision.<br />
u s e r g u i d e
Locking Revisions<br />
To lock a revision in the graphical user interface and Web interface<br />
1 With a Member History view open, select a revision to lock.<br />
2 Do one of the following:<br />
Select History > Lock.<br />
Click .<br />
If your administrator has enabled the integration with Integrity<br />
Manager and set the IMTrackLocksEnabled option, Source Integrity<br />
opens the Lock Revision dialog box.<br />
3 Configure the following options as necessary:<br />
Change Package options appear only if change packages are<br />
enabled. Select a change package from the Change Package drop<br />
down list, or click Create to create a new change package.<br />
Force Creation of New Branch causes Source Integrity to create a<br />
branch off of the revision you are locking.<br />
In the Web interface only, select an option from the list:<br />
Select Yes to create a new branch.<br />
Select No to not create a new branch.<br />
Select Confirm to be asked for confirmation of the action to<br />
be taken if branch creation is required.<br />
Create Branch if Variant causes Source Integrity to create a branch<br />
off of the revision you are locking, if you are working in a variant<br />
sandbox. This option is available only through the graphical user<br />
interface and <strong>com</strong>mand line interface.<br />
To apply the lock with the selected options, click OK. To apply locks to<br />
multiple files, click OK to All.<br />
325
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Unlocking Revisions<br />
326<br />
A padlock symbol appears next to the revision number, and your user<br />
name and the date/time you locked the revision display in the Locked<br />
column.<br />
You can unlock a revision without checking it back into the archive.<br />
Unlocking a revision does not discard any changes you have made;<br />
however, resynchronizing or reverting the member would discard those<br />
changes.<br />
If you attempt to unlock a revision that is locked by another user, a<br />
message warns you that you are about to break someone else’s lock.<br />
NOTE<br />
Although you may not be prohibited from breaking someone else’s lock, you<br />
should be cautious about doing so, because it can result in confusion and<br />
duplication of effort in shared working environments. For information on<br />
permissions, see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />
To unlock a revision in the graphical user interface and Web interface<br />
Do one of the following:<br />
With a Member History view open, select a revision to unlock<br />
(denoted by a padlock symbol), then do one of the following:<br />
Select History > Unlock.<br />
Click .<br />
With the Locks for <strong>User</strong> window open (see “Locks View” on<br />
page 450), select one or more locked revisions, then select Locks ><br />
Unlock.<br />
If the lock is not held by you, you are asked to confirm breaking the lock.<br />
To confirm that you want to break the lock, click Yes.<br />
The padlock symbol and the name of the user who had the revision locked<br />
both disappear.<br />
u s e r g u i d e
Locking Multiple Revisions<br />
Locking Multiple Revisions<br />
Locking a revision ensures that no one else can modify that revision. In<br />
some cases locking more than one revision in a member history at the same<br />
time is required.<br />
Cases where you may require multiple locking include:<br />
You are working on both the main branch of development (where new<br />
development is occurring) and in a variant sandbox (where fixes are<br />
occurring)<br />
You are working in two variant sandboxes and need to modify a<br />
different revision in the same member history in each sandbox<br />
You are sharing the member history across many projects and need to<br />
modify a different revision in the same member history in each<br />
particular project<br />
Locking multiple revisions triggers variant branching when necessary. For<br />
example, if you are working in a variant sandbox that does not already<br />
have its own branch, Source Integrity prompts you to create the branch.<br />
Source Integrity then moves the variant and the variant member revision<br />
to that branch. For information on working with variant sandboxes, see<br />
“Creating Variant Sandboxes and Development Paths” on page 146.<br />
NOTE<br />
Your administrator must explicitly set the locking policy to allow locking<br />
multiple revisions. See your administrator to find out if your system is<br />
configured for multiple locking.<br />
Multiple Lock Procedures<br />
There are several ways to lock multiple revisions. The following sections<br />
outline the procedures you can use.<br />
To lock multiple revisions in the graphical user interface<br />
From the Member History view:<br />
Follow the procedure for Locking a Revision (see “Locking Revisions”<br />
on page 324). Repeat to lock other revisions.<br />
Follow the procedure for Checking Out a Member (see “Checking Out<br />
a Member” on page 178) by specifying the revision number (Member<br />
History view via the Sandbox view only). Repeat to check out and lock<br />
other revisions.<br />
327
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Managing Revision Locks<br />
328<br />
From the Sandbox view, follow the procedure for Checking Out a Member<br />
(see “Checking Out a Member” on page 178) by specifying the revision<br />
number. Repeat to check out and lock other revisions.<br />
To lock multiple revisions in the Web interface<br />
From the Member History view:<br />
Follow the procedure for Locking a Revision (see “Locking Revisions”<br />
on page 324). Repeat to lock other revisions.<br />
Follow the procedure for Checking Out a Member (see “Checking Out<br />
a Member” on page 178) by specifying the revision number. Repeat to<br />
check out and lock other revisions.<br />
From the Project view, follow the procedure for Checking Out a Member<br />
(see “Checking Out a Member” on page 178) by specifying the revision<br />
number. Repeat to check out and lock other revisions.<br />
You can view a list of all of the members you have locked across all<br />
projects, even projects that you no longer have permissions to access. You<br />
can then remove unused locks.<br />
To manage revision locks in the graphical user interface and Web<br />
interface<br />
1 Select Tools > Manage My Locks.<br />
The Locks for <strong>User</strong> window is displayed.<br />
The Locks for <strong>User</strong> window displays the following information:<br />
Project displays the name and path of the project where the<br />
member revision was locked from. If the member revision was<br />
locked from a shared subproject, it is the subproject name and<br />
path that are displayed.<br />
u s e r g u i d e
Managing Revision Locks<br />
Member Name displays the member name for the locked revision.<br />
Revision displays the locked revision number.<br />
Time displays the time the revision was locked<br />
You can also display other columns such as Archive Name, Host, <strong>User</strong>,<br />
C.P. ID, Sandbox, Development Path. For more information, see “View<br />
Preferences” on page 61.<br />
You can perform the following tasks:<br />
To delete a lock or locks, select a list item, then select Locks ><br />
Unlock.<br />
The revision is unlocked.<br />
To refresh the list of locked revisions, select View > Refresh.<br />
The list is updated.<br />
To change the user (GUI only) whose locks are displayed, select<br />
Locks > Change <strong>User</strong>.<br />
The Retrieve All Locks for a <strong>User</strong> dialog box is displayed.<br />
From the Locker list, select the name of the user whose locks you<br />
want to view, then click OK.<br />
The user’s locks are displayed in the Locks for <strong>User</strong> window.<br />
NOTE<br />
You may only view other users’ locks on revisions in archives that are in<br />
projects you have permission to view. You can always view your locks for any<br />
project regardless of project permissions.<br />
From the Locks for <strong>User</strong> window, you cannot remove another user’s lock on a<br />
member that was locked from a shared subproject.<br />
Finding Locks<br />
Source Integrity can display all of the locks for a specified user.<br />
To find locks in the graphical user interface<br />
1 Select Tools > Find > Locks.<br />
The Retrieve All Locks for a <strong>User</strong> dialog box is displayed.<br />
329
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Setting the Member Revision<br />
330<br />
2 From the Locker list, select the name of the user whose locks you want<br />
to view, then click OK.<br />
The user’s locks are displayed in the Locks for <strong>User</strong> window.<br />
NOTE<br />
Although you may not be prohibited from breaking someone else’s lock, you<br />
should be cautious about doing so, because it can result in confusion and<br />
duplication of effort in shared working environments. For information on<br />
permissions, see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />
You can specify a particular revision as the member revision for a project.<br />
The member revision is the default revision that users work with in all<br />
other sandboxes. For example, if demoapp.c 1.1 is the member revision,<br />
setting 1.2 as the member revision makes it the default revision in all<br />
sandboxes.<br />
To set the member revision from the member history in the graphical<br />
user interface and Web interface<br />
1 With a Member History view open, select the revision you want to<br />
make the member revision.<br />
2 Do one of the following:<br />
Select History > Set Member Revision.<br />
Click .<br />
The selected revision be<strong>com</strong>es the member revision, indicated by a<br />
member revision icon ( ).<br />
u s e r g u i d e
Deleting Revisions<br />
Comparing Revisions<br />
Deleting Revisions<br />
If you know you will never use a revision again, you can delete it,<br />
provided it is not a pending revision associated with a change package in a<br />
state other than Closed or Discarded. For more information, see<br />
“Working With Pending Revisions” on page 335 and “Change Package<br />
Review Process” on page 240.<br />
CAUTION<br />
Only delete a revision when you are certain you will never need it again. Once<br />
you delete a revision, it cannot be retrieved. Any historical checkpoints based<br />
on a particular revision be<strong>com</strong>e invalid if that revision is deleted. A revision<br />
cannot be deleted if it is the starting point (root) of a branch. You should never<br />
delete the head revision of an archive.<br />
To delete a revision in the graphical user interface<br />
1 With a Member History view open, select the revision you want to<br />
delete.<br />
You can only delete one revision at a time in the graphical user<br />
interface.<br />
2 Do one of the following:<br />
Select History > Delete Revision.<br />
Click .<br />
Source Integrity asks you to confirm the deletion.<br />
NOTE<br />
Any existing locks on revisions are removed when those revisions are deleted.<br />
3 To delete the selected revision, click Yes. To keep the selected revision,<br />
click No.<br />
Source Integrity deletes the revision.<br />
When you are working with an evolving body of source files, you can<br />
<strong>com</strong>pare two revisions to see what changes you made from one revision to<br />
the next, or any two specific revisions.<br />
331
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
332<br />
With Source Integrity you can <strong>com</strong>pare:<br />
any two text-based revisions in a history<br />
a text-based revision and its associated working file in a sandbox<br />
any two text files<br />
The <strong>com</strong>mands discussed in this section for the graphical user interface use<br />
MKS Visual Difference, a standalone application that <strong>com</strong>pares and<br />
merges members and revisions.<br />
MKS Visual Difference calculates the differences between working files or<br />
revisions and displays them side by side in their own panes, along with a<br />
summary of the differences between the files. Using MKS Visual<br />
Difference, you can also interactively merge two members or revisions. For<br />
information on merging in MKS Visual Difference, see “Merging Two<br />
Revisions” on page 356.<br />
In the Web interface, the Differences window displays the revisions sideby-side<br />
in the same pane. For more information on the MKS Visual<br />
Difference interface, see “MKS Visual Difference Interface” on page 100.<br />
Source Integrity allows you to use a third party differencing tool, in the<br />
graphical user interface, if you do not want to use MKS Visual Difference.<br />
You can specify a third party difference tool in your preferences. For<br />
information on setting up third party differencing tools, see “Difference<br />
Tool Preferences” on page 69.<br />
To <strong>com</strong>pare two revisions in the graphical user interface<br />
1 With a Member History view open, select two revisions to <strong>com</strong>pare, or<br />
a revision and the working file.<br />
To select two revisions in the graphical user interface, select the first<br />
revision, then hold down CTRL and click the second revision.<br />
2 Do one of the following:<br />
Select History > Differences.<br />
Click .<br />
NOTE<br />
In the Source Integrity Web interface, application functionality is not available<br />
through the shortcut menu.<br />
The MKS Visual Difference window is displayed.<br />
u s e r g u i d e
Comparing Revisions<br />
Both revisions and a summary of the differences between them are<br />
displayed in the MKS Visual Difference window.<br />
To <strong>com</strong>pare two revisions in the Web interface<br />
1 With a Member History view open, select two revisions to <strong>com</strong>pare, or<br />
a revision and the working file.<br />
2 Do one of the following:<br />
Select History > Differences.<br />
Click .<br />
The Differences window opens.<br />
Both revisions and a summary of the differences between them are<br />
shown in the Differences window.<br />
333
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
334<br />
You can also select from the following rules when viewing the<br />
<strong>com</strong>parison:<br />
Ignore blanks ignores tabs and white space throughout lines in<br />
the revisions, but does not ignore the splitting of a word<br />
Ignore whitespace ignores tabs and white space within a line, and<br />
ignores the splitting of a word<br />
Ignore case ignores the type case when <strong>com</strong>paring the revisions<br />
Diffs only displays only the difference blocks in the revisions<br />
Wrap causes the text in the revisions to wrap at a specified<br />
character count. Enter the number of characters at which you<br />
want the text to wrap within the pane. Wrap is enabled by default.<br />
3 To exit the Differences window, click OK.<br />
u s e r g u i d e
Working With Pending Revisions<br />
Working With Pending Revisions<br />
Pending revisions are created by Source Integrity when a change package<br />
containing deferred operations is submitted. Pending revisions are also<br />
created when reviews are mandatory and an operation that creates a new<br />
revision is performed without deferral (see the documentation for the<br />
desired operation for more information).<br />
When reviews are mandatory, the pending revisions persist until the<br />
change package is accepted and the changes are successfully <strong>com</strong>mitted to<br />
the repository (and then be<strong>com</strong>e <strong>com</strong>mitted entries). If the change package<br />
is rejected, the creator of the change package can edit pending revisions by<br />
checking them out.<br />
When reviews are not mandatory, you only see pending revisions under<br />
the one of following circumstances:<br />
Deferred operations, which when <strong>com</strong>mitted create a new member<br />
revision, are submitted but fail to <strong>com</strong>mit to the database.<br />
A change package that contains deferred operations, which when<br />
<strong>com</strong>mitted create a new member revision, is submitted but fails to<br />
<strong>com</strong>mit to the database.<br />
If the changes fail to <strong>com</strong>mit to the repository, Source Integrity moves the<br />
change package to a state of CommitFailed. You can submit the operation<br />
or change package again (the pending revisions are then changed to<br />
member revisions), or open the change package and continue development<br />
and then submit the change package. For more information, see<br />
“Submitting Deferred Operations” on page 202 and “Change Package<br />
Review Process” on page 240.<br />
Pending revisions are denoted with pending in parenthesis in all views<br />
that display revision numbers, for example 1.2 (pending).<br />
Reviewing a Pending Revision<br />
To review a pending revision created by the action of another user, obtain<br />
a working file for the revision by checking out the revision by its number<br />
(you cannot obtain a lock on the pending revision).<br />
You can view the working file for the pending change package entry from<br />
the Change Package view by selecting Entries > Edit Working File (See<br />
“Viewing Change Package Details and Entries” on page 226).<br />
Resyncing a pending revision from your sandbox, replaces the working file<br />
(corresponding to the pending revision) with the member revision.<br />
335
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
336<br />
Pending members<br />
A pending member, is a member that is associated with a pending operation<br />
that adds it to the project. The pending member is denoted by a pending<br />
icon displayed in the Name column of the Sandbox and Project views.<br />
The following are <strong>com</strong>mands that create pending members: Import, Add,<br />
Add From Archive, Rename To.<br />
In the case of a pending add member operation, the archive name for the<br />
pending revision is reserved on the server, thereby preventing other users<br />
from specifying the same archive name in any future add member<br />
operations.<br />
Pending Revision Caveats<br />
Except for the following information, all <strong>com</strong>mands that involve revisions<br />
can be performed on pending revisions.<br />
Note that pending revisions:<br />
cannot be set as the member revision by a user<br />
cannot be the basis for another revision, unless that revision is also a<br />
pending revision created by the same user in the same change package<br />
can only be locked by their respective creators<br />
can only be deleted by discarding the corresponding pending entry<br />
from the change package<br />
are not recorded in a project checkpoint or sandbox snapshot, and<br />
similarly do not appear in project restore<br />
cannot be imported into a project<br />
Information about pending revisions is can be viewed in the Revision<br />
Information dialog box (see “Viewing and Editing Revision Information”<br />
on page 314 and “Viewing and Editing Member Information” on<br />
page 287).<br />
u s e r g u i d e
Branching and Merging<br />
Revisions<br />
KEY TERMS: branching, merging, merge result file<br />
10<br />
As your projects evolve, you may need to branch members to facilitate<br />
development in multiple directions. When you want to <strong>com</strong>bine the<br />
development occurring on different branches, you can merge the revisions.<br />
You may also want to merge revisions that are part of the same Member<br />
History to incorporate earlier development into the current development<br />
of the member, or vice versa. Source Integrity allows you to merge two<br />
revisions and the corresponding working file into a single merged revision<br />
with the MKS Visual Merge tool.<br />
This chapter explains the branching and merging tasks and the different<br />
ways you can <strong>com</strong>plete them.<br />
Specific topics covered in this chapter include:<br />
“Branching Revisions” on page 338<br />
“Making Locked Members Writable” on page 340<br />
“Merging Branched Revisions” on page 343<br />
“Merging Revisions” on page 353<br />
“Resolving Merges” on page 367<br />
337
Chapter 10: Branching and Merging Revisions<br />
Branching Revisions<br />
338<br />
A branch is a revision path that diverges from the main line of development<br />
(or trunk) in a member or project history. A branch is typically created by<br />
checking in a file to a revision other than the head revision. The most<br />
recent revision of a branch in a history is called the tip revision. When you<br />
branch a member the working revision number is appended to indicate the<br />
branch. For example, the member features.txt at revision 1.2 is<br />
branched and appears with the working revision number 1.2.1.1.<br />
The branching on check out option allows multiple users to share locks on<br />
the same revision by creating new branches automatically. You can use this<br />
option to check out a file that is locked by another user. When you apply<br />
the branching on check out option, Source Integrity provides you with a<br />
locked working revision on new branch where you can proceed with<br />
development.<br />
You can merge revisions when development is <strong>com</strong>plete, or check in your<br />
revisions to the new branch without merging. For more details on checking<br />
in and merging, see “Merging on Check In” on page 343.<br />
To branch a member upon check out in the graphical user interface<br />
and Web interface<br />
1 With a Project or Sandbox view open, select one or more locked<br />
members to check out.<br />
2 Do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
The Check Out dialog box is displayed.<br />
u s e r g u i d e
Branching Revisions<br />
3 Click the desired tab, then modify the check out options. For details on<br />
check out options, see “Checking Out a Member” on page 178.<br />
4 To check out a single selected member, click OK. To check out all<br />
selected members, click OK to All.<br />
The Resolve Lock Conflict dialog box is displayed.<br />
5 Select the Create a new branch with a lock option.<br />
6 To check out and branch a single selected member, click OK.<br />
To check out and branch all selected members, click OK to All.<br />
To cancel the check out and branch without checking out the member,<br />
select the Cancel this operation option, and click OK.<br />
339
Chapter 10: Branching and Merging Revisions<br />
340<br />
NOTE<br />
If you have made changes to your working file (without a lock), and then<br />
attempt to check out the member, the Confirm Working File Update dialog box<br />
is displayed. If you want to retain your changes in the working file, click Yes<br />
(Yes to All for multiple members). If you do not want to retain your changes in<br />
the working file, click No (No to All for multiple members).<br />
The member is checked out for editing on a new branch, indicated by a<br />
lock icon, and a new working revision number. A member delta<br />
symbol also appears indicating that the working file corresponds to<br />
the new branch revision.<br />
Making Locked Members Writable<br />
If you want to edit a locked file without creating a branch, Source Integrity<br />
provides an alternate method. You can make the working file in your<br />
sandbox writable so that you can continue with development while<br />
waiting for the lock to be released. When the lock is released, you can then<br />
check out the member with a lock and check in your changes.<br />
In the graphical user interface, you can make your working file writable<br />
during the check out process, or from a Sandbox view.<br />
In the Web interface, you can make your working file writable during the<br />
check out process.<br />
To make a member writable in the graphical user interface<br />
1 With a Sandbox view open, select one or more locked members to<br />
make writable.<br />
2 Select Member > Working File > Make Writable.<br />
The working file in your sandbox is made writable for editing. The<br />
member revision number and working revision number are not<br />
affected.<br />
IMPORTANT<br />
The changes you make to the working file in your sandbox are not part of the<br />
project history until you check out the member locked, and then check the<br />
member back in.<br />
u s e r g u i d e
Making Locked Members Writable<br />
To make a member writable upon check out in the graphical user<br />
interface<br />
1 With a Project or Sandbox view open, select one or more locked<br />
members to make writable.<br />
2 Do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
The Check Out dialog box is displayed.<br />
3 Click the desired tab, then modify the check out options. For details on<br />
check out options, see “Checking Out a Member” on page 178.<br />
4 To make a single selected member writable, click OK. To make all<br />
selected members writable, click OK to All.<br />
The Resolve Lock Conflict dialog box is displayed.<br />
5 Select the Make your working file writable option.<br />
6 To make a single selected member writable, click OK. To make all<br />
selected members writable, click OK to All.<br />
The working file in your project or sandbox is made writable for<br />
editing. The member revision number and working revision number<br />
are not affected.<br />
IMPORTANT<br />
The changes you make to the working file in your sandbox are not part of the<br />
project history until you check out the member locked, and then check the<br />
member back in.<br />
341
Chapter 10: Branching and Merging Revisions<br />
342<br />
To make a member writable in the Web interface upon check out<br />
1 From a Project view, select one or more locked member to make<br />
writable.<br />
2 Do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
The Check Out dialog box is displayed.<br />
3 Click the desired tab, then modify the check out options. For details on<br />
check out options, see “Checking Out a Member” on page 178.<br />
4 To make a single selected member writable, click OK. To make all<br />
selected members writable, click OK to All.<br />
The Resolve Lock Conflict dialog box is displayed.<br />
5 Select the Ignore and continue without a lock option.<br />
6 To make a single selected member writable, click OK. To make all<br />
selected members writable, click OK to All.<br />
The revision in your project is made writable for editing. The member<br />
revision number is not affected.<br />
IMPORTANT<br />
The changes you make to the working file in your project are not part of the<br />
project history until you check out the member locked, and then check the<br />
member back in.<br />
u s e r g u i d e
Merging Branched Revisions<br />
Merging on<br />
Check In<br />
Merging Branched Revisions<br />
When you want to <strong>com</strong>bine the development occurring on different<br />
branches, you can merge the branched revisions into a single revision.<br />
Source Integrity recognizes cases where a previous merge has occurred,<br />
(whether by merging the branch, automatic merging, or using the MKS<br />
Visual Merge and MKS Visual Difference tools), and merges only changes<br />
since the last merge operation. Thus, the first merge branch operation<br />
occurring on a given branch merges all changes throughout the branch.<br />
Any subsequent merge branch operations will merge only changes since<br />
the previous merge operation.<br />
Merging operations are available only in the graphical user interface and<br />
<strong>com</strong>mand line interface.<br />
Merging on check in is a two step process that allows users sharing locks<br />
on a revision to update the member revision and then merge changes from<br />
a branch if necessary.<br />
Step One: Check In<br />
In the first step, you can check in a revision from a branch when the<br />
member revision is locked with the option of updating the member<br />
revision in the project. For more details on updating the member revision,<br />
see “Updating a Member’s Revision” on page 293.<br />
To check in and update the member revision using the graphical user<br />
interface<br />
1 With a Sandbox view open, select one or more members to check in.<br />
2 Do one of the following:<br />
Select Member > Check In.<br />
Click .<br />
The Check In dialog box is displayed.<br />
NOTE<br />
The Change Package options, such as Close Change Package, appear only if<br />
change packages are enabled.<br />
If the member you are checking in had a change package associated with it at<br />
the time of check out, that change package appears by default in the Change<br />
Package field in the Change Package options.<br />
343
Chapter 10: Branching and Merging Revisions<br />
344<br />
3 In the Revision Description field, enter a <strong>com</strong>ment about the new<br />
revision. For example, you can enter a detailed description of what<br />
you changed, what bug in the software the changes were meant to<br />
correct, or instructions for the next person who works on the member.<br />
NOTE<br />
If your administrator has set the feature for enforced revision descriptions, you<br />
must make an entry in the Revision Description field. If the field is blank,<br />
Source Integrity displays an error message and the member is not checked in.<br />
4 Under Options, click the desired tab, then modify the check in options.<br />
For details on check in options, see “Checking In a Member” on<br />
page 186.<br />
5 To check in the member, click OK. To check in all remaining members,<br />
click OK to All.<br />
The Confirm Update Of Member Revision dialog box is displayed.<br />
u s e r g u i d e
Merging Branched Revisions<br />
6 To check in and update a single selected member, click Yes. To check<br />
in and update all selected members, click Yes to All.<br />
The member is checked in. The new revision be<strong>com</strong>es the member<br />
revision in the project, and the member revision number increments<br />
accordingly.<br />
To check in a single member without updating, click No. To check in<br />
all remaining members without updating, click No to All.<br />
NOTE<br />
Source Integrity confirms the action to be taken if the working file you want to<br />
check in has unresolved merge conflicts. For information on resolving merges,<br />
see “Resolving Merges” on page 367.<br />
The member is checked in but is not updated to the member revision.<br />
The working revision number increments accordingly, and the<br />
original member revision in the project remains unchanged.<br />
To cancel the check in and update without checking in the member,<br />
click Cancel.<br />
Step Two: Merge Branch<br />
In the second step, you can merge the changes between revisions on<br />
branches, making the merged revision the member revision for the project.<br />
For more details on merging, see “Merging Revisions” on page 353.<br />
To merge revisions in the graphical user interface<br />
1 With a Sandbox or Member History view open, select one or more<br />
members to merge.<br />
IMPORTANT<br />
Revisions must be checked in prior to merging. An error occurs if the working<br />
file is modified and not checked in.<br />
2 From the Sandbox view, select Member > Diff/Merge > Merge Branch.<br />
From the Member History view, select History > Merge Branch.<br />
The Merge Branch dialog box is displayed.<br />
345
Chapter 10: Branching and Merging Revisions<br />
346<br />
3 Specify the Target revision that the working revision is merged into.<br />
You can specify a revision by name from the Symbolic list, specify a<br />
particular revision from the Revision list, or specify a revision by label<br />
from the Label list.<br />
4 Specify the Branch revision you want to merge with the Target<br />
revision. You can specify a revision by name from the Symbolic list,<br />
specify a particular revision from the Revision list, or specify a<br />
revision by label from the Label list.<br />
5 Under Options <strong>com</strong>plete the following as required:<br />
Select Lock target revision to lock the merged revision when the<br />
merge is <strong>com</strong>plete.<br />
Select Force Creation of New Branch to automatically create a<br />
branch for the merged revision.<br />
Select Create Branch if Variant to automatically create a branch for<br />
the merged revision if you are working in a variant sandbox.<br />
Configure the Merge Type option to specify the method you want<br />
to use for merging. Select one of the following from the list:<br />
Confirm causes Source Integrity to prompt you for the action<br />
to be taken.<br />
u s e r g u i d e
Merging Branched Revisions<br />
Cancel causes Source Integrity to cancel the merge<br />
operation.<br />
Automatic causes Source Integrity to automatically merge<br />
the files.<br />
Manual causes Source Integrity to launch the MKS Visual<br />
Merge tool.<br />
Configure the On Conflicts option to specify how you want<br />
Source Integrity to handle any conflicts that occur during<br />
merging. Select one of the following from the list:<br />
Confirm causes Source Integrity to prompt you for the action<br />
to be taken.<br />
Cancel causes Source Integrity to cancel the merge operation<br />
when a conflict occurs.<br />
Mark For Later Merge causes Source Integrity to exit the<br />
merge operation and mark the working file with an<br />
unresolved merge icon.<br />
Launch Tool causes Source Integrity to launch the MKS<br />
Visual Merge tool.<br />
Highlight Output File causes Source Integrity to<br />
<strong>com</strong>plete the merge automatically and highlight the output<br />
file where any conflicts occurred.<br />
Error causes Source Integrity to display an error message<br />
prompt.<br />
6 Under Change Package, select a change package to associate with the<br />
merged file from the Change Package list.<br />
Click Create to create a new change package for the file.<br />
NOTE<br />
The Change Package options only appear if change packages are enabled.<br />
7 To merge the revision, click OK. To merge revisions of more than one<br />
member, click OK to All.<br />
Source Integrity merges all the changes to the working file on the<br />
branch (from the point of branching up to the point of check in) into<br />
the member revision for the project.<br />
347
Chapter 10: Branching and Merging Revisions<br />
Merging<br />
Revisions by<br />
Dragging<br />
348<br />
You can merge revisions in the Graphical History view by dragging. The<br />
drag-and-drop action initiates the Merge Branch <strong>com</strong>mand.<br />
For more information on the Graphical History view, see “Graphical<br />
History View (GUI)” on page 445.<br />
For more information on Dragging, see “Dragging in the Graphical History<br />
View (GUI)” on page 448.<br />
To merge revisions in the graphical user interface Graphical History<br />
view by dragging<br />
1 Select the branch revision you want to merge.<br />
2 Drag the branch revision onto the target revision (the revision you<br />
want to merge into).<br />
The Merge Branch dialog box is displayed.<br />
3 Specify the Target revision that the working revision is merged into.<br />
You can specify a revision by name from the Symbolic list, specify a<br />
particular revision from the Revision list, or specify a revision by label<br />
from the Label list.<br />
u s e r g u i d e
Merging Branched Revisions<br />
4 Specify the Branch revision you want to merge with the Target<br />
revision. You can specify a revision by name from the Symbolic list,<br />
specify a particular revision from the Revision list, or specify a<br />
revision by label from the Label list.<br />
5 Under Options <strong>com</strong>plete the following as required:<br />
Select Lock target revision to lock the merged revision when the<br />
merge is <strong>com</strong>plete.<br />
Select Force Creation of New Branch to automatically create a<br />
branch for the merged revision.<br />
Select Create Branch if Variant to automatically create a branch for<br />
the merged revision if you are working in a variant sandbox.<br />
Configure the Merge Type option to specify the method you want<br />
to use for merging. Select one of the following from the list:<br />
Confirm causes Source Integrity to prompt you for the action<br />
to be taken.<br />
Cancel causes Source Integrity to cancel the merge<br />
operation.<br />
Automatic causes Source Integrity to automatically merge<br />
the files.<br />
Manual causes Source Integrity to launch the MKS Visual<br />
Merge tool.<br />
Configure the On Conflicts option to specify how you want<br />
Source Integrity to handle any conflicts that occur during<br />
merging. Select one of the following from the list:<br />
Confirm causes Source Integrity to prompt you for the action<br />
to be taken.<br />
Cancel causes Source Integrity to cancel the merge operation<br />
when a conflict occurs.<br />
Mark For Later Merge causes Source Integrity to exit the<br />
merge operation and mark the working file with an<br />
unresolved merge icon.<br />
Launch Tool causes Source Integrity to launch the MKS<br />
Visual Merge tool.<br />
349
Chapter 10: Branching and Merging Revisions<br />
Automatic<br />
Merging on<br />
Check Out<br />
350<br />
Highlight Output File causes Source Integrity to<br />
<strong>com</strong>plete the merge automatically and highlight the output<br />
file where any conflicts occurred.<br />
Error causes Source Integrity to display an error message<br />
prompt.<br />
6 Under Change Package, select a change package to associate with the<br />
merged file from the Change Package list.<br />
Click Create to create a new change package for the file.<br />
NOTE<br />
The Change Package options only appear if the Integrity Manager integration<br />
is enabled.<br />
7 To merge the revision, click OK. To merge revisions of more than one<br />
member, click OK to All.<br />
Source Integrity merges all the changes to the working file on the<br />
branch (from the point of branching up to the point of check in) into<br />
the member revision for the project.<br />
The Automatic Merging on Check Out option allows you to merge a<br />
member revision, if it is modified, with your working file upon check out.<br />
This option allows you to have the most <strong>com</strong>plete working file available.<br />
For more details on merging, see “Merging Revisions” on page 353.<br />
To merge revisions automatically on check out in the graphical user<br />
interface<br />
1 With a Sandbox view open, select one or more members to check out.<br />
2 Do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
The Check Out dialog box is displayed.<br />
u s e r g u i d e
Merging Branched Revisions<br />
3 Under Options, click the Advanced tab, then click the Merge Working<br />
File if Changed check box.<br />
4 To check out a single selected member, click OK. To check out all<br />
selected members, click OK to All.<br />
If you have made changes to your working file (without a lock), and<br />
then attempt to check out the member, the Confirm Working File<br />
Update dialog box is displayed. If you want to retain your changes in<br />
the working file, click Yes (Yes to All for multiple members). If you do<br />
not want to retain your changes in the working file, click No (No to All<br />
for multiple members).<br />
Depending on the preferences you have set for the check out<br />
<strong>com</strong>mand (see “Command Preferences” on page 48), Source Integrity<br />
takes one of the following actions when a conflict occurs:<br />
Source Integrity asks you to confirm the action to be taken.<br />
Source Integrity cancels the operation.<br />
351
Chapter 10: Branching and Merging Revisions<br />
Automatic<br />
Merging on<br />
Resync<br />
352<br />
Source Integrity exits the merge operation and marks the working<br />
file with an unresolved merge icon. For information on resolving<br />
merges, see “Resolving Merges” on page 367.<br />
Source Integrity automatically launches the MKS Visual Merge<br />
tool. For information on the MKS Visual Merge tool, see<br />
“Working With MKS Visual Merge” on page 361.<br />
Any changes to the working file are merged and the member is<br />
checked out for editing, indicated by a lock icon, who locked the<br />
revision, and when it was locked.<br />
The Automatic Merging on Resync option allows you to merge a member<br />
revision, if it is modified, with your working file upon resyncing. This<br />
option provides you with the most <strong>com</strong>plete working file available. For<br />
more details on merging, see “Merging Revisions” on page 353. For more<br />
information on resyncing members, see “Resyncing Members” on<br />
page 197.<br />
To merge revisions automatically on resynchronization in the<br />
graphical user interface<br />
1 With a Sandbox view open, select one or more members that contain<br />
member deltas that denote that both the working file is modified and a<br />
new member revision available.<br />
u s e r g u i d e
Merging Revisions<br />
2 Do one of the following:<br />
Select Member > Resynchronize.<br />
Click .<br />
The Confirm Working File Merge dialog appears.<br />
Merging Revisions<br />
3 To merge and resynchronize the member, click Yes (for multiple<br />
members, click Yes to All). To cancel the merging and resynchronizing<br />
the member, click No (for multiple members, click No to All).<br />
Depending on the preferences you have set for the resynchronize<br />
<strong>com</strong>mand (see “Command Preferences” on page 48), Source Integrity<br />
takes one of the following actions when a conflict occurs:<br />
Source Integrity asks you to confirm the action to be taken.<br />
Source Integrity cancels the operation.<br />
Source Integrity exits the merge operation and marks the working<br />
file with an unresolved merge icon. For information on resolving<br />
merges, see “Resolving Merges” on page 367.<br />
Source Integrity automatically launches the MKS Visual Merge<br />
tool. For information on the MKS Visual Merge tool, see<br />
“Working With MKS Visual Merge” on page 361.<br />
The selected member is updated and merged.<br />
Source Integrity offers a number of different methods to merge revisions.<br />
This section describes the methods of merging revisions automatically or<br />
by using the MKS Visual Difference and MKS Visual Merge tools. These<br />
tools are available through the graphical user interface only, but can be<br />
launched from the <strong>com</strong>mand line interface. Command line interface<br />
procedures are also included in this section.<br />
For more information on MKS Visual Difference, see “MKS Visual<br />
Difference Interface” on page 100.<br />
353
Chapter 10: Branching and Merging Revisions<br />
Merging<br />
Revisions<br />
Automatically<br />
354<br />
For more information on MKS Visual Merge, see “MKS Visual Merge<br />
Interface” on page 107.<br />
For more information on the <strong>com</strong>mand line interface, see “Command Line<br />
Interface” on page 98.<br />
IMPORTANT<br />
Members must be checked out before you can merge them.<br />
If you do not want to use MKS Visual Difference or MKS Visual Merge to<br />
merge revisions in the graphical user interface, you can merge revisions<br />
automatically.<br />
To merge revisions automatically in the graphical user interface<br />
1 From a Sandbox or Member History view, select the revisions you<br />
want to merge.<br />
2 Do one of the following:<br />
From the Sandbox view, select Member > Diff/Merge > Merge.<br />
From the Member History view, select History > Merge.<br />
The Merge dialog box is displayed.<br />
3 Specify the revisions you want to merge. You can specify a revision by<br />
name from the Symbolic list, specify a particular revision from the<br />
Revision list, or specify a revision by label from the Label list.<br />
u s e r g u i d e
4 Click OK to continue.<br />
Merging Revisions<br />
The Merge dialog box is displayed (if your preferences are set to<br />
confirm the action to be taken, see “Command Preferences” on<br />
page 48)<br />
5 Select Automatically and click OK.<br />
The revisions are merged.<br />
If Source Integrity encounters a conflict, depending on your<br />
preferences (see “Command Preferences” on page 48), the Conflict<br />
resolution dialog box is displayed.<br />
The merge operation may be canceled, the MKS Visual Merge tool<br />
may be launched, the output file may be highlighted, or the revisions<br />
may be marked for merging later.<br />
Select an option, then Click OK. Source Integrity provides a message<br />
indicating why the merge was canceled.<br />
6 Check in the merged revision.<br />
355
Chapter 10: Branching and Merging Revisions<br />
Working With<br />
MKS Visual<br />
Difference<br />
356<br />
The MKS Visual Difference tool is a graphical application that allows you<br />
to <strong>com</strong>pare revisions. It offers two-way differencing of revisions where<br />
differences are highlighted for you. MKS Visual Difference operates in two<br />
modes, Difference mode and Merge mode. You must be in Merge mode to<br />
merge revisions in MKS Visual Difference.<br />
Merging Two Revisions<br />
You can use MKS Visual Difference to merge differences between two<br />
revisions selected from a member history or the member revision and<br />
working file. The graphical user interface and <strong>com</strong>mand line interface<br />
allow you to merge differences between two revisions.<br />
To merge two revisions in the graphical user interface<br />
1 Compare two revisions whose differences you want to merge, as<br />
described in “Comparing Revisions” on page 331.<br />
2 In Visual Difference, do one of the following:<br />
Select File > Merge.<br />
Click .<br />
The Reassign Merge Roles dialog box is displayed.<br />
3 Specify which of the selected revisions you want as the Merge From<br />
revision and the Merge To revision by selecting it from the list.<br />
4 Click OK to continue to Merge mode.<br />
MKS Visual Difference switches to the Merge mode split layout. For<br />
information on the MKS Visual Difference layouts, see “View Panes”<br />
on page 103.<br />
u s e r g u i d e
5 Complete the required changes by doing one of the following:<br />
Merging Blocks (see “Merging Blocks” on page 358)<br />
Merging Revisions<br />
Editing Merge Results (see “Editing Merge Results” on page 363)<br />
6 To save the Merge Result select File > Save As (or File > Save if you<br />
have already specified a file name for the merge result).<br />
The Save merge result dialog box is displayed.<br />
357
Chapter 10: Branching and Merging Revisions<br />
358<br />
7 Enter the file name you want to save your merge result as. By default,<br />
Source Integrity selects the file name corresponding to the member<br />
name.<br />
8 Click Save to save the Merge Result.<br />
The Merge Result is saved.<br />
Merging Blocks<br />
Difference blocks are highlighted within each revision and may be<br />
insertions, deletions, or changes. You can select the blocks you want to<br />
merge by this method.<br />
The merging by blocks functions are accessible from the Edit menu and the<br />
shortcut menu. The following outlines the operations you can use:<br />
Merge Block replaces a block in the Merge Result. The block you select<br />
to merge is inserted, replacing the corresponding block in the Merge<br />
Result.<br />
Merge Block Above inserts the selected block above the adjacent block<br />
in the merge result file.<br />
Merge Block Below inserts the selected block below the adjacent block<br />
in the merge result file.<br />
You can also perform these operations in the following ways:<br />
Double click a block in the Merge From or Merge To panes to replace<br />
the adjacent block in the Merge Result.<br />
Drag blocks from the Merge From and Merge To panes to the Merge<br />
Result pane.<br />
You must save the merge result file to <strong>com</strong>plete the merging operation. For<br />
information on saving merge results, see “Saving Merge Results” on<br />
page 360.<br />
u s e r g u i d e
Editing Merge Results<br />
Merging Revisions<br />
Once you are working in Merge mode in MKS Visual Difference you can<br />
directly edit the merge result if necessary.<br />
In MKS Visual Difference you can cut, copy, and paste text in the merge<br />
result. MKS Visual Difference highlights the edited text and displays the<br />
edit icon ( ) next to the line number. You can access editing functions in<br />
the following ways:<br />
From the Edit menu, select Cut, Copy, Paste, or Select All.<br />
From the toolbar, click the Cut, Copy, or Paste buttons.<br />
From the shortcut menu, select Cut, Copy, Paste, or Select All.<br />
Use the following shortcut keys:<br />
Cut = CTRL+X<br />
Copy = CTRL+C<br />
Paste = CTRL+V<br />
Select All = CTRL+A<br />
You can also add and delete text by selecting a line within the merge result<br />
and type or delete as required.<br />
Reverting Merge Results<br />
If you have made changes to the merge result file that you want to discard,<br />
you can revert the merge result file to its last saved state or revert a<br />
particular block.<br />
To revert merge results in the graphical user interface<br />
1 Do one of the following:<br />
Select Edit > Revert Merge Result File.<br />
Click .<br />
The merge result file is reverted to its last saved state.<br />
359
Chapter 10: Branching and Merging Revisions<br />
360<br />
To revert merge results by block in the graphical user interface<br />
1 Select the block you want to revert in the merge result file.<br />
2 Select Edit > Revert Block.<br />
The block is replaced with the adjacent block in the Merge To.<br />
Saving Merge Results<br />
Once you have edited or merged blocks into the merge result file, you must<br />
save the file. You can save the file as the member and check it in to<br />
continue development or you can choose a file name of your choice. If you<br />
do not save the merge result file as the member, Source Integrity does not<br />
recognize any changes to the member.<br />
To save merge results in the graphical user interface<br />
1 Select File > Save As.<br />
The Save merge result dialog box is displayed.<br />
2 Enter the file name you want to save your merge result as. By default,<br />
if the working file is involved in the <strong>com</strong>parison, Source Integrity<br />
selects the file name corresponding to the member name.<br />
3 Click Save to <strong>com</strong>plete the operation.<br />
The merge result file is saved.<br />
NOTE<br />
If you save the merge result to your working file, MKS Visual Difference<br />
automatically recalculates the differences when it is saved.<br />
u s e r g u i d e
Working With<br />
MKS Visual<br />
Merge<br />
Merging Revisions<br />
Once you have selected a file name and saved the merge result file, as you<br />
continue to make changes you can do one of the following to save it:<br />
Select File > Save.<br />
Click .<br />
The MKS Visual Merge tool is a graphical application that allows you to<br />
<strong>com</strong>pare, edit and merge revisions. It offers three-way differencing of<br />
revisions where conflicts are highlighted for you. Open MKS Visual Merge<br />
by selecting Manually from the Merge dialog box (see “Merging Revisions<br />
Automatically” on page 354).<br />
Viewing Conflicts<br />
Conflicts, if they exist, are highlighted and appear with a red flag next to<br />
the line number in the view panes. Conflicts are also listed in the Difference<br />
Blocks list. You can decide which of the conflicting blocks you want to<br />
incorporate into the merge result, and use the merging and editing utilities<br />
to revise the merge result.<br />
You can use the Next Conflict Block ( ) and Previous Conflict Block<br />
( ) buttons to navigate through the revisions and view all the conflicts.<br />
361
Chapter 10: Branching and Merging Revisions<br />
362<br />
Merging by Nonconflicting Blocks<br />
Merging by nonconflicting blocks allows you to merge without including<br />
any areas of conflict. MKS Visual Merge incorporates all difference blocks<br />
(except conflict blocks) from the Merge From revision into the merge result<br />
file.<br />
To merge revisions by nonconflicting blocks in MKS Visual Merge<br />
1 Do one of the following:<br />
Select Edit > Merge All Nonconflicting Blocks.<br />
Click .<br />
All nonconflicting difference blocks are applied to the merge result<br />
file.<br />
u s e r g u i d e
Merging Revisions<br />
2 Save the merge result file to retain the changes as described in “Saving<br />
Merge Results” on page 364.<br />
Merging by Blocks<br />
If you do not want to merge entire revisions you can merge by difference<br />
blocks or lines. Difference blocks are highlighted within each revision and<br />
may be insertions, deletions, changes, or conflicts.<br />
The merging by blocks functions are accessible from the Edit menu and the<br />
shortcut menu. The following outlines the <strong>com</strong>mands you can use:<br />
Merge Block inserts the selected block or line into the merge result file<br />
in the same location as it appears in the revision it originated from.<br />
Merge Block Above inserts the selected block or line above the adjacent<br />
block in the merge result file.<br />
Merge Block Below inserts the selected block or line below the adjacent<br />
block in the merge result file.<br />
In addition to these <strong>com</strong>mands, in MKS Visual Merge you can simply<br />
select a block and double click it or drag it into the merge result file.<br />
You must save the merge result file to <strong>com</strong>plete the merging operation. For<br />
information on saving merge results, see “Saving Merge Results” on<br />
page 364.<br />
Editing Merge Results<br />
While you are working in MKS Visual Merge you can directly edit the<br />
merge result if necessary.<br />
In MKS Visual Merge you can cut, copy, and paste text in the merge result.<br />
MKS Visual Merge highlights the edited text and displays the edit icon ( )<br />
next to the line number. You can access editing functions in the following<br />
ways:<br />
From the Edit menu, select Cut, Copy, Paste, or Select All.<br />
From the toolbar, click the Cut, Copy, or Paste buttons.<br />
From the shortcut menu, select Cut, Copy, Paste, or Select All.<br />
Use the following shortcut keys:<br />
Cut = CTRL+X<br />
Copy = CTRL+C<br />
Paste = CTRL+V<br />
Select All = CTRL+A<br />
363
Chapter 10: Branching and Merging Revisions<br />
364<br />
You can also add and delete text by selecting a line within the merge result<br />
and type or delete as required.<br />
Reverting Merge Results<br />
If you have made changes to the merge result file that you want to discard,<br />
you can revert the merge result file to its original state or revert a particular<br />
block or line.<br />
To revert merge results to the original state in MKS Visual Merge<br />
Do one of the following:<br />
Select Edit > Revert Merge Result File.<br />
Click .<br />
The merge result file is reverted to its last saved state.<br />
To revert merge results by block in MKS Visual Merge<br />
1 Select the block or line you want to revert in the merge result file.<br />
2 Select Edit > Revert Block.<br />
The block or line is removed from the merge result file.<br />
Saving Merge Results<br />
Once you have edited or merged blocks into the merge result file, you must<br />
save the file. You can save the file as the member and check it in to<br />
continue development or you can choose a file name of your choice. If you<br />
do not save the merge result file as the member, Source Integrity does not<br />
recognize any changes to the member.<br />
To save merge results in MKS Visual Merge<br />
1 Select File > Save As.<br />
The Save merge result dialog box is displayed.<br />
u s e r g u i d e
Merging Revisions<br />
2 Enter the file name you want to save your merge result as. By default,<br />
Source Integrity selects the file name corresponding to the member<br />
name.<br />
3 Click Save to <strong>com</strong>plete the operation.<br />
The merge result file is saved.<br />
NOTE<br />
If you save the merge result to your working file, MKS Visual Merge<br />
automatically recalculates the differences when it is saved.<br />
Once you have selected a file name and saved the merge result file, as you<br />
continue to make changes you can do one of the following to save it:<br />
Select File > Save.<br />
Click .<br />
Click the Save button on the status bar.<br />
Suspending Merges<br />
Once you have initiated a merge, you can suspend it and then resolve it at<br />
a later time. Suspending merges allows you to mark the working file to<br />
indicate that merging is required. This provides time you may need to<br />
investigate conflicts or difference blocks before finishing the merge.<br />
You can only suspend a merge operation if there are changes since the last<br />
time you saved the merge result.<br />
365
Chapter 10: Branching and Merging Revisions<br />
Merging in the<br />
Command Line<br />
Interface<br />
366<br />
To suspend merges in MKS Visual Merge<br />
1 In MKS Visual Merge, click the Close button on the status bar.<br />
The Mark for Later Merge dialog box is displayed.<br />
2 Click Yes to mark the revision for merging at a later time.<br />
In your Sandbox view the member is marked with an unresolved<br />
merge symbol ( ) and in the member information pane<br />
Source Integrity indicates that resolution is required.<br />
To resolve a suspended merge, see “Resolving Merges” on page 367.<br />
In the <strong>com</strong>mand line interface, you can merge two revisions using the si<br />
merge <strong>com</strong>mand. Merging in the <strong>com</strong>mand line interface operates as the<br />
graphical user interface where two revisions and a working file are<br />
<strong>com</strong>pared and merged.<br />
You can also launch the MKS Visual Merge and MKS Visual Difference<br />
tools from the <strong>com</strong>mand line interface by using the -g option with the<br />
merge <strong>com</strong>mand.<br />
To merge two revisions in the <strong>com</strong>mand line interface<br />
Use the si merge <strong>com</strong>mand:<br />
si merge -r value -r value member --sandbox=value<br />
where<br />
-r value -r value specifies the revisions you want to merge, for<br />
example, -r1.1 -r1.2.<br />
member specifies the member whose revisions you want to merge, for<br />
example, demoapp.c.<br />
--sandbox=value specifies the sandbox containing the member whose<br />
revisions you want to merge, for example, c:/sandboxdemo/<br />
project.pj.<br />
Depending on the preferences you have set for the Merge <strong>com</strong>mand (see<br />
“Command Preferences” on page 48), Source Integrity may ask one or both<br />
of the following questions:<br />
u s e r g u i d e
Resolving Merges<br />
How would you like to perform the merge?<br />
Select an option from the list provided.<br />
How would you like to handle conflicts?<br />
Select an option from the list provided.<br />
Resolving Merges<br />
Source Integrity merges the differences between the two revisions and<br />
saves them to the member’s working file.<br />
Check in the merged revision.<br />
For a <strong>com</strong>plete list of options for the si merge <strong>com</strong>mand, see the<br />
Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong>.<br />
During the process of merging revisions you may decide to suspend the<br />
operation and mark the working files for merging at a later time. Working<br />
files that are marked for merging appear with an unresolved merge<br />
symbol ( ) in the delta column in the Sandbox view.<br />
If you have begun the merging process but decided to use the Mark for<br />
Later Merge option to postpone the <strong>com</strong>pletion of the merge process, when<br />
you are ready to merge the selected revisions you can use the Resolve<br />
Merge <strong>com</strong>mand to do so.<br />
To resolve a merge in the graphical user interface<br />
1 In a Sandbox view, select a member with an unresolved merge<br />
symbol.<br />
2 Select Member > Diff/Merge > Resolve Merge.<br />
The Merge dialog box is displayed (if your preferences are set to<br />
confirm the action to be taken, see “Command Preferences” on<br />
page 48).<br />
367
Chapter 10: Branching and Merging Revisions<br />
368<br />
3 Select either of the following options for how you want to <strong>com</strong>plete<br />
the merge, then click OK:<br />
Automatically <strong>com</strong>pletes the merge process without launching the<br />
MKS Visual Merge tool. A delta, visible in the Sandbox view,<br />
appears indicating that the merge is <strong>com</strong>plete.<br />
If Source Integrity encounters a conflict, depending on your<br />
preferences (see “Command Preferences” on page 48), the<br />
operation may be canceled, the revisions may be marked for<br />
merging later, the output file may be highlighted, or the MKS<br />
Visual Merge tool may be launched.<br />
Manually allows you to <strong>com</strong>plete the merge operation through the<br />
MKS Visual Merge tool. The MKS Visual Merge tool appears in a<br />
new window displaying the revisions you want to merge. In MKS<br />
Visual Merge perform merging and editing as required. Complete<br />
steps 4 through 7.<br />
For information on using the MKS Visual Merge tool, see “MKS Visual<br />
Merge Interface” on page 107, and “Working With MKS Visual<br />
Merge” on page 361.<br />
4 In the MKS Visual Merge window, click File > Save As.<br />
The Save merge result dialog box is displayed.<br />
u s e r g u i d e
Resolving Merges<br />
5 Enter the file name you want to save your merge result as. By default,<br />
Source Integrity selects the file name corresponding to the Merge To<br />
revision.<br />
6 Click Save to merge the revisions.<br />
The revisions are merged.<br />
7 To close MKS Visual Merge, click Close.<br />
In your Sandbox view, a delta appears indicating that the merge is<br />
<strong>com</strong>plete.<br />
369
Chapter 10: Branching and Merging Revisions<br />
370<br />
u s e r g u i d e
The Integrity Manager<br />
Integration<br />
KEY TERMS: Integrity Manager, change package, issue, change package ID<br />
11<br />
Integrity Manager extends the concept of defect tracking to include<br />
support for managing <strong>com</strong>ponents, tasks, and a <strong>com</strong>plex workflow. This is<br />
particularly important when your organization has implemented a<br />
Software Configuration Management (SCM) process for the proposal,<br />
review, and approval of all software changes. Source Integrity supports the<br />
managing of <strong>com</strong>ponents and tasks in change packages. For more<br />
information on change packages, see “Using Change Packages and<br />
Reviews” on page 213.<br />
As part of the <strong>com</strong>plete MKS Integrity Solution, Integrity Manager allows<br />
you to associate issues with Source Integrity change packages. Your<br />
administrator configures Source Integrity to allow change packages,<br />
enables the Integrity Manager integration, and then defines the issue types<br />
that can use change packages.<br />
This chapter discusses the following:<br />
“Integrating With Integrity Manager” on page 372<br />
“How the Integration Works” on page 372<br />
“Creating a Change Package for an Issue” on page 375<br />
“Adding Entries to an Issue’s Change Package” on page 376<br />
“Viewing a Change Package’s Issue” on page 376<br />
“Finding Change Packages Using a Query” on page 378<br />
371
Chapter 11: The Integrity Manager Integration<br />
Integrating With Integrity Manager<br />
How the Integration Works<br />
372<br />
As part of the integration with Integrity Manager, you can associate<br />
change packages with Integrity Manager issues. Issues provide more<br />
detailed information on the issue that needs to be addressed, and control<br />
the workflow of development and testing, known as the software<br />
development cycle.<br />
Issues track changes in the software development cycle. For example, your<br />
administrator can configure Integrity Manager in a way that a problem<br />
issue may be associated with a solution issue for easy tracking and<br />
monitoring of both issues. Each issue has an audit trail, which may be used<br />
to evaluate internal processes for the effectiveness of the problem<br />
resolution process. In effect, issues track all aspects of any engineering<br />
endeavor.<br />
Integrating with Integrity Manager allows you to specify groups of<br />
developers who are affected by an issue, who can then be notified using email<br />
notification rules.<br />
Administrators define what issue types can use change packages and<br />
configure Source Integrity to integrate with Integrity Manager.<br />
Change packages can be grouped together using an issue to create a larger<br />
logical grouping of changes. Each change package in an issue can be<br />
created by a different user for team development of an issue.<br />
For detailed information on Integrity Manager operations, see the<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
Before reading about how the integration works, you should note the<br />
following rules that apply when using issues and change packages:<br />
Multiple change packages can be created for a single issue. If the<br />
resolution of an issue requires more than one set of changes, a new<br />
change package can be created for each new set of changes. This also<br />
allows multiple users to work on the same issue.<br />
If an issue type does not allow open change packages, you cannot<br />
create and associate new change packages with that issue. Check with<br />
your administrator to find out which issue types allow open change<br />
packages.<br />
u s e r g u i d e
How the Integration Works<br />
Only issue states specified by your administrator allow open change<br />
packages. When attempting to advance to a state that does not allow<br />
open change packages, Integrity Manager instructs you to first close<br />
the issue’s change package.<br />
Typically, an issue cannot advance to the final state in an<br />
Integrity Manager workflow until all change packages are closed. See<br />
your administrator for more information.<br />
<strong>User</strong>s can view change package information from both<br />
Integrity Manager and Source Integrity, reducing the need to work in<br />
both applications to use the integration features.<br />
When the Integrity Manager integration is enabled, the change<br />
package ID is a colon-separated identifier of the form:<br />
:<br />
NOTE<br />
When working with shared subprojects, Source Integrity uses the actual name<br />
of the subproject in the file system rather than its relative name in the project<br />
hierarchy. Therefore, the change package entries for a shared subproject use<br />
the actual file system name of the subproject. This enhances the portability of<br />
change packages across different projects.<br />
The following is an example of the re<strong>com</strong>mended way to use change<br />
packages with Integrity Manager to control development:<br />
1 In Integrity Manager, submit an issue that needs to be addressed. For<br />
more information, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
2 In Source Integrity, open the Manage Change Packages window (see<br />
“Managing Change Packages” on page 220). This is your control<br />
center for managing your grouping of tasks.<br />
3 Create a change package (see “Creating a Change Package” on<br />
page 217) to use for the group of tasks you need to perform to address<br />
an issue. The change package acts as a container, grouping together<br />
the specific members (files) that need to be changed to address the<br />
issue. When creating the change package, associate it with the issue<br />
you created in Integrity Manager.<br />
Source Integrity assigns the change package an ID and leaves the<br />
change package in the Open state.<br />
You can see the change package listed in the Manage Change<br />
Packages window.<br />
373
Chapter 11: The Integrity Manager Integration<br />
374<br />
4 View the change package in the Change Package view (see “Viewing<br />
Change Package Details and Entries” on page 226). All operations you<br />
do to address the issue appear in this window.<br />
5 As part of your development process, identify the members that are<br />
affected by the issue. Add the members to the change package (see<br />
“Operations That Add Entries to a Change Package” on page 215).<br />
NOTE<br />
You can only see change package lock entries in a change package from<br />
Integrity Manager if lock tracking is enabled. For more information on lock<br />
tracking, see your administrator.<br />
The operations are listed in the Change Package view.<br />
6 When all of the development to address the issue is <strong>com</strong>pleted, submit<br />
the change Package (see “Submitting Change Packages” on page 238).<br />
All deferred operations are submitted.<br />
Any locked members are converted to deferred check in operations,<br />
then checked in.<br />
Although you can submit operations individually, or check in a<br />
member without deferring it, submitting all of your operations at one<br />
time ensures that no operations miss the development build.<br />
If reviews are mandatory, the review begins here, and the following<br />
numbered steps are not <strong>com</strong>pleted. For more information, see “CP<br />
Review Workflow” on page 242.<br />
7 Close the change package to signify that the work to address the issue<br />
is <strong>com</strong>pleted. The change package disappears from the Manage<br />
Change Packages window.<br />
To find the change package and view its entries, see “Finding Change<br />
Packages” on page 222 or “Finding Change Packages Using a Query”<br />
on page 378.<br />
8 In Integrity Manager, advance the issue through the workflow. At this<br />
point, the verification phase begins. If it is determined that more work<br />
needs to be performed to address the issue, the user moves the issue to<br />
an earlier state in the workflow, then you (or another developer)<br />
create an additional change package. The process is repeated until the<br />
issue is sufficiently addressed.<br />
u s e r g u i d e
Creating a Change Package for an Issue<br />
Creating a Change Package for an Issue<br />
You can create a change package and associate it with an issue from the<br />
menu bar, when checking out, checking in, adding, dropping, locking, or<br />
renaming a member.<br />
To create a change package for an issue in the graphical user<br />
interface<br />
1 Create a change package in one of the following ways:<br />
With a Project, Sandbox, Manage Change Packages, or Member<br />
History view open, select Change Package > Create.<br />
Create a change package when performing member operations<br />
(see “Operations That Add Entries to a Change Package” on<br />
page 215).<br />
In the Change Package portion of the panel, Click Create.<br />
Create performs a query for all issues assigned to you that can be<br />
associated with a change package. The qualifying criteria are set by the<br />
administrator as part of the workflow in Integrity Manager.<br />
The Create Change Package dialog box is displayed.<br />
2 From the Choose Issue list, select the issue you want to associate with<br />
the change package.<br />
Integrity Manager supplies the issues for the Choose Issue list. This<br />
list displays issues assigned to you that are in a state that allows open<br />
change packages. For more information on issues, see the<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
375
Chapter 11: The Integrity Manager Integration<br />
376<br />
Depending on how your administrator has configured<br />
Integrity Manager, you may be able to select , and the change<br />
package appears on an issue of “SI Change Package” type in Integrity<br />
Manager.<br />
3 In the Summary field, type a summary of the change package.<br />
By default, the issue summary appears in the change package<br />
Summary field.<br />
4 In the Description field, if necessary, type a detailed description of the<br />
change package.<br />
5 Click OK.<br />
Adding Entries to an Issue’s<br />
Change Package<br />
The change package is created. To view the change package, see<br />
“Viewing Change Package Details and Entries” on page 226.<br />
Once a change package is created and associated with an issue, you can<br />
add entries to that change package when performing member operations<br />
(see “Operations That Add Entries to a Change Package” on page 215).<br />
Refer to the Change Package portion of the panel.<br />
From the change package list, select a change package. The list presents the<br />
Change package ID then the summary, for example, 13:1 Failed<br />
Install.<br />
After the operation is <strong>com</strong>pleted, the entry is added to the change package.<br />
The change package’s ID appears in one of the change package ID columns<br />
of the Project or Sandbox view.<br />
Viewing a Change Package’s Issue<br />
As part of the Integrity Manager integration, you can launch<br />
Integrity Manager from Source Integrity to view issues that are associated<br />
with change packages.<br />
u s e r g u i d e
Viewing a Change Package’s Issue<br />
To view a change package’s issue in the graphical user interface<br />
1 Do one of the following:<br />
From the Manage Change Packages window (see “Managing<br />
Change Packages” on page 220), select a change package.<br />
Open the Change Package view (see “Viewing Change Package<br />
Details and Entries” on page 226).<br />
With the Annotate Revision view open (see “Viewing an<br />
Annotated Revision” on page 316), select an annotation block.<br />
2 Do one of the following:<br />
Select Change Package > View Issue.<br />
Click .<br />
The Integrity Manager graphical user interface opens, displaying the<br />
associated issue. For more information on Integrity Manager, see the<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
To view a change package’s issue from the Project or Sandbox view<br />
in the graphical user interface<br />
With a Project or Sandbox view open, select a member that has a change<br />
package associated with it.<br />
Select Change Package, then one of the following:<br />
Working displays the issue for the change package associated with a<br />
deferred or a lock operation performed by the current user from the<br />
current sandbox.<br />
Member displays the issue for the change package associated the<br />
operation that set the member revision.<br />
Creation displays the issue for the change package that created the<br />
revision that is currently the member revision. This revision may be<br />
different from the Member CPID if an import, add member from<br />
archive, or set member revision operation was used.<br />
Locker displays the issue for the change package associated with the<br />
lock on the member revision.<br />
Pending displays the issue for the change package associated with a<br />
pending operation.<br />
The Integrity Manager graphical user interface opens, displaying the<br />
associated issue. For more information on Integrity Manager, see the<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
377
Chapter 11: The Integrity Manager Integration<br />
378<br />
To view a change package’s issue in the Web interface<br />
1 In a Project view, select a member that has a change package<br />
associated with it.<br />
2 Select Change package > View Issue.<br />
The issue is displayed in the Integrity Manager Web interface.<br />
Finding Change Packages Using a Query<br />
You can create issue queries in Integrity Manager, and then use them in<br />
Source Integrity to find change packages. This is useful for change<br />
packages that are closed, because they no longer appear in the Manage<br />
Change Packages window.<br />
To find a change package using an Integrity Manager query in the<br />
graphical user interface<br />
1 Select Tools > Find > Change Packages.<br />
The Find Change Packages dialog box is displayed.<br />
2 Click the By Query tab.<br />
The By Query panel is displayed.<br />
u s e r g u i d e
Finding Change Packages Using a Query<br />
By Query uses an existing Integrity Manager query to find and display<br />
the change packages.<br />
For information on searching for change packages using the By Filter<br />
or By ID panel, see “Finding Change Packages” on page 222.<br />
3 Select the desired query from the list. For more information on<br />
creating queries, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
4 Click OK.<br />
The results are displayed in the Filter Change Packages window. The<br />
Filtered Change Packages window displays change packages in the<br />
same way as the Manage Change Packages window does. For more<br />
information, see “Managing Change Packages” on page 220.<br />
To update the search results with current data, select View > Refresh.<br />
To create a new search from the Change Packages view, select View ><br />
Filter.<br />
379
Chapter 11: The Integrity Manager Integration<br />
380<br />
u s e r g u i d e
Advanced Change Package<br />
Operations<br />
12<br />
KEY TERMS: issue, change package entries, change package, apply change<br />
package, resynchronize change package, backfill list, resynchronize by<br />
change package, resolution change package<br />
Apply Change Package (Apply CP) and Resynchronize Change Package<br />
(Resync CP) represent two of the most powerful features of the<br />
Integrity Solution. In an environment where development is constantly<br />
evolving to include bug fixes or new features, Apply CP and Resync CP<br />
allow you to identify and incorporate only the specific bug fixes or content<br />
that you want to include in a new project. The functionality allows you to<br />
move specific changes—whether from the master project to a variant, or<br />
from a variant to the master project.<br />
Apply CP and Resync CP rely on the use of change packages to track<br />
individual changes that modify project content or create new content.<br />
The chapter includes the following topics:<br />
“Change Package Feature Overview” on page 382<br />
“Using the Apply CP Command” on page 387<br />
“Using the Resync CP Command” on page 406<br />
“Working With a Resolution CP” on page 428<br />
“Using the Resync By CP Command” on page 436<br />
381
Chapter 12: Advanced Change Package Operations<br />
Change Package Feature Overview<br />
Change<br />
Package<br />
Methodology<br />
382<br />
A change package is a group of changes made by a single user which can be<br />
considered a logical unit of work. Only the creator of a change package<br />
may add entries to that change package. Change packages entries take the<br />
form of operations, both deferred and <strong>com</strong>mitted. Apply CP and Resync<br />
CP only apply to <strong>com</strong>mitted change packages entries.<br />
Both Apply CP and Resync CP rely on the use of change packages to track<br />
individual changes that modify project content or create new content. If a<br />
development team is using change packages consistently, Source Integrity<br />
can isolate all changes related to a specific issue because this information is<br />
recorded as part of the change package. Once the dependencies are<br />
calculated, the operation <strong>com</strong>pletes and the change packages are applied in<br />
the project.<br />
If a development team does not use the change package methodology,<br />
isolating specific content be<strong>com</strong>es a <strong>com</strong>plex, manual task. In a large code<br />
project, this could mean searching hundreds of files to determine which<br />
ones are related to a specific issue. To build the project, it would then be<br />
necessary to add and drop files, update file revisions, merge around<br />
unwanted revisions, merge in required changes, and merge out any<br />
unwanted changes.<br />
Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated<br />
process be<strong>com</strong>es largely automated. In Source Integrity, the Apply CP<br />
operation adds and drops files, and updates file revisions as required to<br />
create the desired change. If merging is required, you can use the Resync<br />
CP <strong>com</strong>mand. Resync CP allows you to either merge in desired changes or<br />
merge around unwanted changes.<br />
Apply CP and Resync CP are most useful for code and other text files<br />
where differencing can be performed. The operations are not<br />
re<strong>com</strong>mended for binary files because of the difficulties encountered in<br />
differencing and merging binaries.<br />
When used across a development project, Apply CP and Resync CP are<br />
powerful tools for managing changes and new content. However, the<br />
effectiveness of the functionality ultimately relies on the following factors:<br />
accurate and consistent use of change packages for logging issues<br />
associating related changes into a single change package that<br />
ultimately addresses the issue in question<br />
Because issues, and their associated change packages, follow a workflow<br />
progression, it is critical that each member of the development team record<br />
and track all changes as they are made, from the initial phase to the<br />
u s e r g u i d e
Change<br />
Package<br />
Commands<br />
Change Package Feature Overview<br />
<strong>com</strong>pletion phase in which the associated problem is addressed. All<br />
changes relating to a given issue must then be associated with the correct<br />
change package. Once the problem is addressed, or the feature added, that<br />
change package can be closed.<br />
It is equally important that issues are clearly delineated so that each change<br />
package addresses only one problem area or feature. Certainly, one<br />
problem area or feature may require many files to address it, but if you<br />
create a change package that is too wide in scope, it be<strong>com</strong>es difficult to<br />
extract specific changes later on.<br />
With accurate and consistent logging, Source Integrity can clearly identify<br />
the specific member revisions (or files) that address the identified problem<br />
or <strong>com</strong>plete the required feature. Without this type of tracking, applying a<br />
change package may not have the desired results and manual reviews may<br />
be<strong>com</strong>e necessary.<br />
Consider the following scenario at abcBusiness: A major customer<br />
purchased version 2.0 of abcBusiness’ Aurora software. The customer now<br />
wants a new feature—data <strong>com</strong>pression—that they can use with Aurora<br />
2.0. The development team at abcBusiness has already <strong>com</strong>pleted work on<br />
a data <strong>com</strong>pression feature, but the feature has been engineered only as<br />
part of the up<strong>com</strong>ing Aurora 3.0 release.<br />
To address the customer’s needs, abcBusiness would normally have to<br />
assign a separate development team to create the new feature for Aurora<br />
2.0. But how can abcBusiness take advantage of the work already<br />
<strong>com</strong>pleted on the data <strong>com</strong>pression feature and provide it to the customer?<br />
If the development team has been using change packages, they can isolate<br />
the files that relate to the new data <strong>com</strong>pression feature. However, without<br />
the functionality of Apply CP and Resync CP, the buildmaster at<br />
abcBusiness would have to search the required change package(s)<br />
manually and individually review all of the associated files to isolate the<br />
changes related to the feature. The buildmaster would then have to add<br />
and drop files manually, update file revisions, merge around unwanted<br />
revisions, merge in required changes, and merge out any unwanted<br />
changes.<br />
Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated<br />
process be<strong>com</strong>es largely automated. In Source Integrity, the Apply CP<br />
operation works directly in the project to add and drop files, and update<br />
file revisions as required to create the desired change. Source Integrity<br />
presents you with a list—the backfill list—including all change packages<br />
required to capture the issue. In the Apply CP operation, you must either<br />
383
Chapter 12: Advanced Change Package Operations<br />
384<br />
accept or decline this list—you cannot make selections. If you accept the<br />
list, the Apply CP <strong>com</strong>mand <strong>com</strong>pletes the changes directly in the project.<br />
If you decline the list, the Apply CP <strong>com</strong>mand cannot <strong>com</strong>plete.<br />
If the Apply CP <strong>com</strong>mand fails because merging is required, you can then<br />
run the Resync CP <strong>com</strong>mand. Resync CP works in your sandbox and<br />
allows you to make selections from the backfill list. Source Integrity then<br />
merges around unwanted changes and uses differencing to merge files.<br />
Consider once again, the abcBusiness development team. Because the team<br />
has been tracking all of their changes through the use of change packages,<br />
they can target the main trunk of development and use Apply CP and<br />
Resync CP functionality to extract only those files that relate to the new<br />
data <strong>com</strong>pression feature. Those specific change packages can then be<br />
applied to a variant project of Aurora 2.0 and testing carried out within a<br />
new project designed specifically for the customer.<br />
The functionality allows you to maximize existing development work,<br />
while being more responsive to both internal and external stakeholders.<br />
Apply CP and Resync CP are especially effective in any environment<br />
where there are large numbers of files to deal with—whether these are<br />
code files for a software project or Web pages for a <strong>com</strong>plex Web site.<br />
CAUTION<br />
The Apply CP operation works directly on the project and cannot be undone.<br />
Exercise caution when working with the Apply CP <strong>com</strong>mand and ensure that<br />
you have checkpointed your project before starting the <strong>com</strong>mand. When using<br />
the Resync CP <strong>com</strong>mand in your sandbox, you should also confirm all changes<br />
before checking in the files.<br />
Apply CP Command<br />
This section provides an example to show how Apply CP can be used in<br />
your environment. In this example, the buildmaster brings a feature from<br />
the main trunk of project development and applies it to an earlier release.<br />
The abcBusiness software <strong>com</strong>pany has released their Aurora software,<br />
version 3.0. When the release was <strong>com</strong>pleted, the project was<br />
checkpointed. The development team is now working on a new set of<br />
features for the next release, 4.0. A new feature for this release is a<br />
timestamp function. All the changes associated with the timestamp<br />
function are recorded in a change package, or set of issues, that isolates the<br />
feature from other features.<br />
Now abcBusiness receives a request from a customer who has Release 3.0<br />
but also needs the new timestamp feature for its global operations. The<br />
code in development for Aurora 4.0 is not stable enough for release and too<br />
u s e r g u i d e
Change Package Feature Overview<br />
many resources would be required to accelerate the release schedule. How<br />
can abcBusiness provide the timestamp feature without affecting the<br />
current release? Because the code for this feature is isolated within a<br />
change package, the Apply CP <strong>com</strong>mand can be used to transfer the<br />
feature to the earlier, stable release.<br />
The buildmaster at abcBusiness would:<br />
Create a variant project off of the checkpoint for version 3.0. This<br />
variant project is isolated from the rest of the development team so<br />
that unwanted changes are not added to the main trunk of the<br />
development path.<br />
Use Apply CP to apply the change package to the variant project. The<br />
change package contains all the files that were changed or added to<br />
produce the timestamp feature. Apply CP is essentially adding the<br />
feature to the variant of Aurora 3.0.<br />
Create an executable of the software.<br />
That executable can then be tested by Quality Assurance and shipped to<br />
the customer.<br />
Resync CP and Resync By CP Commands<br />
This section provides an example to show how Resync CP can be used in<br />
your environment. The example also illustrates how Resync By CP can be<br />
used in a developer’s sandbox.<br />
The development team at abcBusiness is working on the next release,<br />
which contains hundreds of files that span many Source Integrity projects.<br />
Whenever a fix is made, or a feature added, it may require the<br />
manipulation of a single file, or many different files across multiple<br />
projects. A fix or new feature may also include new dependencies within<br />
the source code.<br />
If developers resynchronize only a single file into their sandboxes, their<br />
builds may break because of new dependencies in the code. Such broken<br />
builds cause delays and prevent the team from <strong>com</strong>pleting their work on<br />
time. However, it is possible to avoid this lost time by using the Resync CP<br />
and Resync By CP <strong>com</strong>mands.<br />
Resync CP allows developers to specify a change package and have all<br />
changes associated with that change package resynchronized into their<br />
sandboxes. The <strong>com</strong>mands save development time because they:<br />
automatically search for the required files<br />
385
Chapter 12: Advanced Change Package Operations<br />
Resolving<br />
Conflicts<br />
386<br />
determine what other change packages the selection is dependant on<br />
(this is known as the backfill list) and also resynchronize those change<br />
packages into the sandbox<br />
If the developer is working on a file conflict, Resync CP and Resync By CP<br />
also merge new information into a file. The merge operation ensures that<br />
the sandbox is up-to-date and that no changes are lost.<br />
The Resync CP and Resync By CP <strong>com</strong>mands also allow a developer to<br />
remove a bug fix or feature that is in<strong>com</strong>plete or not working.<br />
The basic process for resolving conflicts is to apply the target change<br />
package using the Apply CP <strong>com</strong>mand. If the Apply CP operation fails<br />
because of a merge conflict, you can do one of the following:<br />
use the Resync CP <strong>com</strong>mand to create a resolution change package. A<br />
resolution change package is a specialized change package that<br />
records all applied change packages, resolved conflicts, checked in<br />
modified files, and conflicts resolved by merging.<br />
use the MKS Visual Merge tool to resolve conflicts and perform<br />
merges. Depending on your preferences, Visual Merge may appear by<br />
default for conflict resolution. For information on using Visual Merge<br />
for conflict resolution, see “Working With MKS Visual Merge” on<br />
page 361. For information on the MKS Visual Merge tool, see “MKS<br />
Visual Merge Interface” on page 107.<br />
The newly created resolution change package is then applied to the project<br />
using the Apply CP <strong>com</strong>mand. The process involves the following key<br />
steps:<br />
Use the Apply CP <strong>com</strong>mand to apply a change package to the main<br />
trunk of development.<br />
If no merges are required and the Apply CP operation succeeds, the<br />
changes are made in the project.<br />
If Apply CP fails due to a required merge, use the Resync CP<br />
<strong>com</strong>mand on the same change package and create a resolution change<br />
package. Resync CP places the required files, locked, in your sandbox.<br />
Verify the merges to ensure they are correct.<br />
In your sandbox, check in the members, making sure to associate them<br />
with the newly created resolution change package.<br />
Close the resolution change package.<br />
u s e r g u i d e
Apply that resolution change package to the project.<br />
Using the Apply CP Command<br />
The Apply CP <strong>com</strong>mand works directly in the project, adding and<br />
dropping files, and updating file revisions as required to apply the<br />
resolution change package and update the project.<br />
It is important to note that while Resync CP can be used to apply a<br />
resolution change package, the results may not always be acceptable. For<br />
example, if your bug fix is in an existing project member, there would<br />
already be an archive for that member in the project. As a result, Resync CP<br />
would add the modified member on a branch. This additional branching<br />
might not be acceptable in your project.<br />
NOTE<br />
Using the Apply CP Command<br />
A helpful practice prior to using Apply CP, is to start with a Resync CP<br />
operation in a sandbox, and then build and test the results, even if no merges<br />
are required. Because the operation may be creating a <strong>com</strong>bination of source<br />
code that has never existed before, this step ensures that the results will build<br />
and work. Once you are certain of the results, you can then use the Apply CP<br />
<strong>com</strong>mand and work directly in the project.<br />
Apply CP relies on the use of change packages to track individual changes<br />
that modify project content or create new content. The Apply CP operation<br />
presents you with a backfill list that includes all of the change packages<br />
required for the identified issue. If you accept the backfill list, the operation<br />
then adds and drops files, and updates file revisions as required to create<br />
the feature, content, or bug fix you are looking for.<br />
How Does Apply CP Work?<br />
The Apply CP operation applies change packages through a revision<br />
process. By applying a change package, you can incorporate only those<br />
changes that you want to include in the project.<br />
The Apply CP operation reads the entries in a change package and updates<br />
the project to the revisions listed in that change package. This function of<br />
the <strong>com</strong>mand is an automated process of the Update Revision <strong>com</strong>mand<br />
(si updaterevision). The Apply CP operation may also require that<br />
files be added or dropped. This function of the <strong>com</strong>mand is an automated<br />
process of the Add Member <strong>com</strong>mand (si add) and the Drop Member<br />
<strong>com</strong>mand (si drop).<br />
387
Chapter 12: Advanced Change Package Operations<br />
Key Apply CP<br />
Concepts<br />
388<br />
When Should I Use the Apply CP Command?<br />
You should use the Apply CP <strong>com</strong>mand when you need to update a<br />
project to include changes listed in a change package. The updating<br />
process updates member revisions, and may also involve adding and<br />
dropping files. The Apply CP <strong>com</strong>mand is most useful for building<br />
software.<br />
Are There Any Limitations When Using Apply CP?<br />
The Apply CP operation adds and drops files, and updates file revisions.<br />
Apply CP only operates on closed change packages and cannot perform<br />
merging. The operation is carried out in relation to the project. If you run<br />
the Apply CP <strong>com</strong>mand from a sandbox, the sandbox acts as a redirector to<br />
the project.<br />
The next four sections describe how the Apply CP <strong>com</strong>mand works and<br />
how you can use it in your development environment. The topics covered<br />
are:<br />
“Key Apply CP Concepts” on page 388<br />
“How Apply CP Works” on page 389<br />
Procedures for the graphical user interface<br />
the Apply CP backfill list, (“Apply CP Backfill List” on page 391)<br />
The following outlines the key concepts associated with the Apply CP<br />
<strong>com</strong>mand:<br />
The Apply CP operation occurs in the project (whereas the Resync CP<br />
operation occurs only in the sandbox). You can perform the Apply CP<br />
operation from a sandbox, but this only acts as a redirector to the<br />
project.<br />
In principle, change packages are applied through a revision process.<br />
By applying a change package, you can incorporate only those<br />
changes that you want to include in the project.<br />
Apply CP cannot address changes that require merging. Apply CP can<br />
only make changes based on <strong>com</strong>plete files—it can only add files,<br />
drop files, and update a file revision. For more information on<br />
resolving merge questions, see “Using the Resync CP Command” on<br />
page 406.<br />
Apply CP only works with closed change packages; therefore, you<br />
must close the change package before you apply it. The Apply CP<br />
operation is <strong>com</strong>mitting changes directly to a project and, for this<br />
u s e r g u i d e
How Apply CP<br />
Works<br />
Using the Apply CP Command<br />
reason, it is important that the entire change package is treated as a<br />
single, indivisible change. If a change package is not closed, it may not<br />
stand alone and may break the build.<br />
Source Integrity allows you to run the Apply CP <strong>com</strong>mand first and<br />
then, if required, run the Resync CP <strong>com</strong>mand to perform any<br />
required merge operations.<br />
If an Apply CP operation is not successfully <strong>com</strong>pleted,<br />
Source Integrity tells you what you need to do to apply the change<br />
package successfully.<br />
The Apply CP backfill list presents you with all the change packages<br />
that the selected change packages depend on. To run the <strong>com</strong>mand,<br />
you must accept the entire list.<br />
The changes made by an Apply CP operation can be recorded in a<br />
change package for auditing purposes.<br />
If reviews are mandatory, the changes made by an Apply CP<br />
operation must be recorded as pending entries in a change package.<br />
The change package must then be submitted, which starts the review<br />
process (see “Change Package Review Process” on page 240).<br />
The Apply CP operation adds and drops files, and updates file revisions to<br />
include specific content in a project. For example, consider a simplified<br />
application of the <strong>com</strong>mand in the main trunk of development for the<br />
Aurora project (Aurora_Project.pj). The project member, main.c,<br />
includes a bug fix that allows the printing of version information. Issue 21<br />
addresses the bug fix and is associated with the file main.c (revision 1.2)<br />
through change package (CP) 21:1.<br />
The buildmaster wants to pick up the changes that address the bug fix and<br />
apply these to a variant project, Aurora_Variant_1_0. In the variant<br />
project, main.c is at revision 1.1.<br />
389
Chapter 12: Advanced Change Package Operations<br />
390<br />
Before applying a change package (simple case)<br />
To get the bug fix for the variant project (Aurora_Variant_1_0.pj), the<br />
buildmaster uses the si applycp <strong>com</strong>mand to apply CP 21:1:<br />
si applycp -P f:/Aurora_Project/project.pj --devPath<br />
Aurora_Variant_1_0 21:1<br />
The <strong>com</strong>mand runs as follows:<br />
Applying change packages...<br />
21:1<br />
main.c<br />
Aurora_Project<br />
1.2<br />
CP 21:1<br />
***The following set of operations will be performed:<br />
Project: f:/Aurora_Project/<br />
project.pj[Aurora_Variant_1_0]<br />
main.c<br />
Member main.c: update member revision to Revision<br />
1.2<br />
Are you sure you wish to proceed? [yn]: y<br />
u s e r g u i d e<br />
Aurora_Variant_1_0<br />
1.1<br />
CP 21:1 addresses Issue 21 - “Modify the Main class<br />
so that it prints version information.”<br />
Archive for main.c<br />
1.2<br />
1.1<br />
CP 21:1<br />
CP 20:1
Apply CP<br />
Backfill List<br />
main.c<br />
Aurora_Project<br />
1.2<br />
CP 21:1<br />
Applying CP 21:1 updates main.c revision 1.1 to revision 1.2<br />
to include the fix for printing version information.<br />
Archive for main.c<br />
1.2<br />
1.1<br />
CP 21:1<br />
CP 20:1<br />
main.c<br />
After applying a change package (simple case)<br />
Using the Apply CP Command<br />
Aurora_Variant_1_0<br />
1.2 CP 21:1<br />
In this case, because CP 21:1 included only an updating of main.c from<br />
revision 1.1 to revision 1.2, Apply CP updates the revision for main.c from<br />
1.1 to 1.2 in the variant project.<br />
The following provides an example of the backfill list and how it works in<br />
the Apply CP <strong>com</strong>mand. The main project, Aurora_Project.pj, now<br />
includes an additional bug fix for project member, main.c. Issue 22<br />
addresses that bug fix and is associated with the file main.c (revision 1.3)<br />
through CP 22:1.<br />
The buildmaster wants to pick up the changes that address the bug fix and<br />
apply these to a variant project, Aurora_Variant_1_0. In the variant<br />
project, main.c is at revision 1.1.<br />
391
Chapter 12: Advanced Change Package Operations<br />
392<br />
main.c<br />
Aurora_Project<br />
1.3<br />
CP 22:1<br />
CP 22:1 addresses Issue 22 -<br />
“Add About information to the Main tool.”<br />
Archive for main.c<br />
Before applying a change package that requires backfilling<br />
1.3<br />
1.2<br />
1.1<br />
CP 22:1<br />
CP 21:1<br />
CP 20:1<br />
main.c<br />
Again, to pick up the bug fix for the variant project, the buildmaster uses<br />
the si applycp <strong>com</strong>mand to apply CP 22:1. By default, the backfill option<br />
is set to Entire Change Packages (--backfill=cp). The buildmaster<br />
enters the <strong>com</strong>mand:<br />
si applycp -P f:/Aurora_Project/project.pj --devPath<br />
Aurora_Variant_1_0 22:1<br />
u s e r g u i d e<br />
Aurora_Variant_1_0<br />
1.1
main.c<br />
Aurora_Project<br />
1.3<br />
CP 22:1<br />
Using the Apply CP Command<br />
Applying CP 22:1 updates main.c from revision 1.1 to revision 1.3 in the variant<br />
project to include the bug fix for About information. The backfill list included<br />
CP 21:1.<br />
Archive for main.c<br />
1.3<br />
1.2<br />
CP 22:1<br />
CP 21:1<br />
1.1 CP 20:1<br />
main.c<br />
Aurora_Variant_1_0<br />
After the backfill list is accepted, the Apply CP operation updates<br />
main.c in the variant project from revision 1.1 to revision 1.3<br />
1.3<br />
CP 22:1<br />
393
Chapter 12: Advanced Change Package Operations<br />
394<br />
The <strong>com</strong>mand runs as follows:<br />
Applying change packages...<br />
22:1<br />
The following warnings have occurred:<br />
-------------------<br />
The change package(s)<br />
21:1 -- main.c(1.2)<br />
are required in order to apply this list of change<br />
packages.<br />
They will be automatically added to the list, since the<br />
backfill option is set to Entire Change Package(cp).<br />
--------------------<br />
*** The following set of operations will be performed:<br />
Project: f:/Aurora_Project/<br />
project.pj[Aurora_Variant_1_0]<br />
Member main.c: update member revision to<br />
Revision 1.3<br />
Are you sure you wish to proceed? [yn](n): y<br />
In this case, Apply CP updates the revision for main.c from 1.1 to 1.3 in<br />
the variant project. Revision 1.2 is automatically added to the member<br />
history in the variant project because it was accepted as part of the backfill<br />
list (CP 21:1).<br />
Apply CP Backfill Options<br />
The Apply CP <strong>com</strong>mand operates recursively. To apply a change package,<br />
Source Integrity searches the specified change packages for revision<br />
changes between the current revision and the target revision.<br />
Backfill<br />
Option (GUI)<br />
Entire Change<br />
Packages<br />
Backfill<br />
Option (CLI)<br />
Function<br />
cp Selected by default for the Apply CP<br />
<strong>com</strong>mand. Recursively finds all historic<br />
revisions required by the specified change<br />
packages and applies them. It does not ask<br />
the user to confirm the backfill list.<br />
u s e r g u i d e
Backfill<br />
Option (GUI)<br />
Back<br />
Revisions Only<br />
Backfill<br />
Option (CLI)<br />
Function<br />
Using the Apply CP Command<br />
revision Processes only the changes in the specified<br />
change package(s). Any change packages<br />
associated with intermediate revisions are<br />
not picked up.<br />
Note: Processing by revision reduces the<br />
total number of changes you bring into the<br />
variant; however, this option may result in<br />
broken builds because indirectly associated<br />
files are not picked up.<br />
Error error Results in an error if other change packages<br />
are required but not specified.<br />
Skip Revisions skip Results in an error if any backfill revisions are<br />
specified during the Apply CP operation.<br />
Ask to Specify ask Displays the backfill list. To <strong>com</strong>plete the<br />
Apply CP operation, you must accept the<br />
entire list. If you decline the list, the Apply CP<br />
operation fails.<br />
In the Apply CP operation, you must accept the entire backfill list or the<br />
operation fails. If you do not want to accept the entire backfill list, you<br />
must instead perform a Resync CP operation. The Resync CP <strong>com</strong>mand<br />
allows you to merge around unwanted revisions in your sandbox. For<br />
more information on resynchronizing change packages, see “Using the<br />
Resync CP Command” on page 406.<br />
The next example illustrates how Apply CP handles a more <strong>com</strong>plex<br />
change package—one that contains code modifications that are dependent<br />
on a new file. In this example, main.c is revised to call a value defined in a<br />
new file, main.h.<br />
The developer working on the code has checked in all these changes and<br />
associated both files with CP 22:1. Development work then continues to<br />
include a further revision to main.c which is checked in at revision 1.3 and<br />
associated with CP 23:1. The main project therefore contains main.c at<br />
revision 1.3 and main.h at revision 1.1.<br />
395
Chapter 12: Advanced Change Package Operations<br />
396<br />
Aurora_Project<br />
main.c<br />
1.3<br />
Archive for main.c<br />
1.3<br />
1.2<br />
CP 23:1<br />
CP 22:1<br />
1.1 CP 21:1<br />
The buildmaster now wants to incorporate the changes into the variant<br />
project. The buildmaster therefore uses the Apply CP <strong>com</strong>mand to apply<br />
CP 23:1 to Aurora_Variant_1_0.<br />
u s e r g u i d e<br />
Aurora_Variant_1_0<br />
main.h 1.1<br />
main.c 1.1<br />
Archive for main.h<br />
1.1 CP 22:1<br />
CP 21:1 Add main.c revision 1.1 to Aurora_Project<br />
CP 22:1 Update main.c to revision 1.2 in Aurora_Project<br />
Add main.h revision 1.1 to Aurora_Project<br />
CP 23:1<br />
Update main.c to revision 1.3 in Aurora_Project<br />
Before applying a change package that contains an associated file
CP 21:1<br />
CP 22:1<br />
CP 23:1<br />
Aurora_Project<br />
main.c 1.3<br />
main.h 1.1<br />
Archive for main.h<br />
1.1 CP 22:1<br />
Archive for main.c<br />
1.3<br />
1.2<br />
CP 23:1<br />
CP 22:1<br />
1.1 CP 21:1<br />
Using the Apply CP Command<br />
Aurora_Variant_1_0<br />
main.c<br />
Apply CP 23:1 updates main.c to revision 1.3 and<br />
adds main.h revision 1.1 in Aurora_Variant_1_0<br />
Add main.c revision 1.1 to Aurora_Project<br />
Update main.c to revision 1.2 in Aurora_Project<br />
Add main.h revision 1.1 to Aurora_Project<br />
Update main.c to revision 1.3 in Aurora_Project<br />
After applying a change package that contains an associated file<br />
In this case, if the buildmaster selects the default backfill option—backfill<br />
by Entire Change Packages—the variant is updated to include all the<br />
contents of CP 22:1 (that is, main.c at revision 1.3 and main.h at revision<br />
1.1.) However, if the buildmaster instead chooses to backfill by Back<br />
Revisions Only, the build is broken because any intermediate change<br />
packages are only filled by revision. In this case, the result is to place only<br />
revision 1.3 of main.c in the variant. The associated file (main.h)<br />
contained in the CP 22:1 is not added.<br />
The preceding examples illustrated how to bring changes from the main<br />
trunk of development to a variant project. You can also take changes that<br />
are created on a branch or variant—for example, for an older release—and<br />
1.3<br />
main.h<br />
1.1<br />
397
Chapter 12: Advanced Change Package Operations<br />
Apply CP<br />
Procedures<br />
398<br />
bring them to the main trunk that may already include new feature<br />
development. For more information on performing this operation using<br />
Resync CP, see “Working on a Variant” on page 413.<br />
This section describes the step-by-step procedures required to perform the<br />
Apply CP <strong>com</strong>mand in both the graphical user interface and <strong>com</strong>mand line<br />
interface.<br />
CAUTION<br />
You cannot undo an Apply CP operation. Therefore, before applying any<br />
change packages, you should checkpoint your project. You can then use the<br />
Restore Project <strong>com</strong>mand to revert to the earlier version of the project. For<br />
more information on checkpointing, see “Checkpointing a Project” on<br />
page 269. For more information on restoring a project, see “Restoring a Project”<br />
on page 271.<br />
To apply a change package in the graphical user interface<br />
1 From a Sandbox or Project view, select the project you want to apply<br />
change packages to.<br />
2 Select Change Package > Apply Change Package.<br />
The Apply Change Packages wizard opens, displaying the Apply List<br />
panel.<br />
u s e r g u i d e
3 To add change packages to the Apply List, click Add.<br />
Using the Apply CP Command<br />
If you know the ID number of the change package(s) or issue(s) you<br />
want to add, you can also enter that number in the Change Package ID<br />
field and then click Insert. For multiple numbers, include a space<br />
between each change package ID.<br />
The Find Change Package Panel appears.<br />
4 Select filter criteria for the change package, or if Integrity Manager is<br />
enabled, select a query. For more information, see “Finding Change<br />
Packages” on page 222 and “Finding Change Packages Using a<br />
Query” on page 378.<br />
5 After you specify the filter criteria or query, click OK.<br />
The Select Change Package(s) dialog appears. The Change Packages<br />
tab is populated with the filter or query results.<br />
399
Chapter 12: Advanced Change Package Operations<br />
400<br />
NOTE<br />
When using the Apply CP <strong>com</strong>mand, you can only apply closed change<br />
packages. Because you cannot apply an open change package to a project, the<br />
option for Allow Open Change Packages is disabled by default. If you<br />
need to work with an open change package, you must use the Resync CP<br />
<strong>com</strong>mand. For more information on resynchronizing change packages, see<br />
“Using the Resync CP Command” on page 406.<br />
Available information is displayed in the panel as follows:<br />
Tab Table Columns<br />
Change Packages C.P. ID is the identification number of the change package<br />
(in the form x:y, where x is the container ID (if<br />
Integrity Manager is enabled it is also the issue ID), and y<br />
is the change package index number).<br />
State is the state of the change package (see “CP States”<br />
on page 241).<br />
Summary is the summary description of the issue<br />
associated with the change package.<br />
u s e r g u i d e
Tab Table Columns<br />
Change Package<br />
Entries<br />
Using the Apply CP Command<br />
Type lists the type of operation that was used to manipulate<br />
the listed member. For more information, see “Change<br />
Package Entry Types” on page 220.<br />
Project lists the file path of the project.<br />
Member lists the name of the member file.<br />
Revision lists the revision number of the member file.<br />
Development Path lists the development path, or variant,<br />
that the change came from.<br />
Server is the name of the Integrity Server the project<br />
resides on.<br />
Member History Displays the following information for each revision in the<br />
member history:<br />
Revision is the revision number of the selected member.<br />
Author is the user ID of the individual who checked in the<br />
member revision.<br />
Date is the date the member revision was checked in.<br />
Labels are the labels, if any, assigned to the revision in the<br />
history.<br />
State is the workflow state of the member.<br />
C.P. ID is the change package identification number of the<br />
revision.<br />
6 To view the information for change package entries, select a change<br />
package ID under the Change Packages tab and then click the Change<br />
Package Entries tab.<br />
The Change Package Entries tab is populated with information on the<br />
associated change package entries.<br />
Under the Change Package Entries tab detailed information is<br />
displayed for each entry in the change package. For more information,<br />
see “Change Package Entry Types” on page 220.<br />
To view the information for a member history, select a member under<br />
the Change Package Entries tab, then click the Member History tab.<br />
401
Chapter 12: Advanced Change Package Operations<br />
402<br />
Once you select a member, the Member History tab is populated with<br />
information on the associated member history.<br />
NOTE<br />
Under the Member History tab, you can highlight a member revision, and use<br />
the shortcut menu to select View Revision or Revision Information. To perform<br />
differencing between revisions, use CTRL+click to select two revisions and then<br />
use the shortcut menu to select Differences.<br />
7 To add change packages selected, click OK.<br />
TIP<br />
You can also double click to view a revision.<br />
The added change packages are displayed in the Apply List.<br />
u s e r g u i d e
Apply CP<br />
General Command Option<br />
Using the Apply CP Command<br />
To remove a change package from the Apply List, highlight the<br />
change package (or press CTRL and click to highlight multiple<br />
members), and then click Remove.<br />
8 To select the options you want Source Integrity to use when applying<br />
the change packages, click Next.<br />
The Options panel opens.<br />
9 Select the <strong>com</strong>mand options you want Source Integrity to use when<br />
carrying out the Apply CP operation:<br />
Function<br />
Confirm Actions Causes Source Integrity to confirm all operations with you before starting them.<br />
(This option is enabled by default.)<br />
Apply CP<br />
Advanced Command Options<br />
Function<br />
Verbose Provides additional information to track the status of the <strong>com</strong>mand.<br />
Other Project is Error Terminates the <strong>com</strong>mand if the member is not in the project you are applying to,<br />
or in its variant.<br />
Span Projects Applies the <strong>com</strong>mand to any member specified in the change package, even if<br />
this involves a different project than the one you initially targeted.<br />
Caution: This is the only <strong>com</strong>mand option that has the potential to affect other<br />
projects.<br />
403
Chapter 12: Advanced Change Package Operations<br />
Apply CP<br />
Advanced Command Options<br />
Ignore Cross-Branch Entries Causes Source Integrity to use the most recent revision when it encounters two<br />
revisions of the same member on different branches.<br />
Close Change Package Closes the change package when the operation is <strong>com</strong>plete.<br />
Already in Project is Error Causes Source Integrity to terminate the operation if the member being applied is<br />
already in the project.<br />
If this setting is negated, then the information is displayed as a warning.<br />
Ignore Server in Change<br />
Package<br />
404<br />
Function<br />
Causes Source Integrity to perform the Apply CP operation even if the change<br />
package members reside on different servers.<br />
Note: You must set the Other Project is Error option in order for the Ignore<br />
Server in Change Package option to work. This additional setting is required<br />
because projects are defined by their server and path.<br />
Create Variants Causes Source Integrity to create new variant subprojects within the variant<br />
project as required to apply the change package members. If the main project<br />
contains required files that reside in a subproject, the Create Variants option<br />
creates variant subprojects for these files to be placed into.<br />
Backfill Determines how Source Integrity treats historic revisions required by the<br />
specified change packages. For the Apply CP <strong>com</strong>mand, the backfill option is set<br />
to Entire Change Packages by default.<br />
You can select from the following options:<br />
Entire Change Packages chooses all historic revisions required by the specified<br />
change packages and applies them by updating member revisions, adding files,<br />
or dropping files. The user is not prompted to confirm the backfill list.<br />
Back Revisions Only processes only the specified change package(s) and<br />
chooses only directly-associated revisions. It does not process any change<br />
packages that are associated with intermediate revisions.<br />
Error terminates the operation if other change packages are required but are not<br />
specified.<br />
Skip Revisions causes Source Integrity to merge around specified backfill<br />
revisions. Because the Apply CP <strong>com</strong>mand does not perform merging, this is<br />
treated as an error.<br />
Ask to Specify allows you to select the specific change packages you want to<br />
include. For the Apply CP operation, a list of additional change packages is<br />
displayed. The presented list of change packages cannot be manipulated. You<br />
must either accept the entire list or the operation fails.<br />
Change Package Add the operation to a change package. From the Change Package list, select a<br />
change package. To create a change package, click Create. For more<br />
information, see “Creating a Change Package” on page 217.<br />
Ignore Update Revision Entries Ignores update revision entries in a change package. There is no user prompt.<br />
10 To apply the list of change packages to the project, click Finish.<br />
If additional change packages are required to apply the selected<br />
change package, the Confirm Project Backfill dialog box is displayed.<br />
u s e r g u i d e
Using the Apply CP Command<br />
11 To accept the backfill list and have the listed change packages also<br />
applied to the project, click Yes.<br />
You must accept the backfill list as presented or the Apply CP<br />
operation cannot be <strong>com</strong>pleted. If you do not want to accept the entire<br />
list, you must use the Resync CP <strong>com</strong>mand instead. For more<br />
information on resynchronizing change packages, see “Using the<br />
Resync CP Command” on page 406.<br />
The Confirm Change Package Application dialog box is displayed<br />
indicating the operations to be performed.<br />
12 To <strong>com</strong>plete the operation(s) and apply the selected change<br />
package(s), click Yes.<br />
Source Integrity <strong>com</strong>pletes the operation or returns information on<br />
errors and warnings if the operation cannot be successfully <strong>com</strong>pleted.<br />
405
Chapter 12: Advanced Change Package Operations<br />
406<br />
NOTE<br />
Using the Resync CP Command<br />
To see any change packages that have been applied between two revisions of a<br />
project, use View Project Differences and, under Preferences, select the option<br />
for Show Applied Change Packages. For more information on viewing project<br />
modifications, see “Viewing Project Differences” on page 275.<br />
While Apply CP works to either add, drop, or update member revisions,<br />
you must accept the entire list of backfill entries or the <strong>com</strong>mand fails. In<br />
the Resync CP operation, you are able to select the individual change<br />
packages you want to exclude from the backfill operation and then<br />
Source Integrity performs the required merges. Therefore, if you need to<br />
merge files to create your solution, you must use the Resync CP <strong>com</strong>mand.<br />
The Resync CP operation allows you to resynchronize revisions and carry<br />
out merges entirely within a sandbox. When you are prompted to backfill<br />
historical revisions (the Resync CP backfill list), you can select the change<br />
packages you want to include. Resync CP automatically performs merging<br />
and notifies you of unresolved conflicts that must be addressed manually<br />
after the <strong>com</strong>mand <strong>com</strong>pletes.<br />
How Does Resync CP Work?<br />
To perform the operation, Source Integrity checks out all the files listed in<br />
the selected change package(s) and places them in your sandbox. At the<br />
same time, Source Integrity displays information on any conflicts, as well<br />
as information on changes (or deltas).<br />
Once the dependencies are calculated, and you have performed the<br />
required merges, the operation <strong>com</strong>pletes and Source Integrity presents all<br />
the files required for the new feature or content in your sandbox.<br />
When Should I Use Resync CP?<br />
You should use the Resync CP <strong>com</strong>mand when the Apply CP operation<br />
has failed because there were conflicts to be resolved through merging.<br />
Resync CP is most useful for developing software features and for<br />
applying bug fixes during the software development process.<br />
u s e r g u i d e
Key Resync CP<br />
Concepts<br />
NOTE<br />
Using the Resync CP Command<br />
When working in your sandbox, you can also use the Resynchronize By CP<br />
<strong>com</strong>mand. When you select a member and use Resynchronize By CP,<br />
Source Integrity automatically searches the change package associated with the<br />
member and resynchronizes the selected member and all other member files<br />
contained in that change package. For more information, see “Using the Resync<br />
By CP Command” on page 436.<br />
If the issues you are looking at have numerous associated change<br />
packages, you can also use a single change package—a resolution change<br />
package— that contains all the associated change packages, to resolve it.<br />
The Resync CP <strong>com</strong>mand includes a process for creating resolution change<br />
packages that can be used for this purpose. For more information on<br />
resolution change packages, see “Working With a Resolution CP” on<br />
page 428.<br />
The next four sections describe how the Resync CP <strong>com</strong>mand works and<br />
on how you can use it in your development environment. The topics<br />
covered are:<br />
“Key Resync CP Concepts” on page 407<br />
“How Resync CP Works” on page 408<br />
“Resync CP Backfill List” on page 409<br />
Procedures for the graphical user interface<br />
The following outlines the key concepts associated with the Resync CP<br />
<strong>com</strong>mand:<br />
The Resync CP operation takes place in a sandbox rather than directly<br />
in the project. Resync CP does not drop members or update member<br />
revisions in the project, but works only in your sandbox. Resync CP<br />
also performs merges and adds required members to your sandbox.<br />
If you need to merge files to create your solution, you must use Resync<br />
CP rather than Apply CP. Resync CP performs three-way merging<br />
and can therefore only merge around a consecutive range of revisions.<br />
Resync CP allows you to work with open change packages.<br />
Resync CP provides additional options beyond those available for<br />
Apply CP, including options for Restore Revision Timestamp, Allow<br />
Open Change Packages, Keyword, and certain merge options.<br />
407
Chapter 12: Advanced Change Package Operations<br />
How Resync CP<br />
Works<br />
408<br />
Source Integrity allows you to run the Apply CP <strong>com</strong>mand first and<br />
then, if required, run the Resync CP <strong>com</strong>mand to perform any<br />
required merge operations.<br />
The Resync CP backfill list allows you to quickly select those change<br />
packages that you want to operate on. In the graphical user interface,<br />
you select the change packages you want to include in the resync<br />
operation. In the <strong>com</strong>mand line interface, you enter the numbers for<br />
the change packages you want to exclude from the resync operation.<br />
The Resync CP operation adds and drops files, and updates file revisions<br />
to include specific content in a sandbox. Fundamentally, the Resync CP<br />
works similarly to the Apply CP <strong>com</strong>mand, but rather than touching the<br />
project directly, makes the changes in a sandbox.<br />
For example, consider a simplified application in the main trunk of<br />
development for the Aurora project (Aurora_Project.pj). The project<br />
member, tool.c, includes a bug fix for Issue 24 and is associated with the<br />
file tool.c (revision 1.7) through change package (CP) 24:1.<br />
The developer wants to pick up the changes that address the bug fix and<br />
apply these in a sandbox. In the developer’s sandbox, tool.c is at revision<br />
1.2.<br />
To apply the bug fix in the sandbox, the developer uses the si resynccp<br />
<strong>com</strong>mand to apply CP 24:1 as follows:<br />
si resynccp -S c:/Aurora_Project/project.pj 24:1<br />
Applying change packages...<br />
24:1<br />
The following warnings have occurred:<br />
-------------------<br />
The change package(s)<br />
20:1 -- tool.c(1.3)<br />
21:1 -- tool.c(1.4)<br />
22:1 -- tool.c(1.5)<br />
23:1 -- tool.c(1.6)<br />
are required in order to apply this list of change<br />
packages. They will be automatically added to the list,<br />
since the backfill option is set to Entire Change<br />
Package(cp).<br />
--------------------<br />
u s e r g u i d e
Resync CP<br />
Backfill List<br />
Using the Resync CP Command<br />
*** The following set of operations will be performed:<br />
Project: f:/Aurora_Project/project.pj<br />
Sandbox: c:\Aurora_Sandbox\project.pj<br />
Member tool.c: resynchronize to Revision 1.7<br />
Are you sure you wish to proceed? [yn]: y<br />
In this case, Resync CP updates the working file revision for tool.c from<br />
1.2 to 1.7 in the sandbox. This is done by checking out tool.c at 1.7 into<br />
the sandbox. The changes made from revisions 1.3 through 1.6 are already<br />
included in this checked out file.<br />
The following provides an example of the backfill list and how it works in<br />
the Resync CP <strong>com</strong>mand. The main project, Aurora_Project.pj, now<br />
includes an additional bug fix for project member, tool.c. Issue 23<br />
addresses that bug fix and is associated with the file tool.c (revision 1.6)<br />
through CP 23:1.<br />
The developer wants to pick up the changes that address the bug fix and<br />
apply these in a sandbox. In the developer’s sandbox, tool.c is at revision<br />
1.2.<br />
409
Chapter 12: Advanced Change Package Operations<br />
410<br />
tool.c<br />
Aurora_Project<br />
1.6<br />
CP 23:1<br />
CP 23:1 addresses Issue 23 -<br />
“Add internationalization code to the tool.”<br />
Archive for tool.c<br />
1.6 CP 23:1<br />
1.5<br />
1.4<br />
1.2<br />
1.1<br />
CP 22:1<br />
CP 21:1<br />
1.3 CP 20:1<br />
CP 19:1<br />
CP 18:1<br />
tool.c<br />
Picking up a specific change using the Resync CP <strong>com</strong>mand<br />
u s e r g u i d e<br />
Aurora_Sandbox<br />
1.2
Using the Resync CP Command<br />
To pick up the bug fix, the developer uses the si resynccp <strong>com</strong>mand in a<br />
sandbox. The developer wants to decide on the specific change packages to<br />
include in the operation, so he or she sets the backfill option to Ask to<br />
Specify (--backfill=ask). The <strong>com</strong>mand runs as follows:<br />
si resynccp -S c:/Aurora_Sandbox/project.pj<br />
--backfill=ask 23:1<br />
Applying change packages...<br />
23:1<br />
*** The following list of change packages are used by<br />
revisions before the revision that you require. Each<br />
change package is given, along with the revisions which<br />
require them:<br />
20:1 -- tool.c(1.3)<br />
21:1 -- tool.c(1.4)<br />
22:1 -- tool.c(1.5)<br />
Reply with:<br />
y to pick up all these change packages, along with<br />
their associated changes,<br />
s to skip all these revisions and merge around them<br />
(default)<br />
c to cancel the <strong>com</strong>mand<br />
or a space separated list of change package identifiers<br />
from the list given to be *removed* from the list<br />
[y|s|c|#...] ?<br />
411
Chapter 12: Advanced Change Package Operations<br />
412<br />
The developer decides to merge around all the intermediate change<br />
packages and selects s (skip). The <strong>com</strong>mand continues as follows:<br />
The following warnings have occurred:<br />
-------------------<br />
The following members require a merge to be performed:<br />
tool.c<br />
You have not specified a resolution change package, so<br />
merged members will not be locked.<br />
--------------------<br />
*** The following set of operations will be performed:<br />
Project: f:/Aurora_Project/project.pj<br />
Sandbox: c:\Aurora_Sandbox\project.pj<br />
Member tool.c: merge around differences: picking<br />
up revisions 1.2 through 1.6, excluding<br />
revisions 1.3, 1.4, 1.5, by checking out<br />
Revision 1.2 into the working file, and merging<br />
in the differences between Revision 1.6 and<br />
Revision 1.2 with the differences between<br />
Revision 1.5 and Revision 1.3.<br />
Are you sure you wish to proceed? [yn](n): y<br />
In this case, Resync CP updates the working file revision for main.c by<br />
checking out revision 1.2 and then merging into the working file the<br />
differences between 1.5 and 1.6. The intermediate revisions are not added<br />
to the sandbox because the skip option was selected. Because the resync<br />
operation does not involve a resolution change package, the merged<br />
member is not locked.<br />
u s e r g u i d e
Working on a<br />
Variant<br />
Resync CP Backfill Options<br />
Backfill<br />
Option (GUI)<br />
Entire<br />
Change<br />
Packages<br />
Back<br />
Revisions<br />
Only<br />
Backfill<br />
Option (CLI)<br />
Function<br />
Using the Resync CP Command<br />
cp Selected by default for the Resync CP<br />
<strong>com</strong>mand. Recursively finds all historic<br />
revisions required by the specified change<br />
packages and applies them. It does not ask<br />
you to confirm the backfill list.<br />
revision Processes only the changes in the specified<br />
change package(s). Any change packages<br />
associated with intermediate revisions are not<br />
picked up.<br />
Note: Processing by revision may result in<br />
broken builds because indirectly associated<br />
files are not picked up.<br />
Error error Results in an error if other change packages<br />
are required but not specified.<br />
Skip<br />
Revisions<br />
Ask to<br />
Specify<br />
skip Causes Source Integrity to merge around<br />
specified backfill revisions.<br />
ask Displays the backfill list and asks you to<br />
specify how you want Source Integrity to treat<br />
the change packages.<br />
Working on a variant allows you to create a specific change, test it, and<br />
then bring that change back into the main trunk of development. Within<br />
reason, this can be done even when the main trunk includes further new<br />
development.<br />
For example, a patch created in a variant project is needed in the master<br />
project. The file—utility.c—has a head revision of 1.4 in the project. In<br />
the variant project, the file utility.c version 1.2 is checked out to<br />
revision 1.2.1.1 and the code is revised. The file utility.c is then checked<br />
in at 1.2.1.2 and associated with CP 5:1.<br />
413
Chapter 12: Advanced Change Package Operations<br />
414<br />
utility.c<br />
Master Project<br />
1.4<br />
Archive for utility.c<br />
1.4<br />
1.3<br />
1.2.1.2<br />
1.2.1.1<br />
1.2<br />
1.1<br />
CP 5:1<br />
utility.c<br />
Moving a patch from a variant project to a master project<br />
Moving the patch from the variant to the master requires a three-way<br />
merge operation using Resync CP. Apply CP would not be successful in<br />
this case because merging is required. Similarly, because the master project<br />
contains further new development, updating the head revision of<br />
utility.c from 1.4 to 1.2.1.2 would not be appropriate. Updating the<br />
head revision would cause the new development work in revisions 1.3 and<br />
1.4 to be lost.<br />
The Resync CP <strong>com</strong>mand should be used in this case. However, if the<br />
correct options are not selected, the default Resync CP operation checks<br />
out utility.c and overwrites revision 1.4 in your sandbox with<br />
utility.c revision 1.2.1.2 from the variant project.<br />
1.2<br />
u s e r g u i d e<br />
Variant Project<br />
1.2.1.2<br />
1.2.1.1
utility.c<br />
Master Project<br />
1.4<br />
utility.c<br />
Sandbox to Master<br />
1.4<br />
1.2.1.2<br />
The default Resync CP operation<br />
Using the Merge On Branch Option<br />
Using the Resync CP Command<br />
Variant Project<br />
1.2.1.2<br />
1.2 1.2.1.1<br />
utility.c<br />
In this situation, you must use the Merge On Branch option<br />
(--mergeOnBranch). This option essentially allows the changes on the<br />
branch to be merged into the head revision file. Selecting Merge On Branch<br />
allows Source Integrity to perform a differencing between revision 1.2 and<br />
1.2.1.2 and then merge the result into revision 1.4. Once the Resync CP<br />
operation <strong>com</strong>pletes, the file must then be checked in to finalize the<br />
changes in the project.<br />
415
Chapter 12: Advanced Change Package Operations<br />
416<br />
utility.c<br />
Master Project<br />
1.4<br />
utility.c<br />
Sandbox to Master<br />
1.4<br />
Archive for utility.c<br />
1.4<br />
1.3<br />
1.2.1.2<br />
1.2.1.1<br />
1.2<br />
1.1<br />
CP 5:1<br />
Using Resync CP with the Merge On Branch option<br />
Using the Ignore Branches Option<br />
utility.c<br />
Another situation that warrants special consideration is the case where two<br />
change packages must be applied. Unless the correct options are selected,<br />
Resync CP will fail because too many merges are required.<br />
For example, the master project contains the file patch.c at revision 1.4.<br />
The variant project used by the buildmaster contains a fix (patch.c,<br />
revision 1.2.1.2, CP 9:1) that is being rolled out for a product patch. The<br />
variant project for the Maintenance Development team also includes a bug<br />
fix for patch.c at revision 1.3.1.2, and this revision is associated with CP<br />
10:1. Both fixes are required for the master project. To pick up all the<br />
required changes, both CP 9:1 and CP 10:1 must be selected.<br />
u s e r g u i d e<br />
Variant Project<br />
1.2.1.2<br />
1.2 1.2.1.1<br />
Differences between 1.2 and<br />
1.2.1.2 merged into 1.4.<br />
Result placed in sandbox.<br />
To finalize changes in the<br />
project, file must be checked in.
Archive for patch.c<br />
Using the Resync CP Command<br />
Performing a Resync CP operation on two change packages using the<br />
Ignore Branches option<br />
Running the Resync CP for two change packages requires more than a<br />
three-way merge and therefore fails. Using the Ignore Branches option<br />
(--ignoreBranches) Resync CP can successfully <strong>com</strong>plete, but with a<br />
restriction. The restriction is that Source Integrity searches both change<br />
packages, takes the highest revision it finds, and uses this revision to<br />
overwrite the working file in your sandbox.<br />
In our example, the Resync CP operation would take patch.c at revision<br />
1.3.1.2 and check it out to the sandbox, overwriting revision 1.4.<br />
NOTE<br />
1.4<br />
1.3.1.2 CP 10:1<br />
1.3.1.1<br />
1.3<br />
1.2<br />
1.1<br />
1.2.1.2 CP 9:1<br />
1.2.1.1<br />
patch.c<br />
patch.c<br />
patch.c<br />
Project<br />
Variant Project 1<br />
1.3.1.2<br />
Rapid Development<br />
creates a bug fix<br />
Buildmaster is<br />
rolling out a fix<br />
for a patch<br />
There are only two ways to successfully <strong>com</strong>plete the preceding scenario<br />
without restrictions: address it manually, or perform Resync CP and Apply CP<br />
twice (once for each change package), checking in the merged changes at the<br />
head revision after each operation.<br />
The Ignore Branches option can also be used to ac<strong>com</strong>modate the case<br />
where one developer has created the same fixes for both the project and the<br />
variant, and associated with the same change package.<br />
1.4<br />
Variant Project 2<br />
1.2.1.2<br />
Product team needs<br />
all the changes for<br />
the master project<br />
417
Chapter 12: Advanced Change Package Operations<br />
Resync CP<br />
Procedures<br />
418<br />
CP 10:1<br />
Using Ignore Branches to apply two fixes in the same change package<br />
In this case, because the single change package applies to both the project<br />
and the variant, the highest revision is the only one the buildmaster needs.<br />
The Ignore Branches option therefore allows Source Integrity to apply the<br />
highest revision to the buildmaster’s variant project.<br />
Combining Options<br />
patch.c 1.5 Master Project<br />
patch.c 1.3.1.2 Variant Project<br />
Applying CP 10:1 and selecting the Ignore Branches<br />
option allows Source Integrity to choose the highest<br />
available revision, 1.5.<br />
Following the same example, you can also apply both the Merge On Branch<br />
and Ignore Branches options. Selecting both options allows<br />
Source Integrity to perform a differencing between revisions 1.3 and the<br />
highest revision found, revision 1.3.1.2, and merge the result into revision<br />
1.4.<br />
This section describes the step-by-step procedures required to perform the<br />
Resync CP <strong>com</strong>mand in both the graphical user interface and <strong>com</strong>mand<br />
line interface.<br />
To resynchronize a change package in the graphical user interface<br />
1 From a Sandbox view, select the project you want the Resync CP<br />
<strong>com</strong>mand to operate on.<br />
2 Select Change Package > Resynchronize Change Package.<br />
The Resynchronize Change Packages wizard opens, displaying the<br />
Apply List panel.<br />
u s e r g u i d e<br />
patch.c<br />
patch.c<br />
Master Project<br />
1.5 CP 10:1<br />
Variant Project<br />
1.3.1.2 CP 10:1
3 To add change packages to the Apply List, click Add.<br />
Using the Resync CP Command<br />
If you know the ID number of the change package(s) or issue(s) you<br />
want to add, you can also enter that number in the Change Package ID<br />
field and then click Insert. For multiple numbers, include a space<br />
between each change package ID.<br />
The Find Change Package Panel appears.<br />
4 Select filter criteria for the change package, or if Integrity Manager is<br />
enabled, select a query. For more information, see “Finding Change<br />
Packages” on page 222 and “Finding Change Packages Using a<br />
Query” on page 378.<br />
The Select Change Package(s) panel appears. The Change Packages<br />
tab is populated with the filter or query results.<br />
419
Chapter 12: Advanced Change Package Operations<br />
420<br />
NOTE<br />
Open change packages are allowed when resynchronizing change packages.<br />
The option for Allow Open Change Packages is enabled by default. You can<br />
disable this option by clearing the check box.<br />
Available information is displayed in the panel as follows:<br />
Tab Table Columns<br />
Change Packages C.P. ID is the identification number of the change package<br />
(in the form x:y, where x is the container ID (if the<br />
Integrity Manager integration is enabled, it is also the issue<br />
ID, and y is the change package index number).<br />
State is the state of the change package, whether open or<br />
closed.<br />
Summary is the summary description of the issue<br />
associated with the change package.<br />
Change Package<br />
Entries<br />
Type lists the type of operation that was used to<br />
manipulate the listed member. For more information, see<br />
“Change Package Entry Types” on page 220.<br />
Project lists the file path of the project.<br />
Member lists the name of the member file.<br />
Revision lists the revision number of the member file.<br />
Development Path lists the development path, or variant,<br />
that the change came from.<br />
Server is the name of the Integrity Server the project<br />
resides on.<br />
u s e r g u i d e
Tab Table Columns<br />
Using the Resync CP Command<br />
Member History Displays the following information for each revision in the<br />
member history:<br />
Revision is the revision number of the selected member.<br />
Author is the user ID of the individual who checked in the<br />
member revision.<br />
Date is the date the member revision was checked in.<br />
Labels are the labels, if any, assigned to the revision in the<br />
history.<br />
State is the workflow state of the member.<br />
C.P. ID is the change package identification number of the<br />
revision.<br />
5 To view the information for change package entries, select a change<br />
package under the Change Packages tab and then click the Change<br />
Package Entries tab. Detailed information is displayed for each entry<br />
in the change package. For more information, see “Change Package<br />
Entry Types” on page 220.<br />
Once you select a change package ID, the Change Package Entries tab<br />
is populated with information on the associated change package<br />
entries.<br />
To view the information for a member history, select a member under<br />
the Change Package Entries tab and then click the Member History tab.<br />
Once you select a member, the Member History tab is populated with<br />
information on the associated member history.<br />
NOTE<br />
Under the Member History tab, you can highlight a member revision, and use<br />
the shortcut menu to select View Revision or Revision Information. To perform<br />
differencing between revisions, use CTRL+click to select two revisions and<br />
then use the shortcut menu to select Differences.<br />
421
Chapter 12: Advanced Change Package Operations<br />
422<br />
6 To add the change packages to the Apply List and return to the Apply<br />
List panel, click OK.<br />
The list of change packages is displayed in the Apply List panel.<br />
To remove a change package from the Apply List, highlight the<br />
change package (or press CTRL and click to highlight multiple<br />
members) and then click Remove.<br />
u s e r g u i d e
Resync CP<br />
General Command Options<br />
Using the Resync CP Command<br />
7 To select the change packages or Issues you want Source Integrity to<br />
use during the Resync CP operation, click Next.<br />
The Options panel opens.<br />
8 Select the <strong>com</strong>mand options you want Source Integrity to use when<br />
carrying out the Resync CP operation:<br />
Function<br />
Use Master Causes Source Integrity to operate on the top-level sandbox. When the selected<br />
change package is associated with a member in a subsandbox, specifying Use<br />
Master causes the <strong>com</strong>mand to operate on the top-level sandbox for that<br />
subsandbox.<br />
Overwrite Working File if<br />
Changed<br />
Perform Merges Enables merging<br />
Overwrites the working file even if the file has changed since it was last checked<br />
in.<br />
Confirm Actions Causes Source Integrity to confirm all operations with you before starting them.<br />
(This option is enabled by default.)<br />
423
Chapter 12: Advanced Change Package Operations<br />
Resync CP<br />
Advanced Command Options<br />
424<br />
Function<br />
Verbose Provides additional information to track the status of the <strong>com</strong>mand.<br />
Already in Project is Error Causes Source Integrity to terminate the operation if the member being applied is<br />
already in the project.<br />
If this setting is negated, then the information is displayed as a warning.<br />
Ignore Server in Change<br />
Package<br />
Causes Source Integrity to perform the Resync CP operation even if the change<br />
package members reside on different servers.<br />
Span Projects Applies the <strong>com</strong>mand to any project specified in the change package, even if this<br />
involves a project that is not the one you initially targeted.<br />
In a Resync CP operation, this option allows Source Integrity to search across<br />
local sandboxes for all the entries contained in the selected change package(s).<br />
Ignore Cross-Branch Entries Causes Source Integrity to use the most recent revision when it encounters two<br />
revisions of the same member on different branches.<br />
Restore Revision Timestamp Sets the timestamp of the working file to the date and time of the revision in the<br />
history. If this option is not set, the working file’s timestamp is set to the current<br />
date and time.<br />
Other Project is Error Terminates the <strong>com</strong>mand if the member is not in the project you are applying to,<br />
or in its variant.<br />
Allow Open Change Packages Allows Source Integrity to work with open change packages. This facilitates the<br />
application of a resolution change package.<br />
Create Variants Causes Source Integrity to create new variant subprojects within the variant<br />
project as required to apply the change package members. If the main project<br />
contains required files that reside in a subproject, the Create Variants option<br />
creates variant subprojects for these files to be placed into.<br />
Merge On Branch Causes Source Integrity to perform a merge if the target revision is on a branch.<br />
Source Integrity differences the two file revisions and merges any changes into<br />
the working file without modifying its revision number. You must then check in the<br />
working file to advance the revision to the next available revision number.<br />
Keyword Allows you to select keyword expansion options that apply when a member is<br />
checked out.<br />
Expand replaces keywords in the revision with literal values in the working file.<br />
Unexpand takes literal values in the working file and unexpands them.<br />
Do Not Expand leaves the keywords unexpanded.<br />
u s e r g u i d e
Resync CP<br />
Advanced Command Options<br />
Function<br />
Using the Resync CP Command<br />
Backfill Determines how Source Integrity treats historic revisions required by the<br />
specified change packages. For the Resync CP <strong>com</strong>mand, the backfill option is<br />
set to Entire Change Packages by default.<br />
You can select from the following options:<br />
Entire Change Packages chooses all historic revisions required by the<br />
specified change packages and applies them by updating member revisions,<br />
adding files, or dropping files. The user is not prompted to confirm the backfill<br />
list.<br />
Back Revisions Only processes only the specified change package(s) and<br />
chooses only directly-associated revisions. It does not process any change<br />
packages that are associated with intermediate revisions.<br />
Error terminates the operation if other change packages are required but are<br />
not specified.<br />
Skip Revisions causes Source Integrity to merge around specified backfill<br />
revisions.<br />
Ask to Specify allows you to select the specific change packages you want<br />
to include.<br />
Ignore Update Revision Entries Ignores update revision entries in a change package. There is no user prompt.<br />
9 To run the Resync CP <strong>com</strong>mand with the selected options, click Finish.<br />
If you selected the Backfill option Ask to Specify, the Select Change<br />
Package(s) for Backfill dialog box is displayed.<br />
425
Chapter 12: Advanced Change Package Operations<br />
426<br />
10 Select the change package(s) you want to include in the resync<br />
operation and then click OK.<br />
NOTE<br />
At this time, the Resync CP <strong>com</strong>mand can only merge around a consecutive<br />
range of revisions.<br />
The Confirm Change Package Application dialog box is displayed.<br />
Under the Query tab, information is provided on the operations to be<br />
performed.<br />
u s e r g u i d e
Using the Resync CP Command<br />
Under the Warnings tab, information is provided on the change<br />
packages associated with intermediate revisions.<br />
427
Chapter 12: Advanced Change Package Operations<br />
428<br />
11 To <strong>com</strong>plete the Resync CP operation, click Yes.<br />
Source Integrity <strong>com</strong>pletes the Resync CP operation or returns<br />
information on errors and warnings if the <strong>com</strong>mand cannot be<br />
successfully <strong>com</strong>pleted.<br />
NOTE<br />
Working With a Resolution CP<br />
To see any change packages that have been applied between two revisions of a<br />
project, use View Project Differences. For more information on viewing project<br />
modifications, see “Viewing Project Differences” on page 275.<br />
There are instances when the Apply CP <strong>com</strong>mand does not work on a set<br />
of change packages because merging is required. When this happens, the<br />
Resync CP <strong>com</strong>mand must be used to automate the required merging.<br />
Once the Resync CP operation is <strong>com</strong>pleted, the modified files that result<br />
from those merges are transferred to your sandbox. To apply the changes,<br />
you must then check in those modified files.<br />
For a development team using the change package methodology, the check<br />
in of the modified files requires an associated issue and change package.<br />
Once the issue has been created, the files can then be checked into the<br />
associated change package and the development path updated with the<br />
merged files.<br />
If other developers want to apply the same set of change packages, how<br />
can they be certain that the changes made relate only to the target feature<br />
and that no other changes have been checked in? To be absolutely certain,<br />
they would have to repeat the original Resync CP operation—a significant<br />
duplication of effort. Otherwise, they would have to resynchronize using<br />
the original set of change packages and possibly accept additional,<br />
unwanted changes that were selected during the first Resync CP operation.<br />
To avoid this uncertainty and duplication of effort, there is a mechanism<br />
for recording all change packages that have been applied, including the<br />
merge conflicts that have been resolved. The resolution change package is<br />
the mechanism for recording these changes.<br />
A resolution change package is a specialized change package that records<br />
all applied change packages, resolved conflicts, checked in modified files,<br />
and conflicts resolved by merging. A resolution change package is applied<br />
u s e r g u i d e
Working With a Resolution CP<br />
when an Apply CP operation has failed due to unresolved conflicts that<br />
require merging. Resolution change packages are created through the<br />
Resync CP operation and cannot be manually created by the user.<br />
In addition, you can only apply one resolution change package during<br />
each Apply CP operation, and if you select a resolution change package,<br />
you cannot apply any other change packages during that operation.<br />
Therefore, the applied changes are strictly limited and defined. Anyone<br />
wanting a specific set of changes can then select the associated resolution<br />
change package, run the Apply CP <strong>com</strong>mand, and obtain the same results.<br />
What Is a Resolution Change Package?<br />
A resolution change package is similar to a normal change package except<br />
that it contains additional information on:<br />
change packages that are to be applied<br />
modified files that have been checked in<br />
conflicts that have been addressed by merging<br />
When Should I Use a Resolution Change Package?<br />
You need to use a resolution change package if an Apply CP operation has<br />
failed because merging is required and you want to record all merge<br />
operations required to address the issue. To record accurately the results of<br />
the required merge operations, you should use a resolution change<br />
package.<br />
Resolution change packages are particularly useful for assisting<br />
buildmasters to <strong>com</strong>plete their work. When an Apply CP operation has<br />
failed, developers can identify the dependencies and required merges, and<br />
include all the necessary changes in a single resolution change package.<br />
The buildmaster can then redo the Apply CP operation using that<br />
resolution change package. This reduces the amount of decision-making<br />
required of the buildmaster and allows developers to resolve the conflicts<br />
in their own files.<br />
How Is a Resolution Change Package Created?<br />
A resolution change package is created only through the Resync CP<br />
operation. Using the graphical user interface, you can select an existing<br />
change package—or create a new one—and then ask Source Integrity to<br />
use this as a resolution change package. The only requirement is that the<br />
change package must be in the Open state.<br />
The change package you ask Source Integrity to use may or may not<br />
contain entries (that is, files), but for the greatest level of control in isolating<br />
a feature or issue, it is preferable to start with an empty change package.<br />
429
Chapter 12: Advanced Change Package Operations<br />
Key Resolution<br />
CP Concepts<br />
430<br />
The process for creating a resolution change package is as follows:<br />
1 You create a normal change package and, during a Resync CP<br />
operation, you ask Source Integrity to use it as a resolution change<br />
package for recording all conflicts.<br />
Source Integrity takes the specified change package and adds a<br />
resolution list, thereby making it into a resolution change package.<br />
2 Once all the merge conflicts are addressed, you can do one of the<br />
following:<br />
You submit the resolution change package and Source Integrity<br />
applies the changes.<br />
You submit the resolution change package without updating<br />
member revisions; then the Buildmaster applies the resolution<br />
change package at the time the software is built.<br />
Submitting the resolution change package causes Source Integrity to<br />
apply the change package. If reviews are mandatory, the apply CP<br />
<strong>com</strong>mand records the applied changes in another change package that<br />
then follows the review process (see “Change Package Review<br />
Process” on page 240).<br />
Are There Any Limitations When Using a Resolution CP?<br />
To avoid the problem of overlaps and conflicts during the Apply CP<br />
operation, you can only apply one resolution change package per<br />
operation.<br />
The next three sections describe how to work with a resolution change<br />
package. The topics covered are:<br />
key concepts (see “Key Resolution CP Concepts” on page 430)<br />
an example (see “How Resolution CPs Work” on page 431)<br />
procedures for the graphical user interface (“To create a resolution<br />
change package in the graphical user interface” on page 434)<br />
The following lists the key concepts associated with resolution change<br />
packages:<br />
A resolution change package records all the required changes needed<br />
to address the conflicts (or required merging) found when the Apply<br />
CP <strong>com</strong>mand fails. All conflicts identified by Source Integrity are<br />
represented in the change package as deferred Update entries<br />
(representing a deferred check in).<br />
u s e r g u i d e
How Resolution<br />
CPs Work<br />
Working With a Resolution CP<br />
A resolution change package works by stating that entries in the<br />
resolution change package supersede corresponding entries found in<br />
change packages on the resolution list. Thus, if you perform a merge<br />
from a branch and check the result into a resolution change package,<br />
the resulting revision supersedes any entries in the listed change<br />
packages that might be on branches.<br />
A resolution change package is created through the Resync CP<br />
operation. There is no way to manually create a resolution change<br />
package.<br />
You can select an existing change package—or create a new one—and<br />
then ask Source Integrity to use it as a resolution change package. The<br />
only requirement is that the change package must be in the Open state.<br />
For the greatest level of control in isolating a feature or issue, it is<br />
preferable to start with an empty resolution change package. When<br />
the resolution change package contains no previous entries, the only<br />
additions will be those that specifically relate to the issue in question.<br />
If the resolution change package contains other change package<br />
entries, Source Integrity will also process those entries.<br />
To avoid the problem of overlaps and conflicts during the Apply CP<br />
operation, you can only apply one resolution change package per<br />
operation.<br />
The abcBusiness <strong>com</strong>pany has two development teams:<br />
a Product Team that develops new features and software for the main<br />
release cycle<br />
a Maintenance Development Team that maintains the released<br />
software and addresses bugs that are identified by customers<br />
The Product Team (PT) implements new features and designs on the main<br />
development path.<br />
The Maintenance Development Team (MDT) works on a variant<br />
development path for Release 2.0 and fixes any problems in the newlyreleased<br />
product. The main goal of this team is to produce bug fixes for<br />
Release 2.0a. The work process for the MDT is:<br />
A bug is reported by a customer.<br />
A change package for the bug is created, in this case it has the<br />
container ID 1204. If the Integrity Manager integration is enabled, an<br />
issue is created and then associated with a created change package.<br />
An MDT developer is assigned to fix the problem.<br />
431
Chapter 12: Advanced Change Package Operations<br />
Using a<br />
Resolution CP<br />
432<br />
The MDT developer creates a change package.<br />
The MDT developer makes the necessary changes and tests the code.<br />
The MDT developer checks the modified files back into the variant<br />
project, making sure to associate the files with change package 1204:1.<br />
In this case, all the work of the MDT developer is now checked into the<br />
variant development path and will be part of release 2.0a. However, what<br />
is the best method for transferring the MDT bug fix work back to the main<br />
development path so that it can be incorporated into the next product<br />
release? The Resync CP <strong>com</strong>mand is the best option for applying the new<br />
fix.<br />
A PT developer can now create a second change package, 1204:2 for the<br />
same issue. The second change package would include the summary<br />
“Applied fix to main development path”. The PT developer would start<br />
the Resync CP <strong>com</strong>mand, select the main development sandbox, and the<br />
first change package—1204:1—in this issue. The second change package—<br />
1204:2—would be used as a resolution change package.<br />
Once all merges have been resolved, the developer submits the resolution<br />
and Source Integrity applies the changes from the referenced change<br />
packages.<br />
The bug fix is now addressed in both the main and variant development<br />
paths, ensuring that the problem is fixed in the Release 2.0a and the next<br />
major product release.<br />
The basic process for resolving conflicts is to apply the target change<br />
package using the Apply CP <strong>com</strong>mand. If the Apply CP operation fails<br />
because of a merge conflict, you must then use the Resync CP <strong>com</strong>mand to<br />
create a resolution change package. That resolution change package is then<br />
submitted, and Source Integrity applies the changes to the project.<br />
The process involves the following key steps:<br />
Use the Apply CP <strong>com</strong>mand to apply a change package to the main<br />
trunk of development.<br />
If Apply CP fails due to a required merge, use the Resync CP<br />
<strong>com</strong>mand on the same change package and create a new resolution<br />
change package. Resync CP places the required files, locked, in your<br />
sandbox.<br />
Verify the merges to ensure they are correct.<br />
In your sandbox, check in the members, making sure to associate them<br />
with the newly created resolution change package.<br />
u s e r g u i d e
Working With a Resolution CP<br />
Submit that resolution change package, thereby applying the changes<br />
to the project.<br />
The Apply CP <strong>com</strong>mand works directly in the project, adding and<br />
dropping files, and updating file revisions as required to apply the<br />
resolution change package and update the project.<br />
It is important to note that while Resync CP can be used to apply a<br />
resolution change package, the results may not always be acceptable. For<br />
example, if your bug fix is in an existing project member, there would<br />
already be an archive for that member in the project. As a result, Resync CP<br />
would add the modified member on a branch. This additional branching<br />
might not be acceptable in your project.<br />
Resolving Binary Conflicts<br />
When a conflict between two revisions of a binary file is encountered,<br />
Source Integrity replaces the sandbox working file for that member with<br />
the destination revision and marks it as a conflict. The destination revision<br />
appears in the resolution change package as a deferred Check In entry<br />
(representing a deferred check in of the working file).<br />
For example, if revision 1.1 and 1.1.1.1 are both update revision entries of a<br />
binary member in a change package that require a merge with member<br />
revision 1.2, then the contents of revision 1.1.1.1 are used for the sandbox<br />
working file of member revision 1.2. Revision 1.2 appears as a deferred<br />
Check In entry in the resolution change package. No <strong>com</strong>parison of<br />
binary file content is provided. When the change package is submitted (or<br />
member checked in) the member revision is 1.3.<br />
You can resolve the conflict in one of the following ways:<br />
Use Target Revision<br />
Submit the changes in the resolution change package, thereby<br />
checking in the destination revision for the binary member (or<br />
manually submit the deferred check in of the destination revision).<br />
Perform Manual Binary Merge<br />
Using a third-party tool outside of Source Integrity, perform a binary<br />
merge on the affected member. Then submit the changes in the<br />
resolution change package (or manually submit the deferred check in<br />
of the destination revision).<br />
Use Original Revision<br />
Discard the deferred Check In entry corresponding to the conflict,<br />
effectively using the original revision instead of the destination<br />
revision. To resolve conflict, indicate the desired revision by using a<br />
433
Chapter 12: Advanced Change Package Operations<br />
Resolution CP<br />
Procedures<br />
434<br />
deferred Update Revision operation that specifies the desired<br />
revision.<br />
This section outlines the procedures required to work with resolution<br />
change packages in both the graphical user interface and <strong>com</strong>mand line<br />
interface.<br />
To create a resolution change package in the graphical user interface<br />
1 Create an empty change package. Ensure that the empty change<br />
package is in the Open state.<br />
If the Integrity Manager integration is enabled, you can create an issue<br />
that clearly identifies the feature, content, or bug fix you want to<br />
isolate, and then associate it with a created change package. For more<br />
information on creating an issue in Integrity Manager, see the<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
2 Follow steps 1 through 6 of the procedure for resynchronizing a<br />
change package (“To resynchronize a change package in the graphical<br />
user interface” on page 418).<br />
3 To select the options you want Source Integrity to use during the<br />
Resync CP operation, click Next.<br />
The Options panel opens.<br />
u s e r g u i d e
Working With a Resolution CP<br />
4 Select the check box for Create Resolution Change Package option.<br />
5 From the Change Package list, select the change package you created<br />
in step 2.<br />
IMPORTANT<br />
The change package must be in the Open state to select it as a resolution change<br />
package. For the greatest level of control in isolating a feature or issue, it is<br />
re<strong>com</strong>mended that you start with an empty resolution change package. When<br />
the resolution change package contains no previous entries, the only additions<br />
will be those that specifically relate to the issue in question.<br />
6 Select the <strong>com</strong>mand options you want Source Integrity to use when<br />
carrying out the Resync CP operation. For more information on<br />
<strong>com</strong>mand options, refer to the <strong>com</strong>mand options tables (see “Resync<br />
CP General Command Options” on page 423).<br />
435
Chapter 12: Advanced Change Package Operations<br />
436<br />
7 To run the Resync CP <strong>com</strong>mand and create the resolution change<br />
package using the selected options, click Finish.<br />
Source Integrity <strong>com</strong>pletes the Resync CP operation or returns<br />
information on errors and warnings if the <strong>com</strong>mand cannot be<br />
successfully <strong>com</strong>pleted.<br />
Merged results are checked out and locked in your sandbox.<br />
8 Review the results, then defer check in of the files and associate them<br />
with the resolution change package ID. This resolution change<br />
package appears by default as the selected change package.<br />
9 Use the Submit Change Package <strong>com</strong>mand to submit your deferred<br />
changes in the resolution change package (see “Submitting Change<br />
Packages” on page 238).<br />
Source Integrity runs the Apply CP <strong>com</strong>mand on the resolution change<br />
package, reconciling and then applying the changes from both the<br />
specified change packages in the resolution change package and the<br />
new changes in the resolution change package to the project.<br />
NOTE<br />
If reviews are mandatory, Source Integrity runs the Apply CP <strong>com</strong>mand after<br />
the change package is accepted.<br />
Using the Resync By CP Command<br />
The Resync By CP <strong>com</strong>mand is primarily a tool for developers. When you<br />
want to resynchronize files in your sandbox, you usually do so by choosing<br />
individual files and then using the Resynchronize (si resync) <strong>com</strong>mand.<br />
However, if the files you are resynchronizing have changes that are linked<br />
to other files, the standard resync operation would not include those<br />
related files. To resynchronize all related files, you would have to<br />
manually search for all the changes associated with the change package on<br />
the member you are resynchronizing.<br />
The Resync By CP <strong>com</strong>mand automates this process by searching the<br />
change package specified on the member revision you are resynchronizing<br />
and then bringing the changes from the project to your sandbox.<br />
u s e r g u i d e
Using the Resync By CP Command<br />
While the Resync CP <strong>com</strong>mand searches all files related to a selected<br />
change package, and all the change packages that may be associated with<br />
the related files, the Resync By CP <strong>com</strong>mand only processes the change<br />
packages associated with the member you are resynchronizing.<br />
NOTE<br />
Do not use the Resync By CP <strong>com</strong>mand on a resolution change package<br />
containing deferred entries.<br />
How Does the Resync By CP Command Work?<br />
In a Resync By CP operation, the change package list is <strong>com</strong>puted based on<br />
the member you are resynchronizing (whereas in a Resync CP operation,<br />
you explicitly state the list of change packages).<br />
The functioning of Resync By CP is affected by the settings you choose for<br />
the Resync CP <strong>com</strong>mand under Tools > Preferences. This includes the way<br />
in which the backfill list operates. For example, if you specify ask, a backfill<br />
list is displayed. For more information on options for Resync CP, see<br />
“Using the Resync CP Command” on page 406.<br />
When Should I Use the Resync By CP Command?<br />
Developers should use Resync By CP when they want to ensure that they<br />
have all dependent changes associated with a member revision, even if<br />
these changes are contained in other files. For example, a developer needs<br />
to check out (locked) a file and modify it. The developer finds that other<br />
revisions have been checked in since the member was resynchronized in<br />
the sandbox. Because the sandbox is quite large and contains many<br />
unrelated changes, the developer does not want to perform a standard<br />
resynchronization. The Resync By CP option can be used in this situation.<br />
NOTE<br />
The functioning of Resync By CP is affected by the settings you choose for the<br />
Resync CP <strong>com</strong>mand under Tools > Preferences. The Resync By CP operation<br />
always sets the backfill list to Entire Change Packages (cp).<br />
Resync By CP Example<br />
Consider a case where a developer makes a change to a project member,<br />
main.c, and that change requires an additional file, main.h. A standard<br />
resync operation for main.c would not capture main.h.<br />
In the initial stage, sandboxes pointing to the project, include main.c at<br />
revision 1.1.<br />
437
Chapter 12: Advanced Change Package Operations<br />
438<br />
Sandbox - Developer 1<br />
main.c<br />
Project<br />
main.c<br />
Before using Resync By CP in a development environment<br />
Developer 1 then performs the following tasks:<br />
checks out and locks main.c, revision 1.1<br />
makes an update to main.c that requires the main.h file<br />
1.1<br />
CP 21:1<br />
1.1 CP 21:1 main.c<br />
checks in the changes to main.c and associates these changes with CP<br />
22:1<br />
also against CP 22:1, adds main.h as a member of the project<br />
u s e r g u i d e<br />
Sandbox - Developer 2<br />
1.1 CP 21:1
Sandbox - Developer 1<br />
main.c<br />
1.1 CP 21:1<br />
1.2 CP 22:1<br />
main.h 1.1 CP 22:1<br />
Project<br />
main.c 1.1 CP 21:1<br />
1.2 CP 22:1<br />
main.h 1.1 CP 22:1<br />
Using the Resync By CP Command<br />
Sandbox - Developer 2<br />
main.c<br />
1.1 CP 21:1<br />
CP 22:1<br />
main.h CP 22:1<br />
After using Resync By CP in your sandbox to capture all changes<br />
(including new files) contained in the associated change package<br />
When Developer 2 uses the Resync By CP <strong>com</strong>mand to resync main.c, his<br />
sandbox is updated to show that main.c is at 1.2 and that main.h has also<br />
been added to the project as part of CP22:1. To <strong>com</strong>plete the update,<br />
Developer 2 can check the files into his sandbox.<br />
IMPORTANT<br />
If the working file of the member you are resyncing is modified,<br />
Source Integrity asks you to confirm that you want to merge your<br />
modifications into the working file. For more information on merging on a<br />
resync, see “Automatic Merging on Resync” on page 352.<br />
To resynchronize by change package in the graphical user interface<br />
1 With a Sandbox view open, select one or more members that contain<br />
member deltas.<br />
439
Chapter 12: Advanced Change Package Operations<br />
440<br />
2 Select Member > Resynchronize By Change Package.<br />
If the working file is writable, you are asked to confirm overwriting it.<br />
3 To resynchronize the member, click Yes. For multiple members, click<br />
Yes to All.<br />
The selected member is updated.<br />
NOTE<br />
When using the Resync By CP <strong>com</strong>mand on a change package with entries that<br />
add members to a project, after the <strong>com</strong>mand <strong>com</strong>pletes you must resync each<br />
added member to obtain a working file.<br />
u s e r g u i d e
$ 3 3 ( 1 ' , ;<br />
Views<br />
Annotated<br />
Revision View<br />
A<br />
This appendix provides additional information about the views that are<br />
available in the Source Integrity graphical user interface and Web<br />
Interface.<br />
The Annotated Revision view displays the following information:<br />
Revision displays the revision number for each annotated block.<br />
Author displays the author of the revision.<br />
Date displays the date each member revision was created.<br />
Line displays the line number for each line of text in the revision.<br />
Revision Contents displays the text contained in each annotation<br />
block.<br />
To customize the fields displayed in the Annotated Revision view<br />
(graphical user interface only), see “View Preferences” on page 61.<br />
Select an annotation block, then from the History menu, select one of the<br />
following:<br />
Revision Information, see “Viewing and Editing Revision Information”<br />
on page 314.<br />
View Revision, see “Viewing a Member’s Working File or Revision” on<br />
page 322.<br />
View Member History, see “Viewing a Member History” on page 310.<br />
From the Change Package menu, select one of the following:<br />
View Change Package, see “Using Change Packages and Reviews” on<br />
page 213.<br />
View Issue, see “Viewing a Change Package’s Issue” on page 376.<br />
441
Appendix A: Views<br />
Archive<br />
Information<br />
View<br />
442<br />
The Archive Information displays information for a specified member<br />
archive.<br />
The General panel specifies general archive information options.<br />
Member Name is the path and name of the member that the archive is<br />
for.<br />
Project/Sandbox Name is the path and name of the member’s project<br />
or sandbox.<br />
Archive Name is the path and name of the displayed archive.<br />
Archive Type displays the type of data stored in the archive.<br />
Default Branch specifies the starting point of the default branch. To<br />
specify a default branch, enter a branch number in the Default Branch<br />
field, for example, 2.1.1.<br />
Strict Locking specifies if a strict locking policy is in effect for the<br />
archive. With strict locking on, a user must have a revision locked<br />
before checking in any changes. To enable strict locking, select the<br />
Strict Locking option.<br />
Compressed specifies if the archive is <strong>com</strong>pressed. To <strong>com</strong>press the<br />
archive, select the Compressed option.<br />
Store by Reference causes each revision to be saved to a separate file,<br />
instead of saving all revisions to one file. This feature improves<br />
performance for archives that contain large binary files. To store the<br />
archive by reference, select the Store by Reference option.<br />
u s e r g u i d e
Change<br />
Package View<br />
Change Package View<br />
Archive Description describes the archive. If necessary, enter or edit a<br />
description.<br />
The Labels panel displays a list of revision labels in the archive, for<br />
example, Draft1 1.1.<br />
The Locks panel displays a list of users who have locks on revisions in the<br />
archive, for example, sholmes 1.2.<br />
Source Integrity provides a way to view change package details and<br />
entries from one view in both the graphical user interface and Web<br />
interface.<br />
The Change Package view has the following three tabs:<br />
The Attributes panel displays the change package ID, summary, the<br />
current change package state, person who created the change package,<br />
date the change package was created, and description (if one was<br />
provided).<br />
By default, the Entries panel displays the following information for<br />
each change package entry:<br />
Type is the entry type of the change package entry. For<br />
information on possible entry types, see “Change Package Entry<br />
Types” on page 220.<br />
Member displays name of the member in the change package<br />
entry.<br />
When it is a Rename entry type, the member name is displayed<br />
with the form: newname(oldname).<br />
Revision displays the number of the revision in the change<br />
package entry.<br />
Sandbox displays the name of the sandbox where the deferred<br />
operation or check out took place.<br />
443
Appendix A: Views<br />
Change<br />
Packages View<br />
444<br />
Project displays the name and path of the project that the member<br />
belongs to. If the entry occurred from a shared subproject, it is the<br />
subproject name and path that are displayed.<br />
Variant displays the name of the variant development path (if a<br />
variant was used) the change package entry occurred on.<br />
Date Changed displays the date the entry was made.<br />
Server displays the host name of the server the entry was made<br />
on.<br />
In the GUI, additional columns are available in the client preferences.<br />
To change the displayed columns, see “View Preferences” on page 61.<br />
If reviews are mandatory, the Review Log panel displays review<br />
information. For more information, see “Viewing the CP Review Log”<br />
on page 250.<br />
The Change Packages view and Manage Change Packages window display<br />
information in the same way. The Manage Change Packages window only<br />
displays change your open change packages (see “Managing Change<br />
Packages” on page 220), whereas the Change Packages view displays all<br />
change packages queried (see “Finding Change Packages” on page 222).<br />
By default, the Change Packages view displays the following information:<br />
ID displays the change package ID.<br />
Issue displays the issue ID if Integrity Manager is enabled.<br />
Creator displays the username of the person who created the change<br />
package.<br />
State displays current state of the change package, which can be Open<br />
or Closed.<br />
Summary displays the summary statement for the change package.<br />
Additional columns are available in the client preferences. To change the<br />
displayed columns, see “View Preferences” on page 61.<br />
From the Change Packages view, you can perform the following tasks<br />
using the Change Package menu:<br />
View Change Package entries and information (see “Viewing Change<br />
Package Details and Entries” on page 226)<br />
View Issue that is associated with the change package (see “Viewing a<br />
Change Package’s Issue” on page 376)<br />
Submit the change package (see “Submitting Change Packages” on<br />
page 238)<br />
u s e r g u i d e
Graphical<br />
History View<br />
(GUI)<br />
Graphical History View (GUI)<br />
Close a Change Package (see “Closing a Change Package” on<br />
page 235)<br />
Edit an existing Change Package (see “Editing a Change Package” on<br />
page 233)<br />
Discard an existing change package (see “Discarding Change<br />
Packages” on page 236)<br />
Accept casts an accept vote on a change package that is under review<br />
(see “Accepting a Change Package” on page 245<br />
Reject rejects a change package that is under review (see “Rejecting a<br />
Change Package” on page 247).<br />
Create a new Change Package (see “Creating a Change Package” on<br />
page 217)<br />
Source Integrity’s Graphical History view provides a <strong>com</strong>prehensive<br />
picture of the evolution of a project or member from the Project History or<br />
Member History view. The view is designed to clearly display the path of<br />
development from revision to revision, including branches, variants, and<br />
merge lines.<br />
Like the List view, information such as author, state, date, description,<br />
locker, and change package (if one exists) is presented in the Graphical<br />
History view. These details display in a ToolTip when you place the mouse<br />
pointer on a specific revision. Labels appear to the right of the revision,<br />
while icons, like the locked icon, or the working file icon, appear to the left<br />
of the revision.<br />
445
Appendix A: Views<br />
446<br />
Examples of Project History and Member History in the Graphical<br />
History view<br />
Member Histories and Project Histories, whether displayed in the<br />
Graphical History view or List view, can be manipulated with the same<br />
operations, and with a new set of filters specific to the Member History and<br />
Project History views.<br />
For more information on Member History view filters, see “Member<br />
History Filters” on page 311, and on Project History view filters, see<br />
“Project History Filters” on page 264.<br />
u s e r g u i d e
Graphical History View (GUI)<br />
Selecting Revisions in the Graphical History View<br />
(GUI)<br />
Although revisions in the Graphical History view are presented as objects,<br />
you can select them in order to perform operations, just as you would in<br />
the List view.<br />
When you click a revision, a blue outline appears around the object to<br />
indicate that it is selected. You can use SHIFT+click or CTRL+click to select<br />
multiple revisions.<br />
The following tables outline operations available in the Member History<br />
and Project History views, including where you can find the<br />
corresponding procedures.<br />
Member History Operations<br />
For Operation ... See …<br />
Check Out “Checking Out a Member” on page 178<br />
Check In “Checking In a Member” on page 186<br />
Revert “Discarding Changes to a Member” on page 196<br />
View Revision “Viewing a Member’s Working File or Revision” on<br />
page 322<br />
View Annotated<br />
Revision<br />
“Viewing an Annotated Revision” on page 316<br />
Differences “Comparing Revisions” on page 331<br />
Lock “Locking a Member” on page 198<br />
Unlock “Unlocking a Member” on page 200<br />
Add Label “Adding Labels to Members” on page 297<br />
Delete Label “Deleting Member Labels” on page 298<br />
Promote “Promoting Members” on page 299<br />
Demote “Demoting Members” on page 300<br />
Set Member Revision “Setting the Member Revision” on page 330<br />
Archive Information “Viewing and Editing Archive Information” on<br />
page 312<br />
Revision Information “Viewing and Editing Revision Information” on<br />
page 314<br />
Delete Revision “Deleting Revisions” on page 331<br />
447
Appendix A: Views<br />
448<br />
For Operation ... See …<br />
Merge “Merging Revisions” on page 353<br />
View Change Package “Viewing Change Package Details and Entries” on<br />
page 226<br />
Merge Branch “Step Two: Merge Branch” on page 345<br />
Project History Operations<br />
For Operation ... See …<br />
Add Label “Adding Project Labels” on page 265<br />
Delete Label “Deleting Project Labels” on page 266<br />
Promote “Promoting a Project” on page 267<br />
Demote “Demoting a Project” on page 268<br />
View Project Differences “Viewing Project Differences” on page 275<br />
Open Build Project “Opening a Build Project” on page 265<br />
Create Development Path “Creating a Development Path” on page 147<br />
Remove Development Path “Removing a Development Path” on page 149<br />
Dragging in the Graphical History View (GUI)<br />
Dragging is a unique function of the graphical history view, available only<br />
through the Member History view.<br />
In the graphical history view of the Member History view, you can use the<br />
drag method to merge branched revisions. For more information on<br />
branching and merging, see “Step Two: Merge Branch” on page 345.<br />
View Options (GUI)<br />
You can alter the display of information in the graphical history view by<br />
modifying the view options. View options allow you to decide to show<br />
labels, show the legend, and adjust the zoom to suit your needs.<br />
The legend and labels display by default, and the default zoom is set at 100<br />
percent.<br />
To hide labels in the Graphical History view<br />
With a Member History or Project History view open, select View > Show<br />
Labels. The labels disappear from the Graphical History view.<br />
u s e r g u i d e
Graphical History View (GUI)<br />
A check mark next to Show Labels indicates that the Graphical History<br />
view is displaying labels. If a check mark does not appear next to Show<br />
Labels, then the labels are already hidden.<br />
To display the labels, select View > Show Labels. The labels reappear in the<br />
Graphical History view.<br />
To hide the legend in the Graphical History view<br />
With a Member History or Project History view open, select View > Show<br />
Legend. The legend disappears from the Graphical History view.<br />
A check mark next to Show Legend indicates that the Graphical History<br />
view is displaying the legend. If a check mark does not appear next to<br />
Show Legend, then the legend is already hidden.<br />
To display the legend, select View > Show Legend. The legend reappears in<br />
the Graphical History view.<br />
To adjust the zoom in the Graphical History view<br />
With a Member History or Project History view open, from the View menu,<br />
select one of the following:<br />
Zoom 100%<br />
Zoom 75%<br />
Zoom 50%<br />
Zoom to Fit<br />
A bullet next to the zoom indicates the current zoom setting.<br />
To show metadata in the Graphical History view<br />
With a Member History or Project History view open, select View > Show<br />
Metadata.<br />
A box containing truncated metadata appears beside each revision. Point<br />
to the box to display a tooltip that contains the full metadata for the<br />
revision.<br />
Changing Views (GUI)<br />
The Graphical History view is the default view in the Member History and<br />
Project History views. If you prefer to view information in these views in<br />
tabular form, you can toggle to the List view.<br />
If you prefer to always view a Member History or Project History in the<br />
List view first, you can change the default view setting in Preferences.<br />
449
Appendix A: Views<br />
Locks View<br />
450<br />
For information on setting the default view in the Member History or<br />
Project History views, see “View Preferences” on page 61.<br />
To view a Member History or Project History in List view<br />
With a Member History or Project History view open, select View > List.<br />
A bullet next to the view menu item (Graphical or List) indicates the<br />
current view.<br />
The Member History or Project History appears as a list.<br />
To view a Member History or Project History in the Graphical History<br />
view<br />
With a Member History or Project History view open, select View ><br />
Graphical.<br />
A bullet next to the View menu item (Graphical or List) indicates the<br />
current view.<br />
The Member History or Project History appears in the Graphical History<br />
view.<br />
The Locks view displays the following information:<br />
Project displays the name and path of the project where the member<br />
revision was locked from. If the member revision was locked from a<br />
shared subproject, it is the subproject name and path that are<br />
displayed.<br />
Member Name displays the member name for the locked revision.<br />
Revision displays the locked revision number.<br />
Time displays the time the revision was locked<br />
You can also display other columns such as Archive Name, Host, <strong>User</strong>, C.P.<br />
ID, Sandbox, Development Path. For more information, see “View<br />
Preferences” on page 61.<br />
You can perform the following tasks:<br />
To delete a lock or locks, select a list item and then select Locks ><br />
Unlock.<br />
The revision is unlocked.<br />
To refresh the list of locked revisions, select Locks > Refresh.<br />
The list is updated.<br />
u s e r g u i d e
Member History<br />
View<br />
Member History View<br />
To change the user (GUI only) whose locks are displayed, select Locks<br />
> Change <strong>User</strong>.<br />
The Retrieve All Locks for a <strong>User</strong> dialog box is displayed.<br />
From the Locker list, select the name of the user whose locks you want<br />
to view, then click OK.<br />
The user’s locks are displayed in the Locks for <strong>User</strong> window.<br />
NOTE<br />
From the Locks view, you cannot remove another user’s lock on a member that<br />
was locked from a shared subproject.<br />
Member History View (GUI)<br />
When you open a member history, Source Integrity displays its contents in<br />
a Member History view. The default view for the Member History view is<br />
the Graphical History view, but you can toggle to the List view as well. For<br />
more information on using the Graphical History view, see “Graphical<br />
History View (GUI)” on page 445.<br />
In the Member History view title bar, the name of the member you are<br />
viewing is listed. To see the project that the member belongs to, in the<br />
Graphical History view, point to the first revision. In the List view, point to<br />
the revision icon ( ). A ToolTip appears displaying the project name and<br />
path.<br />
You can apply filters in the Member History view to view and manipulate<br />
a subset of revisions. For information on applying filters in the Member<br />
History view, see “Member History Filters” on page 311.<br />
For information on toggling between the Graphical History view and the<br />
List view in the Member History view, see “Changing Views (GUI)” on<br />
page 449.<br />
The information in the List view of the Member History view displays in<br />
columns with headings and icons. For information on how to configure the<br />
column set, see “Configuring the Source Integrity Column Set” on page 80.<br />
Depending on your view preferences, your Member History view displays<br />
may be different than the default preferences described here. For more<br />
information on View Preferences, see “View Preferences” on page 61.<br />
The following outlines the default column set and what they display:<br />
451
Appendix A: Views<br />
452<br />
The member’s path and name, for example, c:\sandboxdemo\<br />
demoap.c, appears in the first row underneath the columns. If the<br />
working file can be edited, the entry is preceded by a document and<br />
pencil icon ( ). If the working file is read-only, the document and<br />
pencil icon is crossed out with a red line ( ).<br />
Revision displays the following information:<br />
the revision that the working file corresponds to, indicated by<br />
a white document icon<br />
the member’s revision, indicated by a blue striped document<br />
icon<br />
a list of the revisions in the member history, for example, 1.1,<br />
1.2, 1.3, and so on<br />
Author is the user who checked in the revision.<br />
Date is the date and timestamp of the revision. The date and<br />
timestamp can be either the check in time and date or the date and<br />
time the file was last modified, depending on how the user checks in<br />
the file.<br />
Locked displays a revision’s lock status with a padlock and the<br />
date and time the lock occurred and the name of the user who locked<br />
the revision.<br />
Labels are the labels attached to the revision, for example, Draft1.<br />
State is the revision’s state, for example, Beta.<br />
C.P. ID displays the revision’s associated change package ID, for<br />
example, 8230:3. For more information on change packages, see<br />
“Using Change Packages and Reviews” on page 213.<br />
When Track Locks are enabled, the C.P.ID column displays a lock<br />
change package ID assigned during any lock procedure. In all other<br />
cases, the C.P.ID column displays the member revision change<br />
package ID. For more information on Track Locks, see your<br />
administrator.<br />
Revision Description displays the <strong>com</strong>ments that were assigned to the<br />
revision when it was checked in.<br />
Select a revision by clicking it or moving the selector bar to it with the<br />
cursor keys.<br />
A box below the list of revisions displays the revision description for the<br />
currently selected revision. As you move the selector bar from one revision<br />
to another, the description changes to reflect the currently selected<br />
revision.<br />
u s e r g u i d e
Member History View<br />
The Member History view can be resized within the Source Integrity<br />
application window’s workspace or reduced to an icon in the application<br />
window.<br />
The Member History view also supports standard shortcut menus.<br />
Selecting and right clicking a revision in a Member History view displays a<br />
menu of actions you can perform on the selected revision.<br />
Member History View (Web)<br />
When you open a member history, Source Integrity displays its contents in<br />
a Member History view.<br />
To view the Member History view, do one of the following:<br />
select Member > View Member History<br />
click the member name link in the Project view<br />
The information in a Member History view displays in columns with the<br />
following headings and icons:<br />
The member’s path and name, for example:<br />
readme.txt in Project: c:/Libra_Program/project.pj<br />
Revision displays the following information:<br />
the member’s revision, indicated by a blue striped document<br />
icon<br />
a list of the revisions in the member history, for example, 1.1,<br />
1.2, 1.3, and so on<br />
Author is the user who checked in the revision.<br />
453
Appendix A: Views<br />
Member<br />
Information<br />
View<br />
454<br />
Date is the date and timestamp of the revision. The date and<br />
timestamp can be either the check in time and date or the date and<br />
time the file was last modified, depending on how the user checks in<br />
the file.<br />
Locked displays a revision’s lock status with a padlock and the<br />
date and time the lock occurred and the name of the user who locked<br />
the revision.<br />
Labels are the labels attached to the revision, for example, Draft1.<br />
State is the revision’s state, for example, Development.<br />
C.P. ID displays the revision’s associated change package ID, for<br />
example, 19:1. The change package ID is displayed as a hyperlink<br />
that opens the change package. For more information on change<br />
packages, see “Using Change Packages and Reviews” on page 213.<br />
Source Integrity displays a lock change package ID (a change package<br />
assigned during a checkout) in priority over the member revision<br />
change package ID (the change package assigned during a check in)<br />
when Track Locks are enabled. For more information on Track Locks,<br />
see your administrator.<br />
The Member Information view displays information about a specified<br />
member.<br />
The Member Information dialog box presents the following information on<br />
the General panel:<br />
Member Name is the path and name of the member.<br />
u s e r g u i d e
Non-Members<br />
View<br />
Non-Members View<br />
Project/Sandbox Name is the path and name of the member’s project<br />
or sandbox.<br />
NOTE<br />
As part of the Change Package review process, if the member has a pending<br />
operation against it or one of its revisions, the information appears in a note,<br />
for example, This member has a pending update to member<br />
revision 1.2 by devans.<br />
Member Revision is the displayed member revision. To select another<br />
member revision, choose a revision from the Member Revision list.<br />
Created By is the name of the user who created the revision and the<br />
date and time it was created.<br />
Locked By is the name of the user who locked the revision, and the<br />
date and time it was locked.<br />
Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />
where the lock on the revision was made.<br />
State is the state assigned to the revision. To change the state of the<br />
revision, choose a state from the State list. For more information on<br />
states, see “Promoting Members” on page 299.<br />
Revision Description is a brief description of the revision. You cannot<br />
change an existing revision description from this dialog box, but you<br />
can append additional <strong>com</strong>ments to it. To do so, enter any<br />
supplemental information in the Revision Description field below the<br />
present information (indicated by a line if an existing description is<br />
present).<br />
For information on the Attributes tab, see “To view or edit member<br />
attributes in the graphical user interface” on page 290. For information on<br />
the Labels tab, see “To view or edit member labels in the graphical user<br />
interface” on page 292. For information on the Change Package tab, see<br />
“To view a member’s change package information in the graphical user<br />
interface” on page 230.<br />
The Non-Members view displays the following information:<br />
Closest Project displays the project or subproject, with file path,<br />
corresponding to the sandbox that is closest to the directory<br />
containing the file.<br />
Closest Sandbox displays the sandbox or subsandbox, with file path,<br />
that is closest to the directory containing the file.<br />
455
Appendix A: Views<br />
456<br />
Member ID displays the default member name for the file as it would<br />
appear if it was added to the nearest project. In the case where the<br />
nearest project is subproject, the relative path is displayed with the<br />
member name.<br />
Absolute Path displays the absolute file path of the file.<br />
Size displays the size of the file in bytes.<br />
Last Modified displays the date that the file was last modified.<br />
You can modify which columns appear in the Non-Members view by<br />
changing the Non-Members view preferences. For more information, see<br />
“View Preferences” on page 61.<br />
From the Non-Members view, the following operations can be performed:<br />
To add non-member files to the project, select the member in the list,<br />
then do one of the following:<br />
Select Non-Member > Add.<br />
Click .<br />
<br />
For more information, see “Adding Members to a Project” on<br />
page 157.<br />
To delete non-member files from the sandbox directory, select the<br />
members in the list, then do one of the following:<br />
Select Non-Member > Delete.<br />
Click .<br />
To edit non-member files, select the members in the list, then do the<br />
following:<br />
Select Non-Member > Edit.<br />
Click .<br />
To change the filter criteria, do one of the following:<br />
Select View > Filters.<br />
Click .<br />
For more information, see “Filtering Non-Member Files” on page 156.<br />
To refresh the contents of the view, select View > Refresh.<br />
u s e r g u i d e
Project View Project Views (GUI)<br />
TIP<br />
Project View<br />
To add non-member files to a project or subproject, drag the files from the<br />
Non-Members view to the sandbox or subsandbox that corresponds to that<br />
project or subproject in a Sandbox view.<br />
When you open a project, Source Integrity displays its contents in a Project<br />
view.<br />
A project is any group of files that, taken together, forms a single body of<br />
work. Projects are presented in Project views, which list the members of the<br />
project and provide access to them.<br />
Source Integrity allows you to create large projects <strong>com</strong>posed of smaller<br />
<strong>com</strong>ponent projects known as subprojects. Subprojects behave in the same<br />
way as projects. Once you create a subproject, it is considered a member of<br />
the project.<br />
The Project view displays project members and subprojects in a tree<br />
structure. You can expand and collapse a project or subproject tree using<br />
one of the following options:<br />
Double click the project or subproject.<br />
Click the plus or minus icons in the directory list.<br />
Right click the project or subproject, then select Expand All.<br />
Select View > Expand All or View > Collapse All.<br />
Select a member by clicking it or by moving the selector bar to it with the<br />
cursor control keys. Use the up and down arrows to move through the<br />
project hierarchy. Use the right arrow to open a project, revealing its<br />
members. Use the left arrow to close a project.<br />
457
Appendix A: Views<br />
458<br />
A box below the list of members displays all delta information: working<br />
file deltas, new revision (member) deltas, and revision sync deltas. For<br />
example, if the working file has been updated but not checked in, a<br />
message tells you that the working file has been changed.<br />
The information in Project view displays in columns with headings and<br />
icons. For information on how to configure the column set, see<br />
“Configuring the Source Integrity Column Set” on page 80.<br />
Depending on your view preferences, the columns displayed may be<br />
different than the default preferences described here. For more information<br />
on View Preferences, see “View Preferences” on page 61.<br />
The following list outlines the default column set and what they display:<br />
Name displays the following information:<br />
project or subprojects, for example, project.pj<br />
project members, for example, demoapp.c<br />
pending members (or rename to)<br />
pending dropped members (or rename from)<br />
shared subprojects<br />
build configured subprojects<br />
variant configured subprojects<br />
<br />
The working revision number displays when the working file revision<br />
is different from the member revision number.<br />
Working Rev. displays the checked out revision number<br />
corresponding to the member’s working file, for example, 1.2.<br />
Member Rev. displays the member’s revision number, or in the case of<br />
a subproject, the subproject revision number (if any), for example,<br />
1.3.<br />
In the column, a delta symbol with a white document icon<br />
( )means your working file has changed. It also appears when no<br />
working file exists for the member. A description of the changes is<br />
shown at the bottom of the window.<br />
In the column, a delta symbol with a blue striped document<br />
icon indicates that the working revision does not match the member<br />
revision. A description of the changes is shown at the bottom of the<br />
window.<br />
In the column, a snowflake icon means the member is frozen.<br />
When the member is thawed, the snowflake icon disappears.<br />
u s e r g u i d e
Project View<br />
Locked displays a member’s lock status with a padlock and the<br />
date and time the lock occurred and the name of the user who locked<br />
the member.<br />
Labels displays any labels assigned to the member revision, for<br />
example, Draft1.<br />
State displays the state of the member revision, for example, Beta.<br />
Member CPID displays the member’s associated change package ID,<br />
for example, 8230:3. For more information on change packages, see<br />
“Using Change Packages and Reviews” on page 213.<br />
Project View (Web)<br />
When you open a project using the Source Integrity Web interface,<br />
Source Integrity displays its contents in a Project view.<br />
The Project view displays subprojects and project members. You can open<br />
a project or subproject using either of the following options:<br />
Click the project or subproject link.<br />
From the File menu, click Open Project. From the list, select the project<br />
you want to open, and click OK. The list displayed contains only<br />
master projects, subprojects are not accessible by this procedure.<br />
To return to the project, click the project link displayed in the title bar, for<br />
example, Project: c:/Aurora_Program/project.pj.<br />
The information in the Project view displays in columns with the following<br />
headings and icons by default:<br />
459
Appendix A: Views<br />
Project History<br />
View<br />
460<br />
Name displays the following information:<br />
project or subprojects, for example, project.pj<br />
project members, for example, demoapp.c<br />
pending members (or rename to)<br />
pending dropped members (or rename from)<br />
Member Rev. displays the member’s revision number, or in the case of<br />
a subproject, the subproject revision number (if any), for example,<br />
1.3.<br />
In the column, a snowflake icon means the member is frozen.<br />
<br />
When the member is thawed, the snowflake icon disappears.<br />
Locked displays a member’s lock status with a padlock and the<br />
date and time the lock occurred and the name of the user who locked<br />
the member.<br />
Labels displays any labels assigned to the member revision, for<br />
example, Draft1.<br />
State displays the state of the member revision, for example, Beta.<br />
C.P. ID displays the member’s associated change package ID, for<br />
example, 8230:3. The change package ID is displayed as a hyperlink<br />
that displays the change package. For more information on change<br />
packages, see “Using Change Packages and Reviews” on page 213.<br />
Source Integrity displays a lock change package ID (a change package<br />
assigned during a checkout) in priority over the member revision<br />
change package ID (the change package assigned during a check in)<br />
when Track Locks are enabled. For more information on Track Locks,<br />
see your administrator.<br />
Project History View (GUI)<br />
When you open a project history, Source Integrity displays its contents in a<br />
Project History view. The default view for the Project History view is the<br />
Graphical History view, but you can toggle to the List view as well.<br />
For more information on using the Graphical view, see “Graphical History<br />
View (GUI)” on page 445.<br />
You can apply filters in the Project History view to view and manipulate a<br />
subset of revisions. For information on applying filters in the Project<br />
History view, see “Project History Filters” on page 264.<br />
u s e r g u i d e
Project History View<br />
For information on toggling between the Graphical History view and the<br />
List view in the Project History view, see “Changing Views (GUI)” on<br />
page 449.<br />
The information in the List view of the Project History view displays in<br />
columns with headings. For information on how to configure the column<br />
set, see “Configuring the Source Integrity Column Set” on page 80.<br />
Depending on your view preferences, your Project History view displays<br />
may be different than the default preferences described here. For more<br />
information on View Preferences, see “View Preferences” on page 61.<br />
The following outlines the default column set and what they display:<br />
Revision is the revision number.<br />
Author is the user who made a checkpoint of the project revision.<br />
Date is the date and time the project revision was checkpointed.<br />
Labels are the labels attached to the revision, for example, Bug Fixes.<br />
State is the revision’s state, for example, Beta.<br />
Select a revision by clicking it or moving the selector bar to it with the<br />
cursor keys.<br />
A box below the list of revisions displays the revision description for the<br />
currently selected revision. As you move the selector bar from one revision<br />
to another, the description changes to reflect the currently selected<br />
revision.<br />
461
Appendix A: Views<br />
Project<br />
Differences<br />
View<br />
462<br />
The Project History view can be resized within the Source Integrity<br />
application window’s workspace or reduced to an icon in the application<br />
window.<br />
The Project History view also supports standard shortcut menus. Selecting<br />
and right clicking an archive revision in a Project History view displays a<br />
menu of actions you can perform on the selected item.<br />
Project History View (Web)<br />
When you open a project history, the Source Integrity Web interface<br />
displays its contents in a Project History view.<br />
The information in a Project History view displays in columns.<br />
The column headings are as follows:<br />
Revision is the revision number of the member.<br />
Author is the user who checkpointed the project revision.<br />
Date is the date and time the project revision was checkpointed.<br />
Labels are the labels attached to the revision, for example, Bug Fixes.<br />
State is the revision’s state, for example, Beta.<br />
The Project Differences view displays project differences between<br />
checkpoints of project. The changes to a project and its members are not<br />
tracked as they happen, but rather the View Project Differences <strong>com</strong>mand<br />
takes two checkpoints (or one checkpoint and the current version) of the<br />
project and then <strong>com</strong>pares them.<br />
u s e r g u i d e
Project Differences View<br />
The View Project Differences <strong>com</strong>mand can <strong>com</strong>pare the following:<br />
two specified revisions of the project<br />
the current revision of the project with a specified revision<br />
the current version of the project with the last checkpointed revision<br />
For more information, see “Viewing Project Differences” on page 275.<br />
By Member Panel<br />
The By Member panel displays the following information:<br />
Name displays name of the project, subproject, or member changed.<br />
Change displays the operation performed on the member or<br />
subproject, and the resulting revision number.<br />
Selecting a member entry displays the following information:<br />
Revision displays the member’s revision number.<br />
Author displays the author of the revision.<br />
Date displays the date each revision in the history was created.<br />
Labels displays revision labels.<br />
State displays the state of the member revision.<br />
C.P. ID displays the revision’s associated change package ID.<br />
NOTE<br />
Members that were checked in between the two checkpoints without updating<br />
the revision number do not appear in the Project Differences view, and do not<br />
display change package information in the By Change Package panel.<br />
463
Appendix A: Views<br />
Project<br />
Information<br />
View<br />
464<br />
By Change Package Panel<br />
Change package information displayed on the By Change Package panel is<br />
drawn from the modifications calculated from the checkpoint <strong>com</strong>parison.<br />
The By Change Package panel displays the following information:<br />
ID displays the change package ID for change packages that contain<br />
entries with member changes between project revisions<br />
Summary displays the change package summary for change packages<br />
that contain entries with member changes between project revisions.<br />
Modifications that are not associated with a change package (unresolved)<br />
are displayed in the bottom frame of the By Change Package panel. Where<br />
possible, the member or project name is displayed with full path<br />
information.<br />
The following are reasons why modifications can appear in the bottom<br />
frame:<br />
The change package entry is missing; either because one was not<br />
recorded for the member operation, or the entry was discarded.<br />
The operation that made the modification cannot use a change<br />
package, for example, adding a subproject.<br />
The project state captures <strong>com</strong>pared are from different development<br />
paths.<br />
Pending change package entries do not appear in the By Change Package<br />
panel.<br />
The Project Information view displays information for a specified project.<br />
u s e r g u i d e
Registered<br />
Projects View<br />
The General tab displays the following project information:<br />
Project Name is the path and name of the project.<br />
Registered Projects View<br />
Shared From appears only if the project you selected is a shared<br />
subproject and displays the path and name of the project where the<br />
shared subproject originated. For information on Shared Subprojects,<br />
see “Adding a Shared Subproject” on page 127.<br />
Server is the Integrity Server name and port number where the project<br />
resides.<br />
Development Path displays the development path name (if a variant<br />
project on a development path, or project contains a variant subproject<br />
on a development path).<br />
Revision is the project’s current revision number.<br />
Last Checkpointed is the last date and time the project was<br />
checkpointed.<br />
Members is the number of members in the project, not including<br />
subprojects.<br />
Subprojects is the number of subprojects in the project.<br />
Description is a free-form text description of the master project. Edit<br />
the existing description, or enter a new description.<br />
For information about the Attributes tab, see “Working With Project<br />
Attribute Information” on page 259. For information about the<br />
Development Paths tab, see “Working With Development Path<br />
Information” on page 261.<br />
Registered Projects View (GUI)<br />
From the Registered Projects view you can open, create, import, and drop<br />
projects.<br />
When you switch views from a Registered Projects view to another dialog<br />
box or window, the Registered Projects view is no longer visible, but it is<br />
still accessible from the taskbar.<br />
The Registered Projects view contains one tab, Regular, that displays<br />
projects used for regular development.<br />
465
Appendix A: Views<br />
466<br />
The Registered Projects view supports standard shortcut menus. To<br />
display the menu of actions you can perform, select a project or sandbox<br />
and right click. Source Integrity displays the applicable shortcut menu.<br />
Registered Projects View (Web)<br />
The Registered Projects view allows you to view the projects and project<br />
histories that are available on the Integrity Server.<br />
The Registered Projects view displays all regular projects used for<br />
development.<br />
To view the Registered Projects view, select Tools > Manage Projects or<br />
click .<br />
u s e r g u i d e
Registered<br />
Sandboxes<br />
View<br />
Registered Sandboxes View<br />
From the Registered Sandboxes view you can open, create, import, and<br />
drop sandboxes.<br />
When you switch views from a Registered Sandboxes view to another<br />
dialog box or window, the Registered Sandboxes view is no longer visible,<br />
but it is still accessible from the taskbar.<br />
The Registered Sandboxes view contains three tabs that display the<br />
following different types of sandboxes:<br />
Regular is a sandbox used for normal or main project development.<br />
Variant is a sandbox used for branching off the main development<br />
path of a project.<br />
Build is a sandbox based upon a specific revision of a project, typically<br />
used as a reference for building or testing the project. It is not suitable<br />
for further development due to limited project modification abilities.<br />
NOTE<br />
Sandboxes based on configured subprojects do not appear with a configuration<br />
icon in the Registered Sandboxes view. For more information on configured<br />
subprojects, see “Configuring a Subproject” on page 131.<br />
The Registered Sandboxes view supports standard shortcut menus. To<br />
display the menu of actions you can perform, select a project or sandbox<br />
and right click. Source Integrity displays the applicable shortcut menu.<br />
467
Appendix A: Views<br />
Revisions<br />
Information<br />
View<br />
468<br />
The Revision Information view displays information for a specified<br />
revision.<br />
The General tab displays the following information:<br />
Member Name is the path and name of the member.<br />
Project/Sandbox Name is the path and name of the member’s project<br />
or sandbox.<br />
Revision is the revision corresponding to the displayed information. If<br />
the revision is pending, then pending appears in parenthesis (see<br />
“Working With Pending Revisions” on page 335).<br />
Created By is the name of the user who created the revision, and the<br />
date and time it was created.<br />
Locked By is the name of the user who locked the revision, and the<br />
date and time it was locked.<br />
Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />
where the lock on the revision was made.<br />
State is the state assigned to the member. To apply a different state to<br />
the member, choose a state from the State list.<br />
Revision Description is a brief description of the revision. You cannot<br />
change an existing revision description from this dialog box, but you<br />
can append additional <strong>com</strong>ments to it. To do so, enter any<br />
supplemental information in the Revision Description field below the<br />
present information (indicated by a line if an existing description is<br />
present).<br />
u s e r g u i d e
Sandbox View<br />
Sandbox View<br />
For information on the Labels tab, see “To view or edit member labels in<br />
the graphical user interface” on page 292. For information on the<br />
Change Package tab, see “To view a member’s change package<br />
information in the graphical user interface” on page 230.<br />
When you open a sandbox, Source Integrity displays its contents in a<br />
Sandbox view.<br />
Sandboxes can reside on the client machines and allow you to work locally<br />
in your own workspace, without interfering with the work of others. You<br />
can think of the sandbox as a local pointer to the project residing on the<br />
Integrity Server. A sandbox is a mirror image of a Source Integrity project.<br />
Although it looks and acts like the project it mirrors, it is actually a<br />
collection of pointers to its real-life counterparts in the master project.<br />
The Sandbox view displays project members, and subsandboxes in a tree<br />
structure. You can expand and collapse a project, sandbox, and<br />
subsandbox tree using one of the following options:<br />
Double click the sandbox or subsandbox.<br />
Click the plus or minus icons in the directory list.<br />
Right click the sandbox or subsandbox and select Expand All.<br />
Select View > Expand All or View > Collapse All.<br />
Select a member by clicking it or by moving the selector bar to it with the<br />
cursor control keys. Use the up and down arrows to move through the<br />
project or sandbox hierarchy. Use the right arrow to open a project or<br />
sandbox, revealing its members. Use the left arrow to close a project or<br />
sandbox.<br />
A box below the list of members displays all delta information: working<br />
file deltas, new revision (member) deltas, and revision sync deltas. For<br />
example, if the working file has been updated but not checked in, a<br />
message tells you that the working file has been changed.<br />
469
Appendix A: Views<br />
470<br />
The information in Sandbox views is displayed in columns with headings<br />
and icons. For information on how to configure the column set, see<br />
“Configuring the Source Integrity Column Set” on page 80.<br />
Depending on your view preferences, the columns displayed may be<br />
different than the default preferences described here. For more<br />
information, see “View Preferences” on page 61.<br />
The following list outlines the default column set and what they display:<br />
Name displays the following information:<br />
sandbox or subsandboxes, for example, project.pj<br />
sandbox members, for example, demoapp.c<br />
deferred members<br />
deferred dropped members<br />
pending members (or rename to)<br />
pending dropped members (or rename from)<br />
shared subprojects<br />
build configured subprojects<br />
variant configured subprojects<br />
<br />
The working revision number displays when the working file revision<br />
is different from the member revision number.<br />
Working Rev. displays the checked out revision number<br />
corresponding to the member’s working file, for example, 1.2. If it is a<br />
pending revision, pending appears in parenthesis, for example,<br />
1.2 (pending).<br />
Member Rev. displays the member’s revision number, or in the case of<br />
a subproject, the subproject revision number (if any), for example,<br />
1.3.<br />
In the column, a delta symbol with a white document icon<br />
( )means your working file has changed. It also appears when no<br />
working file exists for the member. A description of the changes is<br />
shown at the bottom of the window.<br />
In the column, a delta symbol with a blue striped document<br />
icon indicates that the working revision does not match the member<br />
revision. A description of the changes is shown at the bottom of the<br />
window.<br />
In the column, a snowflake icon means the member is frozen.<br />
When the member is thawed, the snowflake icon disappears.<br />
u s e r g u i d e
Sandbox<br />
Information<br />
View<br />
Sandbox Information View<br />
Locked displays a member’s lock status with a padlock and the<br />
date and time the lock occurred and the name of the user who locked<br />
the member.<br />
Labels displays any labels assigned to the member revision, for<br />
example, Draft1.<br />
State displays the state of the member revision, for example, Beta.<br />
Working CPID (sandbox only) displays the change package associated<br />
with a deferred or a lock operation performed by the current user<br />
from the current sandbox. A icon is displayed beside the change<br />
package ID.<br />
Member CPID displays the member’s associated change package ID,<br />
for example, 8230:3. For more information on change packages, see<br />
“Using Change Packages and Reviews” on page 213.<br />
The Sandbox Information dialog box is displayed.<br />
The General tab displays the following general sandbox information:<br />
Sandbox Name is the path and name of the sandbox.<br />
Project Name is the path and name of the master project.<br />
Server is the Integrity Server name and port number where the master<br />
project resides.<br />
Revision is the master project’s current revision number.<br />
Last Checkpointed is the last date and time the master project was<br />
checkpointed.<br />
471
Appendix A: Views<br />
472<br />
Members is the number of members in the sandbox.<br />
Subsandboxes is the number of subsandboxes in the sandbox.<br />
Sparse setting determines if the selected sandbox is a sparse sandbox.<br />
Shared setting determines if the selected sandbox is a shared sandbox.<br />
Line Terminator setting determines the type of ASCII character<br />
Source Integrity recognizes as the end of a line of text: Native (or<br />
automatic, the default setting), LF (or line feed, primarily for UNIX<br />
applications), or CR/LF.<br />
Project Description is a description of the master project.<br />
For information on the Project Attributes tab, see “Viewing Project<br />
Attributes From a Sandbox” on page 281. For information on the Sandbox<br />
Attributes tab, see “Viewing Sandbox Attributes” on page 282.<br />
u s e r g u i d e
$ 3 3 ( 1 ' , ;<br />
Glossary of Terms<br />
B<br />
A project is any group of files that, taken together, forms a single body of<br />
work. Projects are presented in Project views, which list the members of the<br />
project and provide access to them.<br />
Access Control List See ACL.<br />
ACL An Access Control List (ACL) is a collection of entries that permits<br />
or limits entry to the functionality of a software program or server. The<br />
Access Control List allows the administrator to manage user access by<br />
requiring authentication of the user’s identity or membership in a<br />
predefined group. Access is then granted according to the assigned<br />
permissions. See principals, permissions.<br />
administrator The administrator installs Source Integrity; defines and<br />
customizes projects and policies; and creates and manages user accounts,<br />
allowing users to access the program.<br />
annotated revision Source Integrity provides an annotated revision view<br />
for member revisions. Use it when you want to investigate the reason and<br />
circumstances a revision was introduced or changed. Rather than searching<br />
the content of revisions in the history one revision at a time, you can see the<br />
content and information for all of the revisions in an annotated list.<br />
archive description The archive description contains text that describes<br />
the purpose of an archive. Each time you create an archive, you can assign<br />
to it a description.<br />
archive information Just as it maintains information about each project<br />
member, Source Integrity also maintains historical information about each<br />
member archive called archive information. This information, includes<br />
revision labels, users who have locks on revisions in the archive, the starting<br />
point of the default branch revision, the data type (text or binary), whether<br />
the archive is <strong>com</strong>pressed, whether strict-locking applies to the archive, and<br />
a description of the archive.<br />
archive An archive is a file containing the history of a member (a record<br />
of all the changes made to it since it was put under revision control). From<br />
the information contained in the history, Source Integrity can reconstruct<br />
any previous version of the member. The archive is sometimes referred to<br />
as the RCS file, for historical reasons.<br />
473
Appendix B: Glossary of Terms<br />
474<br />
author name The author name is the name you associate with revisions<br />
upon check in. By default, your author name is your user name.<br />
binary file A binary file contains unprintable characters, or lines too long<br />
to be handled by text editors.<br />
branch A branch is a revision path that diverges from the main line of<br />
development (or trunk) in a member or project history. A branch is typically<br />
created by checking in a file to a revision other than the head revision. The<br />
most recent revision of a branch in a history is called the tip revision. When<br />
you branch a member the working revision number is appended to indicate<br />
the branch. For example, the member features.txt at revision 1.2 is<br />
branched and appears with the working revision number 1.2.1.1.<br />
build project A Build project is a static project based upon a specific<br />
revision of the master project. It is used for building or testing the project,<br />
but not for further development.<br />
change package review A change package review is a review of changes<br />
by specified reviewers before the changes are <strong>com</strong>mitted to the server<br />
repository.<br />
change package reviewer A change package reviewer is a user specified<br />
by your administrator to review change packages containing members<br />
associated with specific projects. The reviewer may be individually<br />
specified, or a member of a specified reviewer group. In the case of a<br />
reviewer group, any member of that group casts an accept or reject vote on<br />
behalf of the entire group.<br />
change package watcher A change package watcher is a user specified by<br />
your administrator who is notified when a reviewed change package is<br />
closed after being successfully <strong>com</strong>mitted to the repository. Change<br />
package watchers may be individually specified, or a member of a specified<br />
watcher group.<br />
change package A change package is a group of changes made by a single<br />
user which can be considered a logical unit of work. Only the creator of a<br />
change package may add entries to that change package. Change package<br />
entries take the form of operations, both deferred and <strong>com</strong>mitted. When<br />
reviews are mandatory, change package entries take the form of pending<br />
entries before they are <strong>com</strong>mitted.<br />
check in checking in a member creates a new revision of a member and<br />
adds it to the member history. When a member is checked in to a revision<br />
other than the head revision or a branch tip revision, a new branch is<br />
created.<br />
checkpointing Checkpointing a project creates a new revision of the<br />
project and adds it to the project history. When you checkpoint a project,<br />
you save all the information needed to recreate the project <strong>com</strong>pletely at<br />
any time in the future. The saved information includes the project structure<br />
and the list of members with their revision numbers.<br />
u s e r g u i d e
Glossary of Terms<br />
<strong>com</strong>mand line interface The <strong>com</strong>mand line interface, or CLI, is a program<br />
that allows a user to enter keywords as instructions to a <strong>com</strong>puter or device<br />
to perform specific tasks. (The MS-DOS® Command Prompt is an example<br />
of a CLI.) Results are typically outputted as simple text to the user’s<br />
terminal.<br />
default editor The default editor is the editor used to display a working<br />
file or revision, for example, Microsoft Windows Notepad or MKS Toolkit’s<br />
vi for Windows editor.<br />
deferred member A deferred member is a member that is associated with<br />
any deferred operation (add, drop, check in, rename). A deferred member<br />
appears in the sandbox, but the deferred operation is not shown in the<br />
project until the deferred operation is submitted.<br />
delta The set of differences (stored in a history) between one revision and<br />
its immediate ancestor, is known as a delta. Using deltas, the program can<br />
reconstruct the exact contents of any revision without having to store<br />
<strong>com</strong>plete copies. Known also as reverse delta storage, it is the standard RCS<br />
format for archives.<br />
demoting You can demote a revision by changing its promotion state<br />
setting from a higher level to a lower one.<br />
development path A development path is an identifier given to a new<br />
branch of software development. Changes made through the new<br />
development path are kept separate from the main development trunk<br />
unless you choose to merge them later.<br />
drop (a project or sandbox) To drop a project or sandbox means that the<br />
project or sandbox is no longer registered with the Integrity Server. Once a<br />
project or sandbox is dropped, it cannot be accessed with Source Integrity.<br />
However, if the project or sandbox is not deleted and you can import it<br />
again if you want it to be accessible in Source Integrity.<br />
Federated Server Architecture MKS Federated Server Architecture is an<br />
implementation of the Integrity Server structured to serve client requests<br />
through a proxy. The proxy provides access to project members residing on<br />
the Integrity Server by retrieving information from its local cache or, if<br />
changes are detected, directly from the server.<br />
former member A former member is one dropped from the project.<br />
Source Integrity retains the member history for former members as part of<br />
the project. Depending on the options you select when dropping the<br />
member, Source Integrity can also delete the member’s working file and<br />
close any associated change package.<br />
freezing (a member) Freezing a member places it in a state that prevents<br />
changes from being made to the member information that resides in the<br />
project file. For example, you cannot update the member revision or change<br />
the attributes of a frozen member. Freezing is the opposite of thawing a<br />
member.<br />
475
Appendix B: Glossary of Terms<br />
476<br />
graphical user interface (GUI) The graphical user interface, or GUI, is a<br />
program interface that uses a number of visual <strong>com</strong>ponents (such as icons,<br />
pointers, and pull-down menus) to execute <strong>com</strong>mands. Working in a GUI<br />
allows the user to give instructions to the <strong>com</strong>puter without having to learn<br />
a specific <strong>com</strong>mand language.<br />
Head revision The head revision is the tip revision on the default branch,<br />
or the trunk, if no default branch is defined.<br />
importing (a project, sandbox, or member) Importing a project, sandbox,<br />
or member registers it with the Integrity Server. Once a project, sandbox, or<br />
member is imported, Source Integrity <strong>com</strong>mands can be performed upon it.<br />
Integrated Development Environment (IDE) An Integrated<br />
Development Environment, or IDE, is a supported development<br />
application, such as Sybase PowerBuilder, that allows you to access<br />
Source Integrity functionality by installing the appropriate extension.<br />
issues Issues track changes in the software development cycle. For<br />
example, your administrator can configure Integrity Manager in a way that<br />
a problem issue may be associated with a solution issue for easy tracking<br />
and monitoring of both issues. Each issue has an audit trail, which may be<br />
used to evaluate internal processes for the effectiveness of the problem<br />
resolution process. In effect, issues track all aspects of any engineering<br />
endeavor.<br />
keyword expansion Keyword expansion is the process of automatically<br />
adding or updating information to a keyword reference when a revision is<br />
checked out or viewed.<br />
keyword A keyword is a placeholder that can be inserted into text-based<br />
working files. This placeholder is a special variable (for example, $Date$,<br />
$Author$, $State$) used to represent textual information in a working<br />
file. Keywords can be expanded (that is, replaced with their literal values)<br />
when a revision is checked out.<br />
locker The person who has a revision locked is referred to as the locker.<br />
locking Locking a member prevents more than one user from<br />
simultaneously making changes to the same revision. When a revision is<br />
locked, no one other than the locker can check in changes to that revision.<br />
metadata Metadata is <strong>com</strong>posed of all of the information about a revision<br />
or archive, as opposed to the information that is part of the object. For<br />
example, a revision’s Revision Description is metadata since it is<br />
information about the revision, while the contents of the revision is part of<br />
the revision itself and, hence, is not metadata.<br />
pending member A pending member, is a member that is associated with<br />
a pending operation that adds it to the project. The pending member is<br />
denoted by a pending icon displayed in the Name column of the Sandbox<br />
and Project views. The following are <strong>com</strong>mands that create pending<br />
members: Import, Add, Add From Archive, Rename To.<br />
u s e r g u i d e
Glossary of Terms<br />
pending operations Pending operations are operations whose proposed<br />
changes reside on the server, but have not been <strong>com</strong>mitted to the repository.<br />
pending revision Pending revisions are created by Source Integrity when<br />
a change package containing deferred operations is submitted. Pending<br />
revisions are also created when reviews are mandatory and an operation<br />
that creates a new revision is performed without deferral (see the<br />
documentation for the desired operation for more information).<br />
permissions Permissions are a collection of pre-defined functionality and<br />
operations that can be assigned to users, granting access to certain<br />
Source Integrity tasks. The set of assigned permissions determines each<br />
user’s access to the various functions of Source Integrity. If a user is not<br />
granted the permission, that user is not able to <strong>com</strong>plete the task. For<br />
example, checking out files in Source Integrity requires the<br />
FetchRevision and Lock permissions.<br />
Project History view The Project History view is a window that displays<br />
the revision history of a project, including details on the revision number,<br />
author, date, labels, and promotion state of the project.<br />
project member A project member is any file that is included in a project.<br />
Project members are displayed in the Project view.<br />
Project view The Project view displays the members and subprojects of a<br />
project.<br />
project A project is any group of files that, taken together, forms a single<br />
body of work. Projects are presented in Project views, which list the<br />
members of the project and provide access to them.<br />
promoting Promotion is the process of managing data as it moves<br />
through a structured development cycle. Any project (whether it is software<br />
development, document production, or any other type of data<br />
management) goes through recognizable phases: from inception, through<br />
development, testing, quality assurance, and <strong>com</strong>pletion.<br />
Promotion is the process of managing data as it moves through a structured<br />
development cycle. Each phase is represented by states that are defined by<br />
the administrator. Project members can also be demoted to a predefined<br />
lower state.<br />
Reports Reports are summaries of the data in your project. Reports are<br />
based on the standard and custom fields of issue types. Reports can be<br />
customized to include images, fonts, hyperlinks, and can be saved as HTML<br />
files for viewing on the Web.<br />
477
Appendix B: Glossary of Terms<br />
478<br />
Resolution change package A resolution change package is a specialized<br />
change package that records all applied change packages, resolved<br />
conflicts, checked in modified files, and conflicts resolved by merging. A<br />
resolution change package is applied when an Apply CP operation has<br />
failed due to unresolved conflicts that require merging. Resolution change<br />
packages are created through the Resync CP operation and cannot be<br />
manually created by the user.<br />
resynchronizing To update out of sync working files to the most current<br />
member revisions, you resynchronize the members.<br />
reverting Reverting a member discards any changes made to a member’s<br />
working file since it was checked out, and then unlocks it.<br />
revision description A revision description is text that be<strong>com</strong>es a<br />
permanent part of the archive’s metadata. It allows you to provide a record<br />
of the changes you made and why you made them. This can be of great<br />
value to you or other team members if it ever be<strong>com</strong>es necessary to revise<br />
or update the member.<br />
revision label A revision label is a textual name that describes and refers<br />
to revisions in a history. When a file is checked in, you are given the option<br />
of assigning it a revision label. Revisions in a history can be displayed and<br />
selected either by revision number or revision label.<br />
revision number Each revision is assigned a unique revision number<br />
used to identify a revision in a history. Revisions on the trunk are numbered<br />
as two-part decimals (such as, 1.1, 1.2, 1.3, 1.4, …). Revisions on a branch are<br />
numbered by adding two-part decimals to the number of the revision they<br />
branch from. For example, if a branch is started from revision 1.3, its<br />
revisions would be numbered 1.3.1.1, 1.3.1.2, 1.3.1.3, and so on.<br />
revision A revision is a version of a file and is contained in a history. A<br />
new revision is produced in the history each time a working file is checked<br />
in.<br />
Sandbox view The Sandbox view displays the members and<br />
subsandboxes of a single sandbox.<br />
sandbox Sandboxes can reside on the client machines and allow you to<br />
work locally in your own workspace, without interfering with the work of<br />
others. You can think of the sandbox as a local pointer to the project residing<br />
on the Integrity Server. A sandbox is a mirror image of a Source Integrity<br />
project. Although it looks and acts like the project it mirrors, it is actually a<br />
collection of pointers to its real-life counterparts in the master project.<br />
Sandboxes can reside on the client machines and allow you to work locally<br />
in your own workspace, without interfering with the work of others. You<br />
can think of the sandbox as a local pointer to the project residing on the<br />
Integrity Server. A sandbox is a mirror image of a Source Integrity project.<br />
Although it looks and acts like the project it mirrors, it is actually a<br />
collection of pointers to its real-life counterparts in the master project.<br />
u s e r g u i d e
Glossary of Terms<br />
shared sandbox Source Integrity provides a way to create a <strong>com</strong>mon<br />
build location using shared sandboxes. Shared sandboxes provide<br />
developers and buildmasters with a window into a single shared work<br />
location.<br />
shared subproject A shared subproject is a subproject that is a member of<br />
more than one project. Source Integrity allows you to share a subproject<br />
between two or more projects by referencing the original subproject. A<br />
shared subproject allows you to access <strong>com</strong>mon members across many<br />
projects. Shared subprojects are not required to be located within the same<br />
directory structure or project hierarchy.<br />
snapshot A snapshot is a capture of the current state of a sandbox, where<br />
each element in the sandbox can be identified with a pre-existing entity in<br />
the repository on the Integrity Server. The sandbox snapshot creates a<br />
standard project revision from which a build sandbox can be created and a<br />
development path assigned. The project revision number takes the form of<br />
a branched revision in the project history. For example, if the head revision<br />
of the project is 1.1, then the project revision created by the snapshot will be<br />
1.1.1.1.<br />
sparse sandbox A sandbox with no working files. A sparse sandbox does<br />
not retain working files even when a member is checked in, and continues<br />
to function this way throughout its use.<br />
state A state is free-form text used to classify the condition of a revision in<br />
a member history. For example, a document could initially have a state of<br />
“Draft”. As work progresses it might be changed to “Review” and<br />
eventually “Complete”. If no state is assigned to a revision, a default value<br />
of “Exp” (for Experimental) is used.<br />
strict locking Strict locking is a policy that enforces users to have a lock on<br />
a revision to perform a check in operation.<br />
subproject Source Integrity allows you to create large projects <strong>com</strong>posed<br />
of smaller <strong>com</strong>ponent projects. These smaller projects are known as<br />
subprojects. Subprojects behave in the same way as projects, and can be<br />
accessed with most project and sandbox <strong>com</strong>mands.<br />
subsandbox A subsandbox is a sandbox within a sandbox. Subsandboxes<br />
are typically smaller <strong>com</strong>ponents of a sandbox, such as documentation or<br />
graphic files.<br />
Super Reviewer A Super Reviewer is a user with permission to vote on<br />
change packages that the user is not a listed reviewer for. Voting as a super<br />
reviewer overrides all other votes, for example casting an accept vote as a<br />
super reviewer is sufficient for accepting the change package.<br />
thawing Thawing a member removes the restriction on changing member<br />
information in the project and makes previously checked in member<br />
information available to the project. Thawing a member is the opposite of<br />
freezing a member.<br />
479
Appendix B: Glossary of Terms<br />
480<br />
tip revision The tip revision is the most recent revision on a branch in a<br />
history.<br />
trunk The trunk is the primary line of a file’s change history in a history.<br />
The first member of the trunk is always the original file checked into the<br />
archive.<br />
type (project member) Project members may be one of following types of<br />
files: archived (files under Source Integrity revision control), or subproject<br />
(another Source Integrity project).<br />
updating a member revision Within the graphical user interface, you can<br />
use the Update Member Revision option when you are checking in a member<br />
to ensure the most recent revision of each member is added to the list of<br />
members in the project. If the option is not enabled, the project list might not<br />
reflect the most current revision of each member’s history.<br />
user A user is anyone who needs to work with Source Integrity projects.<br />
variant sandbox While a regular sandbox is based on the current state of<br />
the project, a variant sandbox is based on a previously checkpointed<br />
revision of the project. When you create a variant sandbox, you choose a<br />
checkpoint (snapshot) of your project and use it as the starting point for a<br />
new branch of development. Source Integrity allows you to do this by<br />
defining a new development path.<br />
Web interface The Web interface is a program interface that appears in a<br />
Web browser, such as Netscape Navigator and Microsoft Internet Explorer.<br />
Working in a Web interface offers the familiar functionality of a Web<br />
browser with no client installation required.<br />
working file A working file is a file that contains a working copy of a<br />
checked out revision. <strong>User</strong>s edit and change the working file, not the<br />
revision itself. Changes to the working file are added to the history (as a<br />
new revision) when the working file is checked in.<br />
u s e r g u i d e
Index<br />
A<br />
access control list<br />
described 31<br />
understanding ACLs 31<br />
access keys<br />
graphical user interface 79<br />
access permission 30<br />
ACL<br />
See access control list<br />
adding<br />
change package entries 219<br />
label<br />
to member 297<br />
to project 265<br />
to revision 320<br />
member<br />
deferred 158<br />
to project 157<br />
to project from archive 166<br />
subproject 125<br />
administrator<br />
described 1<br />
all members<br />
filter 87, 97<br />
annotated revision 316<br />
any member delta<br />
filter 87<br />
application window<br />
graphical user interface 76<br />
Web interface 95<br />
applying change package 381<br />
backfill list 391<br />
backfill option 394<br />
<strong>com</strong>mand option 403<br />
GUI <strong>com</strong>mand 398<br />
key concept 388<br />
overview 383<br />
process 389<br />
architecture<br />
server 13<br />
archive<br />
information<br />
editing 312<br />
viewing 312<br />
archive description<br />
described 160<br />
assigning<br />
revision description 187<br />
revision number 186<br />
attribute<br />
project 259<br />
Author keyword 210<br />
B<br />
backfill list<br />
Apply CP 391<br />
Apply CP option 394<br />
Resync CP 409<br />
Resync CP option 413<br />
before starting<br />
access control lists 31<br />
access permission 30<br />
Source Integrity 30<br />
binary file 18<br />
<strong>com</strong>paring 18<br />
described 18<br />
branch<br />
described 338<br />
ignore 416<br />
merge on 415<br />
merging 345<br />
by dragging 348<br />
on check in 343<br />
on check out 350<br />
on resync 352<br />
renaming member on branch 194<br />
starting during check in 186<br />
branching<br />
on check out 338<br />
browser requirements 24<br />
481
Index<br />
build project<br />
opening 265<br />
build sandbox<br />
creating 135<br />
described 150<br />
C<br />
canceling deferred operation 203<br />
change<br />
scanning sandbox for 185<br />
change package<br />
accepting 245<br />
adding entries 219<br />
to an issue 376<br />
Apply CP process 389<br />
applying 381<br />
<strong>com</strong>mand option 403<br />
GUI <strong>com</strong>mand 398<br />
key concept 388<br />
closing 235<br />
creating 217<br />
for an issue 375<br />
discarding 236<br />
editing 233<br />
entries<br />
differences 255<br />
discarding 254<br />
moving 252<br />
types 220<br />
explained 214<br />
finding 222<br />
using query 378<br />
managing 220<br />
methodology 382<br />
opening 249<br />
rejecting 247<br />
resolution<br />
creating 434<br />
GUI <strong>com</strong>mand 434<br />
key concepts 430<br />
process 431<br />
using 432<br />
Resync CP process 408<br />
resynchronizing 406<br />
by CP 436<br />
<strong>com</strong>mand option 423<br />
example 437<br />
GUI <strong>com</strong>mand 418<br />
key concept 407<br />
submitting 238<br />
482<br />
using to control development 216<br />
viewing 226<br />
associated issue 376<br />
viewing reviews 250<br />
why to use 215<br />
workflow 242<br />
check in 14, 18<br />
check out 14, 17<br />
checking in<br />
member 186<br />
merging on check in 343<br />
checking out<br />
automatic merging on check out 350<br />
branching 338<br />
member 178<br />
checkpointing 19<br />
project 19, 269<br />
CLI<br />
described 98<br />
using graphical user interface 98<br />
closing<br />
change package 235<br />
client 73<br />
client session 72<br />
columns<br />
configuring 80<br />
<strong>com</strong>mand<br />
ident 210<br />
option<br />
Apply CP 403<br />
Resync CP 423<br />
preferences 48<br />
syntax 99<br />
viewing 98<br />
<strong>com</strong>mand prompts<br />
described 99<br />
CompanyInfo keyword 210<br />
<strong>com</strong>paring<br />
project 20<br />
revision 331<br />
working file to member revision 205<br />
concept<br />
checkpointing project 19<br />
delta 18<br />
development path 21<br />
file and object history 15<br />
integrated development environment<br />
project 14<br />
project member 17<br />
sandbox 14<br />
Source Integrity 13<br />
variant 21<br />
u s e r g u i d e
configuration management 14<br />
configuration options 19<br />
configuring<br />
client environment variable 29<br />
graphical user interface<br />
main toolbar 82<br />
Source Integrity 40<br />
subproject 131<br />
conflict<br />
viewing in Visual Merge 361<br />
connecting<br />
preferences 43<br />
to multiple servers 39<br />
to server 36<br />
content<br />
reconstructing revision 18<br />
creating<br />
build sandbox 135<br />
change package 217<br />
for an issue 375<br />
development path 147<br />
project 116<br />
report 307<br />
sandbox 135<br />
shared subproject 127<br />
subproject 124<br />
variant sandbox 135<br />
customer support<br />
getting help 8<br />
D<br />
Date keyword 210<br />
deferred item<br />
filter 89<br />
deferred member<br />
described 201<br />
deferred operation 200<br />
adding member 157<br />
adding member from archive 168<br />
canceling 196, 203<br />
checking in member 186<br />
dropping member 172<br />
import 172<br />
renaming member 194<br />
resynchronizing 197, 203<br />
reverting 196, 203<br />
submitting 202<br />
updating a member’s revision 295<br />
deleting<br />
member label 298<br />
project label 266<br />
revision 331<br />
delta<br />
described 18<br />
storing 18<br />
demoting<br />
project 268<br />
revision 324<br />
development<br />
integrated environment 22<br />
object 17<br />
path 21<br />
creating 147<br />
described 146<br />
editing 261<br />
removing 149<br />
viewing 261<br />
difference<br />
project 20, 275<br />
differencing<br />
change package entries 255<br />
third party differencing tool 69<br />
tool preferences 69<br />
Visual Difference 100<br />
editing merge results 359<br />
merging 356<br />
mode 104<br />
panes 103<br />
preferences 105<br />
reverting merge results 359<br />
saving merge results 360<br />
working with 356<br />
discarding<br />
change to working file 196<br />
disconnecting<br />
from multiple servers 40<br />
from server 72<br />
documentation<br />
format<br />
man 4<br />
online help 4<br />
PDF 4<br />
print 4<br />
related 4<br />
dropping<br />
member 172<br />
project 119<br />
described 119<br />
sandbox 143<br />
described 143<br />
subproject 133<br />
Index<br />
483
Index<br />
E<br />
editing<br />
archive information 312<br />
change package 233<br />
development path information 261<br />
member 184<br />
attribute 290<br />
information 287<br />
label 291<br />
merge results in Visual Difference 359<br />
merge results in Visual Merge 363<br />
project<br />
attribute 259<br />
information 258<br />
revision<br />
information 314<br />
label 319<br />
environment variable 92<br />
UNIX client 29<br />
F<br />
file<br />
binary 18<br />
<strong>com</strong>paring 18<br />
history 15<br />
text 18<br />
working 17<br />
file and object history<br />
filter<br />
15<br />
all members 87, 97<br />
any member delta 87<br />
deferred item 89<br />
existing working files 87<br />
frozen member<br />
list<br />
88, 97<br />
graphical user interface 78<br />
Web interface 96<br />
locked member 88, 97<br />
member at label 88, 97<br />
member at state<br />
member history<br />
88, 97<br />
all revisions 311<br />
branched 311<br />
labeled 311<br />
locked 311<br />
member 311<br />
member locked by me 88, 97<br />
member on branch 88, 97<br />
member with attribute 88, 97<br />
member with label 88, 97<br />
484<br />
member with name 88<br />
missing working file 87<br />
modified working file 87<br />
new member 87<br />
new revision available 87<br />
non-members 156<br />
out of sync member 87<br />
pending item 88<br />
project history<br />
all revisions 264<br />
development path 264<br />
labeled 264<br />
regular expression 89<br />
Unresolved Merges 87<br />
using 86<br />
Web interface 97<br />
Work in Progress 88<br />
working file on branch 87<br />
working file size delta 87<br />
finding<br />
change package<br />
using query 378<br />
change packages 222<br />
former member<br />
described 172<br />
freezing<br />
member 301<br />
frozen member<br />
filter 88, 97<br />
G<br />
general<br />
preferences 42<br />
graph<br />
Reporter 304<br />
graphical history view 445<br />
changing views 449<br />
dragging and dropping 448<br />
member history view 445<br />
project history view 445<br />
selecting revision 447<br />
view options 448<br />
graphical user interface<br />
access keys 79<br />
application window 76<br />
columns<br />
configuring 80<br />
described 76<br />
environment variable 92<br />
filter list 78<br />
u s e r g u i d e
graphical history view 445<br />
member history view 451<br />
member information pane 78<br />
menu bar 76<br />
project history view 460<br />
project view 77, 457<br />
registered project 465<br />
registered sandboxes 467<br />
sandbox view 77, 469<br />
shortcut keys 80<br />
shortcut menu 77<br />
status bar 78<br />
title bar 76<br />
toolbar 77<br />
configuring 82<br />
using in CLI 98<br />
workspace 78<br />
groups<br />
viewing 34<br />
H<br />
Header keyword 210<br />
help<br />
customer support 8<br />
history<br />
file 15<br />
object 15<br />
I<br />
Id keyword 210<br />
IDE<br />
See integrated development environment<br />
ident <strong>com</strong>mand 210<br />
ignore branch 416<br />
importing<br />
a project 117<br />
member 169<br />
sandbox 138<br />
installing<br />
Integrity Client 24<br />
UNIX post-install 29<br />
integrated development environment 22<br />
integrations<br />
for Solution<br />
described 372<br />
Integrity Client<br />
installing 24<br />
post-installation on UNIX 29<br />
uninstalling 29<br />
Integrity Manager<br />
integration 372<br />
how works 372<br />
issue<br />
adding entries to a change<br />
package 376<br />
creating a change package for 375<br />
viewing 376<br />
using query 378<br />
Integrity Server<br />
registering project with 14<br />
interface 75<br />
K<br />
keyword<br />
Author 210<br />
CompanyInfo 210<br />
Date 210<br />
Header 210<br />
Id 210<br />
locating 210<br />
Locker 210<br />
Log 211<br />
Name 211<br />
ProjectName 211<br />
ProjectRevision 211<br />
ProjectSetting 211<br />
RCSfile 211<br />
Revision 211<br />
SandboxSetting 211<br />
Setting 211<br />
Source 211<br />
State 211<br />
using 207<br />
keywords<br />
table 210<br />
L<br />
label<br />
deleting from revision 321<br />
labeling<br />
member 297<br />
revision 320<br />
launching<br />
Source Integrity 34<br />
line terminator 136, 281, 472<br />
list, backfill<br />
Apply CP 391<br />
Apply CP option 394<br />
Index<br />
485
Index<br />
Resync CP 409<br />
Resync CP option 413<br />
locating keyword 210<br />
locked member<br />
filter 88, 97<br />
making locked member writable 340<br />
managing revision locks 328<br />
view sandbox that locked member 145<br />
Locker keyword 210<br />
locking<br />
member 198<br />
multiple revisions 327<br />
revision 324<br />
Log keyword 211<br />
logging in 36<br />
logging out 72<br />
M<br />
manage projects<br />
graphical user interface 465<br />
Web interface 466<br />
manage sandboxes<br />
graphical user interface 467<br />
managing change packages 220<br />
member<br />
adding label to 297<br />
adding to project 157<br />
attribute<br />
editing 290<br />
viewing 290<br />
checking in 186<br />
checking out 178<br />
deferring operation 200<br />
deleting label 298<br />
demoting 300<br />
dropping 172<br />
editing 184<br />
freezing 301<br />
history 17<br />
reference format 18<br />
viewing 310<br />
importing 169<br />
information<br />
editing 287<br />
viewing 287<br />
label<br />
editing 291<br />
viewing 291<br />
location 15<br />
locking 198<br />
486<br />
making locked member writable 340<br />
managing locks 328<br />
name 15<br />
permission 31<br />
project 17<br />
promoting 299<br />
removing from project 172<br />
renaming 194<br />
tip revision 194<br />
resynchronizing 197, 293<br />
reverting 196<br />
revision 17<br />
number 15<br />
setting 330<br />
updating 293<br />
selecting 176<br />
thawing 302<br />
type 15<br />
unlocking 200<br />
updating 197<br />
viewing 184<br />
member at label<br />
filter 88, 97<br />
member at state<br />
filter 88, 97<br />
member history view<br />
filter 311<br />
graphical history view 445<br />
graphical user interface 451<br />
Web interface 453<br />
member information pane<br />
graphical user interface 78<br />
member locked by me<br />
filter 88, 97<br />
member name argument<br />
described 99<br />
member on branch<br />
filter 88, 97<br />
member with attribute<br />
filter 88, 97<br />
member with label<br />
filter 88, 97<br />
member with name<br />
filter 88<br />
menu bar<br />
graphical user interface 76<br />
Web interface 95<br />
merge<br />
automatic merging on check out 350<br />
automatic merging on resync 352<br />
on branch 415<br />
merge results<br />
u s e r g u i d e
editing in Visual Merge 363<br />
reverting in Visual Merge 364<br />
saving in Visual Merge 364<br />
merging<br />
branch 345<br />
by dragging 348<br />
in Visual Difference 356<br />
on check in 343<br />
resolving merges 367<br />
revision 353<br />
automatically 354<br />
in Visual Merge 362<br />
revision in CLI 366<br />
revision in Visual Difference 356<br />
revision in Visual Merge 361<br />
suspending in Visual Merge 365<br />
metadata 15<br />
methodology<br />
change package 382<br />
missing working file<br />
filter 87<br />
MKS Visual Difference<br />
See Visual Difference<br />
MKS Visual Merge<br />
See Visual Merge<br />
modified working file<br />
filter 87<br />
N<br />
Name keyword 211<br />
new member<br />
filter 87<br />
new revision available<br />
filter 87<br />
non-members<br />
displaying 154<br />
filtering 156<br />
O<br />
object<br />
control 17<br />
history 15<br />
opening<br />
member history 310<br />
project 121<br />
sandbox 144<br />
option<br />
configuration 19<br />
out of sync member<br />
filter 87<br />
P<br />
pending item<br />
filter 88<br />
pending member 200<br />
permission 31<br />
preferences<br />
<strong>com</strong>mand 48<br />
connection 43<br />
difference tool 69<br />
general 42<br />
setting 40<br />
view 61<br />
printing lists and views 78<br />
process<br />
Apply CP <strong>com</strong>mand 389<br />
resolution change package 431<br />
Resync CP <strong>com</strong>mand 408<br />
project 14, 17<br />
adding member 157<br />
attribute 259<br />
editing 259<br />
viewing 259, 281<br />
checkpointing 19, 269<br />
<strong>com</strong>paring 20<br />
content 15<br />
creating 116<br />
deleting label 266<br />
demoting 268<br />
difference 20, 275<br />
<strong>com</strong>paring current to last<br />
checkpointed 279<br />
<strong>com</strong>paring current to specified<br />
revision 278<br />
<strong>com</strong>paring two specified<br />
revisions 276<br />
dropping 119<br />
history<br />
viewing 263<br />
importing 117<br />
information<br />
editing 258<br />
viewing 258<br />
member 17<br />
metadata 15<br />
modification<br />
viewing 276<br />
opening 121<br />
Index<br />
487
Index<br />
permission 31<br />
promoting 267<br />
registering with Integrity Server 14<br />
removing member 172<br />
restoring 271<br />
in GUI 272<br />
viewing 121<br />
differences 275<br />
project history view<br />
filter 264<br />
graphical history view 445<br />
graphical user interface 460<br />
Web interface 462<br />
project view<br />
graphical user interface 77, 457<br />
Web interface 96, 459<br />
ProjectName keyword 211<br />
ProjectRevision keyword 211<br />
ProjectSetting keyword 211<br />
project-specific configuration 15<br />
promoting<br />
a project 267<br />
member 299<br />
revision 323<br />
proxy<br />
configuring 45<br />
Q<br />
quick access keys<br />
access keys 79<br />
graphical user interface shortcut keys 80<br />
quitting<br />
session 72<br />
R<br />
RCSfile keyword 211<br />
reconstructing revision 18<br />
reference format<br />
member history 18<br />
registered projects<br />
graphical user interface 465<br />
Web interface 466<br />
registered sandboxes<br />
graphical user interface 467<br />
regular expression<br />
filter 89<br />
related documentation 4<br />
488<br />
removing<br />
development path 149<br />
member 172<br />
renaming<br />
member 194<br />
on a branch 194<br />
tip revision 194<br />
report<br />
creating 307<br />
information 303<br />
type 304<br />
by author 304<br />
by author (summary) 305<br />
member revision to label 305<br />
member revision to revision 306<br />
newer revision 305<br />
project member history 307<br />
revision locked 306<br />
revision with label 306<br />
revision with state 306<br />
Reporter<br />
described 303<br />
graph 304<br />
resolution change package<br />
creating 434<br />
GUI <strong>com</strong>mand 434<br />
key concepts 430<br />
process 431<br />
using 432<br />
restoring project 271<br />
in GUI 272<br />
resynchronizing<br />
automatic merging on resync 352<br />
by CP 197, 436<br />
example 437<br />
deferred operation 197, 203<br />
member 197, 293<br />
resynchronizing change package 406<br />
backfill list 409<br />
backfill option 413<br />
binary conflicts 433<br />
<strong>com</strong>mand option 423<br />
GUI <strong>com</strong>mand 418<br />
ignore branch option 416<br />
key concept 407<br />
merge on branch option 415<br />
overview 383<br />
process 408<br />
reverting<br />
deferred operation 196, 203<br />
member 196<br />
u s e r g u i d e
merge results in Visual Difference 359<br />
merge results in Visual Merge 364<br />
revision 15<br />
adding label to 320<br />
annotated 316<br />
<strong>com</strong>paring 331<br />
deleting 331<br />
deleting label 321<br />
demoting 324<br />
description<br />
assigning 187<br />
in member history 18<br />
information<br />
editing 314<br />
viewing 314<br />
label<br />
editing 319<br />
viewing 319<br />
locking 324<br />
locking multiple revisions 327<br />
merging 353<br />
automatically 354<br />
in CLI 366<br />
in Visual Difference 356<br />
in Visual Merge 361, 362<br />
number 15<br />
assigning 186<br />
valid 186<br />
promoting 323<br />
reconstructing 18<br />
unlocking 326<br />
viewing 322<br />
viewing locks 328<br />
Revision keyword 211<br />
S<br />
sandbox 14<br />
build 150<br />
creating 135<br />
described 14<br />
dropping 143<br />
importing 138<br />
information<br />
general 280<br />
project attribute 281<br />
viewing 280<br />
opening 144<br />
scanning for change 185<br />
sharing 139<br />
snapshot 283<br />
type 137<br />
variant 21<br />
view sandbox that locked member 145<br />
viewing 144<br />
sandbox view<br />
graphical user interface 77, 469<br />
SandboxSetting keyword 211<br />
saving<br />
merge results in Visual Difference 360<br />
merge results in Visual Merge 364<br />
scanning sandbox<br />
for change 185<br />
selecting<br />
member 176<br />
server<br />
configuring multiple servers 46<br />
connecting 36<br />
disconnecting 72<br />
session<br />
closing client 73<br />
quitting 72<br />
shutting down client 74<br />
setting<br />
member revision 330<br />
preferences 40<br />
Setting keyword 211<br />
shared subproject<br />
creating 127<br />
sharing a sandbox 139<br />
shortcut keys<br />
graphical user interface 80<br />
shortcut menu<br />
graphical user interface 77<br />
shutting down<br />
client 74<br />
snapshot a sandbox 283<br />
Solution integration 372<br />
Source Integrity<br />
before starting 30<br />
concept 13<br />
configuring 40<br />
graphical history view 445<br />
graphical user interface 76<br />
integration with Integrity Manager 372<br />
rules 372<br />
viewing associated issue 376<br />
starting 34<br />
understanding 13<br />
Web interface 94<br />
Source Integrity interfaces 75<br />
Source keyword 211<br />
Index<br />
489
Index<br />
starting<br />
a session 36<br />
branch during check in 186<br />
Source Integrity 34<br />
State keyword 211<br />
status bar<br />
graphical user interface 78<br />
Web interface 96<br />
storing delta 18<br />
submit 202<br />
change packages 238<br />
deferred operation 202<br />
subproject<br />
adding 125<br />
configuring 131<br />
creating 124<br />
creating shared subproject 127<br />
dropping 133<br />
suspending<br />
merges in Visual Merge 365<br />
system requirements<br />
Web browser 24<br />
T<br />
table<br />
keyword 210<br />
text file 18<br />
thawing<br />
member 302<br />
third party difference tool 69<br />
tip revision<br />
renaming 194<br />
title bar<br />
graphical user interface 76<br />
Web interface 95<br />
toolbar buttons<br />
graphical user interface 77<br />
Web interface 96<br />
type<br />
report 304<br />
sandbox 137<br />
U<br />
uninstalling<br />
Integrity Client 29<br />
UNIX<br />
client environment variable 29<br />
490<br />
unlocking<br />
member 200<br />
revision 326<br />
Unresolved Merges<br />
filter 87<br />
updating<br />
member 197<br />
member revision 293<br />
user<br />
described 1<br />
using<br />
filter 86<br />
keyword 207<br />
V<br />
variant sandbox 21<br />
creating 135<br />
described 146<br />
viewing<br />
archive information 312<br />
change package<br />
associated issue 376<br />
details and entries 226<br />
entry member differences 255<br />
multiple 220<br />
<strong>com</strong>mand 98<br />
conflict in Visual Merge 361<br />
development path information 261<br />
general sandbox information 280<br />
group membership 34<br />
member 184<br />
member attribute 290<br />
member difference 255<br />
member history 310<br />
member information 287<br />
member label 291<br />
preferences 61<br />
project 121<br />
information 258<br />
project attribute 259, 281<br />
project attribute information 281<br />
project differences 275<br />
project history<br />
opening 263<br />
revision 322<br />
revision information 314<br />
revision label 319<br />
sandbox 144<br />
sandbox information 280<br />
working file 322<br />
u s e r g u i d e
Visual Difference 100<br />
editing merge results 359<br />
merging 356<br />
mode 104<br />
panes 103<br />
preferences 105<br />
reverting merge results 359<br />
saving merge results 360<br />
working with 356<br />
Visual Merge 107<br />
editing merge results 363<br />
merging revision 362<br />
panes 110<br />
preferences 111<br />
reverting merge results 364<br />
saving merge results 364<br />
suspending merges 365<br />
viewing conflict 361<br />
working with 361<br />
W<br />
Web browser<br />
system requirements 24<br />
Web interface 94<br />
application window 95<br />
filter 97<br />
filter list 96<br />
member history view<br />
described 453<br />
menu bar 95<br />
project history view<br />
described 462<br />
project view 96<br />
described 459<br />
registered project 466<br />
status bar 96<br />
title bar 95<br />
toolbar buttons<br />
described 96<br />
Work in Progress<br />
filter 88<br />
working file 17<br />
<strong>com</strong>paring to member revision 205<br />
discarding change 196<br />
viewing 322<br />
working file on branch<br />
filter 87<br />
working file size delta<br />
filter 87<br />
working file, existing<br />
filter 87<br />
working with project 14<br />
workspace<br />
graphical user interface 78<br />
writable<br />
making locked member writable 340<br />
Index<br />
491
Index<br />
492<br />
u s e r g u i d e