02.05.2013 Views

User Guide - MKS

User Guide - MKS

User Guide - MKS

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!