User Guide - MKS
User Guide - MKS
User Guide - MKS
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
<strong>MKS</strong> Source Integrity® Enterprise Edition 8.4<br />
<strong>User</strong> <strong>Guide</strong><br />
Copyright © 2001–2003 <strong>MKS</strong> Inc. and <strong>MKS</strong> Inc. (Delaware). All rights reserved.<br />
<strong>MKS</strong> and design, <strong>MKS</strong> Change Integrity, <strong>MKS</strong> Code Integrity, <strong>MKS</strong> Engineer Integrity, <strong>MKS</strong> Federated Server, <strong>MKS</strong><br />
Integrity Manager, <strong>MKS</strong> Integrity Solution, <strong>MKS</strong> Source Integrity, <strong>MKS</strong> Toolkit, AlertCentre, CodeRover, DISCOVER,<br />
Implementer, NuTCRACKER, Sandbox, SDM, and Build Better Software are trademarks or registered trademarks of<br />
<strong>MKS</strong> Inc. All other trademarks acknowledged.<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 />
Contains embedded database © Copyright PointBase Inc. All rights reserved.<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. <strong>MKS</strong> 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.com<br />
4.3CNOE-051603<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 Welcome to Source Integrity Enterprise Edition . . . . . . . . 1<br />
About This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
What’s New in This Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
Professional Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
Your Feedback Is Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
Where To Go From Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<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 />
Integrated Development Environment 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 Into Source Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
Connecting to Multiple Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
i
Table of Contents<br />
ii<br />
Setting Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
General Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
Connection Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
Command Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
View Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
Difference Tool Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
Managing Integrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
Quitting a Source Integrity Session . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
Logging Out of Source Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
Closing the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
Shutting Down the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
4 Source Integrity Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
Source Integrity Graphical <strong>User</strong> Interface . . . . . . . . . . . . . . . . . . . . . . 72<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
Printing Lists and Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
Quick Access Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
Configuring the Source Integrity Column Set . . . . . . . . . . . . . . 76<br />
Configuring the Source Integrity Toolbars . . . . . . . . . . . . . . . . 78<br />
Using Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />
Source Integrity Web Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
Using Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />
Viewing Available CLI Commands . . . . . . . . . . . . . . . . . . . . . . . 93<br />
Using the Graphical <strong>User</strong> Interface From the CLI . . . . . . . . . . . 93<br />
Command Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
Member Name Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
<strong>MKS</strong> Visual Difference Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />
Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
<strong>MKS</strong> Visual Merge Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
5 Project and Sandbox Operations . . . . . . . . . . . . . . . . . . 109<br />
Working With Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
Importing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112<br />
Dropping a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
Opening or Viewing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />
u s e r g u i d e
Table of Contents<br />
Working With Subprojects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />
Creating a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />
Adding a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
Creating a Shared Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
Configuring a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126<br />
Dropping a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />
Working With Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />
Creating a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />
Importing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />
Dropping a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />
Opening or Viewing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />
Viewing Which Sandbox Locked a Member . . . . . . . . . . . . . . 139<br />
Creating Variant Sandboxes and Development Paths . . . . . . 139<br />
Removing a Development Path . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />
Using Build Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />
6 Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />
Managing Project Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br />
Adding Members to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br />
Importing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />
Dropping Members From a Project . . . . . . . . . . . . . . . . . . . . . . 158<br />
Performing Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />
Selecting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />
Checking Out a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163<br />
Viewing and Editing a Member . . . . . . . . . . . . . . . . . . . . . . . . . 170<br />
Checking In a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172<br />
Renaming a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180<br />
Discarding Changes to a Member . . . . . . . . . . . . . . . . . . . . . . . 183<br />
Resyncing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />
Locking a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186<br />
Unlocking a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188<br />
Deferring Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189<br />
Submitting Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . 190<br />
Cancelling Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />
Resyncing Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />
Comparing Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192<br />
Using Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194<br />
Locating Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196<br />
Table of Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196<br />
7 Using Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . 199<br />
What Are Change Packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />
Why Use Change Packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201<br />
Using Change Packages to Control Development . . . . . . . . . . . . . . 202<br />
Creating a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />
iii
Table of Contents<br />
iv<br />
Adding Entries to a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . 205<br />
Managing Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206<br />
Finding Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />
Viewing Change Package Details and Entries . . . . . . . . . . . . . 211<br />
Editing a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />
Closing a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />
Submitting Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221<br />
Viewing Change Package Entry Member Differences . . . . . . . . . . 222<br />
8 Viewing and Editing Projects, Sandboxes,<br />
and Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225<br />
Controlling Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226<br />
Viewing and Editing Project Information . . . . . . . . . . . . . . . . . 226<br />
Viewing a Project History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231<br />
Opening a Build Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233<br />
Adding Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233<br />
Deleting Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235<br />
Promoting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235<br />
Demoting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236<br />
Checkpointing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237<br />
Restoring a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />
Viewing Project Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244<br />
Comparing Project Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />
Controlling Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251<br />
Viewing General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 251<br />
Viewing Project Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />
Taking Sandbox Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253<br />
Controlling Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257<br />
Viewing and Editing Member Information . . . . . . . . . . . . . . . 257<br />
Updating a Member’s Revision . . . . . . . . . . . . . . . . . . . . . . . . . 263<br />
Adding Labels to Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266<br />
Deleting Member Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267<br />
Promoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />
Demoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269<br />
Freezing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270<br />
Thawing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272<br />
Generating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273<br />
About the Report Information . . . . . . . . . . . . . . . . . . . . . . . . . . 273<br />
About Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274<br />
Report Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274<br />
Creating a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277<br />
u s e r g u i d e
Table of Contents<br />
9 Viewing and Editing Member Histories and Revisions . 279<br />
Viewing a Member History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280<br />
Viewing and Editing Archive Information . . . . . . . . . . . . . . . . . . . . 282<br />
Viewing and Editing Revision Information . . . . . . . . . . . . . . . . . . . 284<br />
Viewing an Annotated Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286<br />
Viewing and Editing Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . 288<br />
Adding Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290<br />
Deleting Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291<br />
Viewing a Member’s Working File or Revision . . . . . . . . . . . . . . . . 291<br />
Promoting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292<br />
Demoting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />
Locking Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294<br />
Unlocking Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295<br />
Locking Multiple Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296<br />
Managing Revision Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298<br />
Setting the Member Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300<br />
Deleting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301<br />
Comparing Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301<br />
10 Branching and Merging Revisions . . . . . . . . . . . . . . . . . 305<br />
Branching Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306<br />
Making Locked Members Writable . . . . . . . . . . . . . . . . . . . . . . . . . . 308<br />
Merging Branched Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311<br />
Merging on Check In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311<br />
Merging Revisions by Dragging . . . . . . . . . . . . . . . . . . . . . . . . . 316<br />
Automatic Merging on Check Out . . . . . . . . . . . . . . . . . . . . . . . 319<br />
Automatic Merging on Resync . . . . . . . . . . . . . . . . . . . . . . . . . . 320<br />
Merging Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322<br />
Merging Revisions Automatically . . . . . . . . . . . . . . . . . . . . . . . 322<br />
Working With <strong>MKS</strong> Visual Difference . . . . . . . . . . . . . . . . . . . 324<br />
Working With <strong>MKS</strong> Visual Merge . . . . . . . . . . . . . . . . . . . . . . . 330<br />
Merging in the Command Line Interface . . . . . . . . . . . . . . . . . 335<br />
Resolving Merges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336<br />
11 The Integrity Manager Integration . . . . . . . . . . . . . . . . . . 339<br />
Integrating With Integrity Manager . . . . . . . . . . . . . . . . . . . . . . . . . . 340<br />
How the Integration Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340<br />
Creating a Change Package for an Issue . . . . . . . . . . . . . . . . . . . . . . 343<br />
Adding Entries to an Issue’s Change Package . . . . . . . . . . . . . . . . . 345<br />
Viewing a Change Package’s Issue . . . . . . . . . . . . . . . . . . . . . . . . . . 346<br />
Finding Change Packages Using a Query . . . . . . . . . . . . . . . . . . . . . 347<br />
v
Table of Contents<br />
vi<br />
12 Advanced Change Package Operations. . . . . . . . . . . . . 349<br />
Change Package Feature Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 350<br />
Change Package Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . 351<br />
Change Package Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351<br />
Resolving Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354<br />
Using the Apply CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355<br />
Key Apply CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357<br />
How Apply CP Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357<br />
Apply CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359<br />
Apply CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366<br />
Using the Resync CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375<br />
Key Resync CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376<br />
How Resync CP Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376<br />
Resync CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377<br />
Working on a Variant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381<br />
Resync CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386<br />
Working With a Resolution CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397<br />
Key Resolution CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399<br />
How Resolution CPs Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400<br />
Using a Resolution CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401<br />
Resolution CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402<br />
Using the Resync By CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . 405<br />
Appendixes A Views, Windows, and Dialog Boxes . . . . . . . . . . . . . . . . 409<br />
Project and Sandbox Windows (GUI) . . . . . . . . . . . . . . . . . . . . 410<br />
Project Window (Web) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />
Project History Window (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . 414<br />
Project History Window (Web) . . . . . . . . . . . . . . . . . . . . . . . . . . 416<br />
Member History Window (GUI) . . . . . . . . . . . . . . . . . . . . . . . . 416<br />
Member History Window (Web) . . . . . . . . . . . . . . . . . . . . . . . . 419<br />
Graphical History View (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . 420<br />
Change Package View (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425<br />
Change Package View (Web) . . . . . . . . . . . . . . . . . . . . . . . . . . . 426<br />
Change Packages View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427<br />
Annotated Revision View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428<br />
Locks View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428<br />
Registered Projects and Sandboxes Dialog Boxes (GUI) . . . . . 429<br />
Registered Projects Window (Web) . . . . . . . . . . . . . . . . . . . . . . 430<br />
B Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433<br />
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441<br />
u s e r g u i d e
Welcome to<br />
Source Integrity<br />
Enterprise Edition<br />
1<br />
Increased software complexity, 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 />
<strong>MKS</strong> 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 comprehensive, 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 <strong>MKS</strong> Integrity Manager for powerful,<br />
workflow enabled SCM.<br />
Source Integrity is the ideal SCM solution for large, distributed<br />
development organizations with complex 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: Welcome 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 complete versioning<br />
control solution.<br />
Chapter 3: “Source Integrity Interfaces” on page 71<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 command line<br />
interface, and the <strong>MKS</strong> Visual Difference and <strong>MKS</strong> Visual Merge<br />
interfaces.<br />
Chapter 4: “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 5: “Project and Sandbox Operations” on page 109<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: “Viewing and Editing Projects, Sandboxes, and<br />
Members” on page 225<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 />
Chapter 7: “Viewing and Editing Member Histories and Revisions”<br />
on page 279<br />
Describes how to manage member histories and revisions, for<br />
example, viewing and editing revision information, deleting revisions,<br />
and promoting revisions.<br />
u s e r g u i d e
Related Documentation<br />
Related Documentation<br />
Chapter 8: “Branching and Merging Revisions” on page 305<br />
Describes the advanced tasks of branching and merging revisions and<br />
the different methods and tools used for these tasks, including the<br />
<strong>MKS</strong> Visual Merge tool.<br />
Chapter 9: “The Integrity Manager Integration” on page 339<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 10: “Advanced Change Package Operations” on page 349<br />
Describes the Apply CP and Resync CP commands—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, Windows, and Dialog Boxes” on page 409<br />
Describes the views that are available in Source Integrity.<br />
Appendix B: “Glossary of Terms” on page 433<br />
Provides a glossary of common terms and definitions for<br />
Source Integrity.<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<br />
Administration CLI<br />
Reference <strong>Guide</strong><br />
Integrity Server Installation<br />
and Administration <strong>Guide</strong><br />
Source Integrity Enterprise<br />
Edition CLI Reference<br />
<strong>Guide</strong><br />
Source Integrity Enterprise<br />
Edition <strong>User</strong> <strong>Guide</strong><br />
No Yes Yes Yes<br />
Yes Yes AA, IM a<br />
No<br />
No Yes Yes Yes<br />
No Yes Yes No<br />
3
Chapter 1: Welcome to Source Integrity Enterprise Edition<br />
4<br />
Documentation Print PDF Online Man<br />
Source Integrity Enterprise<br />
Edition IDE Integrations<br />
<strong>Guide</strong><br />
Integrity Manager CLI<br />
Reference <strong>Guide</strong><br />
Integrity Manager <strong>User</strong><br />
<strong>Guide</strong><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 />
have installed the reader, whenever you open a PDF file the reader starts<br />
automatically.<br />
NOTE<br />
No Yes Yes No<br />
No Yes Yes Yes<br />
No Yes Yes No<br />
Using <strong>MKS</strong> Make No Yes No No<br />
Release Notes No No Yes No<br />
a<br />
For Authorization Administration graphical user interface and Integrity Manager<br />
only.<br />
To print PDFs, Adobe Acrobat Reader 4.0 or greater is required. Adobe<br />
Acrobat Reader is provided on the product CD (located in the<br />
\support\acrobat subdirectory).<br />
In addition to the Source Integrity Enterprise Edition <strong>User</strong> <strong>Guide</strong>, the other<br />
documentation included in this release is as follows:<br />
Integrity Server Administration CLI Reference <strong>Guide</strong> provides details on<br />
the command line utilities used for administration tasks.<br />
Integrity Server Installation and Administration <strong>Guide</strong> gives you the<br />
information you need to build a basic understanding of the Integrity<br />
Solution, and to install and configure the solution in your<br />
organization. It also provides information on post-installation tasks:<br />
configuring and administering the Integrity Server at your site, and<br />
how to configure and set up Integrity Manager and Source Integrity<br />
Enterprise Edition.<br />
Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> gives details on<br />
the command line utilities included with Source Integrity.<br />
u s e r g u i d e
Typographical Conventions<br />
Typographical Conventions<br />
Source Integrity Enterprise Edition IDE Integrations <strong>Guide</strong> describes how<br />
to access the functionality of Source Integrity while working within<br />
your favorite integrated development environment (IDE), such as IBM<br />
WebSphere Studio, Microsoft Visual Studio .NET, and Borland<br />
JBuilder.<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 command<br />
line utilities included with Integrity Manager.<br />
Using <strong>MKS</strong> Make describes the <strong>MKS</strong> 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, <strong>MKS</strong> Make<br />
automatically re-compiles 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 command line utilities are available<br />
on the client by using the man command in the command 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 as HTML<br />
documents in a Web browser.<br />
Throughout the manuals, the following typographical conventions identify<br />
the features, functions, and components of the Integrity Solution.<br />
Items in documentation Appear as<br />
Menus, commands Tools > Preferences<br />
Graphical user interface commands the Member command<br />
Command line commands si co<br />
Dialog boxes, features Demote Member, Cancel, OK<br />
Screen information, messages Type a name for this<br />
development path:<br />
5
Chapter 1: Welcome to Source Integrity Enterprise Edition<br />
6<br />
Items in documentation Appear as<br />
Environment variables TMPDIR<br />
Path names c:\srcint\work<br />
New terms appear in italics the first time<br />
Keyboard keys appear in caps, for example: ENTER;<br />
CTRL; ALT, F, S<br />
Procedures for the graphical user<br />
interface, command line interface, and<br />
Web interface<br />
NOTE<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 />
completing 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 />
u s e r g u i d e
What’s New in This Release<br />
Assumptions<br />
What’s New in This Release<br />
For more detailed information on the following features, see the<br />
SourceIntegrityWhatsNews.pdf located in the \documentation\pdf<br />
subdirectory of the distribution CD.<br />
improved administration<br />
SIEE Native Change Packages<br />
improved distribution of client-side patches<br />
improved authentication support<br />
print support for SIEE GUI Views<br />
annotated view of file history<br />
improved usability of SIEE GUI<br />
client side event triggers<br />
Before using Source Integrity, <strong>MKS</strong> 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 />
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 />
7
Chapter 1: Welcome to Source Integrity Enterprise Edition<br />
Getting Help<br />
8<br />
<strong>MKS</strong> Global Customer Care is ready to assist you with product solutions.<br />
You can choose the online system or telephone a <strong>MKS</strong> Technical Support<br />
Representative.<br />
NOTE<br />
If contacting Global Customer Care, you will require your product serial<br />
number. The serial number appears on the product box and on the CD sleeve.<br />
You can also get the product serial number from your site administrator.<br />
For online support, browse to www.mks.com/support. There you will find<br />
Frequently Asked Questions (FAQs), information about current releases,<br />
solution downloads, and Knowledge Base articles that can help you find<br />
the answers you need quickly.<br />
In addition, you can browse to www.mks.com/support/productinfo/sie<br />
to view and download white papers that cover best practices and more indepth<br />
applications of Source Integrity.<br />
Online Web www.mks.com/support<br />
E-mail support@mks.com<br />
Telephone Toll Free North America 800 219 4842<br />
Outside North America 800 2194 8424<br />
Direct North America 519 884 2270<br />
UK +44 (0) 1483 733910<br />
Germany +49 711 351 775 51<br />
Fax North America 630 495 4855<br />
UK +44 (0) 1483 733901<br />
Germany +49 711 351 775 11<br />
The hours of operation for Global Customer Care are as follows:<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 />
u s e r g u i d e
Professional Services<br />
Professional Services<br />
A successful configuration management system is not built on software<br />
alone. At <strong>MKS</strong>, our professional services team is committed 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 />
<strong>MKS</strong> 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 <strong>MKS</strong> products—<strong>MKS</strong> Source<br />
Integrity Enterprise Edition, <strong>MKS</strong> Integrity Manager, <strong>MKS</strong> Implementer<br />
for iSeries, and <strong>MKS</strong> 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 <strong>MKS</strong><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 />
For more information on <strong>MKS</strong> professional services:<br />
Online Web Global www.mks.com/services<br />
E-mail North America consulting@mks.com<br />
Europe europe@mks.com<br />
Telephone North America 800 633 1235<br />
UK +44 (0) 1483 733900<br />
Germany +49 711 351775 0<br />
9
Chapter 1: Welcome to Source Integrity Enterprise Edition<br />
Your Feedback Is Welcome<br />
10<br />
<strong>MKS</strong> welcomes your feedback on the documentation included with this<br />
product. If you have comments or suggestions about any of the guides or<br />
the online help, send them to:<br />
pubs-mgr@mks.com<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 />
Where To Go From Here<br />
The e-mail address is provided for comments on the <strong>MKS</strong> documentation only.<br />
You may not receive a reply to your e-mail. For technical questions or for<br />
software support, you should contact <strong>MKS</strong> Global Customer Care<br />
(support@mks.com).<br />
To Do This … See …<br />
Install the Integrity Client. “Installing the Integrity Client” on<br />
page 24<br />
Log in to Source Integrity. “Logging Into 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 110<br />
Create a sandbox. “Creating a Sandbox” on page 131<br />
Add members to a Source Integrity<br />
project.<br />
u s e r g u i d e<br />
“Adding Members to a Project” on<br />
page 146<br />
Check out a member. “Checking Out a Member” on<br />
page 163<br />
Check in a member. “Checking In a Member” on page 172
To Do This … See …<br />
Where To Go From Here<br />
Create a change package “Creating a Change Package” on<br />
page 203<br />
View a project history. “Viewing a Project History” on<br />
page 231<br />
View a member history. “Viewing a Member History” on<br />
page 280<br />
Use Integrity Manager with<br />
Source Integrity.<br />
“Integrating With Integrity Manager” on<br />
page 340<br />
Learn Source Integrity terms. “Glossary of Terms” on page 433<br />
11
Chapter 1: Welcome to Source Integrity Enterprise Edition<br />
12<br />
u s e r g u i d e
Understanding<br />
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 comprehensive, 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 <strong>MKS</strong> 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 Windows, which list the members<br />
of the 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 composed of smaller<br />
component 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 common: 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 composed 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 />
complete 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 components:<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 recommended 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 />
complete 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 compares the file being checked in to the previous<br />
revision, it compares 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. When used to<br />
control development, deferred member operations can be recorded as<br />
change package entries, and then submitted at once to ensure a complete<br />
resolution of the issue.<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 />
Integrated Development Environment<br />
Support<br />
22<br />
Source Integrity supports the following IDEs:<br />
IDE Versions<br />
Borland Delphi 6.0 and 7.0<br />
Borland JBuilder 6.0 Enterprise, 7.0 Enterprise, and 8.0<br />
Enterprise<br />
Eclipse (open source) 1.0.0, 2.0.2<br />
IBM VisualAge for Java Enterprise Editions 3.5.3 and 4.0<br />
IBM WebSphere Studio Classic Advanced Edition 4.0<br />
IBM WebSphere Studio Application<br />
Developer<br />
(utilizing the IBM WebSphere Studio<br />
Workbench technology, based upon<br />
the Eclipse open source initiative)<br />
IBM WebSphere Studio Site<br />
Developer<br />
(utilizing the IBM WebSphere Studio<br />
Workbench technology, based upon<br />
the Eclipse open source initiative)<br />
4.0.x, 5.0<br />
4.0.x<br />
Mercury Interactive TestDirector 7.6<br />
Microsoft eMbedded Visual C++ 3.0<br />
Microsoft Visual Basic 6.0<br />
Microsoft Visual C++ 6.0<br />
Microsoft Visual J++ 6.0<br />
Microsoft Visual Studio .NET<br />
Microsoft Windows Explorer Windows 98 Second Edition, ME,<br />
2000 Server SP2+, 2000 Professional<br />
SP2+, NT 4.0 SP6.a, XP Professional<br />
Rational Rose Enterprise Edition 2000e<br />
Starbase CodeWright 7.0c<br />
Sybase PowerBuilder 7.0, 8.0.3<br />
TogetherSoft Together ControlCenter 6.0<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 />
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 Into Source Integrity” on page 36<br />
“Connecting to Multiple Servers” on page 39<br />
“Setting Preferences” on page 40<br />
“Managing Integrations” on page 67<br />
“Quitting a Source Integrity Session” on page 69<br />
23
Chapter 3: Getting Started Using Source Integrity<br />
Installing the Integrity Client<br />
Browser<br />
Support<br />
24<br />
IMPORTANT<br />
Before installing the Integrity Client, you must have removed any earlier <strong>MKS</strong><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 />
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.0.<br />
To install the integrity client from the CD<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 />
View Release Notes allows you to view the release notes for the<br />
Integrity Client components.<br />
Install Integrity Client allows you to install Integrity Manager,<br />
Source Integrity, or both.<br />
View Documentation launches your default Web browser and<br />
allows you to view the user documentation in Adobe Acrobat<br />
format.<br />
About ... links display descriptions of the <strong>MKS</strong> Integrity Solution<br />
and other <strong>MKS</strong> products.<br />
2 To start the installation process, do one of the following:<br />
From the Integrity Client CD browser, select Install Integrity<br />
Client.<br />
A page appears allowing you to start the installation program for<br />
your particular platform.<br />
For Windows, click the link.<br />
u s e r g u i d e
NOTE<br />
For UNIX, follow the written instructions.<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 />
<strong>MKS</strong> does not certify any PC X-Servers. If your PC X-server provides full<br />
support for Xwindows, the <strong>MKS</strong> client may operate.<br />
For Windows, a dialog box appears asking you if you want to run<br />
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 in<br />
the appropriate installs directory.<br />
3 If you are installing on a UNIX platform, complete the following steps<br />
before continuing; otherwise, go to step 4.<br />
Copy mksclient.bin to a temporary directory on your server<br />
computer.<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 />
25
Chapter 3: Getting Started Using Source Integrity<br />
26<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 />
TIP<br />
The installation program allows you to return to a previous panel without<br />
having to exit the program. To return to the last panel, click Previous.<br />
If you accept the license agreement, the Select Integrity Client<br />
Components panel appears.<br />
5 Depending on the product components you are licensed to use, select<br />
Integrity Manager, Source Integrity, Administration Client, or a<br />
combination of your choice.<br />
6 To continue, click Next.<br />
The Integrity Client Installation Location panel appears.<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\<strong>MKS</strong>\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 />
u s e r g u i d e
Installing the Integrity Client<br />
8 In step 5, if you chose to install more than one product, the Specify<br />
Server Connection Default panel appears. Select one of the following<br />
options and click Next to continue:<br />
Same Integrity Server for all components<br />
Different Integrity Server for each component<br />
In step 5, if you chose to install only one product component, the<br />
Specify Integrity Server Connections panel appears, displaying fields<br />
for server host name(s) and port(s) based on the product you chose to<br />
install. Enter the server host name and port information and click Next<br />
to continue.<br />
The Specify Integrity Server Connections panel appears.<br />
The following shows an example of a completed 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 appears.<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 appears when you have<br />
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 appears when you have<br />
Microsoft Access 97 on your system. Selecting this option allows<br />
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 appears 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 computer and<br />
the Install Complete panel appears.<br />
10 To continue, click Next.<br />
The System Environment Changed panel appears, informing you that<br />
your system environment has changed and that you need to log out<br />
and reboot your system for the changes to take effect.<br />
11 To quit the installer, click Done.<br />
12 Restart your computer 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 />
command 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 > <strong>MKS</strong> 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 appears. The uninstall program<br />
removes all installed components, except any files or folders created<br />
after the installation.<br />
29
Chapter 3: Getting Started Using Source Integrity<br />
30<br />
2 To run the uninstall program, click Uninstall.<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 appears. The uninstall program<br />
removes all installed components, 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 computer<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 complete the task. For example,<br />
checking out files in Source Integrity requires the FetchRevision and<br />
Lock 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 />
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 />
To view project permissions in the graphical user interface<br />
Do one of the following:<br />
From a Project window, select Project > Properties > Project<br />
Permissions.<br />
From a Sandbox window, 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 window, 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 69.<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 />
31
Chapter 3: Getting Started Using Source Integrity<br />
32<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 />
ACLs comprise 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 a Source Integrity window, do one of the following:<br />
Select Tools > Manage Projects.<br />
Select Tools > Manage Sandboxes.<br />
A list of the registered projects or sandboxes appears in the Registered<br />
Projects or Registered Sandboxes dialog box.<br />
2 Choose the project or sandbox you want to view ACLs for.<br />
TIP<br />
The Registered Projects dialog box supports standard shortcut menus. To<br />
display the menu of actions you can perform, select a project and right click.<br />
Source Integrity displays the applicable shortcut menu.<br />
u s e r g u i d e
3 Click Permissions.<br />
Before You Start the Integrity Client<br />
The ACL dialog box opens and displays the ACLs for the selected<br />
project or sandbox.<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 />
recommended 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 command line interface to view the groups that you belong to.<br />
To view groups in the command line interface<br />
Use the aa users command<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 command line interface.<br />
The Source Integrity Web interface is available for performing a variety of<br />
tasks. You do not need to install the Integrity Client to access the<br />
Source Integrity Web interface.<br />
You can also choose to work alternately between the graphical user<br />
interface and the command line interface, because most Source Integrity<br />
commands are available in these two interfaces. For example, you can<br />
perform a command in the command 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 69.<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 incompatible 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 command line interface,<br />
use the si servers --showversion command.<br />
To start the Source Integrity client graphical user interface on<br />
Windows<br />
Select Start > Programs > <strong>MKS</strong> 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.com:7001<br />
2 Press ENTER.<br />
The Integrity Server welcome page opens.<br />
The Integrity Server welcome 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 appears.<br />
35
Chapter 3: Getting Started Using Source Integrity<br />
36<br />
4 Type your user ID and password, and press ENTER.<br />
Logging Into Source Integrity<br />
The Source Integrity Web interface opens in a new browser window.<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 command 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 incompatible 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 command line interface,<br />
use the si servers --showversion command.<br />
All Source Integrity commands 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 />
u s e r g u i d e
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 appears.<br />
Logging Into Source Integrity<br />
NOTE<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, 1.2.34.56.<br />
3 In the Port Number field, type the port number, for example, 7001.<br />
4 To accept the server information, click OK.<br />
The Enter Credentials dialog box appears.<br />
5 In the <strong>User</strong> Name field, type your user name, for example, mkern.<br />
Your user name appears by default in the <strong>User</strong> Name field.<br />
6 In the Password field, type your password, for example, sesame.<br />
37
Chapter 3: Getting Started Using Source Integrity<br />
38<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 />
IMPORTANT<br />
In the Server Connection menu, the active connection appears 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, such as Netscape Navigator or Microsoft<br />
Internet Explorer.<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 appears in the form:<br />
http://server_name:port_#/<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 />
u s e r g u i d e
The <strong>MKS</strong> Integrity Server home page appears.<br />
3 Click Start Source Integrity Enterprise Web Interface.<br />
Connecting to Multiple Servers<br />
A browser password dialog box appears, prompting you for your<br />
Source Integrity user name and password.<br />
4 In the <strong>User</strong> Name field, enter your user name, for example, mkern.<br />
5 In the Password field, enter your password, for example, docsteam.<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 />
7 To accept the log in information, click OK.<br />
Source Integrity validates your login information, then the<br />
Source Integrity Web interface appears.<br />
Connecting to Multiple Servers<br />
When you point to the Source Integrity icon ( ) a ToolTip appears<br />
showing your user name, server, and port number for the session. This<br />
information also appears in the status bar at the bottom of the browser<br />
window, for example, mkern@dev_nt:7001.<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 command<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 Into 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 />
39
Chapter 3: Getting Started Using Source Integrity<br />
Setting Preferences<br />
40<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 138.<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 command line interface, you can use commands 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 />
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 appears 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 />
Preferences allow you to customize your Source Integrity client session.<br />
You can configure general preferences, connection preferences,<br />
commands, views, and select the program you want to use to view<br />
differences.<br />
u s e r g u i d e
General<br />
Preferences<br />
Setting Preferences<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 Into 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 />
Under the General tab, you can set your preferences for the following:<br />
look and feel of the graphical user interface<br />
preferred editor for your files<br />
time delay for pop-up windows<br />
option to restore active windows when you restart Source Integrity<br />
To set general preferences in the graphical user interface<br />
1 Do one of the following:<br />
Select Tools > Preferences.<br />
Click .<br />
The Preferences dialog box appears.<br />
41
Chapter 3: Getting Started Using Source Integrity<br />
42<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 70.<br />
3 To select an editor for editing files, click an option under Editor. The<br />
available options are:<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 />
u s e r g u i d e
Connection<br />
Preferences<br />
Setting Preferences<br />
4 To set the time in milliseconds (ms) before a command’s status<br />
appears in the graphical user interface, type a numeric value in the<br />
GUI field under Popup Status Delay or use the up and down arrows to<br />
select a value. The default value is 2500.<br />
To set the time in milliseconds (ms) that a command’s status appears<br />
in the command line interface, type a numeric value in the CLI field<br />
under Popup Status Delay or use the up and down arrows to select a<br />
value. The default value is 0.<br />
5 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 />
The Restore Desktop option remembers which Sandbox, Project,<br />
Project History, and Member History windows were open when you<br />
last exited the Source Integrity graphical user interface. When you<br />
restart the Source Integrity graphical user interface the active<br />
windows appear automatically in the main view. Restore Desktop<br />
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 />
The Connection tab in the Preferences dialog box contains default settings<br />
for server and proxy connections. You can also override the default<br />
settings when connecting to the Integrity Server.<br />
The Connection panel includes two tabs, General and Proxy. The General<br />
tab contains settings for the default server, while the Proxy tab contains<br />
advanced settings for improved performance through the use of a proxy.<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 />
43
Chapter 3: Getting Started Using Source Integrity<br />
44<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 />
Federated Server Architecture is an implementation of the Integrity Server<br />
structured to serve client requests through a proxy. The proxy provides<br />
access to project members residing on the Integrity Server by retrieving<br />
information from its local cache or, if changes are detected, directly from<br />
the server.<br />
To set connection preferences in the graphical user interface<br />
1 From the Preferences dialog box, click the Connection tab.<br />
The Connection panel appears with two tabs, General and Proxy.<br />
2 On the General panel 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, for example, 9001.<br />
u s e r g u i d e
Setting Preferences<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 />
NOTE<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 />
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 />
Optionally, under SOCKS, you can specify a network proxy you<br />
want to connect to. In the Host Name field type the name of the<br />
server, for example, sockshost, or the numerical IP address, for<br />
example, 1.2.34.67. In the Port field, type the port number, for<br />
example, 7761.<br />
3 Do one of the following:<br />
Click OK to save your connection preferences without specifying<br />
any advanced proxy server settings. Your connection preferences<br />
are saved.<br />
Click the Proxy tab to specify advanced proxy server settings. The<br />
Proxy panel appears.<br />
CAUTION<br />
Do not change proxy settings when the client is connected to the<br />
Integrity Server.<br />
45
Chapter 3: Getting Started Using Source Integrity<br />
46<br />
4 On the Proxy panel configure the following options:<br />
NOTE<br />
The names “direct” and “default” in any case, or combination of case, cannot<br />
be used as proxy host names.<br />
Source Integrity considers spaces and commas in the Host Name field invalid<br />
characters.<br />
Host names and port numbers must match to successfully connect to a proxy.<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 />
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 />
u s e r g u i d e
Setting Preferences<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 complete the<br />
details for a default proxy described next.<br />
To specify a default proxy, under Default proxy complete 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 the Add button. The Add new server connection dialog<br />
box appears.<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.<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 panel. To specify a different proxy,<br />
select Proxy and complete the Hostname and Port fields.<br />
Click OK to save the server details and return to the Proxy<br />
panel. The server appears 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 />
47
Chapter 3: Getting Started Using Source Integrity<br />
Command<br />
Preferences<br />
48<br />
TIP<br />
To edit a previously configured server, select it from the Server list and click<br />
Edit. The Edit server connection dialog box appears. Edit the server details as<br />
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 />
The Commands tab in the Preferences dialog box contains default settings<br />
for Source Integrity commands. Default settings can always be overridden<br />
for individual commands 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 command preferences in the graphical user interface<br />
1 From the Preferences dialog box, click the Commands tab.<br />
The Commands panel appears.<br />
u s e r g u i d e
Command Options<br />
Setting Preferences<br />
2 From the Command list, select a command to configure. The available<br />
commands and their options are discussed in detail in the proceeding<br />
table.<br />
NOTE<br />
Options that appear in bold are local settings configured by you.<br />
3 If necessary, select a command’s option check box.<br />
4 To restore a command’s default options, click Clear Local Settings.<br />
Modify options for commands as listed in the following table:<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 />
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 />
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, specifying<br />
Use Master causes the command to operate on the top-level sandbox for that<br />
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 command.<br />
Other Project is Error terminates the command 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 command 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 />
Already in Project is Error terminates the command 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 command.<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 command 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 />
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 />
52<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 become 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 />
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 has been checked out. This reduces the possibility of locking conflicts<br />
with the 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 313<br />
Manual (Launch Tool) causes Source Integrity to initiate the <strong>MKS</strong> 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 <strong>MKS</strong> Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<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 command.<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 />
Create Sandboxes Populate Sandbox causes Source Integrity to add working files to the sandbox.<br />
Recurse Into Subprojects creates subsandboxes recursively from subprojects.<br />
Make Sandbox Sparse creates a sandbox with no working files.<br />
View Sandbox After Creation displays the sandbox after it is created.<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 />
53
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
54<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 comparing 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 comparing 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 />
comparing the selected revision and the member’s working file or another revision.<br />
Disconnect From Server Confirm Disconnect causes Source Integrity to confirm you will be disconnected from<br />
the Integrity Server.<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 />
Import Members Author allows you to specify the author of the member.<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 />
Unexpand Keywords replaces literal values in the revision with keywords.<br />
u s e r g u i d e
Command Options<br />
Setting Preferences<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 has been checked out. This reduces the possibility of locking conflicts<br />
with the 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 complete.<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 313<br />
Manual (Launch Tool) causes Source Integrity to initiate the <strong>MKS</strong> 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 <strong>MKS</strong> Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<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 322.<br />
Manual (Launch Tool) causes Source Integrity to initiate the <strong>MKS</strong> Visual Merge<br />
tool.<br />
55
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
56<br />
Merge 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 <strong>MKS</strong> Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in the<br />
resulting merged revision.<br />
Promote Recurse Into Subprojects promotes all members in subprojects.<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 becomes 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 command is performed directly from a<br />
Project window.<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 />
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 />
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 />
Recurse into Subprojects recursively resynchronizes members in subprojects.<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 />
u s e r g u i d e
Command Options<br />
Setting Preferences<br />
Resynchronize 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 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 313<br />
Manual (Launch Tool) causes Source Integrity to initiate the <strong>MKS</strong> 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 <strong>MKS</strong> 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 command 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 command.<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 command 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 />
57
Chapter 3: Getting Started Using Source Integrity<br />
Command Options<br />
Resynchronize Change<br />
Package continued<br />
58<br />
Other Project is Error terminates the command 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 />
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 />
u s e r g u i d e
Command Options<br />
View<br />
Preferences<br />
Setting Preferences<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 />
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 causes Source Integrity to confirm that the snapshot operation<br />
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 />
Submit Change Package Close Change Package causes Source Integrity to close the change package after<br />
submitting the item and completing the associated deferred operation.<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 />
The Views tab in the Preferences dialog box contains default option<br />
settings for Source Integrity views. At any time, you can reset the default<br />
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 dialog box. For<br />
more information on configuring toolbars, see “Configuring the Source<br />
Integrity Toolbars” on page 78.<br />
59
Chapter 3: Getting Started Using Source Integrity<br />
60<br />
View Options<br />
To set view preferences in the graphical user interface<br />
1 From the Preferences dialog box, click the Views tab.<br />
The Views panel appears.<br />
2 From the View list, select a view to configure. The available views and<br />
their options are discussed in detail in the proceeding table.<br />
3 If necessary, select a view’s option check box.<br />
4 To restore a view’s default options, click Clear Local Settings.<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 />
u s e r g u i d e
View Options<br />
Setting Preferences<br />
Change Package View Show Committed displays entries that contain changes that have been<br />
committed to the repository.<br />
Show Uncommitted displays deferred entries that have not been submitted and<br />
therefore committed to the repository. Also displays lock entries if TrackLocks is<br />
enabled.<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. The possible types are Add,<br />
Drop, Lock, Rename, Update, Deferred Add, Deferred Check In,<br />
Deferred Rename.<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 />
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 />
61
Chapter 3: Getting Started Using Source Integrity<br />
View Options<br />
62<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 computer 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 />
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 />
u s e r g u i d e
View Options<br />
Setting Preferences<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 computer 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 />
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 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. 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 />
C.P. ID displays the member’s associated change package ID.<br />
Lock Timestamp displays the date and time a member 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. Timestamp displays the date and time the member revision is set.<br />
63
Chapter 3: Getting Started Using Source Integrity<br />
View Options<br />
64<br />
Project View continued 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 Host displays the host name of the computer that locked the member.<br />
Member Rev. displays the member’s revision number.<br />
Name displays the project, subproject, and the project members by file name.<br />
Type displays the type of each project, and project member.<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 />
Project Modifications View 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 />
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 />
Recurse into Subprojects displays the hierarchy of subprojects.<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 />
u s e r g u i d e
View Options<br />
Setting Preferences<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 Host displays the host name of the computer that locked the member.<br />
Member Rev. displays the member’s revision number.<br />
Name displays the sandbox, subsandbox, and the sandbox members by file<br />
name.<br />
State displays the state of the member revision.<br />
Working Rev. displays the checked out revision number that corresponds to the<br />
member’s working file.<br />
C.P. ID displays the member’s associated change package ID.<br />
Labels displays member labels.<br />
Locker displays who has a member locked.<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. 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 />
Type displays the type of each sandbox, and sandbox member.<br />
Deferred displays a icon to indicate that an operation on a member has<br />
been deferred.<br />
Lock Timestamp displays the date and time a member 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. Timestamp displays the date and time the member revision is set.<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 File Delta displays a delta icon to indicate that your working file has<br />
changed.<br />
Sandbox Information View Show Project Attributes displays project attributes.<br />
65
Chapter 3: Getting Started Using Source Integrity<br />
Difference Tool<br />
Preferences<br />
66<br />
The Diff Tool tab in the Preferences dialog box contains default settings for<br />
a Visual Difference Tool. The Visual Difference Tool is a graphical<br />
application that allows you to compare two or more revisions side-by-side<br />
with differences between the revisions highlighted for you. You can choose<br />
to use <strong>MKS</strong> Visual Difference, a third party tool, or a specific application.<br />
To set difference tool preferences in the graphical user interface<br />
1 From the Preferences dialog box, click the Diff Tool tab.<br />
The Diff Tool panel appears.<br />
2 Select one of the following options:<br />
Select the <strong>MKS</strong> Visual Difference Tool option to use the <strong>MKS</strong><br />
Visual Difference program to view differences between revisions.<br />
For more information on the <strong>MKS</strong> Visual Difference Tool, see<br />
“<strong>MKS</strong> Visual Difference Interface” on page 95.<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 />
<strong>MKS</strong> Visual Difference (Classic), <strong>MKS</strong> Inc.<br />
Windiff, Microsoft<br />
u s e r g u i d e
Managing Integrations<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 />
To save preferences in the graphical user interface<br />
In the Preferences dialog box, click OK.<br />
The preferences are saved.<br />
Managing Integrations<br />
Source Integrity includes functionality for enabling and disabling<br />
supported IDE integrations. Using the Integrations command, you can<br />
select from a list of available IDE integrations and enable or disable them<br />
as required to work with your preferred IDE. There is no requirement to<br />
re-install the Integrity Client.<br />
An Integrated Development Environment, or IDE, is a supported<br />
development application, such as Sybase PowerBuilder, that allows you to<br />
access Source Integrity functionality by installing the appropriate<br />
extension.<br />
NOTE<br />
Using the Enable/Disable Integrations dialog box or the command:<br />
si integrations --action=enable <br />
you can always restore an available IDE 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 />
For complete information on using third party integrations with<br />
Source Integrity, see the Source Integrity Enterprise Edition IDE Integrations<br />
<strong>Guide</strong>.<br />
To enable IDE integrations for the Integrity Client using the graphical<br />
user interface<br />
1 Start the Integrity Client.<br />
67
Chapter 3: Getting Started Using Source Integrity<br />
68<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 IDE integration(s)<br />
that 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 complete the activation, restart your computer.<br />
To disable IDE 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 />
Manage Integrations.<br />
The Enable/Disable Integrations dialog box opens.<br />
3 In the Enabled Integrations list, select the Source Integrity IDE<br />
integration(s) that you want to disable.<br />
TIP<br />
You can select multiple integrations by using CTRL + click.<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 />
u s e r g u i d e
5 To disable the selected integration, click OK.<br />
The selected integration is disabled.<br />
6 To complete the process, restart your computer.<br />
Quitting a Source Integrity Session<br />
Logging Out of<br />
Source Integrity<br />
Quitting a Source Integrity Session<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 completely.<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 appears asking<br />
you to confirm that you want to close all current views and disconnect<br />
your server connection. To disable this dialog box, see the Disconnect<br />
From Server command in “Command Preferences” on 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<br />
windows.<br />
The server connection is disconnected.<br />
To log in again, see “Logging Into Source Integrity” on page 36.<br />
69
Chapter 3: Getting Started Using Source Integrity<br />
Closing the<br />
Client<br />
Shutting Down<br />
the Client<br />
70<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 <strong>MKS</strong> 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 />
When you are finished using Source Integrity, you can shut down the<br />
Source Integrity client completely in one action.<br />
To shut down the Source Integrity client in the graphical user<br />
interface<br />
Select File > Shutdown.<br />
The Source Integrity graphical user interface closes, the connection to the<br />
server is disconnected, then the Source Integrity client shuts down.<br />
u s e r g u i d e
Source Integrity Interfaces<br />
4<br />
KEY TERMS: filters, graphical user interface, Web interface, command line interface,<br />
environment variables, <strong>MKS</strong> Visual Difference, <strong>MKS</strong> Visual Merge<br />
Source Integrity includes a number of interfaces that you can use to<br />
accomplish your tasks. These interfaces provide you with the flexibility to<br />
work in the environment that is most comfortable and suitable for you.<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 72<br />
“Source Integrity Web Interface” on page 88<br />
“Command Line Interface” on page 92<br />
“<strong>MKS</strong> Visual Difference Interface” on page 95<br />
“<strong>MKS</strong> Visual Merge Interface” on page 101<br />
71
Chapter 4: Source Integrity Interfaces<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
Application<br />
Window<br />
72<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 windows.<br />
The application window contains a number of common features explained<br />
in this section.<br />
Title Bar<br />
The title bar is the uppermost component 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 commands. 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 commands varies depending on which view or window is<br />
active (for example, working with a member history or a sandbox).<br />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<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 />
Toolbar<br />
Immediately below the menu bar is a toolbar that provides easy access to<br />
the most commonly used Source Integrity commands.<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 78.<br />
Most toolbar buttons only become available when an item is selected in a<br />
certain window. For example, selecting a project in a Project window<br />
displays project command 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 Window<br />
Project and Sandbox windows display the project members and hierarchy<br />
for projects registered with the Integrity Server.<br />
The Project window gives you access to project-level functions and a<br />
limited number of member-level functions. The Sandbox window mirrors<br />
the content of the project and allows you to manage the project and work<br />
directly with its members. Typically, you create your own Sandbox for a<br />
selected project and then work with that project through your Sandbox.<br />
For more information on Sandbox and Project windows, see “Project and<br />
Sandbox Windows (GUI)” on page 410.<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 window<br />
a revision in a Project or Member History window<br />
73
Chapter 4: Source Integrity Interfaces<br />
74<br />
a project in the Registered Projects dialog box<br />
a sandbox in the Registered Sandboxes dialog box<br />
Source Integrity displays the applicable shortcut menu.<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 command 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 commands 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 window in the<br />
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 window<br />
is active.<br />
For more information on filters, see “Using Filters” on page 83.<br />
u s e r g u i d e
Printing Lists<br />
and Views<br />
Source Integrity Graphical <strong>User</strong> Interface<br />
You can print the information from 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 />
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 appears.<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 accommodate 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 />
75
Chapter 4: Source Integrity Interfaces<br />
Quick Access<br />
Keys<br />
Configuring the<br />
Source Integrity<br />
Column Set<br />
76<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 command, 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 window.<br />
Shortcut Keys<br />
For some commands, shortcut keys are provided as well as access keys.<br />
Shortcuts appear on menus opposite their command names. For example,<br />
in the Sandbox window:<br />
pressing the INSERT key is the same as selecting the Add Members<br />
command from the Sandbox menu or the Import Members command<br />
from the Project menu<br />
pressing the F2 function key is the same as selecting the Check Out<br />
command 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 appears 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 />
u s e r g u i d e
To sort a column in the graphical user interface<br />
Do one of the following:<br />
Click the column heading.<br />
Source Integrity Graphical <strong>User</strong> Interface<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 />
window.<br />
To add a column in the graphical user 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 appears in the window.<br />
Right click a column heading and select Columns.<br />
The Columns dialog appears where you can select the column that you<br />
want to add from the Not Visible list and add it to the Visible list by<br />
clicking . Click OK to finish the operation.<br />
The column appears 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 appears 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 />
77
Chapter 4: Source Integrity Interfaces<br />
Configuring the<br />
Source Integrity<br />
Toolbars<br />
78<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 appears<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 />
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 82.<br />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<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 />
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 />
79
Chapter 4: Source Integrity Interfaces<br />
80<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 />
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 79.<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 />
u s e r g u i d e
Enter the following information into the text fields:<br />
Source Integrity Graphical <strong>User</strong> Interface<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 />
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 />
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 86.<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 79.<br />
81
Chapter 4: Source Integrity Interfaces<br />
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 80.<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 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 79.<br />
u s e r g u i d e
Using Filters<br />
Source Integrity Graphical <strong>User</strong> 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 />
NOTE<br />
The list of built-in filters only displays if a Project or Sandbox window 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 windows, filters<br />
appear in the Filter list located on the toolbar.<br />
Filters for the Project History and Member History windows are also<br />
available. For information on applying filters in the Project History<br />
window, see “Project History Filters” on page 232. For information on<br />
applying filters in the Member History window, see “Member History<br />
Filters” on page 281.<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 />
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 complex<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<br />
has been 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 />
83
Chapter 4: Source Integrity Interfaces<br />
84<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 />
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 259.<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 />
u s e r g u i d e
Source Integrity Graphical <strong>User</strong> Interface<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 268.<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 />
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 />
85
Chapter 4: Source Integrity Interfaces<br />
Environment<br />
Variables<br />
86<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 <strong>MKS</strong>SI_WINDOW is set in all cases.<br />
If there is no active window, or no window, then:<br />
<strong>MKS</strong>SI_WINDOW=none<br />
If there is an active window, then:<br />
<strong>MKS</strong>SI_WINDOW=[project|sandbox|projecthistory]<br />
Otherwise, the value is set to a window-specific value:<br />
<strong>MKS</strong>SI_WINDOW=archive<br />
If the active window is a different window, then:<br />
<strong>MKS</strong>SI_WINDOW=unknown<br />
For example, a Project Modifications window that does not produce any specific<br />
environment variables:<br />
<strong>MKS</strong>SI_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 />
<strong>MKS</strong>SI_HOST<br />
<strong>MKS</strong>SI_PORT<br />
<strong>MKS</strong>SI_USER<br />
Because Source Integrity supports multiple connections to the server, you should<br />
specify the following environment variables when running a command line<br />
operation from the toolbar:<br />
si --host=$<strong>MKS</strong>SI_HOST --port=$<strong>MKS</strong>SI_PORT<br />
--user=$<strong>MKS</strong>SI_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 />
<strong>MKS</strong>SI_WINDOW=project<br />
<strong>MKS</strong>SI_FILE=server-side-project-path<br />
<strong>MKS</strong>SI_NMEMBER=number of <strong>MKS</strong>SI_MEMBERxx entries<br />
<strong>MKS</strong>SI_NSUBPROJECT=number of <strong>MKS</strong>SI_SUBPROJECTyy entries<br />
If any members are selected, then the following variables apply:<br />
<strong>MKS</strong>SI_MEMBERxx=path-relative-to-project<br />
<strong>MKS</strong>SI_MEMBER_PROJECTxx=server-side-project/subproject-path<br />
If any subprojects are selected, then the following variables apply:<br />
<strong>MKS</strong>SI_SUBPROJECTyy=path-relative-to-project<br />
<strong>MKS</strong>SI_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 <strong>MKS</strong>SI_MEMBER numbered from 1 to n and the number n is also<br />
passed in <strong>MKS</strong>SI_NMEMBER. There are also occurrences of <strong>MKS</strong>SI_SUBPROJECT,<br />
numbered from 1 to m, and the number m is passed in <strong>MKS</strong>SI_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 <strong>MKS</strong>SI_MEMBER and <strong>MKS</strong>S_SUBPROJECT has a<br />
corresponding entry for <strong>MKS</strong>SI_MEMBER_PROJECTxx and<br />
<strong>MKS</strong>SI_SUBPROJECT_PROJECTxx. Therefore, each MEMBER/SUBPROJECT<br />
variable is relative to its corresponding PROJECT entry, not to the top level<br />
indicated in <strong>MKS</strong>SI_FILE.<br />
For example:<br />
i=1<br />
while [ $i -le $<strong>MKS</strong>SI_NMEMBER ]<br />
do<br />
eval si command<br />
-P\${<strong>MKS</strong>SI_MEMBER_PROJECT$i}\${<strong>MKS</strong>SI_MEMBER$i}<br />
let i=i+1<br />
done<br />
Note: If set, the environment variables <strong>MKS</strong>SI_VARIANT and <strong>MKS</strong>SI_BUILD are<br />
also exported when invoking an si command with the options for --devpath and<br />
--projectrevision.<br />
Sandbox For an open sandbox window:<br />
<strong>MKS</strong>SI_WINDOW=sandbox<br />
<strong>MKS</strong>SI_FILE=full-path-to-sandbox<br />
<strong>MKS</strong>SI_NMEMBER=number of <strong>MKS</strong>SI_MEMBER objects<br />
<strong>MKS</strong>SI_NSUBPROJECT=number of <strong>MKS</strong>SI_SUBPROJECT objects<br />
Note: The variables <strong>MKS</strong>SI_MEMBERxx= and <strong>MKS</strong>SI_SUBPROJECTxx= take the<br />
same settings as for a project window. The corresponding variables<br />
<strong>MKS</strong>SI_MEMBER_SANDBOXxx and <strong>MKS</strong>SI_SUBPROJECT_SANDBOXxx are also as<br />
described for a project. If applicable, <strong>MKS</strong>SI_VARIANT and <strong>MKS</strong>SI_BUILD are<br />
also set.<br />
87
Chapter 4: Source Integrity Interfaces<br />
Window Type Opened Associated Environment Variable<br />
Member History For an open member history window:<br />
<strong>MKS</strong>SI_WINDOW=archive<br />
<strong>MKS</strong>SI_FILE=pathname-relative to project/sandbox of archive<br />
If the window was opened via a sandbox:<br />
<strong>MKS</strong>SI_WORKINGFILE=full-path-to-working-file<br />
<strong>MKS</strong>SI_SANDBOX=full-path-to-sandbox<br />
Note: <strong>MKS</strong>SI_WORKINGFILE is not set if the working file does not exist.<br />
If the window was opened via a project:<br />
<strong>MKS</strong>SI_PROJECT=server-path-to-project<br />
If the project/sandbox was a variant:<br />
<strong>MKS</strong>SI_VARIANT=variant-name<br />
If the project/sandbox was a build:<br />
<strong>MKS</strong>SI_BUILD=build-number<br />
If revisions were selected:<br />
<strong>MKS</strong>SI_REVISIONxx=1.2<br />
That is, there are n variables from <strong>MKS</strong>SI_REVISION1 to <strong>MKS</strong>SI_REVISIONxx,<br />
containing each selected revision number.<br />
Project History For an open project history window:<br />
<strong>MKS</strong>SI_WINDOW=projecthistory<br />
<strong>MKS</strong>SI_FILE=server-side-project-path<br />
Note: <strong>MKS</strong>SI_REVISIONxx is set in the same way as a member history.<br />
Source Integrity Web Interface<br />
88<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 window 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 welcome 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 command line interface.<br />
The Source Integrity Web interface window contains a number of common<br />
features explained in this section.<br />
Title Bar<br />
The title bar is the uppermost component 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 />
89
Chapter 4: Source Integrity Interfaces<br />
90<br />
Menu Bar<br />
The menu bar is located directly below the title bar. Each menu contains<br />
available commands. 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 commands varies depending on the function<br />
you are performing (for example, working with a project or with a member<br />
history).<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 commonly used Source Integrity commands. 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 become available when an item is selected in a<br />
certain window. For example, selecting a project in a Project window<br />
displays project command toolbar buttons.<br />
Project Window<br />
The Source Integrity Web interface provides access to the Project window.<br />
The Project window displays the project members and hierarchy for<br />
projects registered with the Integrity Server.<br />
The Project window 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 command 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 />
u s e r g u i d e
Using Filters<br />
Filter List<br />
Source Integrity Web Interface<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 />
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 259.<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 268.<br />
Under Specify a State, enter the state name in the field, then click OK.<br />
91
Chapter 4: Source Integrity Interfaces<br />
Command Line Interface<br />
92<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 />
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 command line interface (CLI) to manage your<br />
projects, sandboxes, and members, and to configure Source Integrity. To<br />
access the command line interface from a computer running Windows,<br />
from the Start menu select MS-DOS Prompt or Command Prompt<br />
(depending on the version of Windows).<br />
The command line interface, or CLI, is a program that allows a user to<br />
enter keywords as instructions to a computer 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 complete information about all Source Integrity commands and<br />
their options.<br />
NOTE<br />
If you are using the command 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 />
commands you do not need to specify the sandbox name in the command<br />
options.<br />
u s e r g u i d e
Viewing<br />
Available CLI<br />
Commands<br />
Using the<br />
Graphical <strong>User</strong><br />
Interface From<br />
the CLI<br />
Command<br />
Prompts<br />
Member Name<br />
Arguments<br />
Command Line Interface<br />
You can view available Source Integrity commands by typing si.<br />
To view a list of a command’s options, add -? or --usage to the end of the<br />
command, for example, si connect -?.<br />
In addition to using the command line interface by itself, you can also<br />
combine the graphical user interface with commands entered in the<br />
command line interface. This can be useful if you prefer to perform certain<br />
operations in the command line interface and others in the graphical user<br />
interface.<br />
For example, you can use the si co command to check out a file, attaching<br />
-g or --gui to the end of the command 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 />
command 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 commands without specifying any<br />
options, for example, si connect. Entering only the command prompts<br />
you to add additional information that you would normally add in the<br />
form of command options. This is useful for commands, 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 commands, member refers to members of an<br />
Integrity Server project. If the member argument is omitted for project or<br />
sandbox commands, the command is applied to all of the members of the<br />
project or sandbox. The member element must be the last entry of a<br />
command statement.<br />
93
Chapter 4: Source Integrity Interfaces<br />
94<br />
There are three ways to apply a command to multiple members:<br />
Type Multiple Member Names<br />
You can enter two or more member names, separated by spaces, as the<br />
member component. For example, the command:<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 command line (subject to the line length limitations of your<br />
operating system).<br />
NOTE<br />
Source Integrity commands do not span command shell line lengths.<br />
Use Wildcards<br />
Use wildcards in the member component. For example, the command:<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 command should be applied<br />
to. For example, the command:<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 command 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 />
compile a list of members with the find command and copy them to a text<br />
file. The find command is a standard UNIX utility and is available on<br />
Win32 based systems with <strong>MKS</strong> Toolkit.<br />
u s e r g u i d e
<strong>MKS</strong> Visual Difference Interface<br />
Application<br />
Window<br />
<strong>MKS</strong> Visual Difference Interface<br />
The <strong>MKS</strong> Visual Difference tool is a graphical application that allows you<br />
to compare 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 />
Similar to the Source Integrity application window, <strong>MKS</strong> Visual Difference<br />
contains a number of common features explained in this section.<br />
Title Bar<br />
The title bar is the uppermost component 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 />
95
Chapter 4: Source Integrity Interfaces<br />
96<br />
Menu Bar<br />
The menu bar is located directly below the title bar. Each menu contains<br />
available operations. When you first start <strong>MKS</strong> 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 />
Toolbar<br />
Immediately below the menu bar is a toolbar that provides easy access to<br />
the most commonly 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 become available and unavailable for use depending on<br />
the mode you are in. For more information, see “Modes” on page 98.<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 become 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 comparing the revisions.<br />
u s e r g u i d e
NOTE<br />
Under the View menu, the following controls are also available:<br />
<strong>MKS</strong> Visual Difference Interface<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 <strong>MKS</strong> Visual Difference window and<br />
display the revisions you are comparing including line numbers for<br />
navigation (line numbers can be removed through the <strong>MKS</strong> 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 comparison.<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 comparison. 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 />
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 324.<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 comparison.<br />
97
Chapter 4: Source Integrity Interfaces<br />
Modes<br />
98<br />
Shortcut Menu<br />
<strong>MKS</strong> 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. <strong>MKS</strong> 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 <strong>MKS</strong> 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 98<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 />
<strong>MKS</strong> 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 compare 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 appears. This dialog box allows you to<br />
specify which revision you want as the Merge From and Merge To.<br />
A bullet appears next to the mode currently being used.<br />
u s e r g u i d e
Preferences<br />
<strong>MKS</strong> Visual Difference Interface<br />
Preferences allow you to customize the appearance of the <strong>MKS</strong> 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 <strong>MKS</strong> Visual Difference interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box appears.<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 79.<br />
NOTE<br />
The toolbar buttons available for configuration varies depending on which<br />
mode you are working in.<br />
99
Chapter 4: Source Integrity Interfaces<br />
100<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 <strong>MKS</strong> 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 <strong>MKS</strong> Visual Difference<br />
interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box appears.<br />
2 Click the Fonts & Colors tab.<br />
The Fonts & Colors panel appears.<br />
u s e r g u i d e
<strong>MKS</strong> 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 appears.<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 appears.<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 appears.<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 />
<strong>MKS</strong> Visual Merge Interface<br />
<strong>MKS</strong> Visual Difference is updated with your changes.<br />
The <strong>MKS</strong> Visual Merge tool is a graphical application that allows you to<br />
compare 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 <strong>MKS</strong><br />
Visual Difference in look and feel, but includes many advanced features<br />
used for complicated merging tasks.<br />
101
Chapter 4: Source Integrity Interfaces<br />
Application<br />
Window<br />
102<br />
The three-way differencing in <strong>MKS</strong> Visual Merge allows you to compare<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 comparison in <strong>MKS</strong><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, <strong>MKS</strong> Visual Merge<br />
contains a number of common features explained in this section.<br />
u s e r g u i d e
Title Bar<br />
<strong>MKS</strong> Visual Merge Interface<br />
The title bar is the uppermost component 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 commands. <strong>MKS</strong> Visual Merge has four menus in the menu bar:<br />
File, Edit, View, and Help. The list of available commands 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 commonly used <strong>MKS</strong> Visual Merge commands. 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 become 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 appears.<br />
Ignore Whitespace ignores tab and white space throughout the lines in<br />
the revisions.<br />
Ignore Case ignores the type case when comparing the revisions.<br />
103
Chapter 4: Source Integrity Interfaces<br />
104<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 <strong>MKS</strong> Visual Merge window and display<br />
the revisions you are comparing including line numbers for navigation<br />
(line numbers can be removed through the <strong>MKS</strong> 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 />
comparison. You can view the Merge From, Merge Base and Merge To<br />
revisions.<br />
The split layout displays in four panes for comparison. 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 />
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 />
Scrolling in the view panes is synchronized.<br />
u s e r g u i d e
Preferences<br />
Shortcut Menu<br />
<strong>MKS</strong> Visual Merge Interface<br />
<strong>MKS</strong> 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 />
<strong>MKS</strong> 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 <strong>MKS</strong> 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 <strong>MKS</strong> Visual Merge interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box appears.<br />
105
Chapter 4: Source Integrity Interfaces<br />
106<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 79.<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 <strong>MKS</strong> 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 <strong>MKS</strong> Visual Merge interface<br />
1 Select View > Preferences.<br />
The Preferences dialog box appears.<br />
2 Click the Fonts & Colors tab.<br />
The Fonts & Colors panel appears.<br />
u s e r g u i d e
<strong>MKS</strong> 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 appears.<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 appears in a particular<br />
block. If the foreground and background colors of a block are the same you will<br />
not be able to read the text.<br />
The Choose Foreground Color dialog box appears.<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 />
107
Chapter 4: Source Integrity Interfaces<br />
108<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 appears.<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 />
<strong>MKS</strong> 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 110<br />
“Working With Subprojects” on page 118<br />
“Working With Sandboxes” on page 130<br />
109
Chapter 5: Project and Sandbox Operations<br />
Working With Projects<br />
Creating a<br />
Project<br />
110<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 />
opening or viewing a project<br />
creating a subproject<br />
creating shared subprojects<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 dialog box. With the<br />
Registered Projects dialog box open, click Create (or select Create from the<br />
shortcut menu), and the Specify Project to Create dialog box appears.<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 window.<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 />
u s e r g u i d e
The Specify the Project to Create dialog box appears.<br />
Working With Projects<br />
2 Select a location, where you want to create the project, from the Look<br />
in list.<br />
This step is applicable only when your administrator has specified<br />
multiple server roots. If multiple server roots are specified, the Look in<br />
list contains the possible choices. Once you select a location, its name<br />
appears in brackets in the title bar of the dialog box, for example, (c:/).<br />
For more information on multiple server roots, consult your<br />
administrator or see the Integrity Server Installation and Administration<br />
<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 />
compatibility, 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 />
111
Chapter 5: Project and Sandbox Operations<br />
Importing a<br />
Project<br />
112<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 window.<br />
You can now create a sandbox, then add members to the sandbox. For<br />
more information, see “Working With Sandboxes” on page 130.<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 />
Importing a project registers it with the Integrity Server. Once a project is<br />
imported, Source Integrity commands can be performed upon it.<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 dialog box appears.<br />
u s e r g u i d e
TIP<br />
Working With Projects<br />
The Registered Projects dialog box supports standard shortcut menus. To<br />
display the menu of actions you can perform, select a sandbox and then right<br />
click it. Source Integrity displays the applicable shortcut menu.<br />
2 Click Import.<br />
The Select One or More Projects dialog box appears.<br />
3 Browse to the project file on the server.<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 />
IMPORTANT<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 dialog box.<br />
113
Chapter 5: Project and Sandbox Operations<br />
Dropping a<br />
Project<br />
114<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, the project is not deleted and you can import it<br />
again if you want it to be accessible in Source Integrity.<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 dialog box appears.<br />
TIP<br />
The Registered Projects dialog box supports standard shortcut menus. To<br />
display the menu of actions you can perform, select a sandbox and then right<br />
click it. Source Integrity displays the applicable shortcut menu.<br />
2 Select the project you want to drop.<br />
3 Click Drop.<br />
The Confirm Project Drop dialog appears.<br />
u s e r g u i d e
Opening or<br />
Viewing a<br />
Project<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 dialog box.<br />
Working With Projects<br />
Opening a project in the graphical user interface allows you to view the<br />
project and perform certain commands with its members.<br />
The Project window 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 />
115
Chapter 5: Project and Sandbox Operations<br />
116<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 141.<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 dialog box. With the<br />
Registered Projects dialog box open, select the project you want to open and<br />
click Open, or select Open from the shortcut menu. The project appears in a<br />
Project window.<br />
5 To accept the options, click Finish. To modify the options, click Back.<br />
The project opens in a Project window.<br />
To open a project in the Web interface<br />
1 Select File > Open Project.<br />
The Select Project dialog box appears.<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 window 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 />
117
Chapter 5: Project and Sandbox Operations<br />
Working With Subprojects<br />
Creating a<br />
Subproject<br />
118<br />
Source Integrity allows you to create large projects composed of smaller<br />
component 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 commands.<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 common 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 command.<br />
Once you have created a subproject you can add members and configure<br />
the subproject if necessary.<br />
You can also use the Subproject > Create command to re-add a subproject<br />
that was dropped for the purposes of scripts and backwards compatibility<br />
with previous versions of Source Integrity.<br />
To create a subproject in the graphical user interface<br />
1 With a Project or Sandbox window open, select the project or sandbox<br />
to add the subproject to.<br />
2 From a Project window, select Project > Subproject > Create.<br />
From a Sandbox window, select Sandbox > Subproject > Create.<br />
The Specify the Subproject to Create on localhost:portnumber dialog<br />
box appears.<br />
u s e r g u i d e
Adding a<br />
Subproject<br />
Working With Subprojects<br />
3 Select the subproject to create, or enter the name for the subproject, for<br />
example, applications.pj.<br />
4 Click OK.<br />
The subproject appears in a Project or Sandbox window.<br />
You can now add members to the subproject as you would with a project.<br />
When a subproject has been dropped from a project the subproject’s<br />
historical information remains. The Subproject > Add command allows you<br />
to re-add 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 window open, select the project or sandbox<br />
you want to add the subproject to.<br />
2 From a Project window, select Project > Subproject > Add.<br />
From a Sandbox window, select Project > Subproject > Add.<br />
The Add Subproject Wizard appears.<br />
119
Chapter 5: Project and Sandbox Operations<br />
120<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 />
u s e r g u i d e
Working With Subprojects<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 141.<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.<br />
To modify the options, click Back.<br />
The subproject appears in the Project or Sandbox window.<br />
121
Chapter 5: Project and Sandbox Operations<br />
Creating a<br />
Shared<br />
Subproject<br />
122<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 common 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 complete the operation.<br />
A shared subproject functions the same as an unshared subproject and is<br />
accessible by the most commands.<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 />
u s e r g u i d e
Working With Subprojects<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 create a shared subproject in the graphical user interface<br />
1 With a Project or Sandbox window open, select the project or sandbox<br />
you want to add the shared subproject to.<br />
2 From a Project window, select Project > Subproject > Add Shared.<br />
From a Sandbox window, select Sandbox > Subproject > Add Shared.<br />
The Add Shared Subproject Wizard appears.<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 />
123
Chapter 5: Project and Sandbox Operations<br />
124<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 />
u s e r g u i d e
Working With Subprojects<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 141.<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, for example, 1.1.<br />
Select Label, and from the list select a project label.<br />
125
Chapter 5: Project and Sandbox Operations<br />
Configuring a<br />
Subproject<br />
126<br />
Default adds a subproject based on the parent project type.<br />
8 To accept the options, click Finish.<br />
To modify the options, click Back.<br />
The shared subproject appears in the Project or Sandbox window with<br />
a shared icon (Project window: or Sandbox window: ).<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 window. 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 />
u s e r g u i d e
Working With Subprojects<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 />
To configure a subproject in the graphical user interface or the Web<br />
interface<br />
1 With a Project or Sandbox window open, select the subproject you<br />
want to configure.<br />
2 In the GUI, from a Project window, select Project > Subproject ><br />
Configure.<br />
In the GUI, from a Sandbox window, select Sandbox > Subproject ><br />
Configure.<br />
In the Web, from a Project window, select Project > Configure<br />
Subproject.<br />
The Configure Subproject dialog box appears.<br />
127
Chapter 5: Project and Sandbox Operations<br />
128<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 141.<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, for example, 1.1.<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 complete the operation.<br />
The subproject is re-configured.<br />
Subprojects configured as a build subproject appear with a build<br />
project icon (Project window: or Sandbox window: ), and the<br />
revision or label that the build project is based on, for example,<br />
tools.pj (1.1).<br />
Subprojects configured as a variant subproject appear with a variant<br />
project icon (Project window: or Sandbox window: ), and the<br />
u s e r g u i d e
Dropping a<br />
Subproject<br />
Working With Subprojects<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 window or through a Sandbox window. For<br />
more details on removing a subproject through a Sandbox window, see<br />
“Dropping Members From a Project” on page 158.<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 />
To drop a subproject in the graphical user interface<br />
1 With the Manage Projects dialog box, or a Project or Sandbox window<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 window, select Project > Drop Members.<br />
From the Sandbox window, select Sandbox > Drop Members.<br />
The Drop Subproject dialog box appears.<br />
129
Chapter 5: Project and Sandbox Operations<br />
130<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 />
Working With Sandboxes<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 />
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 />
u s e r g u i d e
Creating a<br />
Sandbox<br />
Working With Sandboxes<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 components 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 recommended.<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 window open, the project path and name appears<br />
in the Project Name field. If you click Select, the Select One or More<br />
Projects dialog box appears.<br />
131
Chapter 5: Project and Sandbox Operations<br />
132<br />
3 Select a project.<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.<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 command (see “Resyncing<br />
Members” on page 184).<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 />
u s e r g u i d e
Working With Sandboxes<br />
View Sandbox After Creation displays the sandbox after it is<br />
created.<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 />
7 Click Next.<br />
If the directory you specify does not exist, a Confirm Create Sandbox<br />
Location dialog box appears 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 />
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 139.<br />
133
Chapter 5: Project and Sandbox Operations<br />
134<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 141.<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 144.<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 window.<br />
To modify the options, click Back.<br />
You can also create a sandbox from the Registered Sandboxes dialog box.<br />
With the Registered Sandboxes dialog box open, click Create (or select<br />
Create from the shortcut menu). Specify the server name and port number<br />
in the Specify Server Connection dialog box, and click OK. The Create<br />
Sandbox Wizard appears. To finish creating your sandbox complete<br />
previous steps 2 through 9.<br />
u s e r g u i d e
Importing a<br />
Sandbox<br />
Working With Sandboxes<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 />
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 dialog box appears.<br />
TIP<br />
The Registered Sandboxes dialog box supports standard shortcut menus. To<br />
display 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 appears.<br />
135
Chapter 5: Project and Sandbox Operations<br />
Dropping a<br />
Sandbox<br />
136<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 Select a Project dialog box appears.<br />
5 Select the corresponding master project from the list of projects.<br />
6 Click OK.<br />
The sandbox is added to the Registered Sandboxes dialog box.<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 dialog box appears.<br />
u s e r g u i d e
TIP<br />
Working With Sandboxes<br />
The Registered Sandboxes dialog box supports standard shortcut menus. To<br />
display 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 appears.<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 dialog box.<br />
137
Chapter 5: Project and Sandbox Operations<br />
Opening or<br />
Viewing a<br />
Sandbox<br />
138<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 window 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 appears.<br />
2 To select a sandbox type, click a sandbox type tab.<br />
Regular is a sandbox used for regular development.<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 window.<br />
u s e r g u i d e
Viewing Which<br />
Sandbox<br />
Locked a<br />
Member<br />
Creating Variant<br />
Sandboxes and<br />
Development<br />
Paths<br />
Working With Sandboxes<br />
You can also open a sandbox from the Registered Sandboxes dialog box.<br />
With the Registered Sandboxes dialog box open, select the sandbox you<br />
want to open, and click Open, or select Open from the shortcut menu. The<br />
sandbox appears in a sandbox window.<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 59.<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 />
139
Chapter 5: Project and Sandbox Operations<br />
140<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 />
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 />
u s e r g u i d e
Working With Sandboxes<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 />
To create a development path in the graphical user interface and Web<br />
interface<br />
1 With a Project, Project History, or Sandbox window 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 131. from. For more information on<br />
working with subprojects, see “Working With Subprojects” on<br />
page 118.<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 window, select Project > Development Path<br />
> Create.<br />
141
Chapter 5: Project and Sandbox Operations<br />
142<br />
3 In the Web, from a Project window, select Project > Create<br />
Development Path.<br />
From a Project History window, select History > Create Development<br />
Path.<br />
From a Sandbox window, select Sandbox > Development Path ><br />
Create.<br />
The Create Development Path dialog box appears.<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 />
u s e r g u i d e
Removing a<br />
Development<br />
Path<br />
Working With Sandboxes<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 window open, select the<br />
project.<br />
2 In the GUI, from a Project window, select Project > Development Path<br />
> Remove.<br />
In the Web, from a Project window, select Project > Remove<br />
Development Path.<br />
From a Project History window, select History > Remove Development<br />
Path.<br />
From a Sandbox window, select Sandbox > Development Path ><br />
Remove.<br />
The Remove Development Path dialog box appears.<br />
3 From the Development Path list, select a development path to remove.<br />
For more information, see “Controlling Projects” on page 226.<br />
4 To remove the development path, click OK.<br />
The development path is removed.<br />
143
Chapter 5: Project and Sandbox Operations<br />
Using Build<br />
Sandboxes<br />
144<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 131. To view<br />
a build project, see “Opening or Viewing a Project” on page 115.<br />
Within a build sandbox, you can:<br />
change labels and states<br />
resynchronize your sandbox<br />
compare a member revision in the build sandbox to another revision<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 />
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 146<br />
“Performing Member Operations” on page 161<br />
“Deferring Member Operations” on page 189<br />
“Comparing Differences” on page 192<br />
“Using Keywords” on page 194<br />
145
Chapter 6: Member Operations<br />
Managing Project Members<br />
Adding<br />
Members to a<br />
Project<br />
146<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 />
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 window.<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 />
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 recommended system configuration.<br />
Consult your administrator for more information.<br />
A batch server-side utility, the si import command, 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 155.<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 189.<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 />
u s e r g u i d e
To add members in the graphical user interface<br />
Managing Project Members<br />
1 With a Sandbox window open, select the sandbox or subsandbox you<br />
want to add members to.<br />
2 Do one of the following:<br />
Select Sandbox > Add Members.<br />
Click .<br />
The Add Members Wizard appears.<br />
3 To add a list of files to the project, click Add File.<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<br />
appears.<br />
5 Select one or more files from the displayed file list, navigating to the<br />
desired directory if necessary.<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 />
147
Chapter 6: Member Operations<br />
148<br />
6 Click Open.<br />
The files are added to the members list. To remove files, select the files,<br />
then click Remove.<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 complete the operation, click Finish. To make changes, click Back.<br />
The Create Archive dialog box appears.<br />
10 Modify the following Create Archive options as necessary:<br />
In the Archive Description field, enter a description 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 to it a<br />
description.<br />
In the Author field, if necessary, enter your user name. The user<br />
name specified in the Add Members command 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 />
NOTE<br />
If specifying a revision number, 0.0 and 0.1 are acceptable revision numbers.<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 />
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. The operation in the sandbox still takes<br />
place immediately and Source Integrity displays the icon.<br />
149
Chapter 6: Member Operations<br />
150<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 re-adding a dropped member and the member’s archive still<br />
exists, the Existing archive detected dialog box appears informing you<br />
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 complete the operation, click OK.<br />
To complete an operation affecting multiple files, click OK to All.<br />
14 Repeat steps 1 to 12 for the remaining members, if necessary.<br />
u s e r g u i d e
Managing Project Members<br />
The newly added members appear in your Sandbox window.<br />
To add members in the Web interface<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 appears.<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 appears.<br />
151
Chapter 6: Member Operations<br />
152<br />
4 Modify the following Create Archive options as necessary:<br />
In the Archive Description field, enter a description of the<br />
member.<br />
IMPORTANT<br />
The à options, such as Close Change Package, appear<br />
only 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 command 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 />
NOTE<br />
If specifying a revision number, 0.0 and 0.1 are acceptable revision numbers.<br />
u s e r g u i d e
Managing Project Members<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 />
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 appears.<br />
153
Chapter 6: Member Operations<br />
154<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 appears informing you<br />
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 />
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 window.<br />
u s e r g u i d e
Importing<br />
Members<br />
Managing Project Members<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 “Creating a Shared Subproject” on page 122.<br />
To import a member in the graphical user interface<br />
1 With a Project window open, select Project > Import Members.<br />
The Import Members Wizard appears.<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<br />
appears.<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 />
155
Chapter 6: Member Operations<br />
156<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
6 Under Options, you can specify the following information:<br />
Managing Project Members<br />
In the Author field, if necessary, enter your user name. The user<br />
name specified in the command 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 replace literal values in the revision with keywords, select the<br />
Unexpand Keywords option.<br />
To recursively import members that exist in the specified<br />
directory location, select the Recurse into Directories option.<br />
157
Chapter 6: Member Operations<br />
Dropping<br />
Members From<br />
a Project<br />
158<br />
7 To complete the operation, click Finish.<br />
To make changes, click Back.<br />
The members appear in the Project window.<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 window, or through a Project window. For more details on<br />
removing members through a Project window, see “Dropping a<br />
Subproject” on page 129.<br />
In the Web interface, because sandboxes do not exist, you can remove<br />
members through the Project window 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 has been 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 />
NOTE<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 window open, select one or more members<br />
to remove from the project or sandbox.<br />
2 From a Project window, do one of the following:<br />
Select Project > Drop Members.<br />
Click .<br />
From a Sandbox window, do one of the following:<br />
Select Sandbox > Drop Members.<br />
Click .<br />
The Drop Member dialog box appears.<br />
u s e r g u i d e
Managing Project Members<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 />
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. The operation in the sandbox<br />
still takes place immediately and Source Integrity displays the<br />
icon.<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 339.<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 appears.<br />
The project or sandbox is updated to reflect the removed member, and<br />
the member is removed from the project.<br />
159
Chapter 6: Member Operations<br />
160<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 184.<br />
To drop a member in the Web interface<br />
1 From a Project window, select the member(s) you want to drop from<br />
the 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 appears.<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 />
u s e r g u i d e
Performing Member Operations<br />
4 To drop the selected member, click OK. To drop multiple members,<br />
click OK to All.<br />
Performing Member Operations<br />
Selecting<br />
Members<br />
If you selected the Confirm Drop option in step 3, the Confirm Drop<br />
dialog box appears.<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 appears. For information on the Integrity Manager<br />
integration see, “The Integrity Manager Integration” on page 339.<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 command allows you to highlight any members of the current<br />
sandbox or project that meet specified selection criteria. Members selected<br />
with this command can be manipulated as a group by other<br />
Source Integrity commands.<br />
To select specific members (graphical user interface only)<br />
1 With a Project or Sandbox window open, do one of the following:<br />
Select View > Select.<br />
Click .<br />
The Select Members dialog box appears.<br />
161
Chapter 6: Member Operations<br />
162<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 />
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 />
u s e r g u i d e
Checking Out a<br />
Member<br />
Performing Member Operations<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 the<br />
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 />
pending. Select a deferred operation from the Deferred 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 />
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 window.<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 />
163
Chapter 6: Member Operations<br />
164<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 appears. If you want to retain your changes in the<br />
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 />
To check out a member in the graphical user interface<br />
1 With a Sandbox or Member History window open, select one or more<br />
members to check out.<br />
2 From the Sandbox window, do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
From the Member History window, do one of the following:<br />
Select History > Check Out.<br />
Click .<br />
The Check Out dialog box appears.<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 168.<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 305.<br />
165
Chapter 6: Member Operations<br />
166<br />
To check out a member in the Web interface<br />
1 With a Project or Member History window 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 window, do one of the following:<br />
Select Member > Check Out<br />
Click .<br />
From the Member History window, do one of the following:<br />
Select History > Check Out.<br />
Click .<br />
The Check Out dialog box appears.<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 168.<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 appears.<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 has been checked out and saved to a temporary<br />
location 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 />
167
Chapter 6: Member Operations<br />
168<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 appears. 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 appears. 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 window (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<br />
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 />
u s e r g u i d e
Check Out Dialog Box Tab Revision to Check Out Options<br />
Performing Member Operations<br />
Labels Allows you to select a revision to check out by label. Select a label from the label<br />
list.<br />
Project allows you set the member revision for the following options:<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 />
or label 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 has been 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 become 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 />
169
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 />
170<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 313<br />
Manual causes Source Integrity to initiate the <strong>MKS</strong> 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 <strong>MKS</strong> Visual Merge tool.<br />
Highlight Output File causes Source Integrity to highlight conflicts in<br />
the resulting merged revision.<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 <strong>MKS</strong> 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 window. You can also use the Scan for Changes feature to display<br />
changes if the client has been offline from the server or if you need to see<br />
changes on your local drive.<br />
To view or edit a member in the graphical user interface<br />
1 With a Sandbox window 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 window 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 window 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 />
has been offline or if you need to see changes to members on your local<br />
drive.<br />
To scan a sandbox for changes in the graphical user interface<br />
1 With a Sandbox window open, select the members you want to scan<br />
for changes.<br />
2 Select View > Scan for Changes.<br />
The sandbox window displays members whose working file has<br />
changed (indicated by working file deltas, ), or a message informing<br />
you there are newer revisions available in the Member History<br />
(indicated by member deltas, ).<br />
171
Chapter 6: Member Operations<br />
Checking In a<br />
Member<br />
172<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 305.<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 />
u s e r g u i d e
Performing Member Operations<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 />
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 complete 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 />
173
Chapter 6: Member Operations<br />
174<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 becomes 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 becomes necessary to revise or update 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 become unreadable.<br />
Once a new revision has been 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 window open, select one or more<br />
members to check in.<br />
2 From the Sandbox window, do one of the following:<br />
Select Member > Check In.<br />
Click .<br />
From the Member History window, do one of the following:<br />
Select History > Check In.<br />
Click .<br />
The Check In dialog box appears.<br />
u s e r g u i d e
TIP<br />
Performing Member Operations<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 />
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 />
3 In the Revision Description field, enter a comment 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 become unreadable.<br />
175
Chapter 6: Member Operations<br />
176<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 179.<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 305.<br />
The member is checked in.<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 window 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 window, do one of the following:<br />
Select Member > Check In.<br />
Click .<br />
From the Member History window, do one of the following:<br />
Select History > Check In.<br />
Click .<br />
The Check In dialog box appears.<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 comment 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 become 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 />
177
Chapter 6: Member Operations<br />
178<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 179.<br />
The Specify Source File dialog box appears.<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 />
u s e r g u i d e
Check In Dialog Box Options<br />
Check In Options<br />
General Specifies the following general check in options:<br />
Performing Member Operations<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 command.<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 />
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 />
179
Chapter 6: Member Operations<br />
Check In Dialog Box Options<br />
Advanced Specifies the following advanced check in options:<br />
Renaming a<br />
Member<br />
180<br />
Author is the author name applied to the revision. If necessary, enter a name.<br />
The user name specified in the Add Members command 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 />
You can rename individual members while working from a Project or<br />
Sandbox window. When you rename a member, member attributes are<br />
copied 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 command. For more information deferred<br />
operations, see “Deferring Member Operations” on page 189.<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 />
u s e r g u i d e
Renaming a Member That Is the Tip Revision<br />
Performing Member Operations<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 window open, select the member you want<br />
to rename.<br />
2 Select Member > Rename.<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 />
181
Chapter 6: Member Operations<br />
182<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 becomes 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 command is<br />
performed directly from a Project window.<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 />
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 />
6 To complete 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 />
u s e r g u i d e
Discarding<br />
Changes to a<br />
Member<br />
Performing Member Operations<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 />
becomes 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 window open, select one or more<br />
members that are checked out in your name and/or have been<br />
modified.<br />
2 From a Sandbox window, do one of the following:<br />
Select Member > Revert.<br />
Click .<br />
From a Member History window, do one of the following:<br />
Select History > Revert.<br />
A confirmation dialog box appears if the working file has been<br />
modified.<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 />
183
Chapter 6: Member Operations<br />
Resyncing<br />
Members<br />
184<br />
When many users are working from sandboxes based on the same master<br />
project, it is common for the members in an individual sandbox to become<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 />
command line interface, you can use the si viewsandbox command 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 />
Resyncing Deferred Operations<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 />
Deferred Drop<br />
When resynchronizing a member associated with a deferred drop,<br />
where the working file has been modified, Source Integrity asks you if<br />
you 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 />
u s e r g u i d e
Performing Member Operations<br />
To resynchronize a member in the graphical user interface<br />
1 With a Sandbox window open, select one or more members that<br />
contain 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 appears. If you want to retain your changes in the<br />
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 />
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 command. 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 />
each revision of a member), you must apply the Resynchronize By CP<br />
command 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 405.<br />
185
Chapter 6: Member Operations<br />
Locking a<br />
Member<br />
186<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 has been<br />
modified, Source Integrity asks you to confirm that you want to merge<br />
your modifications into the working file. For more information on<br />
merging on a resyncing, see “Automatic Merging on Resync” on<br />
page 320.<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 window open, select one or more members<br />
to lock.<br />
2 Do one of the following:<br />
Select Member > Lock.<br />
Click .<br />
If your administrator has enabled the integration with<br />
Integrity Manager and set the option for IMTrackLocksEnabled,<br />
Source Integrity opens the Lock Revision dialog box.<br />
u s e r g u i d e
3 Configure the following options as necessary:<br />
Performing Member Operations<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 command 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 59), additional lock information may be available in columns,<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 window,<br />
information about the lock is displayed in the Member Information<br />
187
Chapter 6: Member Operations<br />
Unlocking a<br />
Member<br />
188<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 298.<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 window 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 428), select one or more locked members, then select Locks ><br />
Unlock.<br />
The revision is unlocked and the padlock symbol ( ) is removed.<br />
u s e r g u i d e
Deferring Member Operations<br />
Deferring Member Operations<br />
For certain operations in Source Integrity, you can defer the completion of<br />
the command 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 command line interface as<br />
the --defer option.<br />
You can apply the defer option to the following operations:<br />
adding a project member<br />
dropping a project member<br />
checking in a member<br />
renaming a member<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 83.<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 have been submitted. It is important to<br />
note 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 have been submitted to the project. For<br />
more information, see “Submitting Change Packages” on page 221.<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 />
189
Chapter 6: Member Operations<br />
Submitting<br />
Deferred<br />
Operations<br />
190<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 />
To submit, or complete, a deferred operation, you use the Member > Submit<br />
function. Submitting the operation completes the command and makes it<br />
visible in the associated project.<br />
To submit a deferred operation in the graphical user interface<br />
1 From a sandbox window, select the member with the deferred<br />
operation you want to submit (for example, a deferred check in, add,<br />
drop, or rename operation).<br />
2 From the menu bar, select Member > Submit.<br />
The Submit dialog box opens.<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 allows you to<br />
select a different change package from the one that was originally<br />
associated with the deferred item.<br />
Close Change Package causes Source Integrity to close the change<br />
package after submitting the item and completing the associated<br />
deferred operation.<br />
u s e r g u i d e
Cancelling<br />
Deferred<br />
Operations<br />
Resyncing<br />
Deferred<br />
Operations<br />
4 To complete the submission, click OK.<br />
Deferring Member Operations<br />
Source Integrity submits the item and completes the deferred<br />
operation.<br />
Once you have deferred an operation, you must use the Member > Revert<br />
command to cancel the defer operation. For more information on the revert<br />
command, see “Discarding Changes to a Member” on page 183.<br />
When you revert a deferred add operation, Source Integrity retains the<br />
working file for the pending member.<br />
A pending member is a member that is associated with a deferred add<br />
operation and will be added to the project at a future time when the<br />
operation is submitted. The member is shown as a deferred add in the<br />
sandbox, but not yet shown in the project. A pending member is also<br />
known as a deferred member.<br />
After the revert operation, the file becomes 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 />
Deferred Drop<br />
When resynchronizing a member associated with a deferred drop,<br />
where the working file has been modified, Source Integrity asks you if<br />
you 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 />
191
Chapter 6: Member Operations<br />
Comparing Differences<br />
192<br />
After you have made changes to a member’s working file, you usually<br />
check those changes back into the member history as a new revision. But<br />
you may also decide that those changes should be discarded. Before you<br />
make this decision, you have to be able to view the changes that you are<br />
checking in, or those that 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 compare them. For information on<br />
comparing revisions, see “Comparing Revisions” on page 301.<br />
You can also compare 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 172.<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 66.<br />
NOTE<br />
In the Source Integrity Web interface you cannot compare a working file to its<br />
member revision but you can compare revision differences. For information on<br />
comparing revisions, see “Comparing Revisions” on page 301.<br />
For information on merging revisions, see “Merging Revisions” on<br />
page 322 or “Branching and Merging Revisions” on page 305.<br />
To compare a member’s working file to its member revision in the<br />
graphical user interface<br />
1 With a Sandbox window 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 />
u s e r g u i d e
Comparing Differences<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 />
193
Chapter 6: Member Operations<br />
Using Keywords<br />
194<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 />
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 />
command:<br />
returns<br />
ident main.c<br />
main.c:<br />
$author: paula_t $<br />
$state: Exp $<br />
u s e r g u i d e
Using Keywords<br />
The following Source Integrity commands 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 command in the command<br />
line interface. The command line interface settings and dialog boxes in the<br />
graphical user interface can override the default settings. For information<br />
on setting command keyword options, see “Command Preferences” on<br />
page 48.<br />
For information on setting the keyword options for individual commands,<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 comments.<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 />
195
Chapter 6: Member Operations<br />
Locating<br />
Keywords<br />
Table of<br />
Keywords<br />
196<br />
Using the $Revision$ keyword to obtain the revision number of a file is<br />
one of the common applications of keywords. Other common 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 />
comment 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 complete list of changes that have been made to the member over<br />
time.<br />
NOTE<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 command in the command line interface to locate<br />
and display keywords (expanded or unexpanded) in one or more<br />
members. For more information about the ident command, see the<br />
Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> or the online man<br />
pages.<br />
This command 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 compiled 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 />
u s e r g u i d e
Using Keywords<br />
The following table describes default keywords and what each expands to.<br />
Ã<br />
$Author$ The name of the user who checked in the revision.<br />
$CompanyInfo$ The name of the company and/or other company<br />
info including address, E-mail and phone numbers.<br />
Strings may contain standard escapes like “\n” for<br />
new lines, but must be in ISO-646.<br />
$Date$ The check in date and time of the revision (as<br />
assigned at check in). The time is shown in<br />
Greenwich Mean Time (GMT/ or Coordinated<br />
Universal Time).<br />
$Header$ The file name of the archive, as well as the revision<br />
number, date and time, author, state, and locker (if<br />
locked).<br />
$Id$ The same as $Header$.<br />
$Locker$ The user ID of the user who locked the revision<br />
(empty if not locked).<br />
$Log$ The revision description supplied during check in,<br />
preceded by the archive’s member name, revision<br />
number, author, and revision date.<br />
Repeated check out operations append revision<br />
descriptions, rather than replacing existing ones.<br />
$Name$ The revision label (or labels) attached to a revision.<br />
$ProjectName$ The fully qualified name of the project of which the<br />
archive is a member.<br />
$ProjectRevision$ The revision number of the project that the archive<br />
is related. For use in build sandboxes only.<br />
$RCSfile$ The archive’s unqualified member name.<br />
$Revision$ The revision number.<br />
$Setting attribute$ The current value of the attribute defined in<br />
Source Integrity. For example, if the member<br />
contains pj set OS=nt, the keyword $Setting<br />
OS: unix$ is expanded to $Setting: $.<br />
$Source$ The same as $RCSfile$. The archive’s<br />
unqualified member name.<br />
$State$ The state setting of the revision.<br />
197
Chapter 6: Member Operations<br />
198<br />
u s e r g u i d e
Using Change Packages<br />
7<br />
KEY TERMS: change package, change package ID, submit change package, change<br />
package entry<br />
When addressing a development issue, work may need to be performed on<br />
several members. Source Integrity provides change packages to group all<br />
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 200<br />
“Why Use Change Packages?” on page 201<br />
“Using Change Packages to Control Development” on page 202<br />
“Creating a Change Package” on page 203<br />
“Adding Entries to a Change Package” on page 205<br />
“Managing Change Packages” on page 206<br />
“Viewing Change Package Entry Member Differences” on page 222<br />
199
Chapter 7: Using Change Packages<br />
What Are Change Packages?<br />
200<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 package entries take the<br />
form of operations, both deferred and committed.<br />
Note the following rules that apply when using issues and change<br />
packages:<br />
Each change package has a unique Change Package ID (CP ID). The<br />
CP 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 339.<br />
A change package acts as a log of both the changes to members which<br />
have already been committed 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 committed to the repository. It tracks the work in<br />
progress using deferred operations that can be associated with a<br />
change package.<br />
A change package has two states, open and closed. A change<br />
package is open, or “in progress’ until you close it which signifies that<br />
work on the change has been completed.<br />
Only the creator of a change package or an administrator can close a<br />
change package<br />
Once a change package is closed, it cannot be reopened.<br />
u s e r g u i d e
Why Use Change Packages?<br />
Change packages provide the following advantages:<br />
Why Use Change Packages?<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 />
Since a change package is stored with each new revision, there is a link<br />
between every change in the repository to the related changes made<br />
by the author. If Integrity Manager is enabled, there is also a link back<br />
to the issue that provides the context for why the particular change<br />
was made.<br />
Using change packages with the track locks feature, managers are able<br />
to monitor work in progress.<br />
Groups of changes can be reviewed as a unit.<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 339.<br />
201
Chapter 7: Using Change Packages<br />
Using Change Packages to Control<br />
Development<br />
202<br />
The following is an example of the recommended way to use change<br />
packages to control development:<br />
1 Open the Manage Change Packages window (see “Managing Change<br />
Packages” on page 206). This is your control centre for managing your<br />
development activities.<br />
2 Create a change package (see “Creating a Change Package” on<br />
page 203) 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 window (see<br />
“Viewing Change Package Details and Entries” on page 211). All<br />
operations you associate with the change package will appear in this<br />
window.<br />
4 As part of your development process, identify the members that are<br />
affected by the issue. Add the members to the change package during<br />
one of the following operations:<br />
Check Out<br />
Rename<br />
Lock<br />
Add Member<br />
Drop Member<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 window.<br />
u s e r g u i d e
Creating a Change Package<br />
5 When all of the development to address the issue is completed, submit<br />
the change Package (see “Submitting Change Packages” on page 221).<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 />
6 Close the change package when the work to address the issue has been<br />
completed. The change package disappears from the Manage Change<br />
Packages window.<br />
To find the change package and view its entries, see “Finding Change<br />
Packages” on page 207).<br />
TIP<br />
If the Integrity Manager integration is enabled, change packages can also be<br />
associated with issues in Integrity Manager to control advancement through a<br />
workflow. For more information, see “The Integrity Manager Integration” on<br />
page 339.<br />
You can create a change package in one of the following ways: from the<br />
Change Package menu, when checking out or checking in a member, when<br />
renaming a member, when locking a member, and when adding or<br />
dropping a member.<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, Member History view window open,<br />
select 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 />
203
Chapter 7: Using Change Packages<br />
204<br />
Create a change package when performing any one of the<br />
following operations:<br />
“Checking Out a Member” on page 163<br />
“Checking In a Member” on page 172<br />
“Renaming a Member” on page 180<br />
“Locking a Member” on page 186<br />
“Adding Members to a Project” on page 146<br />
“Dropping Members From a Project” on page 158<br />
Refer to the Change Package portion of the panel.<br />
Click Create.<br />
The Create Change Package dialog box appears.<br />
2 In the Summary field, enter a summary of the change package, for<br />
example, Failed install. A value 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 343.<br />
u s e r g u i d e
4 Click OK.<br />
Adding Entries to a Change Package<br />
5 The change package is created. To view the change package, see<br />
“Viewing Change Package Details and Entries” on page 211.<br />
Adding Entries to a Change Package<br />
Once a change package has been created, you can add entries to that<br />
change package upon any one of the following operations:<br />
“Checking Out a Member” on page 163<br />
“Checking In a Member” on page 172<br />
“Renaming a Member” on page 180<br />
“Locking a Member” on page 186<br />
“Adding Members to a Project” on page 146<br />
“Dropping Members From a Project” on page 158<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 completed, the entry is added to the change package.<br />
The change package’s ID appears in the member’s C.P. ID (Change Package<br />
ID) column of a Project or Sandbox window.<br />
If the change package contains deferred operations or lock entries, a<br />
icon is displayed beside the change package ID in the C.P. ID column.<br />
TIP<br />
You can also add a member to a change package by dragging the member from<br />
a sandbox window to a a change package window (or change package in the<br />
Manage Change Packages window). The Check Out dialog box appears with<br />
the change package selected. For more information, see “Checking Out a<br />
Member” on page 163.<br />
205
Chapter 7: Using Change Packages<br />
206<br />
If the Integrity Manager integration is enabled and the change package is<br />
associated with an issue, the change package ID is displayed as a hyperlink<br />
in the C.P. ID column. When clicked, Integrity Manager opens the<br />
associated issue. For more information on the integration, see “The<br />
Integrity Manager Integration” on page 339.<br />
NOTE<br />
Managing Change Packages<br />
Lock tracking must be enabled for the Lock change package entry to appear in<br />
the Manage Change Packages window when viewed from a client on another<br />
machine.<br />
Source Integrity provides a central location to manage open change<br />
packages you have created. From one location, you can view change<br />
package entries, view any issues associated with a change package, submit<br />
any deferred operations for that change package, close a change package,<br />
edit a change package, or create a new change package.<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 appears.<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 change packages are enabled.<br />
Creator displays the username who created the change package.<br />
u s e r g u i d e
Finding Change<br />
Packages<br />
Managing Change Packages<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 the Change Packages View option in the “View<br />
Preferences” on page 59.<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 211)<br />
View Issue that is associated with the change package (see “Viewing a<br />
Change Package’s Issue” on page 346)<br />
Submit the change package (see “Submitting Change Packages” on<br />
page 221)<br />
Close a Change Package (see “Closing a Change Package” on<br />
page 219)<br />
Edit an existing Change Package (see “Editing a Change Package” on<br />
page 217)<br />
Create a new Change Package (see “Creating a Change Package” on<br />
page 203)<br />
While the Manage Change Packages window only displays open change<br />
packages that were created by you, Source Integrity provides you with a<br />
way to search through all of the change packages that have been created by<br />
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 complex criteria. See “Finding Change Packages<br />
Using a Query” on page 347 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 appears with the By Filer panel<br />
displayed.<br />
207
Chapter 7: Using Change Packages<br />
208<br />
If you want to find change packages using a filter, continue. To find a<br />
query using its ID, go to step 3.<br />
2 You can search for change packages using the following filters:<br />
Closed finds change packages that are in a closed state.<br />
Open finds change packages that are in an open 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 />
u s e r g u i d e
Managing Change Packages<br />
Description finds change packages that contain specified text in<br />
the change package description.<br />
Entry Type finds change packages that contain a specified entry<br />
type. The possible types are Add, Drop, Lock, RenameFrom,<br />
RenameTo, Update.<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 window.<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 339.<br />
To combine filters, select the desired filters, then select Logical<br />
AND or Logical OR to specify their relationship.<br />
To invert a filter (for example, search for change packages that do not<br />
have a project name), click the filter a second time and the ! symbol<br />
appears.<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 />
209
Chapter 7: Using Change Packages<br />
210<br />
4 Enter one of the following into the ID field:.<br />
The 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 the ID appears in the list. Add as many IDs to the list as you<br />
desire.<br />
To remove IDs from the list, select the IDs from in the list, then click<br />
Remove.<br />
TIP<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 347.<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 />
u s e r g u i d e
Viewing Change<br />
Package Details<br />
and Entries<br />
Managing Change Packages<br />
the same way as the Manage Change Packages window does. For<br />
more information, see “Managing Change Packages” on page 206.<br />
To update the search results with current data, select View > Refresh.<br />
To 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 205), 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 With the Manage Change Packages window open (see “Managing<br />
Change Packages” on page 206), select the change package you want<br />
to view.<br />
2 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 window appears.<br />
211
Chapter 7: Using Change Packages<br />
212<br />
The Change Package window displays the change package ID, person<br />
who created the change package, description (if one was provided),<br />
summary, date the change package was created, and the current<br />
change package state.<br />
By default, the Change Package window displays the following<br />
information for each change package entry:<br />
Type is the entry type of the change package entry. The possible<br />
types are Add, Drop, Lock, Rename, Update, Deferred Add,<br />
Deferred Drop, Deferred Check In, Deferred Rename.<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 />
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 />
Additional columns are available in the client preferences. To change<br />
the displayed columns, see “View Preferences” on page 59.<br />
u s e r g u i d e
Managing Change Packages<br />
3 From the Change Package window, you can select a change package<br />
entry and then perform the following tasks from the Change Package<br />
Entry menu:<br />
View Differences for the entry (see “Viewing Change Package<br />
Entry Member Differences” on page 222)<br />
View Revision that is associated with the entry (see “Viewing a<br />
Member’s Working File or Revision” on page 291). This always<br />
displays the revision stored on the repository.<br />
TIP<br />
Double click locked member or deferred check in entries to display the<br />
working file.<br />
View Revision Information associated with the entry (see<br />
“Viewing and Editing Revision Information” on page 284)<br />
View the Member History associated with the entry (see “Viewing<br />
a Member History” on page 280)<br />
Submit selected deferred entries (see “Submitting Deferred<br />
Operations” on page 190)<br />
Edit Settings for the selected deferred entries (see “Submitting<br />
Deferred Operations” on page 190)<br />
Revert the selected deferred entries (see “Cancelling Deferred<br />
Operations” on page 191)<br />
Edit Working File that is associated with a entry (see “Viewing a<br />
Member’s Working File or Revision” on page 291)<br />
Check In the selected lock entries (see “Checking In a Member” on<br />
page 172)<br />
Unlock the selected lock entries (see “Unlocking a Member” on<br />
page 188 or “Locking Revisions” on page 294)<br />
To update the list of change package entries with the most recent<br />
changes, select View > Refresh.<br />
To display or not display uncommitted entries (deferred entries and<br />
lock entries), select View > Show Uncommitted. Repeat to enable or<br />
disable the option.<br />
To display or not display entries that have been committed, select<br />
View > Show Committed. Repeat to enable or disable the option.<br />
213
Chapter 7: Using Change Packages<br />
214<br />
To view change package information and entries in the Web interface<br />
With a Project or Member History window open, click the change package<br />
ID.<br />
The Change Package View window is displayed.<br />
For more information on the change packages view, see “Change Package<br />
View (Web)” on page 426.<br />
To view a member’s change package information in the graphical<br />
user interface<br />
1 With a Project or Sandbox window 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 appears.<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 />
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 window open, select the member whose information<br />
you 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 window 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 appears.<br />
3 Click the Change Package tab.<br />
The Change Package panel appears.<br />
215
Chapter 7: Using Change Packages<br />
216<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 window 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 appears.<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 an open change package when necessary. You can update<br />
the following change package information: Summary, State, and<br />
Description.<br />
NOTE<br />
You can only edit a change package that you have created unless you have<br />
administrative 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 window open (see<br />
“Managing Change Packages” on page 206), select the change<br />
package you want to edit.<br />
From a Sandbox window, select the member whose associated<br />
change package you want to edit.<br />
View the details of the change package you want to edit (see<br />
“Viewing Change Package Details and Entries” on page 211).<br />
217
Chapter 7: Using Change Packages<br />
218<br />
2 Select Change Package > Edit.<br />
The Edit Change Package dialog box appears.<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. An Open change package is active and allows you to track<br />
modifications within it. A Closed change package indicates that<br />
modifications within it are complete, and it cannot be opened<br />
again.<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 window, select the member that is associated with the<br />
change 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 />
The Edit Change Package dialog box appears.<br />
u s e r g u i d e
Closing a<br />
Change<br />
Package<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. An Open change package is active and allows you to track<br />
modifications within it. A Closed change package indicates that<br />
modifications within it are complete, and it cannot be opened<br />
again.<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 have been made to the members and they are<br />
checked in, 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 you check in a member, when you add or<br />
drop a member, and when you rename a member.<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 339.<br />
NOTE<br />
You can only close a change package that you have created unless you have<br />
administrative permissions.<br />
219
Chapter 7: Using Change Packages<br />
220<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 206), select the change<br />
package you want to close.<br />
From a Sandbox window, select the member whose associated<br />
change package you want to close.<br />
View the details of the change package you want to close (see<br />
“Viewing Change Package Details and Entries” on page 211).<br />
2 Do one of the following:<br />
Select Change Package > Close.<br />
Click .<br />
The Confirm Close Change Package dialog box appears.<br />
3 To close the change package, click OK.<br />
The change package appears closed in the State column of the Manage<br />
Change Packages window (see “Managing Change Packages” on<br />
page 206).<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 any one of the following<br />
operations:<br />
“Checking In a Member” on page 172<br />
“Renaming a Member” on page 180<br />
“Dropping Members From a Project” on page 158<br />
“Adding Members to a Project” on page 146<br />
To close the change package when performing one of the above operations;<br />
on the dialog box, enable the Close Change Package option.<br />
After the operation is completed, the change package appears closed in the<br />
State column of the Manage Change Packages window (see “Managing<br />
Change Packages” on page 206).<br />
u s e r g u i d e
Submitting Change Packages<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 committed to the repository until they<br />
are submitted.<br />
To submit change package 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 206), select the change packages you<br />
want to submit.<br />
Display the desired change package in the Change Package<br />
window (see “Viewing Change Package Details and Entries” on<br />
page 211).<br />
From a Sandbox window, 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 />
3 All of the deferred operations in the change package are submitted.<br />
Individual confirmations for each operation appear. To avoid repeated<br />
confirmation, where possible click OK to All.<br />
221
Chapter 7: Using Change Packages<br />
Viewing Change Package Entry Member<br />
Differences<br />
222<br />
From the Change Package view, you can view the member differences of<br />
any change package entry.<br />
For updates, Source Integrity compares 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 compares revisions 1.3 and 1.2,<br />
displaying them in the Differences window<br />
For lock entries in the GUI, Source Integrity compares the working file<br />
with it’s immediately preceeding revision. You cannot difference a lock<br />
entry that does not have an associated sandbox.<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 206), 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 entry.<br />
The Change Package window appears.<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 192.<br />
To view change package entry member differences in the Web<br />
interface<br />
1 In a Project window, 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 appears.<br />
u s e r g u i d e
Viewing Change Package Entry Member Differences<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 192.<br />
223
Chapter 7: Using Change Packages<br />
224<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 complete 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 226<br />
“Controlling Sandboxes” on page 251<br />
“Controlling Members” on page 257<br />
“Generating Reports” on page 273<br />
225
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Controlling Projects<br />
Viewing and<br />
Editing Project<br />
Information<br />
226<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 window open, select the project or sandbox.<br />
2 In the GUI from a Project window, select Project > Properties > Project<br />
Information.<br />
In the GUI from a Sandbox window, select Sandbox > Properties ><br />
Project Information.<br />
In the Web from a Project window, select Project > Project Information.<br />
The Project Information dialog box appears.<br />
u s e r g u i d e
TIP<br />
Controlling Projects<br />
In the Source Integrity Web interface, you can also work with project<br />
information by selecting Tools > Manage to open the Registered Projects<br />
window, and then by selecting Project > Project Information.<br />
3 View or make changes to the project information as required.<br />
The General tab displays the following project information:<br />
Project Name is the path and name of the project.<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 “Creating a Shared Subproject” on page 122.<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 Attribute<br />
Information” on page 228. For information about the Development<br />
Paths tab, see “Working With Development Path Information” on<br />
page 230.<br />
4 To accept any changes you have made, click OK.<br />
The project information is saved.<br />
227
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
228<br />
Working With 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 />
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 appears.<br />
3 Click the Attributes tab.<br />
The Attributes panel appears.<br />
u s e r g u i d e
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 />
Controlling Projects<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 />
7 To accept any changes you have made, click OK.<br />
The project information is saved.<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 />
229
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
230<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 />
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 appears.<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 />
u s e r g u i d e
Viewing a<br />
Project History<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 />
TIP<br />
Controlling Projects<br />
To create a development path, see “Creating a Development Path” on page 141.<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 window is a window that displays the revision history<br />
of a project, including details on the revision number, author, date, labels,<br />
and promotion state of the project.<br />
231
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
232<br />
To view a project history in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox window open, select the project or sandbox.<br />
2 From a Project window, select Project > View Project History.<br />
From a Sandbox window, select Sandbox > View Project History.<br />
The Project History window appears.<br />
In the graphical user interface, you can toggle between the Graphical<br />
History view and the List view in the Project History window. For<br />
more information on toggling views, see “Changing Views (GUI)” on<br />
page 424.<br />
Project History Filters<br />
Like the filters in the Project and Sandbox windows, the Project History<br />
filters allow you to view and manipulate a predefined subset of project<br />
revisions 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 />
u s e r g u i d e
Opening a Build<br />
Project<br />
Adding Project<br />
Labels<br />
All Revisions shows all the revisions in the project.<br />
Controlling Projects<br />
You cannot use the All Revisions filter in combination 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 />
combination 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 />
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<br />
History > Lock operation for that project, the lock operation applies<br />
only to 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 window open, select the revision you want to<br />
open as a Build project.<br />
2 Select History > Open Build Project.<br />
The Build project appears in a new Project window.<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 window.<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 />
233
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
234<br />
To add a label to a project in the graphical user interface and Web<br />
interface<br />
1 With a Project History window open, select the revision you want to<br />
label.<br />
2 Do one of the following:<br />
Select History > Add Label.<br />
Click .<br />
The Add Project Label dialog box appears.<br />
TIP<br />
In the Source Integrity Web interface, you can also add a project label from the<br />
Project window 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 />
u s e r g u i d e
Deleting Project<br />
Labels<br />
Promoting a<br />
Project<br />
Controlling Projects<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 has been applied.<br />
To delete a project label in the graphical user interface and Web<br />
interface<br />
1 With a Project History window open, do one of the following:<br />
Select History > Delete Label.<br />
Click .<br />
The Delete Project Label dialog box appears.<br />
TIP<br />
In the Source Integrity Web interface, you can also delete a project label from<br />
the Project window 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 completion.<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 />
235
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Demoting a<br />
Project<br />
236<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 window open, select the revision you want to<br />
promote.<br />
2 Do one of the following:<br />
Select History > Promote.<br />
Click .<br />
The Promote Project dialog box appears.<br />
TIP<br />
In the Source Integrity Web interface, you can also promote a project from the<br />
Project window 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 window open, select the revision you want to<br />
demote.<br />
u s e r g u i d e
Checkpointing<br />
a Project<br />
2 Do one of the following:<br />
Select History > Demote.<br />
Click .<br />
The Demote Project dialog box appears.<br />
Controlling Projects<br />
TIP<br />
In the Source Integrity Web interface, you can also demote a project from the<br />
Project window 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 completely 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 />
237
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
238<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 command<br />
checkpoints the sandbox’s master project.<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 window open, select the project or sandbox.<br />
2 From a Project window, do one of the following:<br />
Select Project > Checkpoint Project.<br />
Click .<br />
From a Sandbox window, do one of the following:<br />
Select Sandbox > Checkpoint Project.<br />
Click .<br />
The Checkpoint dialog box appears.<br />
u s e r g u i d e
Controlling Projects<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 window, see<br />
“Adding Labels to Members” on page 266.<br />
NOTE<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 />
239
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Restoring a<br />
Project<br />
240<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 />
Revision Number is the revision number of the project. If you<br />
choose to specify a revision number, the number you supply must<br />
be higher than the head revision number (if you are<br />
checkpointing the main project) or the tip revision number (if you<br />
are checkpointing a variant project).<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 command allows you to restore a project to a<br />
previously checkpointed revision. When you apply the Restore Project<br />
command, 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 />
u s e r g u i d e
Controlling Projects<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 command 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 139).<br />
Source Integrity performs the Restore Project command 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 command by restoring the<br />
project to the pre-checkpointed revision. Build projects cannot be restored<br />
using the Restore Project command.<br />
You can restore any registered project or subproject through the graphical<br />
user interface, using either a Project or Sandbox window, or through the<br />
command line interface. When you work through a sandbox or<br />
subsandbox, the corresponding master project is referenced. The Restore<br />
Project command 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 window open, select the project or sandbox.<br />
2 From a Project window, select Project > Restore Project.<br />
From a Sandbox window, select Sandbox > Restore Project.<br />
The Restore Project dialog box appears.<br />
241
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
242<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 />
u s e r g u i d e
Controlling Projects<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 complete the restore operation, click OK.<br />
The selected version of the project is restored.<br />
In the member information pane of your sandbox window,<br />
Source Integrity displays information on the corresponding working<br />
file and available revision.<br />
243
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Viewing Project<br />
Differences<br />
244<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 command line interface, you can access this<br />
functionality through the si mods command.<br />
If you have installed the full Integrity Solution Integration,<br />
Source Integrity also provides information on any change packages that<br />
have been applied between two revisions of the project. This information is<br />
extremely useful for confirming the specific content of a project. For more<br />
information on change packages, see “The Integrity Manager Integration”<br />
on page 339.<br />
When you checkpoint a project, Source Integrity is actually saving a<br />
revision of the project file itself (that is, the .pj file). The project file<br />
contains information that can help you understand and manage the<br />
development of your projects. This information includes:<br />
the revision number of the current project<br />
the names and locations of all project members<br />
revision numbers of all project members<br />
any project attributes<br />
member attributes<br />
For more information on checkpointing, see “Checkpointing a Project” on<br />
page 237.<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 />
u s e r g u i d e
Comparing<br />
Project<br />
Revisions<br />
Project members may be added or deleted.<br />
Project attributes may be added or deleted.<br />
Controlling Projects<br />
Source Integrity can also checkpoint subprojects when a project is<br />
checkpointed. To checkpoint subprojects, open the Checkpoint dialog box,<br />
click the Advanced tab, and select the option for Recurse into Subprojects.<br />
There are three methods for comparing project revisions. Source Integrity<br />
can compare:<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 detailed procedures on comparing project revisions in the graphical<br />
user interface, see “To view project differences in the graphical user<br />
interface” on page 249. For the Web interface, see “To view project<br />
differences in the Web interface” on page 250.<br />
Comparing Two Specified 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 compare them.<br />
In the graphical user interface, you use the Project History window to<br />
select two versions of the project (in either the List view or Graphical<br />
History view). When you select History > View Project Differences,<br />
Source Integrity compares the two specified revisions of the project.<br />
An example of two revisions selected for comparison in the Project<br />
History List view.<br />
245
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
246<br />
TIP<br />
To select two revisions in the graphical user interface, hold CTRL and then click<br />
the left mouse button while highlighting each revision number.<br />
In the Web interface, you use the Project History window to select two<br />
versions of the project. When you select History > View Project Differences,<br />
Source Integrity compares the two specified revisions of the project.<br />
Comparing the Current Revision of the Project With<br />
a Specified Revision<br />
To compare the current revision of a project with a specified revision, you<br />
select the individual revision and Source Integrity compares it to the<br />
current revision.<br />
In the graphical user interface, you use the Project History window (in<br />
either the List view or the Graphical History view) to select one version of<br />
the project. When you select History > View Project Differences,<br />
Source Integrity compares the current project revision with the specified<br />
revision.<br />
u s e r g u i d e
Controlling Projects<br />
An example of a project revision selected for comparison in the Project<br />
History List view.<br />
In the Web interface, you use the Project History window to select one<br />
version of the project. When you select History > View Project Differences,<br />
Source Integrity compares the current project revision with the specified<br />
revision.<br />
247
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
248<br />
Comparing the Current Version of the Project With<br />
the Last Checkpointed Revision<br />
When no specific version of the project is selected, Source Integrity<br />
compares the current revision of the project with the last checkpointed<br />
revision. This comparison 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 compares the current<br />
revision of the project with the last checkpointed revision. This comparison<br />
shows all of the changes to the project since it was created or since the last<br />
time it was checkpointed.<br />
TIP<br />
An example of the Project History window in the List view.<br />
To deselect a revision that is already highlighted, move the pointer to the<br />
highlight, hold CTRL, and then click the left mouse button.<br />
In the Web interface, no project is selected so that Source Integrity<br />
compares the current revision of the project with the last checkpointed<br />
revision. This comparison 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 window in the Web interface, you can also compare the<br />
current version of the project with the last checkpointed revision by<br />
clicking Project > View Project Differences.<br />
u s e r g u i d e
To view project differences in the graphical user interface<br />
Controlling Projects<br />
If you select more than two project revisions, the View Project Differences<br />
command 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 window open, select the project whose<br />
differences you want to view.<br />
2 From a Project window, select Project > View Project History.<br />
From a Sandbox window, select Sandbox > View Project History.<br />
The Project History window appears.<br />
From the Project History window, choose the versions of the project<br />
you want to compare.<br />
To select more than one revision of the project, hold CTRL and click the<br />
left mouse button while highlighting each revision. To deselect a<br />
revision that is already highlighted, move the pointer to the highlight,<br />
hold CTRL, and click the left mouse button.<br />
3 With the required versions selected, do one of the following:<br />
Select History > View Project Differences.<br />
Click .<br />
The Changes to Project window opens, displaying the list of project<br />
differences.<br />
249
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
250<br />
If no project members have been modified since the last checkpoint, no<br />
information displays in the Changes to Project window.<br />
4 To perform further comparisons, close the Changes to Project window<br />
and return to the Project History window.<br />
To return to the Project History window, select Window from the<br />
Source Integrity menu and choose Project History from the list.<br />
To view project differences in the Web interface<br />
If you select more than two project revisions, the View Project Differences<br />
command 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 window, click Project > View Project History.<br />
The Project History window appears.<br />
3 From the Project History window, click the check boxes of the project<br />
versions you want to compare.<br />
4 With the required versions selected, do one of the following:<br />
Click History > View Project Differences.<br />
Click .<br />
The Changes to Project window opens, displaying the list of project<br />
differences.<br />
u s e r g u i d e
Controlling Sandboxes<br />
Viewing<br />
General<br />
Information<br />
Controlling Sandboxes<br />
If no project members have been modified since the last checkpoint, no<br />
information displays in the Changes to Project window.<br />
Using a Project window in the Web interface, you can also compare<br />
the current version of the project with the last checkpointed revision<br />
by clicking Project > View Project Differences.<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 />
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 With a Sandbox window open, select the sandbox.<br />
2 Select Sandbox > Properties > Sandbox Information.<br />
The Sandbox Information dialog box appears.<br />
251
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Viewing Project<br />
Attributes<br />
252<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 />
Sparse appears when the selected sandbox is a sparse sandbox.<br />
Members is the number of members in the sandbox.<br />
Subsandboxes is the number of subsandboxes in the sandbox.<br />
Project Description is a description of the master project.<br />
Working from your sandbox, you can only view project attribute<br />
information through the graphical user interface. These are the attributes<br />
that apply across the entire project, as well as any sandbox attributes you<br />
have applied for your workspace.<br />
Attributes can have either of the following formats:<br />
variable<br />
variable=value<br />
u s e r g u i d e
Taking Sandbox<br />
Snapshots<br />
To view project attributes in the graphical user interface<br />
1 Select the target sandbox.<br />
2 Select Sandbox > Properties > Sandbox Information.<br />
The Sandbox Information dialog box appears.<br />
3 Click the Project Attributes tab.<br />
The Project Attributes panel appears.<br />
The project attributes are displayed view-only.<br />
4 To close the Sandbox Information dialog box, click OK.<br />
Controlling Sandboxes<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 />
253
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
254<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 />
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 command 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 become the same type and shared subprojects of different<br />
types become 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 />
u s e r g u i d e
Controlling Sandboxes<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 126.<br />
The following is the recommended scenario for when to take a sandbox<br />
snapshot in a development environment:<br />
1 You are in a situation where you have been working in a regular<br />
sandbox, but 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 />
4 Create a development path from the project revision that corresponds<br />
to the snapshot (see “Creating a Development Path” on page 141).<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 recommended 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 />
255
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
256<br />
To take a snapshot of a sandbox in the graphical user interface<br />
1 From a Sandbox window, select Sandbox > Snapshot Sandbox.<br />
The Snapshot Sandbox dialog box appears.<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 />
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 />
u s e r g u i d e
The Advanced tab specifies advanced snapshot options:<br />
Controlling Members<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 231.<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 />
257
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
258<br />
To view or edit member information in the graphical user interface<br />
and Web interface<br />
1 With a Project or Sandbox window 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 appears.<br />
3 View or make changes to the member information as required.<br />
The Member Information dialog box presents the following<br />
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 />
Member Revision is the displayed member revision. To select<br />
another member revision, choose a revision from the Member<br />
Revision list.<br />
u s e r g u i d e
Controlling Members<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 computer<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 268.<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 comments 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 260. For information<br />
on the Labels tab, see “To view or edit member labels in the graphical<br />
user interface” on page 262.<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 />
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 command 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 />
259
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
260<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 appears.<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 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 />
To view or edit member attribute information in the Web interface<br />
1 With the Project window open, select the member whose information<br />
you want to view or edit.<br />
u s e r g u i d e
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 />
Controlling Members<br />
261
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
262<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 />
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 appears.<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 />
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 />
7 To accept the changes, click OK.<br />
To view or edit member label information in the Web interface<br />
1 With the Project window open, select the member whose information<br />
you 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 />
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 />
command.<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 272.<br />
263
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
264<br />
To update a member’s revision in the graphical user interface<br />
1 With a Project or Sandbox window open, select one or more members<br />
to update.<br />
2 Select Member > Properties > Update Revision.<br />
The Set Member Revision dialog box appears.<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 has been enabled by your administrator, the Last revision with<br />
State option appears. This option allows you to update the revision by a<br />
specific 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 />
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 />
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 />
Working updates the member revision to the version of the<br />
working file.<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 set the member revision, click OK (for multiple members, click OK<br />
to All).<br />
The member is updated to the specified revision.<br />
To update a member’s revision in the Web interface<br />
1 With a Project window open, select one or more members to update.<br />
2 Select Member > Update Revision.<br />
The Update Member Revision dialog box appears.<br />
265
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Adding Labels<br />
to Members<br />
266<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 />
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 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 window. If a member has more than<br />
three labels, Source Integrity displays a link ( ) that you can click to view<br />
all the member labels.<br />
Labels appear in alphabetical order in selection lists.<br />
u s e r g u i d e
Deleting<br />
Member Labels<br />
Controlling Members<br />
To add a label to a member in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox window open, select one or more members<br />
to 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 appears.<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 command.<br />
267
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Promoting<br />
Members<br />
268<br />
To delete a member label in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox window open, select one or more members<br />
to 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 appears.<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 />
u s e r g u i d e
Demoting<br />
Members<br />
Controlling Members<br />
To promote a member in the graphical user interface and Web<br />
interface<br />
1 With a Project or Sandbox window open, select one or more members<br />
to promote.<br />
2 In the GUI, select Member > Properties > Promote.<br />
In the Web, select Member > Promote.<br />
The Promote Member dialog box appears.<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 window open, select one or more members<br />
to demote.<br />
2 In the GUI, select Member > Properties > Demote.<br />
In the Web, select Member > Demote.<br />
The Demote Member dialog box appears.<br />
269
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Freezing<br />
Members<br />
270<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 />
u s e r g u i d e
Controlling Members<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 complete.<br />
When you want to allow project members to be changed, you can thaw<br />
them (see “Thawing Members” on page 272).<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 window. (The snowflake symbol appears only in<br />
the 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 window open, select the member you want<br />
to 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 />
271
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
Thawing<br />
Members<br />
272<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 />
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 becomes 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 window open, select the member you want<br />
to thaw. The member is one that is marked with a snowflake symbol<br />
( ).<br />
u s e r g u i d e
Generating Reports<br />
About the<br />
Report<br />
Information<br />
2 In the GUI, select Member > Properties > Thaw.<br />
In the Web, select Member > Thaw.<br />
Generating Reports<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 />
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 />
273
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
About Graphs<br />
Report Types<br />
274<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 />
Changes Grouped by Author (Summary)<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 />
u s e r g u i d e
This report type offers two additional options:<br />
The report can be on a single, specified author, or all authors.<br />
Generating Reports<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 />
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 />
275
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
276<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 />
Project Member History<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 />
u s e r g u i d e
Creating a Report<br />
Source Integrity provides you with the ability to create reports.<br />
Generating 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 window open, select the project or sandbox<br />
you want to report on.<br />
2 From a Project window, select Project > Reports.<br />
From a Sandbox window, select Sandbox > Reports.<br />
The Select Report Type dialog box appears.<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 />
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 274.<br />
6 Click OK.<br />
If the report type requires additional information (for example, a<br />
range of revisions), a second dialog box appears 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 />
277
Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />
278<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 280<br />
“Viewing and Editing Archive Information” on page 282, and<br />
“Viewing and Editing Revision Information” on page 284<br />
“Viewing an Annotated Revision” on page 286<br />
“Viewing and Editing Revision Labels” on page 288<br />
“Viewing a Member’s Working File or Revision” on page 291<br />
“Promoting Revisions” on page 292, and “Demoting Revisions” on<br />
page 293<br />
“Locking Revisions” on page 294, “Unlocking Revisions” on<br />
page 295, “Locking Multiple Revisions” on page 296, and “Managing<br />
Revision Locks” on page 298<br />
“Setting the Member Revision” on page 300, “Deleting Revisions” on<br />
page 301, and “Comparing Revisions” on page 301<br />
279
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Viewing a Member History<br />
280<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 window 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 window.<br />
u s e r g u i d e
NOTE<br />
Viewing a Member History<br />
If there is an add operation pending 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 window. For more information on toggling<br />
views, see “Changing Views (GUI)” on page 424.<br />
IMPORTANT<br />
If you choose a project and select the View Member History command,<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 windows, 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 />
281
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
282<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 combination 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 />
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 />
Branched shows all the revisions that have been, or are branched.<br />
Labeled shows all revisions with a label.<br />
You can use filters in combination (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 compressed, 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 />
To view or edit archive information in the graphical user interface and<br />
Web interface<br />
1 With a Member History window open, do one of the following:<br />
Select History > Archive Information.<br />
Click .<br />
The Archive Information dialog box appears.<br />
u s e r g u i d e
NOTE<br />
Viewing and Editing Archive Information<br />
In the Source Integrity Web interface, you cannot edit archive information.<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 />
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 compressed. To compress<br />
the archive, select the Compressed option.<br />
283
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
284<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 tab displays a list of revision labels in the archive, for<br />
example, Draft1 1.1.<br />
The Locks tab 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 window.<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 command.<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 288.<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 />
u s e r g u i d e
Viewing and Editing Revision Information<br />
To view or edit general revision information in the graphical user<br />
interface and Web interface<br />
1 With a Member History window 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 appears.<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.<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 computer<br />
where the lock on the revision was made.<br />
285
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
286<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 comments 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 />
History windows.<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 />
NOTE<br />
The annotated view can only be displayed for members of text format.<br />
u s e r g u i d e
Viewing an Annotated Revision<br />
To view annotated revisions in the graphical user interface and Web<br />
interface<br />
1 With a Project, Sandbox, or Member History window open, select the<br />
revision you want to view.<br />
2 From a Project or Sandbox window, select Member > View Annotated<br />
Member.<br />
From a Member History window, do one of the following:<br />
Select History > View Annotated Revision.<br />
Click .<br />
The Annotated Revision window appears.<br />
The Annotated Revision window 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 />
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 />
287
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
288<br />
To customize the fields displayed in the Annotated Revision window,<br />
see “View Preferences” on page 59.<br />
From the View menu, you can perform the following tasks:<br />
Find searches for the first instance of a text string in the revision<br />
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 line,<br />
enter the number for the line, for example, 33.<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 284.<br />
View Revision, see “Viewing a Member’s Working File or<br />
Revision” on page 291.<br />
View Member History, see “Viewing a Member History” on<br />
page 280.<br />
View Issue, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
View Change Package, see “Using Change Packages” on page 199.<br />
TIP<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 />
u s e r g u i d e
Viewing and Editing Revision Labels<br />
To view or edit revision labels in the graphical user interface<br />
1 With a Member History window 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 appears.<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 />
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 />
289
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Adding<br />
Revision Labels<br />
290<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 window. 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 window open, select the revision you want to<br />
label.<br />
2 Do one of the following:<br />
Select History > Add Label.<br />
Click .<br />
TIP<br />
You can also add a label using the Revision Information dialog box, as<br />
described in “Viewing and Editing Revision Information” on page 284.<br />
The Add Label dialog box appears.<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 />
u s e r g u i d e
Deleting<br />
Revision Labels<br />
Viewing a Member’s Working File or Revision<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 command 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 window 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 284.<br />
The Delete Label dialog box appears.<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 />
291
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
292<br />
Although it can be used to show the contents of any revision in an archive,<br />
this command 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 window open, select the working file or<br />
revision you want to view.<br />
2 Do one of the following:<br />
Select History > View Revision.<br />
Click .<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 window 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 appears.<br />
u s e r g u i d e
Demoting Revisions<br />
Demoting Revisions<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 />
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 window 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 appears.<br />
293
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Locking Revisions<br />
294<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 />
To lock a revision in the graphical user interface and Web interface<br />
1 With a Member History window 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 />
u s e r g u i d e
Unlocking Revisions<br />
3 Configure the following options as necessary:<br />
Unlocking Revisions<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 command 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 />
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 />
295
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
296<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 window 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 />
Locking Multiple Revisions<br />
With the Locks for <strong>User</strong> window open (see “Locks View” on<br />
page 428), 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 />
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 />
u s e r g u i d e
Locking Multiple Revisions<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 139.<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 has been<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 window:<br />
Follow the procedure for Locking a Revision (see “Locking Revisions”<br />
on page 294). Repeat to lock other revisions.<br />
Follow the procedure for Checking Out a Member (see “Checking Out<br />
a Member” on page 163) by specifying the revision number (Member<br />
History window via the Sandbox window only). Repeat to check out<br />
and lock other revisions.<br />
From the Sandbox window, follow the procedure for Checking Out a<br />
Member (see “Checking Out a Member” on page 163) by specifying the<br />
revision number. Repeat to check out and lock other revisions.<br />
To lock multiple revisions in the Web interface<br />
From the Member History window:<br />
Follow the procedure for Locking a Revision (see “Locking Revisions”<br />
on page 294). Repeat to lock other revisions.<br />
Follow the procedure for Checking Out a Member (see “Checking Out<br />
a Member” on page 163) by specifying the revision number. Repeat to<br />
check out and lock other revisions.<br />
297
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
Managing Revision Locks<br />
298<br />
From the Project window, follow the procedure for Checking Out a<br />
Member (see “Checking Out a Member” on page 163) by specifying the<br />
revision 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 appears.<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 />
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 />
Change Package ID, Sandbox, Development Path. For more<br />
information, see “View Preferences” on page 59.<br />
u s e r g u i d e
You can perform the following tasks:<br />
Managing Revision Locks<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 appears.<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 />
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 appears.<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 />
299
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
300<br />
NOTE<br />
Setting the Member Revision<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 window 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 becomes the member revision, indicated by a<br />
member revision icon ( ).<br />
u s e r g u i d e
Deleting Revisions<br />
If you know you will never use a revision again, you can delete it.<br />
CAUTION<br />
Deleting Revisions<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 become 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 window 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 />
Comparing Revisions<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 />
compare two revisions to see what changes you made from one revision to<br />
the next, or any two specific revisions.<br />
301
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
302<br />
With Source Integrity you can compare:<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 commands discussed in this section for the graphical user interface use<br />
<strong>MKS</strong> Visual Difference, a standalone application that compares and<br />
merges members and revisions.<br />
<strong>MKS</strong> 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 <strong>MKS</strong> Visual<br />
Difference, you can also interactively merge two members or revisions. For<br />
information on merging in <strong>MKS</strong> Visual Difference, see “Merging Two<br />
Revisions” on page 324.<br />
In the Web interface, the Differences window displays the revisions sideby-side<br />
in the same pane. For more information on the <strong>MKS</strong> Visual<br />
Difference interface, see “<strong>MKS</strong> Visual Difference Interface” on page 95.<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 <strong>MKS</strong> 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 66.<br />
To compare two revisions in the graphical user interface<br />
1 With a Member History window open, select two revisions to<br />
compare, or 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 />
u s e r g u i d e
The <strong>MKS</strong> Visual Difference window opens.<br />
Comparing Revisions<br />
Both revisions and a summary of the differences between them are<br />
shown in the <strong>MKS</strong> Visual Difference window.<br />
To compare two revisions in the Web interface<br />
1 With a Member History window open, select two revisions to<br />
compare, or a revision and the working file.<br />
2 Do one of the following:<br />
Select History > Differences.<br />
Click .<br />
303
Chapter 9: Viewing and Editing Member Histories and Revisions<br />
304<br />
The Differences window opens.<br />
Both revisions and a summary of the differences between them are<br />
shown in the Differences window.<br />
You can also select from the following rules when viewing the<br />
comparison:<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 comparing 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
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 combine 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 <strong>MKS</strong> Visual Merge tool.<br />
This chapter explains the branching and merging tasks and the different<br />
ways you can complete them.<br />
Specific topics covered in this chapter include:<br />
“Branching Revisions” on page 306<br />
“Making Locked Members Writable” on page 308<br />
“Merging Branched Revisions” on page 311<br />
“Merging Revisions” on page 322<br />
“Resolving Merges” on page 336<br />
305
Chapter 10: Branching and Merging Revisions<br />
Branching Revisions<br />
306<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 complete, 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 311.<br />
To branch a member upon check out in the graphical user interface<br />
and Web interface<br />
1 With a Project or Sandbox window 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 appears.<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 163.<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 appears.<br />
5 Select the Create a new branch with a lock option.<br />
307
Chapter 10: Branching and Merging Revisions<br />
308<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 />
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 />
appears. If you want to retain your changes in the working file, click Yes (Yes<br />
to All for multiple members). If you do not want to retain your changes in the<br />
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 window.<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 window open, select one or more locked members to<br />
make writable.<br />
u s e r g u i d e
2 Select Member > Working File > Make Writable.<br />
Making Locked Members 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 />
To make a member writable upon check out in the graphical user<br />
interface<br />
1 With a Project or Sandbox window 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 appears.<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 163.<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 appears.<br />
5 Select the Make your working file writable option.<br />
309
Chapter 10: Branching and Merging Revisions<br />
310<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 />
To make a member writable in the Web interface upon check out<br />
1 From a Project window, 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 appears.<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 163.<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 appears.<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 />
u s e r g u i d e
Merging Branched Revisions<br />
Merging on<br />
Check In<br />
Merging Branched Revisions<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 />
When you want to combine 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 <strong>MKS</strong><br />
Visual Merge and <strong>MKS</strong> 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 />
command 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 263.<br />
To check in and update the member revision using the graphical user<br />
interface<br />
1 With a Sandbox window open, select one or more members to check<br />
in.<br />
311
Chapter 10: Branching and Merging Revisions<br />
312<br />
2 Do one of the following:<br />
Select Member > Check In.<br />
Click .<br />
The Check In dialog box appears.<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 />
3 In the Revision Description field, enter a comment 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 />
u s e r g u i d e
NOTE<br />
Merging Branched Revisions<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 172.<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 appears.<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 becomes 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 336.<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 322.<br />
313
Chapter 10: Branching and Merging Revisions<br />
314<br />
To merge revisions in the graphical user interface<br />
1 With a Sandbox or Member History window 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 has been modified and not checked in.<br />
2 From the Sandbox window, select Member > Diff/Merge > Merge<br />
Branch.<br />
From the Member History window, select History > Merge Branch.<br />
The Merge Branch dialog box appears.<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 />
u s e r g u i d e
5 Under Options complete the following as required:<br />
Merging Branched Revisions<br />
Select Lock target revision to lock the merged revision when the<br />
merge is complete.<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 <strong>MKS</strong> 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 <strong>MKS</strong><br />
Visual Merge tool.<br />
Highlight Output File causes Source Integrity to<br />
complete the merge automatically and highlight the output<br />
file where any conflicts occurred.<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 />
315
Chapter 10: Branching and Merging Revisions<br />
Merging<br />
Revisions by<br />
Dragging<br />
316<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 />
You can merge revisions in the Graphical History view by dragging. The<br />
drag-and-drop action initiates the Merge Branch command.<br />
For more information on the Graphical History view, see “Graphical<br />
History View (GUI)” on page 420.<br />
For more information on Dragging, see “Dragging in the Graphical History<br />
View (GUI)” on page 423.<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 appears.<br />
u s e r g u i d e
Merging Branched Revisions<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 complete the following as required:<br />
Select Lock target revision to lock the merged revision when the<br />
merge is complete.<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 />
317
Chapter 10: Branching and Merging Revisions<br />
318<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 <strong>MKS</strong> 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 <strong>MKS</strong><br />
Visual Merge tool.<br />
Highlight Output File causes Source Integrity to<br />
complete the merge automatically and highlight the output<br />
file where any conflicts occurred.<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 />
u s e r g u i d e
Automatic<br />
Merging on<br />
Check Out<br />
Merging Branched Revisions<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 has been modified, with your working file upon<br />
check out. This option allows you to have the most complete working file<br />
available. For more details on merging, see “Merging Revisions” on<br />
page 322.<br />
To merge revisions automatically on check out in the graphical user<br />
interface<br />
1 With a Sandbox window open, select one or more members to check<br />
out.<br />
2 Do one of the following:<br />
Select Member > Check Out.<br />
Click .<br />
The Check Out dialog box appears.<br />
319
Chapter 10: Branching and Merging Revisions<br />
Automatic<br />
Merging on<br />
Resync<br />
320<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 appears. If you want to retain your changes in the<br />
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 />
Depending on the preferences you have set for the check out<br />
command (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 336.<br />
Source Integrity automatically launches the <strong>MKS</strong> Visual Merge<br />
tool. For information on the <strong>MKS</strong> Visual Merge tool, see<br />
“Working With <strong>MKS</strong> Visual Merge” on page 330.<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 has been modified, with your working file upon resyncing.<br />
This option provides you with the most complete working file available.<br />
For more details on merging, see “Merging Revisions” on page 322. For<br />
more information on resyncing members, see “Resyncing Members” on<br />
page 184.<br />
To merge revisions automatically on resynchronization in the<br />
graphical user interface<br />
1 With a Sandbox window open, select one or more members that<br />
contain member deltas that denote that both the working file has been<br />
modified and a new member revision available.<br />
u s e r g u i d e
2 Do one of the following:<br />
Select Member > Resynchronize.<br />
Click .<br />
The Confirm Working File Merge dialog appears.<br />
Merging Branched 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 />
command (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 336.<br />
Source Integrity automatically launches the <strong>MKS</strong> Visual Merge<br />
tool. For information on the <strong>MKS</strong> Visual Merge tool, see<br />
“Working With <strong>MKS</strong> Visual Merge” on page 330.<br />
The selected member is updated and merged.<br />
321
Chapter 10: Branching and Merging Revisions<br />
Merging Revisions<br />
Merging<br />
Revisions<br />
Automatically<br />
322<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 <strong>MKS</strong> Visual Difference and <strong>MKS</strong> Visual Merge tools. These<br />
tools are available through the graphical user interface only, but can be<br />
launched from the command line interface. Command line interface<br />
procedures are also included in this section.<br />
For more information on <strong>MKS</strong> Visual Difference, see “<strong>MKS</strong> Visual<br />
Difference Interface” on page 95.<br />
For more information on <strong>MKS</strong> Visual Merge, see “<strong>MKS</strong> Visual Merge<br />
Interface” on page 101.<br />
For more information on the command line interface, see “Command Line<br />
Interface” on page 92.<br />
IMPORTANT<br />
Members must be checked out before you can merge them.<br />
If you do not want to use <strong>MKS</strong> Visual Difference or <strong>MKS</strong> 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 window, select the revisions you<br />
want to merge.<br />
2 Do one of the following:<br />
From the Sandbox window, select Member > Diff/Merge > Merge.<br />
From the Member History window, select History > Merge.<br />
The Merge dialog box appears.<br />
u s e r g u i d e
Merging Revisions<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 />
4 Click OK to continue.<br />
The Merge dialog box appears (if your preferences are set to confirm<br />
the action to be taken, see “Command Preferences” on 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 appears.<br />
323
Chapter 10: Branching and Merging Revisions<br />
Working With<br />
<strong>MKS</strong> Visual<br />
Difference<br />
324<br />
The merge operation may be canceled, the <strong>MKS</strong> 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 />
The <strong>MKS</strong> Visual Difference tool is a graphical application that allows you<br />
to compare revisions. It offers two-way differencing of revisions where<br />
differences are highlighted for you. <strong>MKS</strong> Visual Difference operates in two<br />
modes, Difference mode and Merge mode. You must be in Merge mode to<br />
merge revisions in <strong>MKS</strong> Visual Difference.<br />
Merging Two Revisions<br />
You can use <strong>MKS</strong> 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 command 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 301.<br />
2 In Visual Difference, do one of the following:<br />
Select File > Merge.<br />
Click .<br />
The Reassign Merge Roles dialog box appears.<br />
u s e r g u i d e
Merging Revisions<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 />
<strong>MKS</strong> Visual Difference switches to the Merge mode split layout. For<br />
information on the <strong>MKS</strong> Visual Difference layouts, see “View Panes”<br />
on page 97.<br />
325
Chapter 10: Branching and Merging Revisions<br />
326<br />
5 Complete the required changes by doing one of the following:<br />
Merging Blocks (see “Merging Blocks” on page 327)<br />
Editing Merge Results (see “Editing Merge Results” on page 331)<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 appears.<br />
u s e r g u i d e
Merging Revisions<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 complete the merging operation. For<br />
information on saving merge results, see “Saving Merge Results” on<br />
page 329.<br />
327
Chapter 10: Branching and Merging Revisions<br />
328<br />
Editing Merge Results<br />
Once you are working in Merge mode in <strong>MKS</strong> Visual Difference you can<br />
directly edit the merge result if necessary.<br />
In <strong>MKS</strong> Visual Difference you can cut, copy, and paste text in the merge<br />
result. <strong>MKS</strong> 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 />
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 />
u s e r g u i d e
Saving Merge Results<br />
Merging Revisions<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 appears.<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 comparison, Source Integrity<br />
selects the file name corresponding to the member name.<br />
3 Click Save to complete the operation.<br />
The merge result file is saved.<br />
NOTE<br />
If you save the merge result to your working file, <strong>MKS</strong> Visual Difference<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 />
329
Chapter 10: Branching and Merging Revisions<br />
Working With<br />
<strong>MKS</strong> Visual<br />
Merge<br />
330<br />
The <strong>MKS</strong> Visual Merge tool is a graphical application that allows you to<br />
compare, edit and merge revisions. It offers three-way differencing of<br />
revisions where conflicts are highlighted for you. Open <strong>MKS</strong> Visual Merge<br />
by selecting Manually from the Merge dialog box (see “Merging Revisions<br />
Automatically” on page 322).<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 />
u s e r g u i d e
Merging by Nonconflicting Blocks<br />
Merging Revisions<br />
Merging by nonconflicting blocks allows you to merge without including<br />
any areas of conflict. <strong>MKS</strong> 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 <strong>MKS</strong> 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 />
2 Save the merge result file to retain the changes as described in “Saving<br />
Merge Results” on page 333.<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 commands 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 commands, in <strong>MKS</strong> 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 complete the merging operation. For<br />
information on saving merge results, see “Saving Merge Results” on<br />
page 333.<br />
Editing Merge Results<br />
While you are working in <strong>MKS</strong> Visual Merge you can directly edit the<br />
merge result if necessary.<br />
331
Chapter 10: Branching and Merging Revisions<br />
332<br />
In <strong>MKS</strong> Visual Merge you can cut, copy, and paste text in the merge result.<br />
<strong>MKS</strong> 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 />
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 <strong>MKS</strong> 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 <strong>MKS</strong> 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 />
u s e r g u i d e
Saving Merge Results<br />
Merging Revisions<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 <strong>MKS</strong> Visual Merge<br />
1 Select File > Save As.<br />
The Save merge result dialog box appears.<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 complete the operation.<br />
The merge result file is saved.<br />
NOTE<br />
If you save the merge result to your working file, <strong>MKS</strong> 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 />
333
Chapter 10: Branching and Merging Revisions<br />
334<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 />
To suspend merges in <strong>MKS</strong> Visual Merge<br />
1 In <strong>MKS</strong> Visual Merge, click the Close button on the status bar.<br />
The Mark for Later Merge dialog box appears.<br />
2 Click Yes to mark the revision for merging at a later time.<br />
In your Sandbox window 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 336.<br />
u s e r g u i d e
Merging in the<br />
Command Line<br />
Interface<br />
Merging Revisions<br />
In the command line interface, you can merge two revisions using the si<br />
merge command. Merging in the command line interface operates as the<br />
graphical user interface where two revisions and a working file are<br />
compared and merged.<br />
You can also launch the <strong>MKS</strong> Visual Merge and <strong>MKS</strong> Visual Difference<br />
tools from the command line interface by using the -g option with the<br />
merge command.<br />
To merge two revisions in the command line interface<br />
Use the si merge command:<br />
where<br />
si merge -r value -r value member --sandbox=value<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 command (see<br />
“Command Preferences” on page 48), Source Integrity may ask one or both<br />
of the following questions:<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 />
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 complete list of options for the si merge command, see the<br />
Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong>.<br />
335
Chapter 10: Branching and Merging Revisions<br />
Resolving Merges<br />
336<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 have been 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 completion of the merge process, when<br />
you are ready to merge the selected revisions you can use the Resolve<br />
Merge command to do so.<br />
To resolve a merge in the graphical user interface<br />
1 In a Sandbox window, select a member with an unresolved merge<br />
symbol.<br />
2 Select Member > Diff/Merge > Resolve Merge.<br />
The Merge dialog box appears (if your preferences are set to confirm<br />
the action to be taken, see “Command Preferences” on page 48).<br />
3 Select either of the following options for how you want to complete<br />
the merge, then click OK:<br />
Automatically completes the merge process without launching the<br />
<strong>MKS</strong> Visual Merge tool. A delta, visible in the Sandbox window,<br />
appears indicating that the merge is complete.<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 <strong>MKS</strong><br />
Visual Merge tool may be launched.<br />
u s e r g u i d e
Resolving Merges<br />
Manually allows you to complete the merge operation through the<br />
<strong>MKS</strong> Visual Merge tool. The <strong>MKS</strong> Visual Merge tool appears in a<br />
new window displaying the revisions you want to merge. In <strong>MKS</strong><br />
Visual Merge perform merging and editing as required. Complete<br />
steps 4 through 7.<br />
For information on using the <strong>MKS</strong> Visual Merge tool, see “<strong>MKS</strong> Visual<br />
Merge Interface” on page 101, and “Working With <strong>MKS</strong> Visual<br />
Merge” on page 330.<br />
4 In the <strong>MKS</strong> Visual Merge window, click File > Save As.<br />
The Save merge result dialog box appears.<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 <strong>MKS</strong> Visual Merge, click Close.<br />
In your Sandbox window, a delta appears indicating that the merge is<br />
complete.<br />
337
Chapter 10: Branching and Merging Revisions<br />
338<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 components, tasks, and a complex 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 components and tasks in change packages. For more<br />
information on change packages, see “Using Change Packages” on<br />
page 199.<br />
As part of the complete <strong>MKS</strong> 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 340<br />
“How the Integration Works” on page 340<br />
“Creating a Change Package for an Issue” on page 343<br />
“Adding Entries to an Issue’s Change Package” on page 345<br />
“Viewing a Change Package’s Issue” on page 346<br />
“Finding Change Packages Using a Query” on page 347<br />
339
Chapter 11: The Integrity Manager Integration<br />
Integrating With Integrity Manager<br />
How the Integration Works<br />
340<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 recommended 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 Open the Manage Change Packages window (see “Managing Change<br />
Packages” on page 206). This is your control centre for managing your<br />
grouping of tasks.<br />
3 Create a change package (see “Creating a Change Package” on<br />
page 203) 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 an open state.<br />
You can see the change package listed in the Manage Change<br />
Packages window.<br />
341
Chapter 11: The Integrity Manager Integration<br />
342<br />
4 View the change package in the Change Package window (see<br />
“Viewing Change Package Details and Entries” on page 211). All<br />
operations you do to address the issue will 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 during<br />
one of the following operations:<br />
Check Out<br />
Rename<br />
Lock<br />
Add Member<br />
Drop Member<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 window.<br />
6 When all of the development to address the issue is completed, submit<br />
the change Package (see “Submitting Change Packages” on page 221).<br />
All of the 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 />
7 Close the change package to signify that the work to address the issue<br />
has been completed. 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 207 or “Finding Change Packages Using a Query”<br />
on page 347).<br />
8 In Integrity Manager, advance the issue through the workflow. At this<br />
point, the verification phase begins. If it’s determined that more work<br />
needs to be performed to address the issue, the technician moves the<br />
u s e r g u i d e
Creating a Change Package for an Issue<br />
issue to an earlier state in the workflow, then you (or another<br />
developer) create an additional change package. The process is<br />
repeated until the issue is sufficiently addressed.<br />
Creating a Change Package for an Issue<br />
You can create a change package and associate it with an issue in one of the<br />
following ways: from the menu bar, when checking out, checking in,<br />
adding, dropping, locking, or 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 window open, select Change Package > Create.<br />
Create a change package when performing any one of the<br />
following operations:<br />
“Checking Out a Member” on page 163<br />
“Checking In a Member” on page 172<br />
“Renaming a Member” on page 180<br />
“Locking a Member” on page 186<br />
“Adding Members to a Project” on page 146<br />
“Dropping Members From a Project” on page 158<br />
Refer to the Change Package portion of the panel.<br />
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 window appears.<br />
343
Chapter 11: The Integrity Manager Integration<br />
344<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 />
Depending on how your administrator has configured Integrity<br />
Manager, you may be able to select , and the change package<br />
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, for<br />
example, Failed install.<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 />
The change package is created. To view the change package, see<br />
“Viewing Change Package Details and Entries” on page 211.<br />
u s e r g u i d e
Adding Entries to an Issue’s<br />
Change Package<br />
Adding Entries to an Issue’s Change Package<br />
Once a change package has been created and associated with an issue, you<br />
can add entries to that change package upon any one of the following<br />
operations:<br />
“Checking Out a Member” on page 163<br />
“Checking In a Member” on page 172<br />
“Renaming a Member” on page 180<br />
“Locking a Member” on page 186<br />
“Adding Members to a Project” on page 146<br />
“Dropping Members From a Project” on page 158<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 />
NOTE<br />
You can only add a member to an issue’s change package upon a check out and<br />
locking a member if lock tracking is enabled. For more information on lock<br />
tracking, see your administrator.<br />
After the operation is completed, the entry is added to the change package.<br />
The change package’s ID appears in the member’s C.P. ID (Change Package<br />
ID) column of a Project or Sandbox window.<br />
The change package ID is displayed as a hyperlink that automatically<br />
opens Integrity Manager to the specified issue. For more information on<br />
the integration, see “The Integrity Manager Integration” on page 339.<br />
345
Chapter 11: The Integrity Manager Integration<br />
Viewing a Change Package’s Issue<br />
346<br />
As part of the Integrity Manager integration, you can launch the<br />
Integrity Manager Web interface from Source Integrity to view issues that<br />
are associated with change packages.<br />
To view a change package’s issue in the graphical user interface<br />
Do one of the following:<br />
From the Manage Change Packages window (see “Managing Change<br />
Packages” on page 206), select a change package. Do one of the<br />
following:<br />
Under the Issue column, click the number link for the issue.<br />
Select Change Package > View Issue.<br />
Click .<br />
With the Change Package window open (see “Viewing Change<br />
Package Details and Entries” on page 211) do one of the following:<br />
Select Change Package > View Issue.<br />
Click .<br />
With a Project or Sandbox window open, select a member that has a<br />
change package associated with it. Do one of the following:<br />
Under the C.P.ID column, click the number link for the change<br />
package.<br />
Select Change Package > View Issue.<br />
The Integrity Manager Web interface opens, displaying the associated<br />
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 in the Web interface<br />
1 In a Project window, 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 opens.<br />
u s e r g u i d e
3 Select Actions > View Issue.<br />
Finding Change Packages Using a Query<br />
The Integrity Manager Web interface opens, displaying the associated<br />
issue. For more information on Integrity Manager, see the<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong>.<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 have been closed, because they no longer appear in the<br />
Manage 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 appears.<br />
2 Click the By Query tab.<br />
The By Query panel is displayed.<br />
347
Chapter 11: The Integrity Manager Integration<br />
348<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 207.<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 206.<br />
To update the search results with current data, select View > Refresh.<br />
To create a new search from the Change Packages window, select View<br />
> Filter.<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 350<br />
“Using the Apply CP Command” on page 355<br />
“Using the Resync CP Command” on page 375<br />
“Working With a Resolution CP” on page 397<br />
“Using the Resync By CP Command” on page 405<br />
349
Chapter 12: Advanced Change Package Operations<br />
Change Package Feature Overview<br />
350<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 committed. Apply CP and Resync<br />
CP only apply to committed 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 has been using change packages consistently,<br />
Source Integrity can isolate all changes related to a specific issue because<br />
this information is recorded as part of the change package. Once the<br />
dependencies are calculated, the operation completes and the change<br />
packages are applied in the project.<br />
If a development team does not use the change package methodology,<br />
isolating specific content becomes a complex, 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 complicated<br />
process becomes 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 command. 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 />
recommended for binary files because of the difficulties encountered in<br />
differencing and merging binaries.<br />
IMPORTANT<br />
At this time, Apply CP and Resync CP do not handle change package entries<br />
(project members) that have been renamed.<br />
u s e r g u i d e
Change<br />
Package<br />
Methodology<br />
Change<br />
Package<br />
Commands<br />
Change Package Feature Overview<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 />
completion 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 becomes 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 complete the required feature. Without this type of tracking, applying a<br />
change package may not have the desired results and manual reviews may<br />
become 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 compression—that they can use with Aurora<br />
2.0. The development team at abcBusiness has already completed work on<br />
a data compression feature, but the feature has been engineered only as<br />
part of the upcoming 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 />
completed on the data compression 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 compression 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 />
351
Chapter 12: Advanced Change Package Operations<br />
352<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 complicated<br />
process becomes 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 />
accept or decline this list—you cannot make selections. If you accept the<br />
list, the Apply CP command completes the changes directly in the project.<br />
If you decline the list, the Apply CP command cannot complete.<br />
If the Apply CP command fails because merging is required, you can then<br />
run the Resync CP command. 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 compression 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 complex 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 command and ensure that<br />
you have checkpointed your project before starting the command. When using<br />
the Resync CP command 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 />
u s e r g u i d e
Change Package Feature Overview<br />
The abcBusiness software company has released their Aurora software,<br />
version 3.0. When the release was completed, 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 have been recorded in a change package, or set of issues, that<br />
isolates the 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 />
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 command 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 />
353
Chapter 12: Advanced Change Package Operations<br />
Resolving<br />
Conflicts<br />
354<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 completing their work on<br />
time. However, it is possible to avoid this lost time by using the Resync CP<br />
and Resync By CP commands.<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 commands save development time because they:<br />
automatically search for the required files<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 commands also allow a developer to<br />
remove a bug fix or feature that is incomplete or not working.<br />
The basic process for resolving conflicts is to apply the target change<br />
package using the Apply CP command. If the Apply CP operation fails<br />
because of a merge conflict, you can do one of the following:<br />
use the Resync CP command 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 <strong>MKS</strong> 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 <strong>MKS</strong> Visual Merge” on<br />
page 330. For information on the <strong>MKS</strong> Visual Merge tool, see “<strong>MKS</strong><br />
Visual Merge Interface” on page 101.<br />
The newly created resolution change package is then applied to the project<br />
using the Apply CP command. The process involves the following key<br />
steps:<br />
Use the Apply CP command 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 />
u s e r g u i d e
Using the Apply CP Command<br />
If Apply CP fails due to a required merge, use the Resync CP<br />
command 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 />
Apply that resolution change package to the project.<br />
The Apply CP command 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 combination 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 />
command 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 />
355
Chapter 12: Advanced Change Package Operations<br />
356<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 command is an automated process of the Update Revision command<br />
(si updaterevision). The Apply CP operation may also require that<br />
files be added or dropped. This function of the command is an automated<br />
process of the Add Member command (si add) and the Drop Member<br />
command (si drop).<br />
When Should I Use the Apply CP Command?<br />
You should use the Apply CP command 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 command 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 command from a sandbox, the sandbox acts as a redirector to<br />
the project.<br />
The next four sections describe how the Apply CP command works and<br />
how you can use it in your development environment. The topics covered<br />
are:<br />
“Key Apply CP Concepts” on page 357<br />
“How Apply CP Works” on page 357<br />
Procedures for the graphical user interface<br />
the Apply CP backfill list, (“Apply CP Backfill List” on page 359)<br />
u s e r g u i d e
Key Apply CP<br />
Concepts<br />
How Apply CP<br />
Works<br />
Using the Apply CP Command<br />
The following outlines the key concepts associated with the Apply CP<br />
command:<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 complete 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 375.<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 committing changes directly to a project and, for this<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 command first and<br />
then, if required, run the Resync CP command to perform any<br />
required merge operations.<br />
If an Apply CP operation is not successfully completed,<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 command,<br />
you must accept the entire list.<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 command 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 />
357
Chapter 12: Advanced Change Package Operations<br />
358<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 command to apply CP 21:1:<br />
si applycp -P f:/Aurora_Project/project.pj --devPath<br />
Aurora_Variant_1_0 21:1<br />
The command 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 command. 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 />
359
Chapter 12: Advanced Change Package Operations<br />
360<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 command to apply CP 22:1. By default, the backfill option<br />
is set to Entire Change Packages (--backfill=cp). The buildmaster<br />
enters the command:<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 />
361
Chapter 12: Advanced Change Package Operations<br />
362<br />
The command 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 />
u s e r g u i d e
Apply CP Backfill Options<br />
Using the Apply CP Command<br />
The Apply CP command 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 />
Back<br />
Revisions Only<br />
Backfill<br />
Option (CLI)<br />
Function<br />
cp Selected by default for the Apply CP<br />
command. 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 />
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 complete 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 command<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 375.<br />
The next example illustrates how Apply CP handles a more complex<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 />
363
Chapter 12: Advanced Change Package Operations<br />
364<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 />
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 />
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.<br />
The buildmaster now wants to incorporate the changes into the variant<br />
project. The buildmaster therefore uses the Apply CP command 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
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.2 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 />
365
Chapter 12: Advanced Change Package Operations<br />
Apply CP<br />
Procedures<br />
366<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 381.<br />
This section describes the step-by-step procedures required to perform the<br />
Apply CP command in both the graphical user interface and command 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 command to revert to the earlier version of the project. For<br />
more information on checkpointing, see “Checkpointing a Project” on<br />
page 237. For more information on restoring a project, see “Restoring a Project”<br />
on page 240.<br />
At this time, the Apply CP command does not handle change package<br />
entries for rename.<br />
To apply a change package in the graphical user interface<br />
1 From a Sandbox or Project window, select the project you want to<br />
apply 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 207 and “Finding Change Packages Using a<br />
Query” on page 347.<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 />
367
Chapter 12: Advanced Change Package Operations<br />
368<br />
NOTE<br />
When using the Apply CP command, 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 />
command. For more information on resynchronizing change packages, see<br />
“Using the Resync CP Command” on page 375.<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, whether open or<br />
closed.<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. Type can be one of the following:<br />
Update is a check in operation<br />
Lock is a check out operation<br />
Add is an add member operation<br />
Drop is a drop member operation<br />
Rename From/To is a rename operation<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 />
Note: If Integrity Manager is enabled, you can link directly<br />
to the issue in the Integrity Manager database by clicking<br />
the C.P. ID link.<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.<br />
369
Chapter 12: Advanced Change Package Operations<br />
370<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 />
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
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 />
371
Chapter 12: Advanced Change Package Operations<br />
Apply CP<br />
General Command Option<br />
372<br />
9 Select the command 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 command.<br />
Other Project is Error Terminates the command if the member is not in the project you are applying to,<br />
or in its variant.<br />
Span Projects Applies the command 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 command option that has the potential to affect other<br />
projects.<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 />
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 />
u s e r g u i d e
Apply CP<br />
Advanced Command Options<br />
Ignore Server in Change<br />
Package<br />
Function<br />
Using the Apply CP Command<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 command, 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 command 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 />
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 appears.<br />
373
Chapter 12: Advanced Change Package Operations<br />
374<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 completed. If you do not want to accept the entire<br />
list, you must use the Resync CP command instead. For more<br />
information on resynchronizing change packages, see “Using the<br />
Resync CP Command” on page 375.<br />
The Confirm Change Package Application dialog box appears<br />
indicating the operations to be performed.<br />
12 To complete the operation(s) and apply the selected change<br />
package(s), click Yes.<br />
Source Integrity completes the operation or returns information on<br />
errors and warnings if the operation cannot be successfully completed.<br />
NOTE<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 244.<br />
u s e r g u i d e
Using the Resync CP Command<br />
Using the Resync CP Command<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 command 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 command.<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 command completes.<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 completes 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 command 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 />
NOTE<br />
When working in your sandbox, you can also use the Resynchronize By CP<br />
command. 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 405.<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 command includes a process for creating resolution change<br />
375
Chapter 12: Advanced Change Package Operations<br />
Key Resync CP<br />
Concepts<br />
How Resync CP<br />
Works<br />
376<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 397.<br />
The next four sections describe how the Resync CP command 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 376<br />
“How Resync CP Works” on page 376<br />
“Resync CP Backfill List” on page 377<br />
Procedures for the graphical user interface<br />
The following outlines the key concepts associated with the Resync CP<br />
command:<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 />
Source Integrity allows you to run the Apply CP command first and<br />
then, if required, run the Resync CP command 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 command 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 command, but rather than touching the<br />
project directly, makes the changes in a sandbox.<br />
u s e r g u i d e
Resync CP<br />
Backfill List<br />
Using the Resync CP Command<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 />
command 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 />
*** 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 command. 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 />
377
Chapter 12: Advanced Change Package Operations<br />
378<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 />
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 command.<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 command 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 command 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 command<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 />
379
Chapter 12: Advanced Change Package Operations<br />
380<br />
The developer decides to merge around all the intermediate change<br />
packages and selects s (skip). The command 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 />
command. 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 />
381
Chapter 12: Advanced Change Package Operations<br />
382<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 command 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 completes, the file must then be checked in to finalize the<br />
changes in the project.<br />
383
Chapter 12: Advanced Change Package Operations<br />
384<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 complete, 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 complete 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 accommodate 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 />
385
Chapter 12: Advanced Change Package Operations<br />
Resync CP<br />
Procedures<br />
386<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 />
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 command in both the graphical user interface and command<br />
line interface.<br />
NOTE<br />
CP 10:1<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 />
At this time, the Resync CP command does not handle change package entries<br />
for rename.<br />
To resynchronize a change package in the graphical user interface<br />
1 From a Sandbox window, select the project you want the Resync CP<br />
command to operate on.<br />
2 Select Change Package > Resynchronize Change Package.<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
Using the Resync CP Command<br />
The Resynchronize Change Packages wizard opens, displaying the<br />
Apply List panel.<br />
3 To add change packages to the Apply List, click Add.<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 207 and “Finding Change Packages Using a<br />
Query” on page 347.<br />
The Select Change Package(s) panel appears. The Change Packages<br />
tab is populated with the filter or query results.<br />
387
Chapter 12: Advanced Change Package Operations<br />
388<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 />
u s e r g u i d e
Tab Table Columns<br />
Change Package<br />
Entries<br />
Using the Resync CP Command<br />
Type lists the type of operation that was used to<br />
manipulate the listed member. Type can be one of the<br />
following:<br />
Update is a check in operation<br />
Lock is a check out operation<br />
Add is an add member operation<br />
Drop is a drop member operation<br />
Rename From/To is a rename operation<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 />
Note: If the Integrity Manager integration is enabled, you<br />
can link directly to the issue in the Integrity Manager<br />
database by clicking the C.P. ID link.<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.<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 />
389
Chapter 12: Advanced Change Package Operations<br />
390<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 />
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
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 />
391
Chapter 12: Advanced Change Package Operations<br />
Resync CP<br />
General Command Options<br />
392<br />
8 Select the command 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 command 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 />
u s e r g u i d e
Resync CP<br />
Advanced Command Options<br />
Function<br />
Verbose Provides additional information to track the status of the command.<br />
Using the Resync CP Command<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 command 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 command 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 />
393
Chapter 12: Advanced Change Package Operations<br />
Resync CP<br />
Advanced Command Options<br />
394<br />
Function<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 />
Backfill Determines how Source Integrity treats historic revisions required by the<br />
specified change packages. For the Resync CP command, 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 />
9 To run the Resync CP command 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 appears.<br />
u s e r g u i d e
Using the Resync CP Command<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 command can only merge around a consecutive<br />
range of revisions.<br />
The Confirm Change Package Application dialog box appears. Under<br />
the Query tab, information is provided on the operations to be<br />
performed.<br />
395
Chapter 12: Advanced Change Package Operations<br />
396<br />
Under the Warnings tab, information is provided on the change<br />
packages associated with intermediate revisions.<br />
11 To complete the Resync CP operation, click Yes.<br />
Source Integrity completes the Resync CP operation or returns<br />
information on errors and warnings if the command cannot be<br />
successfully completed.<br />
u s e r g u i d e
NOTE<br />
Working With a Resolution CP<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 244.<br />
There are instances when the Apply CP command does not work on a set<br />
of change packages because merging is required. When this happens, the<br />
Resync CP command must be used to automate the required merging.<br />
Once the Resync CP operation is completed, 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 />
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 />
397
Chapter 12: Advanced Change Package Operations<br />
398<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 command, 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 complete 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 />
u s e r g u i d e
Key Resolution<br />
CP Concepts<br />
Working With a Resolution CP<br />
The process for creating a resolution change package is as follows:<br />
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 />
Once all the merge conflicts are addressed, you can check in the<br />
changes to the newly created resolution change package.<br />
After all the changes are checked in, you can then close the resolution<br />
change package, just as you would do for a normal change package.<br />
Apply the change package.<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 399)<br />
an example (see “How Resolution CPs Work” on page 400)<br />
procedures for the graphical user interface (“To create a resolution<br />
change package in the graphical user interface” on page 402)<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 command fails.<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 />
399
Chapter 12: Advanced Change Package Operations<br />
How Resolution<br />
CPs Work<br />
400<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 company 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 newly-<br />
released 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 />
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 />
u s e r g u i d e
Using a<br />
Resolution CP<br />
Working With a Resolution CP<br />
development path so that it can be incorporated into the next product<br />
release? The Resync CP command 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 command, 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 changes are checked into the<br />
resolution change package. The resolution change package is then closed.<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 command. If the Apply CP operation fails<br />
because of a merge conflict, you must then use the Resync CP command to<br />
create a resolution change package. That resolution change package is then<br />
applied to the project using the Apply CP command.<br />
The process involves the following key steps:<br />
Use the Apply CP command 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 />
command 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 />
Close the resolution change package.<br />
Apply that resolution change package to the project.<br />
The Apply CP command 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 />
401
Chapter 12: Advanced Change Package Operations<br />
Resolution CP<br />
Procedures<br />
402<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 />
This section outlines the procedures required to work with resolution<br />
change packages in both the graphical user interface and command 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 386).<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 />
403
Chapter 12: Advanced Change Package Operations<br />
404<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 />
recommended 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 command options you want Source Integrity to use when<br />
carrying out the Resync CP operation. For more information on<br />
command options, refer to the command options tables (see “Resync<br />
CP General Command Options” on page 392).<br />
7 To run the Resync CP command and create the resolution change<br />
package using the selected options, click Finish.<br />
Source Integrity completes the Resync CP operation or returns<br />
information on errors and warnings if the command cannot be<br />
successfully completed.<br />
Merged results are checked out and locked in your sandbox.<br />
8 Review the results and check in the files and associate them with the<br />
resolution change package ID. This resolution change package<br />
appears by default as the selected change package.<br />
u s e r g u i d e
Using the Resync By CP Command<br />
9 After you have created the resolution change package, you must then<br />
apply it to your project. To apply the resolution change package,<br />
follow the procedures outlined under “Apply CP Procedures” on<br />
page 366.<br />
Using the Resync By CP Command<br />
The Resync By CP command 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) command.<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 command 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 />
While the Resync CP command 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 command only processes the change<br />
packages associated with the member you are resynchronizing.<br />
How Does the Resync By CP Command Work?<br />
In a Resync By CP operation, the change package list is computed 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 command 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 375.<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 />
405
Chapter 12: Advanced Change Package Operations<br />
406<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 command 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 />
Sandbox - Developer 1<br />
main.c<br />
Project<br />
main.c<br />
Before using Resync By CP in a development environment.<br />
1.1<br />
CP 21:1<br />
1.1 CP 21:1 main.c<br />
u s e r g u i d e<br />
Sandbox - Developer 2<br />
1.1 CP 21:1
Developer 1 then performs the following tasks:<br />
checks out and locks main.c, revision 1.1<br />
Using the Resync By CP Command<br />
makes an update to main.c that requires the main.h file<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 />
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 />
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 />
407
Chapter 12: Advanced Change Package Operations<br />
408<br />
When Developer 2 uses the Resync By CP command 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 complete 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 has been 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 320.<br />
To resynchronize by CP in the graphical user interface<br />
1 With a Sandbox window open, select one or more members that<br />
contain member deltas.<br />
2 Select Member > Resynchronize By CP.<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 />
u s e r g u i d e
A P P E N D I X<br />
Views, Windows, and<br />
Dialog Boxes<br />
A<br />
This appendix provides additional information about the views,<br />
windows, and dialog boxess that are available in the Source Integrity<br />
graphical user interface and Web Interface.<br />
409
Appendix A: Views, Windows, and Dialog Boxes<br />
Project and<br />
Sandbox<br />
Windows (GUI)<br />
410<br />
When you open a project or sandbox, Source Integrity displays its contents<br />
in a Project or Sandbox window.<br />
Figure 1. Examples of Project and Sandbox windows.<br />
The Project and Sandbox windows display project members, subprojects,<br />
and subsandboxes in a tree structure. You can expand and collapse a<br />
project, sandbox, subproject, and subsandbox tree using one of the<br />
following options:<br />
Double click the project, sandbox, subproject, or subsandbox.<br />
Click the plus or minus icons in the directory list.<br />
Right click the project, sandbox, subproject, or subsandbox and select<br />
Expand All.<br />
From a Project or Sandbox window, select View > Expand All or View ><br />
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 />
u s e r g u i d e
Project and Sandbox Windows (GUI)<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 Project and Sandbox windows can be resized within the<br />
Source Integrity application window’s workspace or reduced to an icon in<br />
the application window.<br />
The Project and Sandbox windows also support standard shortcut menus.<br />
Selecting and right clicking a project member in a Project or Sandbox<br />
window displays a menu of actions you can perform on the selected items.<br />
Dialog boxes that you may encounter while working in Project and<br />
Sandbox windows include check boxes for many options. A blank check<br />
box ( ) means the option is not enabled, a check mark ( ) means the<br />
option is enabled, and a question mark ( ) means you will be prompted<br />
to confirm or specify the option.<br />
The information in Project and Sandbox windows displays in columns<br />
with headings and icons. For information on how to configure the column<br />
set, see “Configuring the Source Integrity Column Set” on page 76.<br />
Depending on your view preferences, your Project and Sandbox window<br />
displays may be different than the default preferences described here. For<br />
more information on View Preferences, see “View Preferences” on page 59.<br />
For more information on Project and Sandbox window view selections, see<br />
“Project and Sandbox Windows (GUI)” on page 410.<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 />
sandbox or subsandboxes, for example, project.pj<br />
project or sandbox members, for example, demoapp.c<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 />
411
Appendix A: Views, Windows, and Dialog Boxes<br />
412<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 />
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. For more information on change packages, see<br />
“Using Change Packages” on page 199.<br />
If the Integrity Manager integration is enabled, the change package ID<br />
is displayed as a hyperlink that automatically opens<br />
Integrity Manager to the specified issue. For more information, see<br />
“The Integrity Manager Integration” on page 339.<br />
If the revision has a deferred operation or lock against it that appears<br />
as an entry in the change package, a icon is displayed beside the<br />
change package ID.<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 />
u s e r g u i d e
Project Window<br />
(Web)<br />
Project Window (Web)<br />
When you open a project using the Source Integrity Web interface,<br />
Source Integrity displays its contents in a Project window.<br />
The Project window displays subprojects and project members. You can<br />
open 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 window displays in columns with the<br />
following headings and icons by default:<br />
Name displays the following information:<br />
project or subprojects, for example, project.pj<br />
project members, for example, demoapp.c<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 />
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 />
413
Appendix A: Views, Windows, and Dialog Boxes<br />
Project History<br />
Window (GUI)<br />
414<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” on page 199.<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 />
When you open a project history, Source Integrity displays its contents in a<br />
Project History window. The default view for the Project History window<br />
is the 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 420.<br />
You can apply filters in the Project History window to view and<br />
manipulate a subset of revisions. For information on applying filters in the<br />
Project History window, see “Project History Filters” on page 232.<br />
For information on toggling between the Graphical History view and the<br />
List view in the Project History window, see “Changing Views (GUI)” on<br />
page 424.<br />
u s e r g u i d e
Project History Window (GUI)<br />
The information in the List view of the Project History window 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 76.<br />
Depending on your view preferences, your Project History window<br />
displays may be different than the default preferences described here. For<br />
more information on View Preferences, see “View Preferences” on page 59.<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 />
The Project History window can be resized within the Source Integrity<br />
application window’s workspace or reduced to an icon in the application<br />
window.<br />
415
Appendix A: Views, Windows, and Dialog Boxes<br />
Project History<br />
Window (Web)<br />
Member History<br />
Window (GUI)<br />
416<br />
The Project History window also supports standard shortcut menus.<br />
Selecting and right clicking an archive revision in a Project History<br />
window displays a menu of actions you can perform on the selected item.<br />
When you open a project history, the Source Integrity Web interface<br />
displays its contents in a Project History window.<br />
The information in a Project History window 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 />
To open a Project History window, select Project > View Project History.<br />
When you open a member history, Source Integrity displays its contents in<br />
a Member History window. The default view for the Member History<br />
window is the Graphical History view, but you can toggle to the List view<br />
as well. For more information on using the Graphical History view, see<br />
“Graphical History View (GUI)” on page 420.<br />
In the Member History window 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 />
u s e r g u i d e
Member History Window (GUI)<br />
You can apply filters in the Member History window to view and<br />
manipulate a subset of revisions. For information on applying filters in the<br />
Member History window, see “Member History Filters” on page 281.<br />
For information on toggling between the Graphical History view and the<br />
List view in the Member History window, see “Changing Views (GUI)” on<br />
page 424.<br />
The information in the List view of the Member History window displays<br />
in columns with headings and icons. For information on how to configure<br />
the column set, see “Configuring the Source Integrity Column Set” on<br />
page 76.<br />
Depending on your view preferences, your Member History window<br />
displays may be different than the default preferences described here. For<br />
more information on View Preferences, see “View Preferences” on page 59.<br />
The following outlines the default column set and what they display:<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 />
417
Appendix A: Views, Windows, and Dialog Boxes<br />
418<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” on page 199.<br />
If the Integrity Manager integration is enabled, the change package ID<br />
is displayed as a hyperlink that opens Integrity Manager to the<br />
associated issue. For more information, see “The Integrity Manager<br />
Integration” on page 339.<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 comments that were assigned to the<br />
revision when it was checked in.<br />
Locker Sandbox displays the name of the sandbox where the lock on<br />
the revision was made, and is relevant when viewing the information<br />
from the Locker Host.<br />
Locker Host displays the host name of the computer that locked the<br />
member.<br />
Locker Project displays the name and path of the project where the<br />
member revision was locked from. If the member revision was locked<br />
from a shared subproject, it is the subproject name and path that are<br />
displayed.<br />
Locker Development Path displays the name of the development path<br />
where the lock on the revision was made from. This information is<br />
relevant when the locking policy is set to devpath, allowing a single<br />
user to have a single lock on an archive per development path.<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 />
The Member History window can be resized within the Source Integrity<br />
application window’s workspace or reduced to an icon in the application<br />
window.<br />
u s e r g u i d e
Member History<br />
Window (Web)<br />
Member History Window (Web)<br />
The Member History window also supports standard shortcut menus.<br />
Selecting and right clicking a revision in a Member History window<br />
displays a menu of actions you can perform on the selected revision.<br />
When you open a member history, Source Integrity displays its contents in<br />
a Member History window.<br />
To view the Member History window, do one of the following:<br />
select Member > View Member History<br />
click the member name link in the Project window<br />
The information in a Member History window displays in columns with<br />
the 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 />
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 />
419
Appendix A: Views, Windows, and Dialog Boxes<br />
Graphical<br />
History View<br />
(GUI)<br />
420<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” on page 199.<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 />
Source Integrity’s Graphical History view provides a comprehensive<br />
picture of the evolution of a project or member from the Project History or<br />
Member History window. The view is designed to clearly display the path<br />
of development from revision to revision, including branches, variants,<br />
and 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 />
u s e r g u i d e
Graphical History View (GUI)<br />
Figure 2. Examples of Project History and Member History in the<br />
Graphical 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 windows.<br />
For more information on Member History window filters, see “Member<br />
History Filters” on page 281, and on Project History window filters, see<br />
“Project History Filters” on page 232.<br />
421
Appendix A: Views, Windows, and Dialog Boxes<br />
422<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 has been selected. You can use SHIFT+click or CTRL+click to<br />
select multiple revisions.<br />
The following tables outline operations available in the Member History<br />
and Project History windows, 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 163<br />
Check In “Checking In a Member” on page 172<br />
Revert “Discarding Changes to a Member” on page 183<br />
View Revision “Viewing a Member’s Working File or Revision” on<br />
page 291<br />
View Annotated<br />
Revision<br />
“Viewing an Annotated Revision” on page 286<br />
Differences “Comparing Revisions” on page 301<br />
Lock “Locking a Member” on page 186<br />
Unlock “Unlocking a Member” on page 188<br />
Add Label “Adding Labels to Members” on page 266<br />
Delete Label “Deleting Member Labels” on page 267<br />
Promote “Promoting Members” on page 268<br />
Demote “Demoting Members” on page 269<br />
Set Member Revision “Setting the Member Revision” on page 300<br />
Archive Information “Viewing and Editing Archive Information” on<br />
page 282<br />
Revision Information “Viewing and Editing Revision Information” on<br />
page 284<br />
Delete Revision “Deleting Revisions” on page 301<br />
u s e r g u i d e
For Operation ... See …<br />
Merge “Merging Revisions” on page 322<br />
Project History Operations<br />
Graphical History View (GUI)<br />
View Change Package “Viewing Change Package Details and Entries” on<br />
page 211<br />
Merge Branch “Step Two: Merge Branch” on page 313<br />
For Operation ... See …<br />
Add Label “Adding Project Labels” on page 233<br />
Delete Label “Deleting Project Labels” on page 235<br />
Promote “Promoting a Project” on page 235<br />
Demote “Demoting a Project” on page 236<br />
View Project Differences “Viewing Project Differences” on page 244<br />
Open Build Project “Opening a Build Project” on page 233<br />
Create Development Path “Creating a Development Path” on page 141<br />
Remove Development Path “Removing a Development Path” on page 143<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 window.<br />
In the graphical history view of the Member History window, you can use<br />
the drag method to merge branched revisions. For more information on<br />
branching and merging, see “Step Two: Merge Branch” on page 313.<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 window open, select View ><br />
Show Labels. The labels disappear from the Graphical History view.<br />
423
Appendix A: Views, Windows, and Dialog Boxes<br />
424<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 window open, select View ><br />
Show 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 window open, from the View<br />
menu, 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 window open, select View ><br />
Show 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 windows. If you prefer to view information in these<br />
windows in 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 />
u s e r g u i d e
Change<br />
Package View<br />
(GUI)<br />
Change Package View (GUI)<br />
For information on setting the default view in the Member History or<br />
Project History windows, see “View Preferences” on page 59.<br />
To view a Member History or Project History in List view<br />
With a Member History or Project History window 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 window 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 Change Package window displays the change package ID, person who<br />
created the change package, description (if one was provided), summary,<br />
date the change package was created, and the current change package<br />
state.<br />
By default, the Change Package window displays the following<br />
information for each change package entry:<br />
Type is the entry type of the change package entry. The possible types<br />
are Add, Drop, Lock, Rename, Update, Deferred Add, Deferred<br />
Check In, Deferred Rename.<br />
Member displays name of the member in the change package entry.<br />
When it is a Rename entry type, the member name is displayed with<br />
the form: newname(oldname).<br />
Revision displays the number of the revision in the change package<br />
entry.<br />
Sandbox displays the name of the sandbox where the deferred<br />
operation or check out took place.<br />
Project displays the name and path of the project where the member<br />
revision change package entry occurred. If the entry occurred from a<br />
shared subproject, it is the subproject name and path that are<br />
displayed.<br />
425
Appendix A: Views, Windows, and Dialog Boxes<br />
Change<br />
Package View<br />
(Web)<br />
426<br />
Variant displays the name of the variant development path (if a variant<br />
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 on.<br />
Additional columns are available in the client preferences. To change the<br />
displayed columns, see “View Preferences” on page 59.<br />
The Source Integrity Web interface provides you with a Change Package<br />
view.<br />
The Change Package view lists the change package ID, summary, state,<br />
creation date, and the user name of the person who created the change<br />
package. The Change Package view also details, in tabular form, the<br />
contents of the change package (including entry type, project name,<br />
member name, revision number, date changed, and the name of the<br />
Integrity Server the project resides on).<br />
Using the Change Package view, you can also link directly to an associated<br />
issue in the Integrity Manager Web interface. To see the associated issue,<br />
select Actions > View Issue.<br />
u s e r g u i d e
Change<br />
Packages View<br />
Change Packages View<br />
For more information on working with change packages, see “The<br />
Integrity Manager Integration” on page 339 and “To view a change<br />
package’s issue in the Web interface” on page 346.<br />
The Integrity Manager Web interface opens and displays the issue<br />
associated with the change package. Through the Actions menu, you can<br />
also view a revision, a member history, revision information, and member<br />
differences.<br />
The Change Packages 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 206), whereas the Change Packages window displays<br />
all change packages queried (see “Finding Change Packages” on page 207).<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 change packages are enabled.<br />
Creator displays the username who created the change 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 59.<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 211)<br />
View Issue that is associated with the change package (see “Viewing a<br />
Change Package’s Issue” on page 346)<br />
Submit the change package (see “Submitting Change Packages” on<br />
page 221)<br />
Close a Change Package (see “Closing a Change Package” on<br />
page 219)<br />
Edit an existing Change Package (see “Editing a Change Package” on<br />
page 217)<br />
Create a new Change Package (see “Creating a Change Package” on<br />
page 203)<br />
427
Appendix A: Views, Windows, and Dialog Boxes<br />
Annotated<br />
Revision View<br />
Locks View<br />
428<br />
The Annotated Revision window 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 window, see<br />
“View Preferences” on page 59.<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 284.<br />
View Revision, see “Viewing a Member’s Working File or Revision” on<br />
page 291.<br />
View Member History, see “Viewing a Member History” on page 280.<br />
View Issue, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />
View Change Package, see “Using Change Packages” on page 199.<br />
The Locks for <strong>User</strong> window 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>,<br />
Change Package ID, Sandbox, Development Path. For more information,<br />
see “View Preferences” on page 59.<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 />
u s e r g u i d e
Registered<br />
Projects and<br />
Sandboxes<br />
Dialog Boxes<br />
(GUI)<br />
Registered Projects and Sandboxes Dialog Boxes (GUI)<br />
To refresh the list of locked revisions, select Locks > Refresh.<br />
The list is updated.<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 appears.<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 />
The Registered Projects and Registered Sandboxes dialog boxes allow you<br />
to open, create, import, and drop projects or sandboxes.<br />
When you switch views from a Registered Projects or Registered<br />
Sandboxes dialog box to another dialog box or window, the Registered<br />
Projects or Registered Sandboxes dialog box is no longer visible, but it is<br />
still accessible from the taskbar.<br />
The Registered Projects dialog box contains one tab, Regular, that displays<br />
projects used for regular development.<br />
The Registered Sandboxes dialog box contains three tabs that display<br />
different types of sandboxes.<br />
The Registered Projects and Sandboxes dialog boxes support standard<br />
shortcut menus. To display the menu of actions you can perform, select a<br />
project or sandbox and right click. Source Integrity displays the applicable<br />
shortcut menu.<br />
429
Appendix A: Views, Windows, and Dialog Boxes<br />
Registered<br />
Projects<br />
Window (Web)<br />
430<br />
NOTE<br />
Sandboxes based on configured subprojects do not appear with a configuration<br />
icon in the Registered Sandboxes dialog box. For more information on<br />
configured subprojects, see “Configuring a Subproject” on page 126.<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 />
The Registered Projects window allows you to view the projects and<br />
project histories that are available on the Integrity Server.<br />
The Registered Projects window displays all regular projects used for<br />
development.<br />
u s e r g u i d e
Registered Projects Window (Web)<br />
To view the Registered Projects window, select Tools > Manage Projects or<br />
click .<br />
431
Appendix A: Views, Windows, and Dialog Boxes<br />
432<br />
u s e r g u i d e
A P P E N D I X<br />
Glossary of Terms<br />
Access Control List See ACL.<br />
B<br />
ACL An Access Control List (ACL) is a collection of entries that permits or<br />
limits 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. See<br />
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 compressed, 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 />
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 />
433
Appendix B: Glossary of Terms<br />
434<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 A change package is a group of changes made by a<br />
single user which can be considered a logical unit of work. Only the creator<br />
of a change package may add entries to that change package. Change<br />
package entries take the form of operations, both deferred and committed.<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 completely 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 />
command line interface The command line interface, or CLI, is a<br />
program that allows a user to enter keywords as instructions to a computer<br />
or device to perform specific tasks. (The MS-DOS® Command Prompt is an<br />
example of a CLI.) Results are typically outputted as simple text to the<br />
user’s 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 <strong>MKS</strong> 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 />
complete copies. Known also as reverse delta storage, it is the standard RCS<br />
format for archives.<br />
u s e r g u i d e
Glossary of Terms<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, the project or sandbox is not deleted and you can import it again<br />
if you want it to be accessible in Source Integrity.<br />
Federated Server Architecture 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 that has been dropped from the<br />
project. Source Integrity retains the member history for former members as<br />
part of 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 />
graphical user interface (GUI) The graphical user interface, or GUI, is a<br />
program interface that uses a number of visual components (such as icons,<br />
pointers, and pull-down menus) to execute commands. Working in a GUI<br />
allows the user to give instructions to the computer without having to learn<br />
a specific command 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,<br />
sandbox, or member registers it with the Integrity Server. Once a project,<br />
sandbox, or member is imported, Source Integrity commands can be<br />
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 />
435
Appendix B: Glossary of Terms<br />
436<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 composed 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 deferred add operation and will be added to the project at a future time<br />
when the operation is submitted. The member is shown as a deferred add<br />
in the sandbox, but not yet shown in the project. A pending member is also<br />
known as a deferred member.<br />
permissions Permissions are a collection of pre-defined functionality<br />
and 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 complete the task. For<br />
example, checking out files in Source Integrity requires the FetchRevision<br />
and Lock permissions.<br />
Project History window The Project History window is a window that<br />
displays the revision history of a project, including details on the revision<br />
number, 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 window.<br />
Project window The Project window displays the members and<br />
subprojects of a 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 Windows, which list the<br />
u s e r g u i d e
members of the project and provide access to them.<br />
Glossary of Terms<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 completion.<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 />
Resolution change package A resolution change package is a<br />
specialized change package that records all applied change packages,<br />
resolved conflicts, checked in modified files, and conflicts resolved by<br />
merging. A resolution change package is applied when an Apply CP<br />
operation has failed due to unresolved conflicts that require merging.<br />
Resolution change packages are created through the Resync CP operation<br />
and cannot be 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 becomes 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 becomes 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 />
437
Appendix B: Glossary of Terms<br />
438<br />
Sandbox window The Sandbox window 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 />
shared subproject A shared subproject is a subproject that is a member<br />
of 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 common 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<br />
does not retain working files even when a member is checked in, and<br />
continues to function this way throughout its use.<br />
state A state is free-form text used to classify the condition of a revision<br />
in 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<br />
on a revision to perform a check in operation.<br />
subproject Source Integrity allows you to create large projects composed<br />
of smaller component 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 commands.<br />
subsandbox A subsandbox is a sandbox within a sandbox.<br />
Subsandboxes are typically smaller components of a sandbox, such as<br />
documentation or graphic files.<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 />
u s e r g u i d e
Glossary of Terms<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<br />
can use the Update Member Revision option when you are checking in a<br />
member to ensure the most recent revision of each member is added to the<br />
list of members in the project. If the option is not enabled, the project list<br />
might not 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 />
439
Appendix B: Glossary of Terms<br />
440<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 76<br />
access permission 30<br />
ACL<br />
See access control list<br />
adding<br />
change package entries 205<br />
label<br />
to member 266<br />
to project 233<br />
to revision 290<br />
member<br />
deferred 146<br />
to project 146<br />
subproject 119<br />
administrator<br />
described 1<br />
all members<br />
filter 83, 91<br />
annotated revision 286<br />
any member delta<br />
filter 83<br />
application window<br />
graphical user interface 72<br />
web interface 89<br />
applying change package 349<br />
backfill list 359<br />
backfill option 363<br />
command option 372<br />
GUI command 366<br />
key concept 357<br />
overview 351<br />
process 357<br />
architecture<br />
server 13<br />
archive<br />
information<br />
editing 282<br />
viewing 282<br />
archive description<br />
described 148<br />
assigning<br />
revision description 174<br />
revision number 173<br />
attribute<br />
project 228<br />
Author keyword 197<br />
B<br />
backfill list<br />
Apply CP 359<br />
Apply CP option 363<br />
Resync CP 377<br />
Resync CP option 381<br />
before starting<br />
access control lists 31<br />
access permission 30<br />
Source Integrity 30<br />
binary file 18<br />
comparing 18<br />
described 18<br />
branch<br />
described 306<br />
ignore 384<br />
merge on 383<br />
merging 313<br />
by dragging 316<br />
on check in 311<br />
on check out 319<br />
on resync 320<br />
renaming member on branch 181<br />
starting during check in 172<br />
branching<br />
on check out 306<br />
browser requirements 24<br />
build project<br />
opening 233<br />
build sandbox<br />
creating 131<br />
441
Index<br />
C<br />
442<br />
described 144<br />
canceling deferred operation 191<br />
change<br />
scanning sandbox for 171<br />
change package<br />
adding entries 205<br />
to an issue 345<br />
Apply CP process 357<br />
applying 349<br />
command option 372<br />
GUI command 366<br />
key concept 357<br />
closing 219<br />
creating 203<br />
for an issue 343<br />
editing 217<br />
entry member differences 222<br />
explained 200<br />
finding 207<br />
using query 347<br />
managing 206<br />
methodology 351<br />
resolution<br />
creating 402<br />
GUI command 402<br />
key concepts 399<br />
process 400<br />
using 401<br />
Resync CP process 376<br />
resynchronizing 375<br />
by CP 405<br />
command option 392<br />
example 406<br />
GUI command 386<br />
key concept 376<br />
submitting 221<br />
using to control development 202<br />
viewing 211<br />
associated issue 346<br />
why to use 201<br />
check in 14, 18<br />
check out 14, 17<br />
checking in<br />
member 172<br />
merging on check in 311<br />
checking out<br />
automatic merging on check out 319<br />
branching 306<br />
member 163<br />
checkpointing 19<br />
project 19, 237<br />
CLI 5<br />
described 92<br />
using graphical user interface 93<br />
closing<br />
change package 219<br />
client 70<br />
client session 69<br />
columns<br />
configuring 76<br />
command<br />
ident 196<br />
man 5<br />
option<br />
Apply CP 372<br />
Resync CP 392<br />
preferences 48<br />
syntax 93<br />
viewing 93<br />
command line interface<br />
See CLI<br />
command prompts<br />
described 93<br />
CompanyInfo keyword 197<br />
comparing<br />
project 20<br />
revision 301<br />
working file to member revision 192<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 />
configuration management 14<br />
configuration options 19<br />
configuring<br />
client environment variable 29<br />
graphical user interface<br />
main toolbar 78<br />
Source Integrity 40<br />
subproject 126<br />
conflict<br />
viewing in Visual Merge 330<br />
connecting<br />
u s e r g u i d e
preferences 43<br />
to multiple servers 39<br />
to server 37<br />
content<br />
reconstructing revision 18<br />
creating<br />
build sandbox 131<br />
change package 203<br />
for an issue 343<br />
development path 141<br />
project 110<br />
report 277<br />
sandbox 131<br />
shared subproject 122<br />
subproject 118<br />
variant sandbox 131<br />
customer support<br />
getting help 8<br />
D<br />
Date keyword 197<br />
deferred item<br />
filter 85<br />
deferred member<br />
described 189<br />
deferred operation 189<br />
adding member 146<br />
canceling 183, 191<br />
checking in member 172<br />
dropping member 158<br />
renaming member 180<br />
resynchronizing 184, 191<br />
reverting 183, 191<br />
submitting 190<br />
deleting<br />
member label 267<br />
project label 235<br />
revision 301<br />
delta<br />
described 18<br />
storing 18<br />
demoting<br />
project 236<br />
revision 293<br />
development<br />
integrated environment 22<br />
object 17<br />
path 21<br />
creating 141<br />
described 139<br />
editing 230<br />
removing 143<br />
viewing 230<br />
difference<br />
project 20, 244<br />
differencing<br />
change package entries 222<br />
third party differencing tool 66<br />
tool preferences 66<br />
Visual Difference 95<br />
editing merge results 328<br />
merging 324<br />
mode 98<br />
panes 97<br />
preferences 99<br />
reverting merge results 328<br />
saving merge results 329<br />
working with 324<br />
discarding<br />
change to working file 183<br />
disconnecting<br />
from multiple servers 40<br />
from server 69<br />
documentation<br />
Integrity Manager CLI Reference<br />
<strong>Guide</strong> 5<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong> 5<br />
Integrity Server Administration CLI<br />
Reference <strong>Guide</strong> 4<br />
Integrity Server Installation and<br />
Administration <strong>Guide</strong> 4<br />
man pages 5<br />
online help 5<br />
related 3<br />
release notes 5<br />
Source Integrity Enterprise Edition CLI<br />
Reference <strong>Guide</strong> 4<br />
Source Integrity Enterprise Edition IDE<br />
Integrations <strong>Guide</strong> 5<br />
Using <strong>MKS</strong> Make 5<br />
dropping<br />
member 158<br />
project 114<br />
described 114<br />
sandbox 136<br />
described 136<br />
subproject 129<br />
E<br />
editing<br />
Index<br />
443
Index<br />
archive information 282<br />
change package 217<br />
development path information 230<br />
member 170<br />
attribute 259<br />
information 257<br />
label 262<br />
merge results in Visual Difference 328<br />
merge results in Visual Merge 331<br />
project<br />
attribute 228<br />
information 226<br />
revision<br />
information 284<br />
label 288<br />
enhancements<br />
this release 7<br />
environment variable 86<br />
UNIX client 29<br />
F<br />
features<br />
new 7<br />
file<br />
binary 18<br />
comparing 18<br />
history 15<br />
text 18<br />
working 17<br />
file and object history 15<br />
filter<br />
all members 83, 91<br />
any member delta 83<br />
deferred item 85<br />
existing working files 84<br />
frozen member 84, 91<br />
list<br />
graphical user interface 74<br />
web interface 91<br />
locked member 84, 91<br />
member at label 84, 91<br />
member at state 85, 91<br />
member history<br />
all revisions 281<br />
branched 281<br />
labeled 281<br />
locked 281<br />
member 281<br />
member locked by me 84, 91<br />
member on branch 85, 92<br />
444<br />
member with attribute 84, 92<br />
member with label 84, 91<br />
member with name 85<br />
missing working file 84<br />
modified working file 83<br />
new member 84<br />
new revision available 84<br />
out of sync member 83<br />
project history<br />
all revisions 232<br />
development path 232<br />
labeled 232<br />
using 83<br />
web interface 91<br />
working file on branch 84<br />
working file size delta 84<br />
finding<br />
change package<br />
using query 347<br />
change packages 207<br />
former member<br />
described 158<br />
freezing<br />
member 270<br />
frozen member<br />
filter 84, 91<br />
G<br />
general<br />
preferences 41<br />
graph<br />
Reporter 274<br />
graphical history view 420<br />
changing views 424<br />
dragging and dropping 423<br />
member history window 420<br />
project history window 420<br />
selecting revision 422<br />
view options 423<br />
graphical user interface<br />
access keys 76<br />
application window 72<br />
columns<br />
configuring 76<br />
described 72<br />
environment variable 86<br />
filter list 74<br />
graphical history view 420<br />
member history window 416<br />
member information pane 74<br />
u s e r g u i d e
menu bar 72<br />
project history window 414<br />
project window 73, 410<br />
registered project 429<br />
sandbox window 73, 410<br />
shortcut keys 76<br />
shortcut menu 73<br />
status bar 74<br />
title bar 72<br />
toolbar 73<br />
configuring 78<br />
using in CLI 93<br />
workspace 74<br />
groups<br />
viewing 34<br />
H<br />
Header keyword 197<br />
help<br />
customer support 8<br />
history<br />
file 15<br />
object 15<br />
I<br />
Id keyword 197<br />
IDE<br />
See integrated development environment<br />
ident command 196<br />
ignore branch 384<br />
importing<br />
a project 112<br />
member 155<br />
sandbox 135<br />
installing<br />
Integrity Client 24<br />
UNIX post-install 29<br />
integrated development environment 22<br />
integrations<br />
for Solution<br />
described 340<br />
Integrity Client<br />
installing 24<br />
post-installation on UNIX 29<br />
uninstalling 29<br />
Integrity Manager<br />
integration 340<br />
how works 340<br />
issue<br />
adding entries to a change<br />
package 345<br />
creating a change package for 343<br />
viewing 346<br />
using query 347<br />
Integrity Manager CLI Reference <strong>Guide</strong> 5<br />
Integrity Manager <strong>User</strong> <strong>Guide</strong> 5<br />
Integrity Server<br />
registering project with 14<br />
Integrity Server Aministration CLI Reference<br />
<strong>Guide</strong> 4<br />
Integrity Server Installation and<br />
Administration <strong>Guide</strong> 4<br />
interface 71<br />
K<br />
keyword<br />
Author 197<br />
CompanyInfo 197<br />
Date 197<br />
Header 197<br />
Id 197<br />
locating 196<br />
Locker 197<br />
Log 197<br />
Name 197<br />
ProjectName 197<br />
ProjectRevision 197<br />
RCSfile 197<br />
Revision 197<br />
Setting 197<br />
Source 197<br />
State 197<br />
using 194<br />
keywords<br />
table 196<br />
L<br />
label<br />
deleting from revision 291<br />
labeling<br />
member 266<br />
revision 290<br />
launching<br />
Source Integrity 34<br />
line terminator 133<br />
list, backfill<br />
Apply CP 359<br />
Apply CP option 363<br />
Index<br />
445
Index<br />
Resync CP 377<br />
Resync CP option 381<br />
locating keyword 196<br />
locked member<br />
filter 84, 91<br />
making locked member writable 308<br />
managing revision locks 298<br />
view sandbox that locked member 139<br />
Locker keyword 197<br />
locking<br />
member 186<br />
multiple revisions 296<br />
revision 294<br />
Log keyword 197<br />
logging in 36<br />
logging out 69<br />
M<br />
make utility 5<br />
man command 5<br />
manage project<br />
graphical user interface 429<br />
web interface 430<br />
manage sandbox<br />
graphical user interface 429<br />
managing change packages 206<br />
member<br />
adding label to 266<br />
adding to project 146<br />
attribute<br />
editing 259<br />
viewing 259<br />
checking in 172<br />
checking out 163<br />
deferring operation 189<br />
deleting label 267<br />
demoting 269<br />
dropping 158<br />
editing 170<br />
freezing 270<br />
history 17<br />
reference format 18<br />
viewing 280<br />
importing 155<br />
information<br />
editing 257<br />
viewing 257<br />
label<br />
editing 262<br />
viewing 262<br />
446<br />
location 15<br />
locking 186<br />
making locked member writable 308<br />
managing locks 298<br />
name 15<br />
permission 31<br />
project 17<br />
promoting 268<br />
removing from project 158<br />
renaming 180<br />
tip revision 181<br />
resynchronizing 184, 263<br />
reverting 183<br />
revision 17<br />
number 15<br />
setting 300<br />
updating 263<br />
selecting 161<br />
thawing 272<br />
type 15<br />
unlocking 188<br />
updating 184<br />
viewing 170<br />
member at label<br />
filter 84, 91<br />
member at state<br />
filter 85, 91<br />
member history window<br />
filter 281<br />
graphical history view 420<br />
graphical user interface 416<br />
web interface 419<br />
member information pane<br />
graphical user interface 74<br />
member locked by me<br />
filter 84, 91<br />
member name argument<br />
described 93<br />
member on branch<br />
filter 85, 92<br />
member with attribute<br />
filter 84, 92<br />
member with label<br />
filter 84, 91<br />
member with name<br />
filter 85<br />
menu bar<br />
graphical user interface 72<br />
web interface 90<br />
merge<br />
automatic merging on check out 319<br />
automatic merging on resync 320<br />
u s e r g u i d e
on branch 383<br />
merge results<br />
editing in Visual Merge 331<br />
reverting in Visual Merge 332<br />
saving in Visual Merge 333<br />
merging<br />
branch 313<br />
by dragging 316<br />
in Visual Difference 324<br />
on check in 311<br />
resolving merges 336<br />
revision 322<br />
automatically 322<br />
in Visual Merge 331<br />
revision in CLI 335<br />
revision in Visual Difference 324<br />
revision in Visual Merge 330<br />
suspending in Visual Merge 334<br />
metadata 15<br />
methodology<br />
change package 351<br />
missing working file<br />
filter 84<br />
<strong>MKS</strong> Visual Difference<br />
See Visual Difference<br />
<strong>MKS</strong> Visual Merge<br />
See Visual Merge<br />
modified working file<br />
filter 83<br />
N<br />
Name keyword 197<br />
new features 7<br />
new member<br />
filter 84<br />
new revision available<br />
filter 84<br />
O<br />
object<br />
control 17<br />
history 15<br />
online help 5<br />
opening<br />
member history 280<br />
project 115<br />
sandbox 138<br />
option<br />
configuration 19<br />
out of sync member<br />
filter 83<br />
P<br />
pending member 189<br />
permission 31<br />
preferences<br />
command 48<br />
connection 43<br />
difference tool 66<br />
general 41<br />
saving 67<br />
setting 40<br />
view 59<br />
printing lists and views 75<br />
process<br />
Apply CP command 357<br />
resolution change package 400<br />
Resync CP command 376<br />
project 14, 17<br />
adding member 146<br />
attribute 228<br />
editing 228<br />
viewing 228, 253<br />
checkpointing 19, 237<br />
comparing 20<br />
content 15<br />
creating 110<br />
deleting label 235<br />
demoting 236<br />
difference 20, 245<br />
comparing current to last<br />
checkpointed 248<br />
comparing current to specified<br />
revision 246<br />
comparing two specified<br />
revisions 245<br />
dropping 114<br />
history<br />
viewing 231<br />
importing 112<br />
information<br />
editing 226<br />
viewing 226<br />
member 17<br />
metadata 15<br />
modification<br />
viewing 249<br />
opening 115<br />
permission 31<br />
Index<br />
447
Index<br />
promoting 235<br />
registering with Integrity Server 14<br />
removing member 158<br />
restoring 240<br />
in GUI 241<br />
viewing 115<br />
differences 244<br />
project history window<br />
filter 232<br />
graphical history view 420<br />
graphical user interface 414<br />
web interface 416<br />
project window<br />
graphical user interface 73, 410<br />
web interface 90, 413<br />
ProjectName keyword 197<br />
ProjectRevision keyword 197<br />
project-specific configuration 15<br />
promoting<br />
a project 235<br />
member 268<br />
revision 292<br />
proxy<br />
configuring 46<br />
Q<br />
quick access keys<br />
access keys 76<br />
graphical user interface shortcut keys 76<br />
quitting<br />
session 69<br />
R<br />
RCSfile keyword 197<br />
reconstructing revision 18<br />
reference format<br />
member history 18<br />
registered project<br />
graphical user interface 429<br />
web interface 430<br />
registered sandbox<br />
described 429<br />
web interface 430<br />
related documentation 3<br />
release enhancements 7<br />
release notes 5<br />
removing<br />
development path 143<br />
member 158<br />
448<br />
renaming<br />
member 180<br />
on a branch 181<br />
tip revision 181<br />
report<br />
creating 277<br />
information 273<br />
type 274<br />
by author 274<br />
by author (summary) 274<br />
member revision to label 275<br />
member revision to revision 275<br />
newer revision 275<br />
project member history 276<br />
revision locked 276<br />
revision with label 276<br />
revision with state 276<br />
Reporter<br />
described 273<br />
graph 274<br />
resolution change package<br />
creating 402<br />
GUI command 402<br />
key concepts 399<br />
process 400<br />
using 401<br />
restoring project 240<br />
in GUI 241<br />
resynchronizing<br />
automatic merging on resync 320<br />
by CP 185, 405<br />
example 406<br />
deferred operation 184, 191<br />
member 184, 263<br />
resynchronizing change package 375<br />
backfill list 377<br />
backfill option 381<br />
command option 392<br />
GUI command 386<br />
ignore branch option 384<br />
key concept 376<br />
merge on branch option 383<br />
overview 351<br />
process 376<br />
reverting<br />
deferred operation 183, 191<br />
member 183<br />
merge results in Visual Difference 328<br />
merge results in Visual Merge 332<br />
revision 15<br />
adding label to 290<br />
annotated 286<br />
u s e r g u i d e
comparing 301<br />
deleting 301<br />
deleting label 291<br />
demoting 293<br />
description<br />
assigning 174<br />
in member history 18<br />
information<br />
editing 284<br />
viewing 284<br />
label<br />
editing 288<br />
viewing 288<br />
locking 294<br />
locking multiple revisions 296<br />
merging 322<br />
automatically 322<br />
in CLI 335<br />
in Visual Difference 324<br />
in Visual Merge 330, 331<br />
number 15<br />
assigning 173<br />
valid 173<br />
promoting 292<br />
reconstructing 18<br />
unlocking 295<br />
viewing 291<br />
viewing locks 298<br />
Revision keyword 197<br />
S<br />
sandbox 14<br />
build 144<br />
creating 131<br />
described 14<br />
dropping 136<br />
importing 135<br />
information<br />
general 251<br />
project attribute 252<br />
viewing 251<br />
opening 138<br />
scanning for change 171<br />
snapshot 253<br />
type 133<br />
variant 21<br />
view sandbox that locked member 139<br />
viewing 138<br />
sandbox window<br />
graphical user interface 73, 410<br />
saving<br />
merge results in Visual Difference 329<br />
merge results in Visual Merge 333<br />
preferences 67<br />
scanning sandbox<br />
for change 171<br />
selecting<br />
member 161<br />
server<br />
configuring multiple servers 47<br />
connecting 37<br />
disconnecting 69<br />
session<br />
closing client 70<br />
quitting 69<br />
shutting down client 70<br />
setting<br />
member revision 300<br />
preferences 40<br />
Setting keyword 197<br />
shared subproject<br />
creating 122<br />
shortcut keys<br />
graphical user interface 76<br />
shortcut menu<br />
graphical user interface 73<br />
shutting down<br />
client 70<br />
snapshot a sandbox 253<br />
Solution integration 340<br />
Source Integrity<br />
before starting 30<br />
concept 13<br />
configuring 40<br />
graphical history view 420<br />
graphical user interface 72<br />
integration with Integrity Manager 340<br />
rules 340<br />
viewing associated issue 346<br />
starting 34<br />
understanding 13<br />
web interface 88<br />
Source Integrity Enterprise Edition CLI<br />
Reference <strong>Guide</strong> 4<br />
Source Integrity Enterprise Edition IDE<br />
Integrations <strong>Guide</strong> 5<br />
Source Integrity interfaces 71<br />
Source keyword 197<br />
starting<br />
a session 36<br />
branch during check in 172<br />
Source Integrity 34<br />
Index<br />
449
Index<br />
State keyword 197<br />
status bar<br />
graphical user interface 74<br />
web interface 90<br />
storing delta 18<br />
submit 190<br />
change packages 221<br />
deferred operation 190<br />
subproject<br />
adding 119<br />
configuring 126<br />
creating 118<br />
creating shared subproject 122<br />
dropping 129<br />
suspending<br />
merges in Visual Merge 334<br />
system requirements<br />
web browser 24<br />
T<br />
table<br />
keyword 196<br />
text file 18<br />
thawing<br />
member 272<br />
third party difference tool 66<br />
tip revision<br />
renaming 181<br />
title bar<br />
graphical user interface 72<br />
web interface 89<br />
toolbar buttons<br />
graphical user interface 73<br />
web interface 90<br />
type<br />
report 274<br />
sandbox 133<br />
U<br />
uninstalling<br />
Integrity Client 29<br />
UNIX<br />
client environment variable 29<br />
unlocking<br />
member 188<br />
revision 295<br />
updating<br />
member 184<br />
member revision 263<br />
450<br />
user<br />
described<br />
using<br />
1<br />
filter 83<br />
keyword 194<br />
Using <strong>MKS</strong> Make guide<br />
utility<br />
5<br />
CLI 5<br />
make 5<br />
V<br />
variant sandbox 21<br />
creating 131<br />
described 139<br />
viewing<br />
archive information 282<br />
change package<br />
associated issue 346<br />
details and entries 211<br />
entry member differences 222<br />
multiple 206<br />
command 93<br />
conflict in Visual Merge 330<br />
development path information 230<br />
general sandbox information 251<br />
group membership 34<br />
member 170<br />
member attribute 259<br />
member difference 222<br />
member history 280<br />
member information 257<br />
member label 262<br />
preferences 59<br />
project 115<br />
information 226<br />
project attribute 228, 253<br />
project attribute information 252<br />
project differences 244<br />
project history<br />
opening 231<br />
revision 291<br />
revision information 284<br />
revision label 288<br />
sandbox 138<br />
sandbox information 251<br />
working file 291<br />
Visual Difference 95<br />
editing merge results 328<br />
merging 324<br />
mode 98<br />
u s e r g u i d e
panes 97<br />
preferences 99<br />
reverting merge results 328<br />
saving merge results 329<br />
working with 324<br />
Visual Merge 101<br />
editing merge results 331<br />
merging revision 331<br />
panes 104<br />
preferences 105<br />
reverting merge results 332<br />
saving merge results 333<br />
suspending merges 334<br />
viewing conflict 330<br />
working with 330<br />
W<br />
web browser<br />
system requirements 24<br />
web interface 88<br />
application window 89<br />
filter 91<br />
filter list 91<br />
member history window<br />
described 419<br />
menu bar 90<br />
project history window<br />
described 416<br />
project window 90<br />
described 413<br />
registered project 430<br />
registered sandbox 430<br />
status bar 90<br />
title bar 89<br />
toolbar buttons<br />
described 90<br />
what’s new 7<br />
working file 17<br />
comparing to member revision 192<br />
discarding change 183<br />
viewing 291<br />
working file on branch<br />
filter 84<br />
working file size delta<br />
filter 84<br />
working file, existing<br />
filter 84<br />
working with project 14<br />
workspace<br />
graphical user interface 74<br />
writable<br />
making locked member writable 308<br />
Index<br />
451
Index<br />
452<br />
u s e r g u i d e