02.05.2013 Views

User Guide - Mks.com

User Guide - Mks.com

User Guide - Mks.com

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


MKS Source Integrity® Enterprise Edition 8.6<br />

<strong>User</strong> <strong>Guide</strong><br />

Copyright © 2001–2004 MKS Software Inc.; in Canada copyright owned by MKS Inc. All rights reserved.<br />

MKS Source Integrity, MKS Integrity Manager, MKS Code Integrity, Implementer, MKS Toolkit, Sandbox, DISCOVER,<br />

SDM, NuTCRACKER, Integrity Solution, AlertCentre, MKS Track Integrity, NewVersion, and Build Better Software are<br />

registered trademarks of MKS Inc. All other trademarks or registered trademarks are the property of their respective<br />

holders.<br />

Contains Java software developed by Sun Microsystems, Inc. © Copyright Sun Microsystems, Inc. All Rights<br />

Reserved. Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United<br />

States and other countries.<br />

Portions of this product are based upon copyrighted materials of BEA Systems Inc. All rights reserved.<br />

Portions of this product are based upon copyrighted materials of Sitraka Inc. (formerly KL Group) or its suppliers. All<br />

rights reserved.<br />

IBM Bean Scripting Framework (BSF) is incorporated in this product and is provided by International Business<br />

Machines or one of its subsidiaries (IBM) and is copyrighted and licensed. MKS does not make or imply any<br />

representations or warranties on behalf of IBM.<br />

Mozilla Public License. The Source Code version of the Covered Code is available under the terms of the Mozilla Public<br />

License Version 1.1.<br />

CORPORATE HEADQUARTERS WORLDWIDE OFFICES:<br />

410 Albert Street<br />

Waterloo, ON N2L 3V3<br />

Canada<br />

tel: 519 884 2251<br />

fax: 519 884 8861<br />

sales: 800 265 2797<br />

www.mks.<strong>com</strong><br />

4.6KYAK-0304<br />

15 Third Avenue<br />

Burlington, MA USA<br />

01803<br />

tel: 781 359 3300<br />

fax: 781 359 3399<br />

2500 S. Highland Avenue<br />

Lombard, IL USA<br />

60148<br />

tel: 630 495 2108<br />

fax: 630 495 3591<br />

sales: 800 633 1235<br />

12450 Fair Lakes Circle<br />

Suite 400<br />

Fairfax, VA USA<br />

22033<br />

tel: 703 803 3343<br />

fax: 703 803 3344<br />

sales: 800 265 2797<br />

This document is uncontrolled when printed or copied.<br />

Martinstraße 42-44<br />

73728 Esslingen<br />

Germany<br />

tel: +49 711 351775 0<br />

fax: +49 711 351775 11<br />

Third Floor, Duke’s Court<br />

Duke Street, Woking<br />

Surrey<br />

GU21 5BH<br />

United Kingdom<br />

tel: +44 (0)1483 733900<br />

fax: +44 (0)1483 733901<br />

sales: +44 (0)1483 733919


Table of Contents<br />

Chapters 1 Wel<strong>com</strong>e to Source Integrity Enterprise Edition . . . . . . . . 1<br />

About This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

Professional Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

Your Feedback Is Wel<strong>com</strong>e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

Where To Go From Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2 Understanding Source Integrity . . . . . . . . . . . . . . . . . . . . 13<br />

Projects and Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

Working With Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

File and Object Histories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

How Files and Objects Are Stored . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

What Is a Project Member? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

History File: Storing Deltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

Project Checkpointing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

Source Integrity Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

Working With Variants and Development Paths . . . . . . . . . . . . . . . 21<br />

Integrations Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

3 Getting Started Using Source Integrity. . . . . . . . . . . . . . . 23<br />

Installing the Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

Browser Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

Configuring Environment Variables for UNIX . . . . . . . . . . . . . . . . . 29<br />

Uninstalling the Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

Before You Start the Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

Understanding Access Permissions . . . . . . . . . . . . . . . . . . . . . . . 30<br />

Understanding Access Control Lists . . . . . . . . . . . . . . . . . . . . . . 31<br />

Viewing Group Membership . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

Administrator Defined Client Settings . . . . . . . . . . . . . . . . . . . . 34<br />

Starting the Source Integrity Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

Logging In to Source Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

Connecting to Multiple Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

Setting Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

General Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

Connection Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

i


Table of Contents<br />

ii<br />

Command Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

View Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

Editor Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

Difference Tool Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

Shutdown Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

Managing Integrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

Quitting a Source Integrity Session . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

Logging Out of Source Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

Closing the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

Shutting Down the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

4 Source Integrity Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

Source Integrity Graphical <strong>User</strong> Interface . . . . . . . . . . . . . . . . . . . . . . 76<br />

Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

Printing Lists and Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

Quick Access Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

Configuring the Source Integrity Column Set . . . . . . . . . . . . . . 80<br />

Configuring the Source Integrity Toolbars . . . . . . . . . . . . . . . . 82<br />

Dialog Box Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

Using Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

Source Integrity Web Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

Using Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />

Viewing Available CLI Commands . . . . . . . . . . . . . . . . . . . . . . . 98<br />

Using the Graphical <strong>User</strong> Interface From the CLI . . . . . . . . . . . 98<br />

Command Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

Member Name Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

MKS Visual Difference Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />

Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />

Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />

Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />

MKS Visual Merge Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

Application Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />

Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />

5 Project and Sandbox Operations . . . . . . . . . . . . . . . . . . 115<br />

Working With Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

Importing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />

Dropping a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

Adding a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />

Opening or Viewing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />

u s e r g u i d e


Table of Contents<br />

Working With Subprojects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />

Creating a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />

Adding a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

Adding a Shared Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />

Configuring a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

Dropping a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

Working With Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

Creating a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

Importing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

Sharing Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />

Dropping a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />

Opening or Viewing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

Viewing Which Sandbox Locked a Member . . . . . . . . . . . . . . 145<br />

Creating Variant Sandboxes and Development Paths . . . . . . 146<br />

Removing a Development Path . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />

Using Build Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

6 Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

Managing Project Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

Displaying Non-Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

Adding Members to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

Adding Members From Archive to a Project . . . . . . . . . . . . . . 166<br />

Importing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />

Dropping Members From a Project . . . . . . . . . . . . . . . . . . . . . . 172<br />

Performing Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

Selecting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

Checking Out a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178<br />

Viewing and Editing a Member . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />

Checking In a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186<br />

Renaming a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194<br />

Discarding Changes to a Member . . . . . . . . . . . . . . . . . . . . . . . 196<br />

Resyncing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197<br />

Locking a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198<br />

Unlocking a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />

Deferring Member Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />

Submitting Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . 202<br />

Cancelling Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />

Resyncing Members With Deferred Operations . . . . . . . . . . . 203<br />

Pending Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204<br />

Resyncing Pending Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 205<br />

Comparing Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205<br />

Using Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />

Locating Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210<br />

Table of Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210<br />

iii


Table of Contents<br />

iv<br />

7 Using Change Packages and Reviews . . . . . . . . . . . . . . 213<br />

What Are Change Packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214<br />

Operations That Add Entries to a Change Package . . . . . . . . . . . . 215<br />

Why Use Change Packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215<br />

Using Change Packages to Control Development . . . . . . . . . . . . . . 216<br />

Creating a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />

Adding Entries to a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />

Managing Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220<br />

Finding Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222<br />

Viewing Change Package Details and Entries . . . . . . . . . . . . . 226<br />

Editing a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233<br />

Closing a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235<br />

Discarding Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . 236<br />

Submitting Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238<br />

Change Package Review Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />

How the CP Review Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />

CP States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241<br />

CP Review Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242<br />

CP Entry Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244<br />

Reviewing Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />

Accepting a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />

Rejecting a Change Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247<br />

Opening Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />

CP Review Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />

Viewing Reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250<br />

Viewing Your Pending Reviews . . . . . . . . . . . . . . . . . . . . . . . . . 250<br />

Viewing the CP Review Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250<br />

Managing Change Package Entries . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

Moving CP Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

Discarding CP Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254<br />

Viewing CP Entry Member Differences . . . . . . . . . . . . . . . . . . 255<br />

8 Viewing and Editing Projects, Sandboxes,<br />

and Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257<br />

Controlling Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258<br />

Viewing and Editing Project Information . . . . . . . . . . . . . . . . . 258<br />

Viewing a Project History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263<br />

Opening a Build Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />

Adding Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />

Deleting Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266<br />

Promoting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267<br />

Demoting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />

Checkpointing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269<br />

Restoring a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271<br />

Viewing Project Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275<br />

u s e r g u i d e


Table of Contents<br />

Controlling Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280<br />

Viewing General Sandbox Information . . . . . . . . . . . . . . . . . . . 280<br />

Viewing Project Attributes From a Sandbox . . . . . . . . . . . . . . 281<br />

Viewing Sandbox Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282<br />

Taking Sandbox Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283<br />

Controlling Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287<br />

Viewing and Editing Member Information . . . . . . . . . . . . . . . 287<br />

Updating a Member’s Revision . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />

Adding Labels to Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297<br />

Deleting Member Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298<br />

Promoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299<br />

Demoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300<br />

Freezing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301<br />

Thawing Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302<br />

Generating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />

About the Report Information . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />

About Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304<br />

Report Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304<br />

Creating a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307<br />

9 Viewing and Editing Member Histories and Revisions . 309<br />

Viewing a Member History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310<br />

Viewing and Editing Archive Information . . . . . . . . . . . . . . . . . . . . 312<br />

Viewing and Editing Revision Information . . . . . . . . . . . . . . . . . . . 314<br />

Viewing an Annotated Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316<br />

Viewing and Editing Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . 319<br />

Adding Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320<br />

Deleting Revision Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321<br />

Viewing a Member’s Working File or Revision . . . . . . . . . . . . . . . . 322<br />

Promoting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323<br />

Demoting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324<br />

Locking Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324<br />

Unlocking Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326<br />

Locking Multiple Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327<br />

Managing Revision Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328<br />

Setting the Member Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330<br />

Deleting Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331<br />

Comparing Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331<br />

Working With Pending Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 335<br />

v


Table of Contents<br />

vi<br />

10 Branching and Merging Revisions . . . . . . . . . . . . . . . . . 337<br />

Branching Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338<br />

Making Locked Members Writable . . . . . . . . . . . . . . . . . . . . . . . . . . 340<br />

Merging Branched Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343<br />

Merging on Check In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343<br />

Merging Revisions by Dragging . . . . . . . . . . . . . . . . . . . . . . . . . 348<br />

Automatic Merging on Check Out . . . . . . . . . . . . . . . . . . . . . . . 350<br />

Automatic Merging on Resync . . . . . . . . . . . . . . . . . . . . . . . . . . 352<br />

Merging Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353<br />

Merging Revisions Automatically . . . . . . . . . . . . . . . . . . . . . . . 354<br />

Working With MKS Visual Difference . . . . . . . . . . . . . . . . . . . 356<br />

Working With MKS Visual Merge . . . . . . . . . . . . . . . . . . . . . . . 361<br />

Merging in the Command Line Interface . . . . . . . . . . . . . . . . . 366<br />

Resolving Merges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367<br />

11 The Integrity Manager Integration. . . . . . . . . . . . . . . . . . 371<br />

Integrating With Integrity Manager . . . . . . . . . . . . . . . . . . . . . . . . . . 372<br />

How the Integration Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372<br />

Creating a Change Package for an Issue . . . . . . . . . . . . . . . . . . . . . . 375<br />

Adding Entries to an Issue’s Change Package . . . . . . . . . . . . . . . . . 376<br />

Viewing a Change Package’s Issue . . . . . . . . . . . . . . . . . . . . . . . . . . 376<br />

Finding Change Packages Using a Query . . . . . . . . . . . . . . . . . . . . . 378<br />

12 Advanced Change Package Operations. . . . . . . . . . . . . 381<br />

Change Package Feature Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 382<br />

Change Package Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . 382<br />

Change Package Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383<br />

Resolving Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386<br />

Using the Apply CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387<br />

Key Apply CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388<br />

How Apply CP Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389<br />

Apply CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391<br />

Apply CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398<br />

Using the Resync CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406<br />

Key Resync CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407<br />

How Resync CP Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408<br />

Resync CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409<br />

Working on a Variant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />

Resync CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418<br />

Working With a Resolution CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428<br />

Key Resolution CP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430<br />

How Resolution CPs Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431<br />

Using a Resolution CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432<br />

Resolution CP Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434<br />

Using the Resync By CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . 436<br />

u s e r g u i d e


Table of Contents<br />

Appendixes A Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441<br />

Annotated Revision View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441<br />

Archive Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442<br />

Change Package View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443<br />

Change Packages View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444<br />

Graphical History View (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . 445<br />

Locks View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450<br />

Member History View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451<br />

Member Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454<br />

Non-Members View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455<br />

Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457<br />

Project History View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460<br />

Project Differences View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462<br />

Project Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464<br />

Registered Projects View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465<br />

Registered Sandboxes View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467<br />

Revisions Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468<br />

Sandbox View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469<br />

Sandbox Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471<br />

B Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473<br />

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481<br />

vii


Table of Contents<br />

viii<br />

u s e r g u i d e


Wel<strong>com</strong>e to Source<br />

Integrity Enterprise Edition<br />

1<br />

Increased software <strong>com</strong>plexity, globally distributed development<br />

operations, higher expectations for software quality and reliability,<br />

e-business development initiatives, mergers and acquisitions, Web and<br />

intranet site management—all are factors driving the need for robust<br />

software configuration management in the global software development<br />

organization.<br />

MKS Source Integrity® Enterprise Edition (also referred to as simply<br />

Source Integrity) addresses these challenges. It is the best of breed,<br />

enterprise choice for <strong>com</strong>prehensive, cross-platform software<br />

configuration management.<br />

Its platform transparent, advanced multi-tier architecture is scalable in<br />

local and distributed environments, and its flexibility allows for high<br />

quality integrations into other industry leading IDEs and developer<br />

productivity tools including MKS Integrity Manager for powerful,<br />

workflow enabled SCM.<br />

Source Integrity is the ideal SCM solution for large, distributed<br />

development organizations with <strong>com</strong>plex development environments.<br />

Briefly, there are two main roles when using Source Integrity: the<br />

administrator and the user.<br />

The administrator installs Source Integrity; defines and customizes projects<br />

and policies; and creates and manages user accounts, allowing users to<br />

access the program.<br />

A user is anyone who needs to work with Source Integrity projects.<br />

The Source Integrity Enterprise Edition <strong>User</strong> <strong>Guide</strong> provides details on the<br />

user role and explains how to approach the day-to-day tasks in<br />

Source Integrity.<br />

1


Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />

About This <strong>Guide</strong><br />

2<br />

This guide provides details on the user role, explaining how to approach<br />

the day-to-day tasks in Source Integrity.<br />

This chapter introduces you to the Source Integrity Enterprise Edition <strong>User</strong><br />

<strong>Guide</strong> and its contents. The following is a list of the guide’s other chapters,<br />

with a brief description of the topics covered by each chapter:<br />

Chapter 2: “Understanding Source Integrity” on page 13<br />

Describes how Source Integrity works together with the Integrity<br />

Server and Integrity Manager to provide a <strong>com</strong>plete versioning<br />

control solution.<br />

Chapter 3: “Getting Started Using Source Integrity” on page 23<br />

Describes installing and uninstalling the Integrity client, starting the<br />

Source Integrity client, logging in, setting preferences, logging out,<br />

and quitting a Source Integrity session.<br />

Chapter 4: “Source Integrity Interfaces” on page 75<br />

Describes the various Source Integrity interfaces that you can work in,<br />

including the Source Integrity graphical user interface, the<br />

Source Integrity Web interface, the Source Integrity <strong>com</strong>mand line<br />

interface, and the MKS Visual Difference and MKS Visual Merge<br />

interfaces.<br />

Chapter 5: “Project and Sandbox Operations” on page 115<br />

Describes the basic tasks to work with projects, sandboxes, and<br />

members, for example, creating a sandbox, adding members, and<br />

checking out members for editing.<br />

Chapter 6: “Member Operations” on page 153<br />

Describes the operations to peform on members, for example adding,<br />

dropping, checking in, checking out, and deferring.<br />

Chapter 7: “Using Change Packages and Reviews” on page 213<br />

Describes how to use change packages and reviews, for example<br />

adding entries to a change packge, submitting change packages, and<br />

reviewing change packages.<br />

Chapter 8: “Viewing and Editing Projects, Sandboxes, and<br />

Members” on page 257<br />

Describes how to manage projects, sandboxes, and members, for<br />

example, viewing and editing project information, adding labels to<br />

projects, and freezing members.<br />

u s e r g u i d e


About This <strong>Guide</strong><br />

Chapter 9: “Viewing and Editing Member Histories and Revisions”<br />

on page 309<br />

Describes how to manage member histories and revisions, for<br />

example, viewing and editing revision information, deleting revisions,<br />

and promoting revisions.<br />

Chapter 10: “Branching and Merging Revisions” on page 337<br />

Describes the advanced tasks of branching and merging revisions and<br />

the different methods and tools used for these tasks, including the<br />

MKS Visual Merge tool.<br />

Chapter 11: “The Integrity Manager Integration” on page 371<br />

Describes creating a change package, adding project members to an<br />

issue’s change package, viewing change package information, and<br />

closing change packages in Source Integrity.<br />

Chapter 12: “Advanced Change Package Operations” on page 381<br />

Describes the Apply CP and Resync CP <strong>com</strong>mands—functionality that<br />

relies on the use of change packages that track changes in a project.<br />

Using Apply CP and Resync CP, specific code content can be<br />

identified and isolated, and then moved to a new development path.<br />

Appendix A: “Views” on page 441<br />

Describes the views that are available in Source Integrity.<br />

Appendix B: “Glossary of Terms” on page 473<br />

Provides a glossary of <strong>com</strong>mon terms and definitions for<br />

Source Integrity.<br />

3


Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />

Related Documentation<br />

4<br />

To provide you with the most convenient means of retrieving information,<br />

product documentation is available in several formats: print, Adobe<br />

Acrobat’s Portable Document Format (PDF), online help, and manual<br />

pages (man).<br />

Documentation Print PDF Online Man<br />

Integrity Server Installation and<br />

Administration <strong>Guide</strong><br />

Integrity Server Administration<br />

CLI Reference <strong>Guide</strong><br />

What’s New in Source Integrity<br />

Enterprise Edition<br />

Features and Benefits in<br />

Source Integrity Enterprise<br />

Edition<br />

Source Integrity Enterprise<br />

Edition Datasheet<br />

Source Integrity Enterprise<br />

Edition <strong>User</strong> <strong>Guide</strong><br />

Source Integrity Enterprise<br />

Edition CLI Reference <strong>Guide</strong><br />

Integrity Solution Integrations<br />

<strong>User</strong> <strong>Guide</strong><br />

Yes Yes AA, IM, SI a<br />

No Yes Yes Yes<br />

No Yes No No<br />

No Yes No No<br />

No Yes No No<br />

Yes Yes Yes No<br />

No Yes Yes Yes<br />

No Yes Yes No<br />

What’s New in Integrity Manager No Yes No No<br />

Features and Benefits in<br />

Integrity Manager<br />

No Yes No No<br />

Integrity Manager Datasheet No Yes No No<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong> Yes Yes Yes No<br />

Integrity Manager CLI Reference<br />

<strong>Guide</strong><br />

Integrity Solution Integrations<br />

Builder <strong>Guide</strong><br />

No Yes Yes Yes<br />

No Yes No No<br />

Using MKS Make No Yes No No<br />

Release Notes No No Yes No<br />

a For Authorization Administration graphical user interface, Integrity Manager, and Source Integrity policies only.<br />

u s e r g u i d e<br />

No


Related Documentation<br />

PDF files are located in the \documentation subdirectory of the<br />

distribution CD. To view them you must have the Acrobat Reader<br />

installed on your machine. You can install the reader by running the setup<br />

program in the \support\acrobat subdirectory on the CD. Once you<br />

install the reader, whenever you open a PDF file the reader starts<br />

automatically.<br />

In addition to the Integrity Server Installation and Administration <strong>Guide</strong>, the<br />

other documentation included in this release is as follows:<br />

Integrity Server Administration CLI Reference <strong>Guide</strong> provides details on<br />

the <strong>com</strong>mand line utilities available for administration tasks.<br />

Integrity Solution Integrations <strong>User</strong> <strong>Guide</strong> describes how to access the<br />

functionality of Source Integrity and Integrity Manager while working<br />

within your favorite integrated 3rd party tool, such as Sybase<br />

PowerBuilder and Microsoft Project.<br />

What’s New in Source Integrity Enterprise Edition describes the new<br />

features in this release of Source Integrity.<br />

Features and Benefits in Source Integrity Enterprise Edition provides a<br />

<strong>com</strong>plete list of Source Integrity features and benefits.<br />

Source Integrity Enterprise Edition Datasheet provides a summary of<br />

features and capabilities for Source Integrity.<br />

Source Integrity Enterprise Edition <strong>User</strong> <strong>Guide</strong> tells users how to get the<br />

most out of Source Integrity and explains how to approach day-to-day<br />

tasks.<br />

Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> gives details on<br />

the <strong>com</strong>mand line utilities included with Source Integrity.<br />

What’s New in Integrity Manager describes the new features in this<br />

release of Integrity Manager.<br />

Features and Benefits in Integrity Manager provides a <strong>com</strong>plete list of<br />

Integrity Manager features and benefits.<br />

Integrity Manager Datasheet provides a summary of features and<br />

capabilities for Integrity Manager.<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong> tells users how to get the most out of<br />

Integrity Manager and explains how to approach day-to-day tasks.<br />

Integrity Manager CLI Reference <strong>Guide</strong> gives details on the <strong>com</strong>mand<br />

line utilities included with Integrity Manager.<br />

Integrity Solution Integrations Builder <strong>Guide</strong> provides the information<br />

you need to create your own integrations through the Application<br />

Programming Interface (API).<br />

5


Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />

6<br />

Using MKS Make describes the MKS Make tool offering developers,<br />

project managers, and authors an efficient way to automate the<br />

production and maintenance of any project, large or small. Whenever<br />

you make changes to an element of a development project, MKS Make<br />

automatically re<strong>com</strong>piles all related files and no others, saving<br />

valuable time and eliminating errors.<br />

Online help is accessible from within the graphical user interfaces.<br />

Online man (manual) pages for the <strong>com</strong>mand line utilities are available<br />

on the client by using the man <strong>com</strong>mand in the <strong>com</strong>mand line<br />

interface.<br />

Online release notes provide the most up-to-date details about this<br />

release. You should review these notes as they may contain<br />

information that only became available after the printed<br />

documentation went to press. You can read the release notes from the<br />

CD Browser as HTML documents in a Web browser.<br />

NOTE<br />

Typographical Conventions<br />

In addition, you can browse to www.mks.<strong>com</strong>/products/<br />

whitepapers.shtml to view and download white papers that cover best<br />

practices and more in-depth applications of the Integrity Solution.<br />

Throughout the manuals, the following typographical conventions identify<br />

the features, functions, and <strong>com</strong>ponents of the Integrity Solution.<br />

Items in documentation Appear as<br />

Menus, <strong>com</strong>mands Tools > Preferences<br />

Graphical user interface <strong>com</strong>mands the Member <strong>com</strong>mand<br />

Command line <strong>com</strong>mands si co<br />

Dialog boxes, features Demote Member, Cancel, OK<br />

Screen information, messages Type a name for this<br />

development path:<br />

Environment variables TMPDIR<br />

Path names c:\srcint\work<br />

u s e r g u i d e


Assumptions<br />

Items in documentation Appear as<br />

New terms appear in italics the first time<br />

NOTE<br />

Assumptions<br />

Keyboard keys appear in caps, for example: ENTER;<br />

CTRL; ALT, F, S<br />

Procedures for the graphical user<br />

interface, <strong>com</strong>mand line interface, and<br />

Web interface<br />

A note provides you with information that supplements the key points of the<br />

subject. A note may also supply information that applies only in particular<br />

cases.<br />

TIP<br />

A tip provides you with information for using the product effectively.<br />

IMPORTANT<br />

An important note provides you with information that is essential for<br />

<strong>com</strong>pleting a task.<br />

CAUTION<br />

A caution note advises you about situations that have the potential to result in<br />

a loss of data.<br />

Before using Source Integrity, MKS assumes that you have experience with<br />

the following:<br />

Windows (if you are using the Windows client and/or server)<br />

Solaris (if you are using the Solaris client and/or server)<br />

Linux (if you are using the Linux client and/or server)<br />

7


Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />

Getting Help<br />

8<br />

IBM AIX (if you are using the AIX client and/or server)<br />

HP-UX (if you are using the HP-UX client and/or server)<br />

your chosen Integrated Development Environment (IDE), for<br />

example, Sybase PowerBuilder (if you are using the integrations with<br />

Source Integrity)<br />

MKS Customer Care is focused on delivering the right solutions to issues<br />

as they arise. For assistance, you can choose online support or telephone a<br />

Technical Support Representative.<br />

For online support, browse to www.mks.<strong>com</strong>/support. There you will find<br />

easy access to e-mail, Web request services, automatic product<br />

notifications, and the Customer Community—a secure database that<br />

provides helpful resources such as product documentation, knowledge<br />

base articles, product downloads, user forums, presentations, and more.<br />

MKS’s global support professionals <strong>com</strong>prise a tightly knit team of<br />

problem solvers, sharing critical information to help you resolve issues in<br />

the shortest possible time with optimal results. Support representatives can<br />

provide you with a variety of product related tips and innovative solutions<br />

to your unique problems.<br />

Online Web www.mks.<strong>com</strong><br />

E-mail support@mks.<strong>com</strong><br />

Telephone Toll Free North America 800 219 4842<br />

Outside North America 00800 219 484 24<br />

Direct North America 519 884 2270<br />

UK +44 (0) 1483 733910<br />

Germany +49 711 351775 7575<br />

Fax North America 519 884 8861<br />

UK +44 (0) 1483 733901<br />

Germany +49 711 351775 7555<br />

u s e r g u i d e


Professional Services<br />

The hours of operation for Customer Care are as follows:<br />

Professional Services<br />

North America: 8:00 A.M. to 8:00 P.M., Monday to Friday, Eastern<br />

Standard Time (GMT-5)<br />

United Kingdom: 9:00 A.M. to 5:30 P.M., Monday to Friday, British<br />

Standard Time (GMT)<br />

Germany: 9:00 A.M. to 5:30 P.M., Monday to Friday, West Europe<br />

Standard Time (GMT+1)<br />

A successful configuration management system is not built on software<br />

alone. At MKS, our professional services team is <strong>com</strong>mitted to<br />

understanding the ever changing development environments of our<br />

clients. The professional services team can provide training, upgrade,<br />

migration, implementation, and installation services that meet your unique<br />

requirements.<br />

MKS professional services can help guide you through process analysis,<br />

software installation, source code archive migration, and product and<br />

process training for the entire suite of MKS products—MKS Source<br />

Integrity Enterprise Edition, MKS Integrity Manager, MKS Implementer<br />

for iSeries, and MKS Code Integrity Enterprise. This ensures that the<br />

implementation of your new solution goes smoothly, while allowing your<br />

developers to make progress on critical projects.<br />

The professional services team can truly add value to your MKS<br />

technology investment by providing the following services:<br />

process assessment<br />

best practice consultation<br />

migration services<br />

upgrade services<br />

implementation services<br />

education and training<br />

9


Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />

10<br />

For more information on MKS professional services:<br />

Your Feedback Is Wel<strong>com</strong>e<br />

Online Web Global www.mks.<strong>com</strong>/services<br />

MKS wel<strong>com</strong>es your feedback on the documentation included with this<br />

product. If you have <strong>com</strong>ments or suggestions about any of the guides or<br />

the online help, send them to:<br />

pubs-mgr@mks.<strong>com</strong><br />

Include the following information with your feedback:<br />

product name and version number (from the About box)<br />

title of manual or online help topic<br />

page number (for manuals only)<br />

your suggested correction or improvement<br />

NOTE<br />

E-mail North America consulting@mks.<strong>com</strong><br />

Europe europe@mks.<strong>com</strong><br />

Telephone North America 800 633 1235<br />

UK +44 (0) 1483 733900<br />

Germany +49 711 351775 0<br />

The e-mail address is provided for <strong>com</strong>ments on the MKS documentation only.<br />

You may not receive a reply to your e-mail. For technical questions or for<br />

software support, you should contact MKS Global Customer Care<br />

(support@mks.<strong>com</strong>).<br />

u s e r g u i d e


Where To Go From Here<br />

To Do This … See …<br />

Where To Go From Here<br />

Install the Integrity Client. “Installing the Integrity Client” on<br />

page 24<br />

Log in to Source Integrity. “Logging In to Source Integrity” on<br />

page 36<br />

Set Source Integrity preferences. “Setting Preferences” on page 40<br />

Create a project. “Creating a Project” on page 116<br />

Create a sandbox. “Creating a Sandbox” on page 135<br />

Add members to a Source Integrity<br />

project.<br />

“Adding Members to a Project” on<br />

page 157<br />

Check out a member. “Checking Out a Member” on<br />

page 178<br />

Check in a member. “Checking In a Member” on page 186<br />

Create a change package “Creating a Change Package” on<br />

page 217<br />

View a project history. “Viewing a Project History” on<br />

page 263<br />

View a member history. “Viewing a Member History” on<br />

page 310<br />

Use Integrity Manager with<br />

Source Integrity.<br />

“Integrating With Integrity Manager” on<br />

page 372<br />

Learn Source Integrity terms. “Glossary of Terms” on page 473<br />

11


Chapter 1: Wel<strong>com</strong>e to Source Integrity Enterprise Edition<br />

12<br />

u s e r g u i d e


Understanding Source Integrity<br />

2<br />

KEY TERMS: concepts, client, version control, project, sandbox, history, member,<br />

delta, checkpointing, variant, development path, integrated<br />

development environment<br />

Source Integrity is a <strong>com</strong>prehensive, project-oriented, software<br />

configuration management system that gives you control over the changes<br />

to your software applications. Source Integrity not only documents the<br />

changes made to your files, but it also tracks who made them, when they<br />

were made, and the reasons why.<br />

Source Integrity provides project-based functionality that allows team<br />

members to:<br />

group related files into projects that follow your development cycle<br />

effectively manage multiple development projects<br />

secure software assets<br />

meet deadlines<br />

contribute throughout the application lifecycle<br />

Source Integrity has extensive options to support a configuration<br />

management system that conforms with your established policies.<br />

Whether you work in a small development group or as part of a large<br />

team, Source Integrity has the features to help you get the job done.<br />

Source Integrity is also an integral part of the MKS Integrity Solution. The<br />

Integrity Solution manages software applications across your enterprise<br />

with a streamlined process for the creation and approval of mission-critical<br />

business applications. Based on a unique, open, application server<br />

architecture, the Integrity Solution includes:<br />

workflow (Integrity Manager) for collaboration, approval, and change<br />

management<br />

version control (Source Integrity) and configuration for software<br />

management<br />

13


Chapter 2: Understanding Source Integrity<br />

Projects and Sandboxes<br />

Working With Projects<br />

14<br />

A project is any group of files that, taken together, forms a single body of<br />

work. Projects are presented in Project views, which list the members of the<br />

project and provide access to them.<br />

In a development environment using Source Integrity, for example, a<br />

project might include source code files required to build a program<br />

element. In Source Integrity, the files in the project are known as members.<br />

Your organization can use projects to manage a variety of development<br />

initiatives.<br />

All top-level projects and subprojects reside on the Integrity Server.<br />

Source Integrity allows you to create large projects <strong>com</strong>posed of smaller<br />

<strong>com</strong>ponent projects known as subprojects. Subprojects behave in the same<br />

way as projects. Once you create a subproject, it is considered a member of<br />

the project.<br />

Sandboxes can reside on the client machines and allow you to work locally<br />

in your own workspace, without interfering with the work of others. You<br />

can think of the sandbox as a local pointer to the project residing on the<br />

Integrity Server. A sandbox is a mirror image of a Source Integrity project.<br />

Although it looks and acts like the project it mirrors, it is actually a<br />

collection of pointers to its real-life counterparts in the master project.<br />

In basic terms, when a user is ready to work with a file from the<br />

development project or Web site, a check out operation downloads the file<br />

from the server project to the client sandbox. Similarly, a check in operation<br />

updates the server project with content from the sandbox.<br />

Organizing your files in a project allows you to perform configuration<br />

management operations on the files as a group. When an administrator is<br />

ready to place a group of development files under Source Integrity control,<br />

the first step is to create a project on the Integrity Server.<br />

All projects must be registered with the Integrity Server and member<br />

histories are added as members of the registered project.<br />

All files and projects have one thing in <strong>com</strong>mon: Source Integrity can save<br />

them as revisions in a history file and then recreate them at any time. An<br />

object’s content is stored in something known as an archive; for many files,<br />

the content is simply lines of HTML, code, or JavaScript.<br />

u s e r g u i d e


File and Object Histories<br />

File and Object Histories<br />

For projects, however, the saved content is different. A project is a<br />

development object whose content consists of metadata that describes all<br />

the other development objects (that is, the project’s members) and the<br />

relationships between them.<br />

Metadata is <strong>com</strong>posed of all of the information about a revision or archive,<br />

as opposed to the information that is part of the object. For example, a<br />

revision’s Revision Description is metadata since it is information about<br />

the revision, while the contents of the revision is part of the revision itself<br />

and, hence, is not metadata.<br />

Metadata includes:<br />

revision number of the project<br />

location and names of all project members<br />

type and revision number of each member<br />

project-specific configuration<br />

Source Integrity creates a history for each file or object stored in the server<br />

projects. Each submitted update is recorded in an object’s history as a<br />

version and given a sequential number for reference. The original version is<br />

numbered 1.1, and each subsequent version increases the number to the<br />

right of the decimal point by one (for example, 1.2). Each version of the<br />

object can be viewed individually.<br />

15


Chapter 2: Understanding Source Integrity<br />

16<br />

The history for an object with its versions.<br />

How Files and Objects Are Stored<br />

Source Integrity stores your development files and Web objects in projects<br />

and archives, and then manages access to them through sandboxes.<br />

The data preserved in Source Integrity histories can be one of two types,<br />

Binary or Text. Binary is a file containing unprintable characters, or lines<br />

too long to be handled by text editors. Text is the file format expected by<br />

MS-DOS and Windows text file editors. When a file of type “Text” is<br />

checked out, Source Integrity adds the appropriate line ending character<br />

for that type of client.<br />

An archive is a file containing the history of a member (a record of all the<br />

changes made to it since it was put under revision control). From the<br />

information contained in the history, Source Integrity can reconstruct any<br />

previous version of the member. The archive is sometimes referred to as<br />

the RCS file, for historical reasons.<br />

This procedure has a number of advantages over other software<br />

configuration management systems in that it:<br />

simplifies the identification and retrieval of earlier versions of<br />

development objects<br />

provides control over access to data files<br />

keeps team members well informed on project status<br />

u s e r g u i d e


What Is a Project Member?<br />

What Is a Project Member?<br />

You must manage all development objects. This lets you maintain a<br />

<strong>com</strong>plete change history as objects pass through the development cycle.<br />

The administrator is responsible for including these pre-existing objects in<br />

a project to establish their place in the overall development plan. New<br />

objects are then added as your developers create them.<br />

An object under Source Integrity control has three main <strong>com</strong>ponents:<br />

working file where you make your changes (always in a sandbox)<br />

member history file where your history of changes is stored<br />

revision number identifying (per project or variant) which version of<br />

the object is relevant for a given point in time<br />

In a project, a project member is a specific revision of a development object.<br />

When you check out a project member, it is a specific revision of the object<br />

that is copied to a working file, where you can work with it. When you<br />

finish making changes and check the working file back into the history,<br />

Source Integrity creates a new revision in the object’s archive.<br />

At this point, you have the option of updating the project to use the new<br />

revision of the object. In this way, the project stays current with the most<br />

recent changes to its members.<br />

The project has its own history, and so does each individual member.<br />

17


Chapter 2: Understanding Source Integrity<br />

History File: Storing Deltas<br />

18<br />

Keeping a project current with the most recent member changes is the<br />

default behavior for Source Integrity, and it is the re<strong>com</strong>mended way for<br />

most people. If for some reason you need to check in a member without<br />

updating the member revision, the check in process lets you choose.<br />

When Source Integrity performs a check in operation with a text file, it<br />

calculates and stores the changes that must be made to the new revision to<br />

recreate the previous revision in the history.<br />

A revision is a version of a file and is contained in a history. A new revision<br />

is produced in the history each time a working file is checked in.<br />

The set of differences (stored in a history) between one revision and its<br />

immediate ancestor, is known as a delta. Using deltas, the program can<br />

reconstruct the exact contents of any revision without having to store<br />

<strong>com</strong>plete copies. Known also as reverse delta storage, it is the standard RCS<br />

format for archives.<br />

In theory, saving only the changed portion of each revision produces a<br />

smaller history file than if the entire file were saved each time. There are<br />

situations, however, where this method may not be the most efficient.<br />

When Source Integrity <strong>com</strong>pares the file being checked in to the previous<br />

revision, it <strong>com</strong>pares them line by line. While this is a logical and efficient<br />

way to handle text files, it is not always effective with binary files. A<br />

relatively small change at the beginning of a binary file can affect all<br />

subsequent data in the file.<br />

A binary file contains unprintable characters, or lines too long to be handled<br />

by text editors.<br />

As a consequence, the record of changes (that is, the delta) for some binary<br />

files may be as large as, or larger than, the file itself. Source Integrity also<br />

rewrites the member history after each check in operation, making<br />

operations slow for large histories.<br />

To keep the size of the member history relatively small, they can be stored<br />

in the reference format. In this format, the program stores each revision<br />

separately from the member history. The member history then stores a<br />

reference to the revision.<br />

u s e r g u i d e


Project Checkpointing<br />

The member history describes the file’s revisions and the differences<br />

between them.<br />

Project Checkpointing<br />

Source Integrity provides a number of configuration options relating to<br />

how member histories and deltas are stored. For more information on<br />

configuring these options, see the Integrity Server Installation and<br />

Administration <strong>Guide</strong>.<br />

Just as you can check in a source file to preserve the changes made to it<br />

from one revision to another, you can also track the changes to a project. In<br />

Source Integrity, this process is called checkpointing.<br />

Checkpointing saves a copy of the project as a baseline in the project’s<br />

history as a revision, including the list of members along with their<br />

revision numbers and project and member attributes.<br />

You can use the project’s revision number to keep track of your projects,<br />

but to simplify post-release maintenance, you can use a label to identify<br />

significant project development milestones when you checkpoint a project.<br />

For example, if you checkpoint a project and label it with a release<br />

identifier (for example, Release 6.2), you can find and recreate that<br />

particular development state more easily.<br />

19


Chapter 2: Understanding Source Integrity<br />

20<br />

Some sites check in projects daily, while others wait until significant new<br />

functionality is added or until important members reach a particular<br />

promotion state. This diagram shows a series of project checkpoints.<br />

Source Integrity can checkpoint subprojects when a project is<br />

checkpointed.<br />

Using checkpointed projects, Source Integrity also allows you to view a<br />

summary of the changes that have occurred between two versions of a<br />

project.<br />

Source Integrity Change Packages<br />

Work may need to be performed on several members in order to address a<br />

development issue. Source Integrity provides change packages that act as a<br />

container to group all of the necessary changes together.<br />

When used to control development, deferred member operations can be<br />

recorded as change package entries, and then submitted at once to ensure a<br />

<strong>com</strong>plete resolution of the issue. If using change package reviews, changes<br />

for pending operations require review acceptance before <strong>com</strong>mitment to<br />

the repository.<br />

u s e r g u i d e


Working With Variants and Development Paths<br />

Working With Variants and Development<br />

Paths<br />

Regular sandboxes are based on the current state of the project. You can<br />

also create a sandbox that is based on a previously checkpointed revision<br />

of the project. This type of sandbox is called a variant.<br />

When you create a variant project, you choose a checkpoint (baseline) of<br />

your project and use it as the starting point for a new branch of<br />

development. Source Integrity allows you to do this by defining a new<br />

development path.<br />

A development path is an identifier given to a new branch of software<br />

development. Changes made through the new development path are kept<br />

separate from the main development trunk, unless you choose to merge<br />

them later.<br />

The trunk is the primary line of a file’s change history in a history. The first<br />

member of the trunk is always the original file checked into the archive.<br />

Source Integrity allows multiple developers to point to the same<br />

development path, each using their own variant sandbox. In the variant<br />

sandbox, you can see the current state of the project along that<br />

development path and the changes made by other developers using it.<br />

Development paths are useful for:<br />

building customized versions of a product<br />

performing branch development work<br />

performing post-release maintenance<br />

fixing defects in previous versions of the product<br />

testing new features outside of the main development path<br />

experimenting with research that does not affect regular development<br />

21


Chapter 2: Understanding Source Integrity<br />

Integrations Support<br />

22<br />

Source Integrity supports the following integrations::<br />

IDE Versions<br />

Borland CodeWright 7.0c<br />

Borland Delphi 7.0<br />

Borland JBuilder 8.0 Enterprise, and 9.0 Enterprise<br />

Borland Together ControlCenter 6.1<br />

Eclipse (open source) 1.0.0, 2.0.2, 2.1.1, 2.1.x<br />

IBM Rational Rose Enterpise Edition 2000<br />

IBM WebSphere Studio Application<br />

Developer<br />

IBM WebSphere Studio Application<br />

Developer Integration Edition<br />

IBM WebSphere Studio Site<br />

Developer<br />

IBM WebSphere Development Studio<br />

Client for iSeries<br />

IBM WebSphere Development Studio<br />

Client Advanced Edition for iSeries<br />

4.0.x, 5.0, 5.1, 5.1.x<br />

Source Integrity documents the changes made to your files, and also tracks<br />

who made them, when they were made, and the reasons why.<br />

5.0<br />

4.0.x, 5.0, 5.1<br />

5.0 and 5.1<br />

5.0 and 5.1<br />

Mercury Interactive TestDirector 7.6 and 8.0<br />

Microsoft Visual Basic 6.0<br />

Microsoft Visual C++ 6.0<br />

Microsoft Visual J++ 6.0<br />

Microsoft Visual Studio .NET Enterprise Edition 2003<br />

Microsoft Windows Explorer Windows 98 Second Edition, ME,<br />

2000, NT 4.0<br />

Sybase PowerBuilder 8.0.3, and 9.0<br />

u s e r g u i d e


Getting Started Using<br />

Source Integrity<br />

KEY TERMS: Integrity Client, permissions, access control list, preferences<br />

3<br />

Source Integrity uses client/server architecture to protect and manage<br />

your files. Project files reside on the server and are accessed by requests<br />

from the client application on your workstation. Therefore, to access your<br />

project files on the Integrity Server, you must first open a connection<br />

through the Source Integrity client.<br />

This chapter describes the basic steps necessary to start, configure, and<br />

close a session in Source Integrity. Specific topics covered in this chapter<br />

include:<br />

“Installing the Integrity Client” on page 24<br />

“Configuring Environment Variables for UNIX” on page 29<br />

“Uninstalling the Integrity Client” on page 29<br />

“Before You Start the Integrity Client” on page 30<br />

“Starting the Source Integrity Client” on page 34<br />

“Logging In to Source Integrity” on page 36<br />

“Connecting to Multiple Servers” on page 39<br />

“Setting Preferences” on page 40<br />

“Managing Integrations” on page 70<br />

“Quitting a Source Integrity Session” on page 72<br />

23


Chapter 3: Getting Started Using Source Integrity<br />

Installing the Integrity Client<br />

Browser<br />

Support<br />

24<br />

The Intgrity Client contains the Source Integrity graphical user interface.<br />

IMPORTANT<br />

If you are using integrations with Source Integrity, disable all integrations<br />

before you install the new client.<br />

Before installing the Integrity Client, you must have removed any earlier MKS<br />

or Vertical Sky Client (including Source Integrity, Change Integrity, Vertical<br />

Sky Software Manager, or Vertical Sky Collaboration Manager). Failure to do<br />

so may cause operational problems later on.<br />

To install the integrity client from the CD<br />

The Integrity Solution supports Internet Explorer and Netscape browsers.<br />

Specifically, Integrity Manager and Source Integrity Web interfaces require<br />

Internet Explorer 5.5/6.0 (all service packs), or Netscape 6.2.3/7.1.<br />

1 Insert the Integrity Client CD from your package into the CD-ROM<br />

drive.<br />

The Integrity Client CD browser starts automatically and allows you<br />

to select from the following options:<br />

RELEASE NOTES allows you to view the release notes for the<br />

Integrity Client <strong>com</strong>ponents.<br />

DOCUMENTATION allows you to view the product documentation<br />

in Adobe Acrobat PDF format.<br />

INSTALL allows you to install the Integrity Client.<br />

2 To start the installation process, do one of the following:<br />

From the Integrity Client CD browser, click INSTALL.<br />

A page is displayed allowing you to start the installation program<br />

for your particular platform.<br />

For Windows, click the link.<br />

For UNIX, follow the written instructions.<br />

u s e r g u i d e


NOTE<br />

Installing the Integrity Client<br />

For UNIX systems, the Integrity Client installation program reports an error if<br />

there is insufficient free space in the /tmp directory in the $HOME directory.<br />

MKS does not certify any PC X-Servers. If your PC X-server provides full<br />

support for Xwindows, the MKS client may operate.<br />

For Windows, a dialog box is displayed asking you if you want to<br />

run or save the installation program. The installation program file<br />

name is mksclient.exe. Specify one of the following:<br />

Run the installation program directly from its current<br />

location (the CD).<br />

Save the installation program to disk (a location you specify),<br />

and run it from there.<br />

Run, as appropriate for your platform, mksclient.exe or<br />

mksclient.bin, which is located on the Integrity Client CD<br />

in the appropriate installs directory.<br />

3 If you are installing on a UNIX platform, <strong>com</strong>plete the following steps<br />

before continuing; otherwise, go to step 4.<br />

Copy mksclient.bin to a temporary directory on your server<br />

<strong>com</strong>puter.<br />

Make sure the environment variable $DISPLAY is set, if<br />

appropriate.<br />

To make mksclient.bin executable, run:<br />

chmod +x mksclient.bin<br />

To run the installation, type<br />

./mksclient.bin<br />

4 The InstallAnywhere window opens as the files needed for the<br />

installation are extracted, followed by the License Agreement panel.<br />

Before you can continue with the installation, you must read the<br />

license agreement and indicate your acceptance. The default setting is<br />

I do NOT accept the terms of the License Agreement.<br />

To accept the license agreement and continue with the<br />

installation, select I accept the terms of the License Agreement<br />

and click Next.<br />

If you do not accept the license agreement, click Cancel. The<br />

Integrity Client is not installed.<br />

25


Chapter 3: Getting Started Using Source Integrity<br />

26<br />

If you accept the license agreement, the Select Integrity Client<br />

Components panel is displayed.<br />

5 Depending on the product <strong>com</strong>ponents you are licensed to use, select<br />

Integrity Manager, Source Integrity, Administration Client, or a<br />

<strong>com</strong>bination of your choice.<br />

NOTE<br />

To perform configuration tasks for the Integrity Server, administrators should<br />

select Administration Client.<br />

6 To continue, click Next.<br />

The Integrity Client Installation Location panel is displayed.<br />

7 To specify where you want to install the Integrity Client, do one of the<br />

following:<br />

To accept the default path location, click Next. For example, by<br />

default, the Windows Integrity Client is installed to:<br />

C:\Program Files\MKS\IntegrityClient<br />

To find the directory where you want to install the Integrity<br />

Client, click Browse. To continue, click Next.<br />

Type the path of the directory where you want to install the<br />

Integrity Client. If the directory does not exist, it is automatically<br />

created. To continue, click Next.<br />

NOTE<br />

If at any time you want to restore the default location, click Restore Default<br />

Directory and then click Next to continue.<br />

8 In step 5, if you chose to install more than one product, the Specify<br />

Server Connection Default panel is displayed. Select one of the<br />

following options and click Next to continue:<br />

Same Integrity Server for all <strong>com</strong>ponents<br />

Different Integrity Server for each <strong>com</strong>ponent<br />

In step 5, if you chose to install only one product <strong>com</strong>ponent, the<br />

Specify Integrity Server Connections panel is displayed, displaying<br />

fields for server host name(s) and port(s) based on the product you<br />

chose to install. Enter the server host name and port information and<br />

click Next to continue.<br />

u s e r g u i d e


NOTE<br />

Installing the Integrity Client<br />

By default, the listening port for the Integrity Server is 7001. Administrators<br />

must notify users of the assigned port number.<br />

Administrators can change the default listening port for their site by modifying<br />

the property for weblogic.system.listenPort under /<br />

mksis/weblogic.properties. If the Integrity Manager <strong>com</strong>ponent is<br />

running on a different server, the Integrity Manager listening port is set by<br />

modifying the property for im.port under /mksis/<br />

si.properties.<br />

The Specify Integrity Server Connections panel is displayed.<br />

The following shows an example of a <strong>com</strong>pleted panel for Specify<br />

Integrity Server Connections where different servers are selected for<br />

each product. By default, the Administration Client uses the server<br />

and port specified for Source Integrity.<br />

The Select Source Integrity Reporting Application panel is displayed.<br />

The Source Integrity Reporter utility helps you analyze projects, their<br />

members, or individual archives, and allows you to generate a variety<br />

of graphs and reports based on its findings. The Source Integrity<br />

Reporter utility stores its data using Microsoft Access 97.<br />

27


Chapter 3: Getting Started Using Source Integrity<br />

28<br />

Depending on what version of Microsoft Access you have on your<br />

system, the following Source Integrity Reporter options may appear:<br />

Use Existing Microsoft Access 2000 Retail is displayed when you<br />

have Microsoft Access 2000 on your system. Selecting this option<br />

allows Source Integrity’s Reporter utility to use the full version of<br />

Access 2000.<br />

Use Existing Microsoft Access 97 Retail is displayed when you<br />

have Microsoft Access 97 on your system. Selecting this option<br />

allows Source Integrity’s Reporter utility to use the full version of<br />

Access 97.<br />

Install and Use Microsoft Access 97 Runtime allows<br />

Source Integrity’s Reporter utility to use the minimal install of<br />

Access 97 Runtime. This option is available even if you have a full<br />

version of Access already installed on your system.<br />

Use Existing Microsoft Access 97 Runtime is displayed only if you<br />

had a previous version of Source Integrity on your system.<br />

Selecting this option allows the Source Integrity Reporter utility<br />

to use the existing minimal install Access 97 Runtime application.<br />

Do Not Use Source Integrity Reporting means that<br />

Source Integrity’s Reporter utility will not be available.<br />

9 Select a Source Integrity Reporter option and click Install.<br />

The Integrity Client program files are installed on your <strong>com</strong>puter and<br />

the Install Complete panel is displayed.<br />

10 To continue, click Next.<br />

The System Environment Changed panel is displayed, informing you<br />

that your system environment has changed and that you need to log<br />

out and reboot your system for the changes to take effect.<br />

11 To quit the installer, click Done.<br />

12 Restart your <strong>com</strong>puter to have the system environment changes take<br />

effect.<br />

IMPORTANT<br />

For AIX and SuSE Linux, the IntegrityClient.rc file cannot be on an<br />

NFS-mounted drive. Source Integrity cannot be started if $HOME is pointing to<br />

a drive mounted on NFS or NIS. If the system is pulling the NFS mounts over<br />

NIS, then -noac is ignored in the NIS mount options. Select the NIS option for<br />

mounting NFS with -o noac.<br />

u s e r g u i d e


Configuring Environment Variables for<br />

UNIX<br />

Configuring Environment Variables for UNIX<br />

On UNIX, you can decide to configure the following environment<br />

variables once you have installed the Integrity Client:<br />

Add the /bin directory to the PATH<br />

environment variable.<br />

Modifying the PATH environment variable eliminates the requirement<br />

to type the full path to executables for Source Integrity,<br />

Integrity Manager, and the Authorization Administration application.<br />

Add the /etc directory to the MANPATH<br />

environment variable.<br />

Modifying the MANPATH environment variable ensures that the man<br />

<strong>com</strong>mand can access the man pages for Source Integrity,<br />

Integrity Manager, and the Authorization Administration application.<br />

The is the path to the directory where you<br />

installed the Integrity Client.<br />

Uninstalling the Integrity Client<br />

If you have installed and enabled the Windows Explorer integration, you<br />

must exit Windows Explorer before beginning the uninstall process.<br />

To uninstall the Integrity Client on Windows<br />

1 Do one of the following:<br />

From the Windows Start menu, select Programs > MKS Integrity ><br />

Uninstall > Integrity Client Uninstall.<br />

Run the uninstall program file:<br />

\uninstall\IntegrityClientUninstall.exe<br />

where is the path to the directory where you<br />

installed the Integrity Client.<br />

The InstallAnywhere Uninstaller panel is displayed. The uninstall<br />

program removes all installed <strong>com</strong>ponents, except any files or folders<br />

created after the installation.<br />

2 To run the uninstall program, click Uninstall.<br />

29


Chapter 3: Getting Started Using Source Integrity<br />

30<br />

3 To exit the uninstall program, click Done.<br />

To uninstall the Integrity Client on UNIX<br />

Run the uninstall program file:<br />

/uninstall/IntegrityClientUninstall<br />

where is the path to the directory where you installed the<br />

Integrity Client.<br />

The InstallAnywhere Uninstaller panel is displayed. The uninstall program<br />

removes all installed <strong>com</strong>ponents, except any files or directories created<br />

after the installation.<br />

Before You Start the Integrity Client<br />

Understanding<br />

Access<br />

Permissions<br />

Before you start the Source Integrity client, ensure you have the following:<br />

the name and port number of the Integrity Server you want to connect<br />

to<br />

a copy of the Source Integrity client installed locally on your <strong>com</strong>puter<br />

your Source Integrity user name and password<br />

NOTE<br />

Your administrator provides you with a server name, port number, user name,<br />

and password.<br />

Your ability to perform tasks in Source Integrity depends on the<br />

permissions granted to you by your administrator. Access to all functions<br />

is managed through a database that controls the permitted activities for all<br />

Source Integrity users.<br />

Permissions are a collection of pre-defined functionality and operations that<br />

can be assigned to users, granting access to certain Source Integrity tasks.<br />

The set of assigned permissions determines each user’s access to the<br />

various functions of Source Integrity. If a user is not granted the<br />

permission, that user is not able to <strong>com</strong>plete the task. For example,<br />

checking out files in Source Integrity requires the FetchRevision and<br />

Lock permissions.<br />

Depending on your permissions, you can view the permissions assigned<br />

for both projects and project members, but only your administrator can<br />

modify the permissions.<br />

u s e r g u i d e


Understanding<br />

Access Control<br />

Lists<br />

Before You Start the Integrity Client<br />

To view project permissions in the graphical user interface<br />

Do one of the following:<br />

From a Project view, select Project > Properties > Project Permissions.<br />

From a Sandbox view, select Sandbox > Properties > Project<br />

Permissions.<br />

The Project Permissions dialog box opens and displays the assigned access<br />

permissions for the selected project.<br />

To view member permissions in the graphical user interface<br />

From a Project or Sandbox view, select Member > Properties > Member<br />

Permissions.<br />

The Member Permissions dialog box opens and displays the assigned<br />

access permissions for the selected member.<br />

If you find you are unable to perform necessary operations, you must<br />

contact the administrator responsible for Source Integrity at your site to<br />

review the permissions assigned to you. For example, if you are unable to<br />

create a new project, it may mean that you have not been assigned the<br />

required permissions for this operation.<br />

IMPORTANT<br />

If your administrator has assigned you a new set of permissions, you must<br />

update your permissions by disconnecting your Source Integrity client and<br />

then reconnecting to the Integrity Server. An out-of-date permission set may<br />

cause unpredictable behavior when attempting to open projects or perform<br />

other tasks. To disconnect from the server, see “Logging Out of Source<br />

Integrity” on page 72.<br />

An Access Control List (ACL) is a collection of entries that permits or limits<br />

entry to the functionality of a software program or server. The Access<br />

Control List allows the administrator to manage user access by requiring<br />

authentication of the user’s identity or membership in a predefined group.<br />

Access is then granted according to the assigned permissions. Access<br />

Control Lists (ACLs) store security, configuration, and administrative<br />

information for the Integrity Server and Source Integrity. They work in<br />

conjunction with your network’s authentication system to provide control<br />

over features and functions.<br />

31


Chapter 3: Getting Started Using Source Integrity<br />

32<br />

ACLs <strong>com</strong>prise principals and permissions. Principals control the users<br />

and groups who have access to the functionality of Source Integrity<br />

operations. Permissions specify the particular operations that are available.<br />

Each ACL entry identifies the allowance or denial of pre-defined sets of<br />

permissions. These permissions are configured by your administrator.<br />

You can view ACLs through Source Integrity to see which permissions<br />

your administrator has or has not assigned to you.<br />

To view ACLs in the graphical user interface<br />

1 From the Source Integrity application window, do one of the<br />

following:<br />

Select Tools > Manage Projects.<br />

Select Tools > Manage Sandboxes.<br />

A list of the registered projects or sandboxes is displayed in the<br />

Registered Projects or Registered Sandboxes view respectively.<br />

2 Select the project or sandbox you want to view ACLs for.<br />

TIP<br />

The Registered Projects view supports standard shortcut menus. To display<br />

the menu of actions you can perform, select a project and right click.<br />

Source Integrity displays the applicable shortcut menu.<br />

3 Click Permissions.<br />

The ACL dialog box opens and displays the ACLs for the selected<br />

project or sandbox.<br />

u s e r g u i d e


Before You Start the Integrity Client<br />

You can expand each principal to view the permissions.<br />

IMPORTANT<br />

While Source Integrity does allow users to view their ACLs, it is not<br />

re<strong>com</strong>mended that users attempt to modify these ACLs or create any specific<br />

ACLs. For more information on ACLs, see your administrator, and consult the<br />

Integrity Server Installation and Administration <strong>Guide</strong>.<br />

33


Chapter 3: Getting Started Using Source Integrity<br />

Viewing Group<br />

Membership<br />

Administrator<br />

Defined Client<br />

Settings<br />

34<br />

When your ACLs are based on group membership, it can be useful to use<br />

the <strong>com</strong>mand line interface to view the groups that you belong to.<br />

To view groups in the <strong>com</strong>mand line interface<br />

Use the aa users <strong>com</strong>mand<br />

where<br />

aa users --groups username<br />

username specifies the ID of the user who you want to view group<br />

membership for.<br />

As a result of certain Administrator settings, you may experience<br />

additional Integrity Client dialog prompts or behavior that is not<br />

documented in this guide. Contact your administrator for more<br />

information.<br />

Starting the Source Integrity Client<br />

The Source Integrity client is accessible in three interfaces: the graphical<br />

user interface, the Web interface, and the <strong>com</strong>mand line interface.<br />

The Source Integrity Web interface is available for performing a variety of<br />

tasks.<br />

NOTE<br />

You do not need to install the Integrity Client to access the Source Integrity<br />

Web interface.<br />

You can also choose to work alternately between the graphical user<br />

interface and the <strong>com</strong>mand line interface, because most Source Integrity<br />

<strong>com</strong>mands are available in these two interfaces. For example, you can<br />

perform a <strong>com</strong>mand in the <strong>com</strong>mand line interface and view the results in<br />

the graphical user interface.<br />

Instructions for quitting a session are provided in the section entitled<br />

“Quitting a Source Integrity Session” on page 72.<br />

u s e r g u i d e


IMPORTANT<br />

Starting the Source Integrity Client<br />

Ensure that the Integrity Server you are connecting to is the same version as<br />

your Source Integrity client. Attempting to connect with an in<strong>com</strong>patible client<br />

(for example, from an earlier version of Source Integrity or Vertical Sky<br />

Software Manager) results in error messages and unpredictable behavior. To<br />

determine the version of your Source Integrity client, select Help > About. The<br />

client version is displayed on the dialog box. To determine the version of the<br />

Integrity Server, contact your administrator, or in the <strong>com</strong>mand line interface,<br />

use the si servers --showversion <strong>com</strong>mand.<br />

To start the Source Integrity client graphical user interface on<br />

Windows<br />

Select Start > Programs > MKS Integrity > Source Integrity (default Start<br />

menu shortcut).<br />

To start the Source Integrity client graphical user interface on UNIX<br />

1 Open a shell.<br />

2 Type si gui or si -g.<br />

To start the Source Integrity Web interface<br />

1 Open a Web browser and, in the location or address field, type the<br />

URL of the Integrity Server, for example:<br />

http://abc.Business.<strong>com</strong>:7001<br />

2 Press ENTER.<br />

The Integrity Server wel<strong>com</strong>e page opens.<br />

The Integrity Server wel<strong>com</strong>e page provides a link to the read-only<br />

version of the Web interface. You can connect to the read-only Web<br />

interface by clicking the read-only mode link displayed under Start<br />

Source Integrity Enterprise Web Interface.<br />

3 Click Start Source Integrity Web Interface.<br />

The Enter Network Password dialog box is displayed.<br />

4 Type your user ID and password, and press ENTER.<br />

The Source Integrity Web interface opens in a new browser window.<br />

35


Chapter 3: Getting Started Using Source Integrity<br />

Logging In to Source Integrity<br />

36<br />

Source Integrity uses client/server architecture to protect and manage<br />

your files. Project files reside on the server and are accessed by requests<br />

from the client application on your workstation.<br />

Problems and error messages on the Source Integrity client are logged to<br />

/bin/IntegrityClient.log.<br />

For both the graphical user interface and the <strong>com</strong>mand line interface, you<br />

must establish a connection with the Integrity Server before you can<br />

perform any Source Integrity operations on projects or sandboxes.<br />

IMPORTANT<br />

Ensure that the Integrity Server you are connecting to is the same version as<br />

your Source Integrity client. Attempting to connect with an in<strong>com</strong>patible client<br />

(for example, from an earlier version of Source Integrity or Vertical Sky<br />

Software Manager) results in error messages and unpredictable behavior. To<br />

determine the version of your Source Integrity client, select Help > About. The<br />

client version is displayed on the dialog box. To determine the version of the<br />

Integrity Server, contact your administrator, or in the <strong>com</strong>mand line interface,<br />

use the si servers --showversion <strong>com</strong>mand.<br />

All Source Integrity <strong>com</strong>mands automatically prompt you for information<br />

and will connect you to the appropriate server if you are not already<br />

connected. If your system is appropriately configured, there may be<br />

nothing for you to specify. Additionally, if you are using a Win32 system<br />

connecting to an NT server with single signon enabled, you are<br />

automatically authenticated as the current user on your local system.<br />

NOTE<br />

All or some of the login dialog boxes may appear, depending on the<br />

configuration set up by your administrator.<br />

To log in using the graphical user interface<br />

1 Do one of the following:<br />

Select File > Server Connection > Connect.<br />

Click .<br />

The Specify Server Connection dialog box is displayed.<br />

u s e r g u i d e


NOTE<br />

Logging In to Source Integrity<br />

If your preferences are not set to prompt for a server connection, the Specify<br />

Server Connection dialog box does not appear. For more details on<br />

preferences, see “Connection Preferences” on page 43.<br />

2 In the Host Name field, type the name of the Integrity Server you want<br />

to connect to, for example, abcBusiness_nt, or the numerical IP<br />

address, for example 1.2.34.56.<br />

3 In the Port Number field, type the port number.<br />

4 To accept the server information, click OK.<br />

The Enter Credentials dialog box is displayed.<br />

5 In the <strong>User</strong> Name field, type your user name.<br />

Your user name is displayed by default in the <strong>User</strong> Name field.<br />

6 In the Password field, type your password.<br />

7 To accept the user information, click OK.<br />

Source Integrity establishes a connection with the server.<br />

To verify your connection, select File > Server Connection. If you are<br />

connected, your user name, server name, and port number appear in<br />

the Server Connection menu.<br />

37


Chapter 3: Getting Started Using Source Integrity<br />

38<br />

IMPORTANT<br />

In the Server Connection menu, the active connection is displayed with a bullet<br />

next to the connection information. If the bullet does not appear, you are not<br />

connected to the server.<br />

In the lower right corner of the graphical user interface, the following<br />

three icons indicate the status of the server:<br />

Icon Type of Server Connection<br />

To log in using the Web interface<br />

1 Start your Web browser.<br />

2 Browse to the location of the Source Integrity home page. Your<br />

administrator can provide you with its location.<br />

The URL for the Integrity Server home page is displayed in the form:<br />

http://:<br />

for example,<br />

Connected to the Integrity Server.<br />

You are logged in and have an active client session.<br />

Disconnected from the Integrity Server.<br />

You have logged out and closed your client session.<br />

Offline from the Integrity Server.<br />

The connection to the Integrity Server has been dropped or the<br />

network connection is down.<br />

http://intra-wif:7001<br />

The MKS Integrity Server home page is displayed.<br />

3 Click Start Source Integrity Enterprise Web Interface.<br />

A browser password dialog box is displayed, prompting you for your<br />

Source Integrity user name and password.<br />

4 In the <strong>User</strong> Name field, enter your user name.<br />

5 In the Password field, enter your password.<br />

6 To save your password so you do not need to enter it each time you<br />

log in, select the Save this password in your password list option. This<br />

option is available only in Internet Explorer.<br />

u s e r g u i d e


7 To accept the log in information, click OK.<br />

Connecting to Multiple Servers<br />

Source Integrity validates your login information, then the<br />

Source Integrity Web interface is displayed.<br />

When you point to the Source Integrity icon ( ) a ToolTip is displayed<br />

showing your user name, server, and port number for the session. This<br />

information also is displayed in the status bar at the bottom of the browser<br />

window, for example, mkern@dev_nt:7001.<br />

Connecting to Multiple Servers<br />

Source Integrity allows you to work with projects residing on different<br />

Integrity Servers in a single client session.<br />

Connect to multiple servers in the graphical user interface and <strong>com</strong>mand<br />

line interface by following the procedure for logging in. Follow the<br />

procedure twice, specifying a different server each time to establish<br />

different connections. For more information on connecting to multiple<br />

servers by logging in, see “Logging In to Source Integrity” on page 36.<br />

The steps required to log in depend on the configuration set up by your<br />

administrator.<br />

In the graphical user interface, to determine which server a project resides<br />

on, use the mouse pointer and pause over a sandbox name displayed in the<br />

Select a Sandbox dialog box. A ToolTip displays the directory path for the<br />

project mirrored by that sandbox. The server name and port number are<br />

displayed in parentheses. For more information, see “Opening or Viewing<br />

a Sandbox” on page 144.<br />

Accessing any Source Integrity operation on a project or sandbox residing<br />

on a server you are not connected to invokes the user login so that you can<br />

switch between connections as you continue to work.<br />

In the <strong>com</strong>mand line interface, you can use <strong>com</strong>mands without explicitly<br />

specifying a sandbox option, and Source Integrity determines the sandbox<br />

to operate on based on the directory you are working in.<br />

IMPORTANT<br />

If you create two or more sandboxes in the same directory, Source Integrity<br />

cannot clearly determine which sandbox to use in that directory. If this<br />

happens, you are prompted to specify the name of the sandbox you want to<br />

use. In general, you should not create multiple sandboxes in the same<br />

directory.<br />

39


Chapter 3: Getting Started Using Source Integrity<br />

Setting Preferences<br />

40<br />

To disconnect from multiple Integrity Servers in the graphical user<br />

interface<br />

1 Close the projects or sandboxes you are working in.<br />

2 To disconnect from a server, select File > Server Connection and<br />

choose the target server from the list.<br />

3 Select File > Server Connection > Disconnect.<br />

A dialog box is displayed asking you to confirm that you want to<br />

disconnect your server connection.<br />

4 To disconnect from the server, click Yes.<br />

The target server is disconnected.<br />

5 Repeat steps 2 to 4 to close the remaining server connections.<br />

You can customize your Source Integrity client session by editing the client<br />

preferences. For your convenience, preferences for all clients are available<br />

from the same dialog box. Only Source Integrity client and Integrity Client<br />

specific preferences are documented in this guide.<br />

Options that appear in bold are those that are set locally by you. You can<br />

reset to the default settings by clicking the Clear Local Settings button<br />

(available only on the applicable panels).<br />

IMPORTANT<br />

Your administrator may enforce server-side preferences making them<br />

unavailable to you. These server enforced preferences depend on the server<br />

you are connected to while viewing the preferences. If you are not connected or<br />

logged in to a server, Source Integrity displays the local defaults for all<br />

preferences.<br />

To set your preferences accurately, login to the server you want to work from<br />

before setting preferences. The Preferences dialog box displays the server you<br />

are currently connected to in the title bar. For information on how to login to a<br />

server, see “Logging In to Source Integrity” on page 36.<br />

A blank check box ( ) means the option is not enabled, a check mark ( )<br />

means the option is enabled, and a question mark ( ) means you will be<br />

prompted to confirm or specify the option.<br />

u s e r g u i d e


General<br />

Preferences<br />

Setting Preferences<br />

To open the Preferences Configuration dialog box, do one of the following:<br />

Select Tools > Preferences.<br />

Click .<br />

The Preferences Configuration dialog box is displayed.<br />

You can set your general preferences for the following:<br />

look and feel of the graphical user interface<br />

time delay for pop-up windows<br />

the maximum amount of memory reserved for the Source Integrity<br />

client at runtime<br />

To set general preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), in the tree pane, click Integrity Client ><br />

General.<br />

The General pane is displayed.<br />

2 To set the appearance of the graphical user interface, select an option<br />

from the Look and Feel list. The available choices are System,<br />

Windows, Motif, and Metal.<br />

NOTE<br />

You must restart the Source Integrity client for the new look and feel changes<br />

to take effect. See “Shutting Down the Client” on page 74.<br />

3 To set the time in milliseconds before a <strong>com</strong>mand’s status is displayed<br />

in the graphical user interface, type a numeric value in the GUI field<br />

under Popup Status Delay or use the up and down arrows to select a<br />

value. The default value is 2500.<br />

To set the time in milliseconds (ms) that a <strong>com</strong>mand’s status is<br />

displayed in the <strong>com</strong>mand line interface, type a numeric value in the<br />

CLI field under Popup Status Delay or use the up and down arrows to<br />

select a value. The default value is 0.<br />

41


Chapter 3: Getting Started Using Source Integrity<br />

42<br />

4 To set the maximum amount of memory reserved for the Integrity<br />

client at runtime, under Miscellaneous in the Maximum heap size field,<br />

enter a value in megabytes (MB), or use the up and down arrows to<br />

select a value. The minimum value is 5, and the maximum value is<br />

dependent on your available system memory. The default value is 48.<br />

CAUTION<br />

Changing the heap size setting may unfavorably affect the performance of the<br />

Integrity Client and your system. Consult your administrator before making<br />

changes.<br />

For the heap size change to take effect, restart the Integrity client.<br />

Setting Desktop Preferences<br />

You can set desktop preferences specifically for Source Integrity.<br />

To set desktop preferences for Source Integrity in the graphical user<br />

interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), in the tree pane, click Source Integrity ><br />

Desktop.<br />

The Desktop pane is displayed.<br />

2 To restore all active windows when you restart Source Integrity,<br />

under Miscellaneous, select the Restore Desktop option.<br />

IMPORTANT<br />

You must restart the Source Integrity graphical user interface to activate the<br />

Restore Desktop option.<br />

u s e r g u i d e


Connection<br />

Preferences<br />

Setting Preferences<br />

The Restore Desktop option remembers which windows were open<br />

when you last exited the Source Integrity graphical user interface.<br />

When you restart the Source Integrity graphical user interface the<br />

active windows appear automatically in the main view. Restore<br />

Desktop remembers a maximum of 10 windows.<br />

If you were accessing projects or sandboxes residing on different<br />

servers, when you close and restart the Source Integrity graphical user<br />

interface you must log in again. Source Integrity automatically<br />

restores the windows that were open for that particular server<br />

connection.<br />

You can configure the default settings for server and proxy connections.<br />

You can override the default settings when manually connecting to the<br />

Integrity Server.<br />

To set connection preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), in the tree pane, click Source Integrity ><br />

Connection.<br />

The Connection pane is displayed.<br />

2 On the Connection pane configure the following options:<br />

Under Default Server Connection specify the following options:<br />

To specify a default Integrity Server to connect to in the Host<br />

Name field, type the name of the server, for example, abc_nt,<br />

or the numerical IP address, for example, 1.2.34.56.<br />

In the Port field, type the port number.<br />

43


Chapter 3: Getting Started Using Source Integrity<br />

44<br />

To be prompted for the default Integrity Server name and<br />

port number each time you log in to Source Integrity, select<br />

the Prompt for Host Name and Port option.<br />

Under <strong>User</strong> you can specify the following options:<br />

In the <strong>User</strong> Name field, type the user name you want to set as<br />

the default user.<br />

In the Password field, type a password for the user.<br />

If you want to be prompted for the default user name each<br />

time you log in to Source Integrity, select the Prompt for: <strong>User</strong><br />

Name option.<br />

If you want to be prompted for the default password each<br />

time you log in to Source Integrity, select the Prompt for:<br />

Password option.<br />

NOTE<br />

If the security scheme at your site is NT Single Signon (NTSS) the Prompt for:<br />

<strong>User</strong> Name and Prompt for: Password options are ignored unless you specify a<br />

user name that is different than the logged in user name. For information about<br />

your security scheme, see your administrator.<br />

3 Click OK to save your connection preferences.<br />

Your connection preferences are saved.<br />

Proxy Preferences<br />

You can specify advanced proxy server settings for the Source Integrity<br />

client.<br />

Use of a proxy is optional and based on server configuration by your<br />

administrator. Detailed information about proxies at your site, including<br />

host names, port numbers, and connection types are supplied by your<br />

administrator. For more information about using a proxy, contact your<br />

administrator.<br />

For a detailed discussion about using a proxy, see “Implementing<br />

Federated Server Architecture” in the Integrity Server Installation and<br />

Administration <strong>Guide</strong>.<br />

MKS Federated Server Architecture is an implementation of the Integrity<br />

Server structured to serve client requests through a proxy. The proxy<br />

provides access to project members residing on the Integrity Server by<br />

retrieving information from its local cache or, if changes are detected,<br />

directly from the server.<br />

u s e r g u i d e


To configure proxy preferences in the graphical user interface<br />

Setting Preferences<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), in the tree pane, click Integrity Client ><br />

Servers > Proxies. The Proxy pane is displayed.<br />

CAUTION<br />

Do not change proxy settings when the client is connected to the<br />

Integrity Server.<br />

2 On the Proxy pane configure the following options:<br />

NOTE<br />

The names “direct” and “default” in any case, or <strong>com</strong>bination of case, cannot<br />

be used as proxy host names.<br />

Source Integrity considers spaces and <strong>com</strong>mas in the Host Name field invalid<br />

characters.<br />

Host names and port numbers must match to connect to a proxy successfully.<br />

Source Integrity does not search for the correct port number if you provide an<br />

incorrect one.<br />

Select Use same username and password for proxy and server if<br />

you want the same user name and password to be used when<br />

connecting to both the proxy and server.<br />

Selecting this option does not necessarily ensure that<br />

Source Integrity prompts you only once for your user name and<br />

password. If the authentication schemes used do not match,<br />

45


Chapter 3: Getting Started Using Source Integrity<br />

46<br />

Source Integrity prompts you for your user name and password<br />

again.<br />

For information about the authentication schemes used, contact<br />

your administrator.<br />

Select Always confirm proxy username and password if you want<br />

Source Integrity to prompt you for the user name and password<br />

each time you connect to the proxy.<br />

Select Reuse current proxy username and password for all<br />

connections if you want to use the same proxy user name and<br />

password when connecting to multiple remote servers.<br />

Select Use default proxy for all unlisted connections if you want to<br />

specify the proxy server as the default server for unlisted<br />

connections. This option is only enabled when you <strong>com</strong>plete the<br />

details for a default proxy described next.<br />

To specify a default proxy, under Default proxy <strong>com</strong>plete the<br />

following:<br />

In the Host Name field type the name of the server, for<br />

example, proxyhost, or the numerical IP address, for<br />

example, 1.2.34.67.<br />

In the Port field, type the port number, for example, 7761. If<br />

you do not specify a port number, or use 0 as the port<br />

number, Source Integrity assumes a direct connection.<br />

To configure multiple servers you want to connect to, under<br />

Server, do the following:<br />

Click Add. The Add new server connection dialog box is<br />

displayed.<br />

In the Host Name field type the name of the server or the<br />

numerical IP address.<br />

In the Port field, type the port number.<br />

u s e r g u i d e


TIP<br />

Setting Preferences<br />

Select the type of connection you want by clicking it. Direct<br />

connection specifies connecting without a proxy. Use default<br />

proxy specifies connecting using the proxy specified as the<br />

default on the Proxy pane. To specify a different proxy, select<br />

Proxy and <strong>com</strong>plete the Hostname and Port fields.<br />

Click OK to save the server details and return to the Proxy<br />

pane. The server is displayed in the Server list, for example,<br />

proxyhost:7761 with the connection details that you<br />

selected displayed below. You can review the server details<br />

for each server you configure by selecting it from the list.<br />

To edit a previously configured server, select it from the Server list and click<br />

Edit. The Edit server connection dialog box is displayed. Edit the server details<br />

as required and click OK to save your changes.<br />

To delete a previously configured server, select it from the Server list and click<br />

Delete. The server disappears from the Server list.<br />

SOCKS Preferences<br />

You can specify a network proxy.<br />

To configure the SOCKS preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), select Integrity Client > Servers > SOCKS.<br />

The SOCKS pane is displayed.<br />

2 In the Host Name field type the name of the server or the numerical IP<br />

address.<br />

3 In the Port field, type the port number.<br />

4 To save your preferences, click OK.<br />

47


Chapter 3: Getting Started Using Source Integrity<br />

Command<br />

Preferences<br />

48<br />

The Commands pane in the Preferences dialog box contains default<br />

settings for Source Integrity <strong>com</strong>mands. Default settings can always be<br />

overridden for individual <strong>com</strong>mands at the time of their use.<br />

Some preferences may be enforced by the server and not available for<br />

configuration. For information on server side preferences, see your<br />

administrator.<br />

To set <strong>com</strong>mand preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), in the tree pane, click Source Integrity ><br />

Commands.<br />

The <strong>com</strong>mands appear as a list of nodes.<br />

2 From the list of <strong>com</strong>mand names in the tree pane, select a <strong>com</strong>mand to<br />

configure. The available <strong>com</strong>mands and their options are discussed in<br />

detail in the proceeding table.<br />

NOTE<br />

Options that appear in bold indicate local settings configured by you.<br />

3 If necessary, select a <strong>com</strong>mand’s option.<br />

4 To restore a <strong>com</strong>mand’s default options, click Clear Local Settings.<br />

u s e r g u i d e


Command Options<br />

Modify options for <strong>com</strong>mands as listed in the following table:<br />

Setting Preferences<br />

Add Member Attribute Recurse Into Subprojects adds member attributes recursively to selected subproject<br />

members.<br />

Add Label Move Existing Label moves the label, if it already exists, to the revision specified.<br />

Recurse Into Subprojects adds the label recursively to subproject members.<br />

Add Members Author is the author name applied to the new members. Type a name in the Author<br />

field. If you do not type a name, Source Integrity uses the current user name.<br />

Add Members From<br />

Archive<br />

Data Type specifies the member’s data type. To let Source Integrity determine the data<br />

type automatically, select Auto from the Data Type list. To specify a text file, select<br />

Text from the Data Type list. To specify a file containing unprintable characters, or<br />

lines too long to be handled by text editors, select Binary from the Data Type list.<br />

The On Existing Archive options apply in the event that Source Integrity finds an<br />

existing archive for the member you want to add. Query <strong>User</strong> causes<br />

Source Integrity to ask you for confirmation on the action to be taken if an existing<br />

archive is found. Share Archive causes Source Integrity to use the existing archive<br />

for the new member. Create New Archive causes Source Integrity to create a new<br />

archive for the new member. Source Integrity automatically generates the archive<br />

name and leaves the old archive unmodified. Cancel causes Source Integrity to<br />

cancel the operation if an existing member archive is found.<br />

Save Working File Timestamp sets the timestamp of the revision in the history to the<br />

timestamp of the working file, rather than the time of check in.<br />

Close Change Package causes Source Integrity to close any change package<br />

associated with the member revision.<br />

Recurse Into Directories adds members that exist in directories of the current location.<br />

Unexpand Keywords replaces literal values in the working file with keywords.<br />

Defer Add delays the add operation in the project until the deferred operation is<br />

submitted. The operation in the sandbox still takes place immediately.<br />

Lock Revision causes Source Integrity to lock the member revision immediately upon<br />

adding it to the project.<br />

Create Subprojects causes Source Integrity to create subprojects for each<br />

subdirectory encountered when adding members.<br />

Create Subprojects causes Source Integrity to create subprojects for each<br />

subdirectory encountered when adding members.<br />

Recurse Into Directories adds members that exist in directories of the current location.<br />

Close Change Packages causes Source Integrity to close any change package<br />

associated with the member revision.<br />

Defer Add From Archive delays the add operation in the project until the deferred<br />

operation is submitted. The operation in the sandbox still takes place immediately.<br />

Add Project Label Move Existing Label moves the label, if it already exists, to the revision specified.<br />

49


Chapter 3: Getting Started Using Source Integrity<br />

Command Options<br />

50<br />

Add Subproject Select one of the following options as the preferred type of subproject when adding a<br />

subproject to a project:<br />

Normal adds a subproject based on the current state of the project.<br />

Variant adds a subproject based upon a specific revision of the master project and<br />

is used for branching off the main development path.<br />

Build adds a static subproject based upon a specific revision of the master project<br />

that is used for building or testing the project, but not for further development.<br />

Default adds a subproject based on the parent project type. For more information on<br />

the default type, see your administrator.<br />

Append Revision<br />

Description<br />

Recurse Into Subprojects appends the revision description recursively to subproject<br />

members.<br />

Apply Change Package Use Master causes Source Integrity to operate on the top-level sandbox. When the<br />

selected change package is associated with a member in a subsandbox,<br />

specifying Use Master causes the <strong>com</strong>mand to operate on the top-level sandbox for<br />

that subsandbox.<br />

Confirm Actions causes Source Integrity to confirm all operations with you before<br />

starting them.<br />

Verbose provides additional information to track the current state of the <strong>com</strong>mand.<br />

Other Project is Error terminates the <strong>com</strong>mand if the member being applied is in<br />

another project. If this setting is negated (as in noOtherProjectIsError), the<br />

information is displayed as a warning.<br />

Span Projects applies the <strong>com</strong>mand to any member in the specified in the change<br />

package, even if this involves a different project than you are starting from. Warning:<br />

This is the only operation that has the potential to affect other projects.<br />

Ignore Cross-Branch Entries causes Source Integrity to use the most recent revision<br />

when it encounters two revisions of the same member on two development paths.<br />

Close Change Package closes the change package when the <strong>com</strong>mand <strong>com</strong>pletes.<br />

Already in Project is Error terminates the <strong>com</strong>mand if the member being applied is<br />

already in the project. If this setting is negated (as in<br />

noAlreadyInProjectIsError), the information is displayed as a warning.<br />

Ignore Server in Change Package causes Source Integrity to perform the Apply CP<br />

operation even if the change package members reside on different servers.<br />

Create Variants causes Source Integrity to create variant projects within the new<br />

project as required to apply the change package members. This option does not affect<br />

the Apply CP <strong>com</strong>mand.<br />

u s e r g u i d e


Command Options<br />

Apply Change Package<br />

continued<br />

Setting Preferences<br />

Backfill determines how dependent change packages are treated. You can select from<br />

the following options:<br />

Entire Change Package chooses all historic revisions required by the specified<br />

change packages and applies them by updating the member revisions, adding files,<br />

or dropping files. The user is not prompted to confirm the backfill list.<br />

Back Revisions Only processes only the specified change package(s) and<br />

chooses only directly-associated revisions. It does not process any change<br />

packages that are associated with intermediate revisions.<br />

Error terminates the operation if other change packages are required but are not<br />

specified.<br />

Skip Revisions causes Source Integrity to merge around specified backfill<br />

revisions. Because the Apply CP <strong>com</strong>mand does not perform merging, this is<br />

treated as an error.<br />

Ask to Specify allows you to select the specific change packages you want to<br />

include. For the Apply CP operation, a list of additional change packages is<br />

displayed. The presented list of change packages cannot be manipulated. You must<br />

either accept the entire list or the operation fails.<br />

Ignore Update Revision Entries ignores update revision entries in a change package.<br />

There is no user prompt.<br />

Checkpoint Apply Label to All Members applies the checkpoint label to all project members.<br />

Apply State to All Members applies the checkpoint state to all project members.<br />

Notify when Complete causes Source Integrity to confirm that the checkpoint<br />

operation has finished.<br />

Recurse Into Subprojects recursively checkpoints subprojects.<br />

Author is the author name applied to the checkpoint. Type a name in the Author field.<br />

If you do not type a name, Source Integrity uses the current user name.<br />

Check In Move Existing Label moves the label, if it already exists, to the revision specified.<br />

Lock Revision causes Source Integrity to check in the working file, then immediately<br />

lock the new revision. This allows you to update the archive while retaining control of<br />

the revision.<br />

If this option is not set, the new revision is not locked following the check in.<br />

Close Change Package causes Source Integrity to close any change package<br />

associated with the member revision.<br />

Defer Check In causes Source Integrity to delay the check in of the revision. Your lock<br />

remains on the revision and Source Integrity displays version information for both the<br />

working and member revisions. Once you submit the check in, your lock is removed<br />

and the member revision moves to the next number in the sequence, as in the case of<br />

a standard check in operation.<br />

Check In if Unchanged checks in the working file even if it has not changed since it<br />

was checked out.<br />

Update Member Revision makes the new revision the member revision in the project,<br />

replacing the existing member revision.<br />

Author is the author name applied to the revision. Type a name in the Author field. If<br />

you do not type a name, Source Integrity uses the current user name.<br />

51


Chapter 3: Getting Started Using Source Integrity<br />

Command Options<br />

Check In continued Update Member Revision Even on Branch causes Source Integrity to update the<br />

member revision upon check in, even when the locked revision is on a different<br />

branch.<br />

Unexpand Keywords replaces literal values with keywords in the checked in revision.<br />

Force Creation of New Branch causes Source Integrity to create a branch off of the<br />

revision you are checking in.<br />

Save Working File Timestamp sets the timestamp of the revision in the history to the<br />

timestamp of the working file, rather than the time of check in.<br />

Check Out Lock Revision checks out a writable working file, and ensures that no one else can<br />

make changes to the revision while you have it checked out. A revision must be<br />

checked out locked if strict locking is enabled, and you intend to make changes to it.<br />

Overwrite Working File if Changed overwrites the working file even if the member has<br />

changed since it was last checked in.<br />

Overwrite if Deferred Operation Pending overwrites the working file if there is a<br />

deferred operation pending on the member.<br />

Update Member Revision causes the revision you check out to be<strong>com</strong>e the new<br />

member revision of the project. For example, if the current project member is listed as<br />

Revision 2.3 and you check out Revision 1.7 with the Update Member option selected,<br />

Revision 1.7 replaces Revision 2.3 as the member of the project.<br />

52<br />

Force Creation of New Branch causes Source Integrity to force the creation of a new<br />

branch on check out, eliminating the chance of a locking conflict.<br />

Merge Working File if Changed automatically merges any changes from the working<br />

file into the revision being checked out.<br />

Restore Revision Timestamp sets the timestamp of the working file (that the revision is<br />

checked out to) to the date and time of the revision in the history. If this option is<br />

cleared, the working file’s timestamp is set to the current date and time.<br />

Create Branch if Variant causes Source Integrity to create a branch off of the revision<br />

you are checking out, if you are working in a variant sandbox and this is the first time<br />

the member is checked out. This reduces the possibility of locking conflicts with the<br />

member while work is being done in the variant and regular sandboxes.<br />

Keywords allows you to select keyword expansion options when checking out a<br />

member. To leave keywords unexpanded, select Do Not Expand from the Keywords<br />

list. To replace keywords in the revision with literal values in the working file, select<br />

Expand from the Keywords list. To replace literal values in the revision with keywords,<br />

select UnExpand from the Keywords list.<br />

On Lock allows you to select the way Source Integrity will handle automatic branching<br />

and merging. To be asked to confirm the required action each time you check out a<br />

member, select Query <strong>User</strong>. To create a branch upon locking the working file, select<br />

Branch. To make the working file writable upon lock, select Make Writable. To be<br />

asked to confirm branching, select Query <strong>User</strong> to Branch. To be asked to confirm<br />

that you want the working file to be writable, select Query <strong>User</strong> to Make<br />

Writable. To cancel the On Lock option, select Cancel.<br />

By default, Source Integrity asks you to confirm the required action each time you<br />

check out a member.<br />

u s e r g u i d e


Command Options<br />

Setting Preferences<br />

Check Out continued Merge Type specifies the action to be taken when merging revisions. Select one of the<br />

following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time you<br />

merge upon check out.<br />

Cancel causes Source Integrity to cancel the operation.<br />

Automatic causes Source Integrity to perform an automatic merge. For more<br />

information on automatic merging, see “Step Two: Merge Branch” on page 345<br />

Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />

tool.<br />

On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />

the following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time a<br />

conflict occurs.<br />

Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />

Mark For Later Merge causes Source Integrity to mark the files for merging at<br />

another time, allowing you to resolve the conflict first.<br />

Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />

Highlight Output File causes Source Integrity to highlight conflicts in the<br />

resulting merged revision.<br />

Error causes Source Integrity to display an error message prompt.<br />

Ask for change package causes Source Integrity to ask for a change package when<br />

performing a check out.<br />

Close Change Package Release Locks causes Source Integrity to release all locks on members in the change<br />

package.<br />

Allowed Orphaned Deferred Operations allows the change package to be closed<br />

without first submitting its deferred entries.<br />

Note: Orphaned Deferred operations can never be submitted using the Submit<br />

Change Package <strong>com</strong>mand.<br />

Configure Subproject Select one of the following options as the preferred type of subproject when<br />

configuring a subproject:<br />

Normal configures a subproject based on the current state of the project.<br />

Variant configures a subproject based upon a specific revision of the master project<br />

and is used for branching off the main development path.<br />

Build configures a static subproject based upon a specific revision of the master<br />

project that is used for building or testing the project, but not for further<br />

development.<br />

Reset to default value configures a subproject based on the parent project type. For<br />

more information on the default type, see your administrator.<br />

53


Chapter 3: Getting Started Using Source Integrity<br />

Command Options<br />

54<br />

Create Sandboxes Populate Sandbox causes Source Integrity to add working files to the sandbox.<br />

Recurse Into Subprojects creates subsandboxes recursively from subprojects.<br />

Line Terminator determines the type of line terminator Source Integrity uses when<br />

dealing with sandbox members: Native (or automatic, the default setting), LF (or line<br />

feed, primarily for UNIX applications), or CR/LF.<br />

Make Sandbox Sparse creates a sandbox with no working files.<br />

View Sandbox After Creation displays the sandbox after it is created.<br />

Make Sandbox Shared creates a sandbox configured as shared.<br />

Delete Label Recurse Into Subprojects deletes the label recursively from members in subprojects.<br />

Delete Revision Confirm Delete causes Source Integrity to prompt you for confirmation before the<br />

revision is deleted from the project.<br />

Recurse Into Subprojects deletes the revision recursively in members of subprojects.<br />

Demote Recurse Into Subprojects recursively demotes subproject members.<br />

Diff Ignore Blanks ignores whitespace at the end of lines when <strong>com</strong>paring the selected<br />

revision and the member’s working file or another revision.<br />

Ignore Whitespace ignores tabs and spaces anywhere in a line when <strong>com</strong>paring the<br />

selected revision and the member’s working file or another revision.<br />

Ignore Case ignores differences between uppercase and lowercase text when<br />

<strong>com</strong>paring the selected revision and the member’s working file or another revision.<br />

Discard Change Package Confirm Discard confirms the removal of a change package from the repository.<br />

Discard Change Package<br />

Entry<br />

Confirm Discard confirms the removal of a change package entry from the change<br />

package.<br />

Drop Delete Working File deletes the member working file when dropped from the project.<br />

Confirm Drop causes Source Integrity to prompt you for confirmation before the<br />

member is dropped from the project.<br />

Defer Drop Member delays the drop operation in the project until the deferred<br />

operation is submitted. The operation in the sandbox still takes place immediately.<br />

Close Change Package causes Source Integrity to close any change package<br />

associated with the member upon dropping that member.<br />

Drop Member Attribute Recurse Into Subprojects recursively drops member attributes from members in<br />

subprojects.<br />

Drop Sandboxes Delete allows you to select delete options when dropping a sandbox. To drop the<br />

sandbox without deleting any members, select Nothing from the Delete list. To delete<br />

sandbox members only, select Sandbox Members Only from the Delete list. To<br />

delete the sandbox directory and all of its contents, select Entire Sandbox<br />

Directory from the Delete list.<br />

Confirm Drop causes Source Integrity to confirm that the sandbox will be dropped<br />

before it is dropped.<br />

Freeze Recurse Into Subprojects recursively freezes members in subprojects.<br />

u s e r g u i d e


Command Options<br />

Import Members Author allows you to specify the author of the member.<br />

Setting Preferences<br />

Data Type specifies the member’s data type. To let Source Integrity determine the data<br />

type automatically, select Auto from the list. To specify a text file, select Text from the<br />

list. To specify a file containing unprintable characters, or lines too long to be handled<br />

by text editors, select Binary from the list.<br />

Create Subprojects automatically creates a subproject (based on the subdirectories in<br />

which members are located), for imported members.<br />

Recurse Into Directories imports all members in the specified directory location.<br />

Close Change Package closes the change package upon <strong>com</strong>mand <strong>com</strong>pletion.<br />

Unexpand Keywords replaces literal values in the revision with keywords.<br />

Defer Import defers the operation until it is submitted individually or as part of a change<br />

package.<br />

Lock Force Creation of New Branch causes Source Integrity to create a branch off of the<br />

revision being locked.<br />

Recurse Into Subprojects locks all members in subprojects.<br />

Create Branch if Variant causes Source Integrity to create a branch off of the revision<br />

you are checking out, if you are working in a variant sandbox and this is the first time<br />

the member is checked out. This reduces the possibility of locking conflicts with the<br />

member while work is being done in the variant and regular sandboxes.<br />

Ask for change package causes Source Integrity to ask for a change package when<br />

performing a lock.<br />

Merge Branch Lock target revision locks the merged revision when the merge is <strong>com</strong>plete.<br />

Force Creation of New Branch causes Source Integrity to create a branch for the<br />

merged revision.<br />

Create Branch if Variant causes Source Integrity to create a branch for the merged<br />

revision, if you are working in a variant sandbox.<br />

Merge Type specifies the action to be taken when merging revisions. Select one of the<br />

following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time you<br />

merge revisions.<br />

Cancel causes Source Integrity to cancel the operation.<br />

Automatic causes Source Integrity to perform an automatic merge. For more<br />

information on automatic merging, see “Step Two: Merge Branch” on page 345<br />

Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />

tool.<br />

55


Chapter 3: Getting Started Using Source Integrity<br />

Command Options<br />

56<br />

Merge Branch continued On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />

the following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time a<br />

conflict occurs.<br />

Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />

Mark For Later Merge causes Source Integrity to mark the files for merging at<br />

another time, allowing you to resolve the conflict first.<br />

Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />

Highlight Output File causes Source Integrity to highlight conflicts in the<br />

resulting merged revision.<br />

Error causes Source Integrity to display an error message prompt.<br />

Merge Merge Type specifies the action to be taken when merging revisions. Select one of the<br />

following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time you<br />

merge revisions.<br />

Cancel causes Source Integrity to cancel the operation.<br />

Automatic causes Source Integrity to perform an automatic merge. For more<br />

information on automatic merging, see “Merging Revisions Automatically” on<br />

page 354.<br />

Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />

tool.<br />

On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />

the following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time a<br />

conflict occurs.<br />

Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />

Mark For Later Merge causes Source Integrity to mark the files for merging at<br />

another time, allowing you to resolve the conflict first.<br />

Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />

Highlight Output File causes Source Integrity to highlight conflicts in the<br />

resulting merged revision.<br />

Error causes Source Integrity to display an error message prompt.<br />

Move Change Package<br />

Entry<br />

Confirm Move confirms the movement of a change package entry from one change<br />

package to another change package.<br />

Promote Recurse Into Subprojects promotes all members in subprojects.<br />

u s e r g u i d e


Command Options<br />

Setting Preferences<br />

Rename Member Rename Working File renames the working file in your sandbox and preserves any<br />

changes made to that file. If not set, the working file is not renamed and be<strong>com</strong>es a<br />

former member which will be confirmed for deletion the next time the sandbox is<br />

resynchronized. This setting has no effect if the <strong>com</strong>mand is performed directly from a<br />

Project view.<br />

Confirm Rename causes Source Integrity to confirm that you want to rename the<br />

selected member.<br />

Close Change Package closes the specified change package after performing the<br />

rename operation.<br />

Overwrite Existing File replaces the existing working file in the sandbox.<br />

Defer Rename delays the rename operation in the project until the deferred operation<br />

is submitted.<br />

Resynchronize Restore Revision Timestamp sets the timestamp of the working file (that the revision is<br />

checked out to) to the date and time of the revision in the history. If this option is not<br />

set, the working file’s timestamp is set to the current date and time.<br />

Force Overwrite Even if Unchanged overwrites the working file even if it is unchanged.<br />

Overwrite if Pending overwrites the working file even if it is a pending revision.<br />

Recurse into Subprojects recursively resynchronizes members in subprojects.<br />

Overwrite Working File if Changed overwrites the working file even if it has changed.<br />

Overwrite if Deferred Operation Pending overwrites the working file if there is a<br />

deferred operation pending on the member.<br />

Merge Working File if Changed merges the modified working file with the member<br />

revision.<br />

Confirm Populate of a Sparse Sandbox causes Source Integrity to prompt you to<br />

confirm if you want to populate a sparse sandbox.<br />

Keywords allows you to select keyword expansion options when resynchronizing. To<br />

replace keywords in the revision with literal values in the working file, select Expand<br />

from the Keywords list. To leave keywords unexpanded, select Do Not Expand from<br />

the Keywords list. To replace literal values in the revision with keywords, select<br />

Unexpand from the Keywords list.<br />

Merge Type specifies the action to be taken when merging revisions. Select one of the<br />

following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken when merging<br />

upon resync.<br />

Cancel causes Source Integrity to cancel the operation.<br />

Automatic causes Source Integrity to perform an automatic merge. For more<br />

information on automatic merging, see “Step Two: Merge Branch” on page 345<br />

Manual (Launch Tool) causes Source Integrity to initiate the MKS Visual Merge<br />

tool.<br />

57


Chapter 3: Getting Started Using Source Integrity<br />

Command Options<br />

58<br />

Resynchronize continued On Conflicts specifies the action to be taken when merge conflicts occur. Select one of<br />

the following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken each time a<br />

conflict occurs.<br />

Cancel causes Source Integrity to cancel the operation when a conflict occurs.<br />

Mark For Later Merge causes Source Integrity to mark the files for merging at<br />

another time, allowing you to resolve the conflict first.<br />

Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />

Highlight Output File causes Source Integrity to highlight conflicts in the<br />

resulting merged revision.<br />

Resynchronize Change<br />

Package<br />

Use Master causes Source Integrity to operate on the top-level sandbox. When the<br />

selected change package is associated with a member in a subsandbox, specifying<br />

Use Master causes the <strong>com</strong>mand to operate on the top-level sandbox for that<br />

subsandbox.<br />

Overwrite Working File if Changed overwrites the working file even if it has changed.<br />

Perform Merges prompts you for confirmation before performing a merge operation.<br />

Confirm Actions causes Source Integrity to confirm all operations with you before<br />

starting them.<br />

Verbose provides additional information to track the status of the <strong>com</strong>mand.<br />

Already in Project is Error causes Source Integrity to terminate the operation if the<br />

member being applied is already in the project. If this setting is negated (as in<br />

noAlreadyInProjectIsError), the information is displayed as a warning.<br />

Ignore Server in Change Package causes Source Integrity to perform the Resync CP<br />

operation even if the change package members reside on different servers.<br />

Span Projects applies the <strong>com</strong>mand to any member specified in the change package,<br />

even if this involves multiple projects. This option allows Source Integrity to search<br />

across local sandboxes for all entries in the selected change package(s).<br />

Ignore Cross-Branch Entries causes Source Integrity to use the most recent revision<br />

when it encounters two revisions of the same member on different branches.<br />

Restore Revision Timestamp sets the timestamp of the working file to the date and<br />

time of the last checked-in revision in the history. If this option is cleared, the working<br />

file’s timestamp is set to the current date and time. The time stamp is only changed if<br />

the working file is modified. If the resynchronize does not change the working file, its<br />

timestamp remains the same.<br />

Other Project is Error terminates the <strong>com</strong>mand if the member is not in the project you<br />

are applying to, or in its variant.<br />

Allow Open Change Packages allows Source Integrity to work with open change<br />

packages. This facilitates the application of a resolution change package.<br />

Create Variants causes Source Integrity to create new variant subprojects within the<br />

variant project as required to apply the change package members. If the main project<br />

contains required files that reside in a subproject, the Create Variants option creates<br />

variant subprojects for these files to be placed into.<br />

u s e r g u i d e


Command Options<br />

Resynchronize Change<br />

Package continued<br />

Setting Preferences<br />

Merge on Branch causes Source Integrity to perform a merge if the target revision is<br />

on a branch. Source Integrity differences the two file revisions and merges any<br />

changes into the working file without modifying its revision number. You must then<br />

check in the working file to advance the revision to the next available revision number.<br />

Keywords allows you to select keyword options when resynchronizing a member. To<br />

leave keywords unexpanded, select Do Not Expand from the Keywords list. To<br />

replace keywords in the revision with literal values in the working file, select Expand<br />

from the Keywords list. To replace literal values in the revision with keywords, select<br />

Unexpand from the Keywords list.<br />

Backfill determines how dependent change packages are treated. You can select from<br />

the following options:<br />

Entire Change Packages chooses all historic revisions required by the<br />

specified change packages and applies them by updating the member revisions,<br />

adding files, or dropping files. The user is not prompted to confirm the backfill list.<br />

Back Revisions Only processes only the specified change package(s) and<br />

chooses only directly-associated revisions. It does not process any change<br />

packages that are associated with intermediate revisions.<br />

Error terminates the operation if other change packages are required but are not<br />

specified.<br />

Skip Revisions causes Source Integrity to merge around specified backfill<br />

revisions.<br />

Ask to Specify allows you to select the specific change packages you want to<br />

include.<br />

Merge Type determines what occurs if a merge is required to resynchronize the<br />

change package.<br />

Confirm causes Source Integrity to confirm the merge.<br />

Cancel causes Source Integrity to stop the merge from occurring.<br />

Automatic causes Source Integrity to perform the merge without prior<br />

confirmation.<br />

Manual (Launch Tool) launches the default differencing tool.<br />

On Conflicts determines how conflicting rows are treated.<br />

Confirm causes Source Integrity to request input from the user to resolve the<br />

conflict.<br />

Cancel causes Source Integrity to stop the resynchronize.<br />

Mark For Later Merge marks the conflicting lines so they can be addressed at<br />

a later date.<br />

Launch Tool causes Source Integrity to launch the default differencing tool.<br />

Highlight Output File highlights each line conflict in working file.<br />

Error causes Source Integrity to display an error message prompt.<br />

Ignore Update Revision Entries ignores update revision entries in a change package.<br />

There is no user prompt.<br />

59


Chapter 3: Getting Started Using Source Integrity<br />

Command Options<br />

Revert Restore Revision Timestamp sets the timestamp of the working file (that the revision is<br />

checked out to) to the date and time of the revision in the history. If this option is not<br />

set, the working file’s timestamp is set to the current date and time.<br />

Force Overwrite Even if Unchanged overwrites the working file even if it is unchanged.<br />

60<br />

Recurse Into Subprojects recursively reverts members in selected subprojects.<br />

Overwrite Working File if Changed overwrites the working file if it has changed.<br />

Overwrite if Deferred Operation Pending overwrites the working file if there is a<br />

deferred operation pending on the member.<br />

Keywords allows you to select keyword options when reverting a member. To leave<br />

keywords unexpanded, select Do Not Expand from the Keywords list. To replace<br />

keywords in the revision with literal values in the working file, select Expand from the<br />

Keywords list. To replace literal values in the revision with keywords, select Unexpand<br />

from the Keywords list.<br />

Snapshot Sandbox Apply Label to All Members applies the snapshot label to all project members.<br />

Notify when Complete to confirms that the snapshot operation has finished.<br />

Apply State to All Members applies the snapshot state to all project members.<br />

Recurse into Subsandboxes recursively snapshots subsandboxes.<br />

Author is the author name applied to the snapshot. Type a name in the Author field. If<br />

you do not type a name, Source Integrity uses the current user name.<br />

Submit Use the change package provided when the element was deferred selects the change<br />

package that was originally associated with the deferred item.<br />

Override the change package to a specified value allows you to select a different<br />

change package from the one that was originally associated with the deferred item.<br />

Close Change Package closes the change package after the element is submitted.<br />

Submit Change Package Close Change Package closes the change package after submitting the item and<br />

<strong>com</strong>pleting the associated deferred operation.<br />

Commit Changes/Submit for Review (if reviews are mandatory) creates pending<br />

entries without submitting the change package for review.<br />

Allow submit to proceed with deferred entries submits the changes to the repository<br />

(or for review) even there are deferred entries retained through the cancel of an<br />

operation during the submit. For example, cancelling a check in of an unchanged file.<br />

Apply Resolution Change Package applies the change package if it is resolution<br />

change package.<br />

Ignore Absence of Deferred/Lock Entries submits the changes package even if there<br />

are no deferred or lock entries.<br />

Thaw Recurse Into Subprojects recursively thaws members in subprojects.<br />

Unlock Break Lock breaks locks held by other users.<br />

Recurse Into Subprojects recursively unlocks members in subprojects.<br />

Update Revision Recurse Into Subprojects updates the member revision of members in subprojects.<br />

Defer Update Revision delays the update operation until the deferred operation is<br />

submitted. The operation in the sandbox takes place immediately.<br />

Close Change Package closes the associated change package upon <strong>com</strong>mand<br />

<strong>com</strong>pletion.<br />

u s e r g u i d e


View<br />

Preferences<br />

Setting Preferences<br />

The Views pane in the Preferences Configuration dialog box contains<br />

default option settings for Source Integrity views. At any time, you can<br />

reset the default settings for a view by clicking Clear Local Settings.<br />

You can also configure toolbars for Source Integrity views. To configure<br />

select the view and click Toolbar at the bottom left of the Views pane. For<br />

more information on configuring toolbars, see “Configuring the Source<br />

Integrity Toolbars” on page 82.<br />

To set view preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), click the Views node.<br />

The views appear as a list of nodes.<br />

2 Select a view node to configure. The settings for that view appear in<br />

the Views pane. The available views and their options are discussed in<br />

detail in the proceeding table.<br />

If necessary, select a view’s option check box.<br />

To restore a view’s default options, click Clear Local Settings.<br />

61


Chapter 3: Getting Started Using Source Integrity<br />

62<br />

View Options<br />

Modify options for the views as listed in the following table:<br />

Annotated Revision View Under Columns, you can select which columns you want displayed in the<br />

Annotated Revision view:<br />

Author displays the author of the revision.<br />

Labels displays revision labels.<br />

Revision Contents displays the text contained in a revision.<br />

C.P. ID displays the revision’s associated change package ID.<br />

Line displays the line number for each line of text in the revision (for use when<br />

Revision Contents is selected).<br />

Date displays the date each revision in the history was created.<br />

Revision displays the member’s revision number.<br />

Archive Information View Show Labels displays archive labels.<br />

Show Locks displays locks.<br />

Change Package View Show Un<strong>com</strong>mitted Entries displays deferred entries that have not been<br />

submitted and therefore <strong>com</strong>mitted to the repository. Also displays lock entries.<br />

Show Pending Entries displays pending entries that are not <strong>com</strong>mitted to the<br />

repository.<br />

Show Committed Entries displays entries that have been <strong>com</strong>mitted to the<br />

repository.<br />

Show Review Information displays the Review Log panel containing review<br />

information.<br />

Under Columns, you can select which columns you want displayed in the<br />

Change Package View:<br />

Archive displays the archive name of member in the change package entry.<br />

Project displays the name and path of the project where the member revision<br />

change package entry occurred. If the entry occurred from a shared subproject, it<br />

is the subproject name and path that are displayed.<br />

Server displays the host name of the server the entry was made on.<br />

Date Changed displays the date the entry was made.<br />

Revision displays the number of the revision in the change package entry.<br />

Type is the entry type of the change package entry (see “Change Package Entry<br />

Types” on page 220).<br />

Member displays name of the member in the change package entry.<br />

Sandbox displays the name of the sandbox where the deferred operation or<br />

check out took place.<br />

Variant displays the name of the variant development path (if a variant was used)<br />

the change package entry occurred on.<br />

u s e r g u i d e


View Options<br />

Setting Preferences<br />

Change Packages View Under Columns, you can select which columns you want displayed in the<br />

Change Packages View:<br />

Closed Date displays the date the change package was closed.<br />

Description displays the description provided for the change package.<br />

Issue displays the issue ID if the Integrity Manager integration is enabled.<br />

State displays current state of the change package, which can be Open or<br />

Closed.<br />

Created Date displays the date the change package was created.<br />

ID displays the change package ID.<br />

Reason is only relevant when applying change packages, and is not used in the<br />

standalone Change Packages view.<br />

Summary displays the summary statement for the change package.<br />

Creator displays the username who created the change package.<br />

Is Resolution displays yes if the change package is a resolution change<br />

package, and no if it is not.<br />

Resolutions represent the list of change packages that the target change<br />

package addresses.<br />

Member History View Initial View allows you to set the default view for the window, either the<br />

Graphical View, or the List View.<br />

Show Legend displays the legend for the graphical history view.<br />

Show Labels displays the revision labels for the graphical history view.<br />

Show Metadata displays a box containing truncated metadata beside each<br />

revision in the graphical history view. Point to the box to display a tooltip that<br />

contains the full metadata for the revision.<br />

Under Columns, you can select which columns you want displayed in the<br />

Member History List view:<br />

Author displays the author of the member.<br />

Labels displays member labels.<br />

Locker displays who has a member locked.<br />

Locker Host displays the host name of the <strong>com</strong>puter that locked the member.<br />

Revision displays the member’s revision number.<br />

C.P. ID displays the change package ID associated with the revision number.<br />

Lock Timestamp displays the date and time a member is locked.<br />

Locker C.P. ID displays the change package ID for the associated lock entry.<br />

Locker Project displays the name and path of the project where the member<br />

revision was locked from. If the member revision was locked from a shared<br />

subproject, it is the subproject name and path that are displayed.<br />

Revision Description displays the revision description assigned to the project<br />

member.<br />

Date displays the date each revision in the history was created.<br />

Locked Icon displays the padlock icon to indicate a file is locked.<br />

63


Chapter 3: Getting Started Using Source Integrity<br />

View Options<br />

64<br />

Member History View continued Locker Development Path displays the name of the development path where the<br />

lock on the revision was made from. This information is relevant when the locking<br />

policy is set to devpath, allowing a single user to have a single lock on an<br />

archive per development path. Contact your administrator for more information.<br />

Locker Sandbox displays the name of the sandbox where the lock on the revision<br />

was made, and is relevant when viewing the information from the Locker Host.<br />

State displays the state of the member revision.<br />

Member Information View Show Attributes displays member attributes.<br />

Show Labels displays member labels.<br />

Show Change Package Information displays change package information (only if<br />

change packages are enabled).<br />

Member Labels View Recurse Into Subprojects displays the hierarchy of subprojects.<br />

Non-Members View Include specifies file types to include in the Non-Members view. Click Change to<br />

modify the settings (see “Filtering Non-Member Files” on page 156).<br />

Exclude specified files types to exclude from the Non-Members view. Click<br />

Change to modify the settings (see “Filtering Non-Member Files” on page 156).<br />

Recurse Into Subprojects specifies if to apply the Non-Member Filter recursively<br />

to subprojects.<br />

Include Former Members specifies if to include members that have been dropped<br />

from the project, but where there still exists a working file in the sandbox<br />

directory.<br />

Under Columns, you can select which columns you want displayed in the<br />

Non-Members view:<br />

Absolute Path displays the absolute file path of the file.<br />

Last Modified displays the date that the file was last modified.<br />

Closest Project displays the project associated with the sandbox that is closest to<br />

the directory containing the file.<br />

Member ID displays the default member name for the file as it would appear if it<br />

was added to the nearest project. In the case where the nearest project is<br />

subproject, the relative path is displayed with the member name.<br />

Closest Sandbox displays the sandbox that is closest to the directory containing<br />

the file.<br />

Size displays the size of the file in bytes.<br />

Locks View Under Columns, you can select which columns you want displayed in the Locks<br />

View:<br />

Archive Name displays the name of the locked archive.<br />

Host displays the hostname of the <strong>com</strong>puter which the lock was performed on.<br />

Revision displays the locked revision number.<br />

<strong>User</strong> displays the user holding the lock.<br />

C.P. ID displays the change package ID associated with the lock.<br />

Member Name displays the name of the locked member.<br />

Sandbox displays the name of the sandbox where the lock on the revision was<br />

made, and is relevant when viewing the information from the locker host.<br />

u s e r g u i d e


View Options<br />

Setting Preferences<br />

Locks View continued Development Path displays the name of the development path where the lock on<br />

the revision was made from. This information is relevant when the locking policy<br />

is set to devpath, allowing a single user to have a single lock on an archive per<br />

development path.<br />

Project displays the name and path of the project where the member revision<br />

was locked from. If the member revision was locked from a shared subproject, it<br />

is the subproject name and path that are displayed.<br />

Time displays the time the archive was locked.<br />

Project View Recurse Into Subprojects displays the hierarchy of subprojects.<br />

Under Columns, you can select which columns you want displayed in the Project<br />

view.<br />

Attributes displays project attributes.<br />

Labels displays member labels.<br />

Locker displays who has a member locked.<br />

Locker Host displays the host name of the <strong>com</strong>puter that locked the member.<br />

Member CPID displays the change package associated the operation that set the<br />

member revision.<br />

Member Rev. Timestamp displays the date and time the member revision is set.<br />

Pending CPID displays the change package associated with a pending operation.<br />

Creation CPID displays the change package that created the revision that is<br />

currently the member revision. This revision may be different from the Member<br />

CPID if an import, add member from archive, or set member revision operation<br />

was used.<br />

Lock Timestamp displays the date and time a member is locked.<br />

Locker CPID displays the change package associated with the lock on the<br />

member revision.<br />

Locker Project displays the name and path of the project where the member<br />

revision was locked from. If the member revision was locked from a shared<br />

subproject, it is the subproject name and path that are displayed.<br />

Member Rev. displays the member’s revision number.<br />

Name displays the project, subproject, and the project members by file name.<br />

State displays the state of the member revision.<br />

Frozen indicates which project members are frozen with a snowflake icon.<br />

Locked Icon displays the padlock icon to indicate a file is locked.<br />

Locker Development Path displays the name of the development path where the<br />

lock on the revision was made from. This information is relevant when the locking<br />

policy is set to devpath, allowing a single user to have a single lock on an<br />

archive per development path. Contact your administrator for more information.<br />

Locker Sandbox displays the name of the sandbox where the lock on the revision<br />

was made, and is relevant when viewing the information from the Locker Host.<br />

Member Rev. Description displays the revision description assigned to the<br />

project member.<br />

New Revision Delta displays a delta icon to indicate that a new revision for the<br />

member is available.<br />

Type displays the type of each project, and project member.<br />

65


Chapter 3: Getting Started Using Source Integrity<br />

View Options<br />

Project Differences View Show Applied Change Packages displays all the change packages applied<br />

between two project revisions.<br />

Show Revision Changes displays all modifications to each revision.<br />

Show Change Packages displays a list of revision modifications that can be<br />

associated with change packages and a list of those that cannot.<br />

66<br />

Member Attribute Changes displays all modifications of member attributes<br />

between two project revisions.<br />

Show Revision Description displays the content of the revision description.<br />

Recurse into Subprojects displays the hierarchy of subprojects.<br />

Project History View Initial View allows you to set the default view for the window, either the<br />

Graphical View, or the List View.<br />

Show Legend displays the legend for the graphical history view.<br />

Show Labels displays the revision labels for the graphical history view.<br />

Show Metadata displays a box containing truncated metadata beside each<br />

revision in the graphical history view. Point to the box to display a tooltip that<br />

contains the full metadata for the revision.<br />

Under Columns, you can select which columns you want displayed in the Project<br />

History List view:<br />

Author displays the author of the project.<br />

Revision displays the project’s revision number.<br />

Date displays the date each revision in the history was created.<br />

State displays the state of the project revision.<br />

Labels displays project labels.<br />

Project Information View Show Attributes displays project attributes.<br />

Show Development Paths displays development paths for creating variant<br />

sandboxes.<br />

Registered Projects View Show Subprojects displays registered subprojects.<br />

Registered Sandboxes View Show Subsandboxes displays registered subsandboxes.<br />

Revision Information View Show Labels displays labels on the revision.<br />

Show Change Package Information displays change package information (only if<br />

change packages are enabled).<br />

Sandbox View Recurse into Subprojects displays the hierarchy of subprojects.<br />

Under Columns, you can select which columns you want displayed in the<br />

Sandbox view.<br />

Attributes displays member attributes.<br />

Frozen indicates which sandbox members are frozen with a snowflake icon.<br />

Locked Icon displays the padlock icon to indicate a file is locked.<br />

Locker Development Path displays the name of the development path where the<br />

lock on the revision was made from. This information is relevant when the locking<br />

policy is set to devpath, allowing a single user to have a single lock on an<br />

archive per development path. Contact your administrator for more information.<br />

Locker Sandbox displays the name of the sandbox where the lock on the revision<br />

was made, and is relevant when viewing the information from the Locker Host.<br />

u s e r g u i d e


View Options<br />

Setting Preferences<br />

Sandbox View continued Member Rev. Description displays the revision description assigned to the<br />

sandbox member.<br />

New Revision Delta displays a delta icon to indicate that a new revision for the<br />

member is available.<br />

State displays the state of the member revision.<br />

Working File Delta displays a delta icon to indicate that your working file has<br />

changed.<br />

Creation CPID displays the change package that created the revision that is<br />

currently the member revision. This revision may be different from the Member<br />

CPID if an import, add member from archive, or set member revision operation<br />

was used.<br />

Labels displays member labels.<br />

Locker displays who has a member locked.<br />

Locker Host displays the host name of the <strong>com</strong>puter that locked the member.<br />

Member CPID displays the change package associated the operation that set the<br />

member revision.<br />

Member Rev. Timestamp displays the date and time the member revision is set.<br />

Pending CPID displays the change package associated with a pending operation.<br />

Type displays the type of each sandbox, and sandbox member.<br />

Working Rev. displays the checked out revision number that corresponds to the<br />

member’s working file.<br />

Deferred displays a icon to indicate that an operation on a member is<br />

deferred.<br />

Lock Timestamp displays the date and time a member is locked.<br />

Locker CPID displays the change package associated with the lock on the<br />

member revision.<br />

Locker Project displays the name and path of the project where the member<br />

revision was locked from. If the member revision was locked from a shared<br />

subproject, it is the subproject name and path that are displayed.<br />

Member Rev. displays the member’s revision number.<br />

Name displays the sandbox, subsandbox, and the sandbox members by file<br />

name.<br />

Revision Sync Delta displays a delta icon to indicate that your working revision<br />

does not match the member revision (usually due to branching).<br />

Working CPID displays the change package associated with a deferred or a lock<br />

operation performed by the current user from the current sandbox.<br />

Sandbox Information View Show Attributes displays the Project Attributes and Sandbox Attributes tabs.<br />

67


Chapter 3: Getting Started Using Source Integrity<br />

Editor<br />

Preferences<br />

68<br />

The Editor pane in the Preferences Configuration dialog box contains<br />

default settings for the file editor tool used by Source Integrity when<br />

editing members.<br />

To set editor preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), click the Editor node.<br />

The Editor pane is displayed.<br />

2 Select one of the following options:<br />

Use System Editor uses the system’s default editor for the type of<br />

file being edited, for example, Notepad, to edit text files.<br />

Editor allows you to choose the editor. Click Browse, then select<br />

an editor, such as vi.<br />

The Warn when trying to edit more than __ file(s) option prompts<br />

you with a warning when you attempt to edit more than the<br />

specified number of files.<br />

3 Click OK to save your preferences.<br />

u s e r g u i d e


Difference Tool<br />

Preferences<br />

Setting Preferences<br />

The Diff Tool pane in the Preferences Configuration dialog box contains<br />

default settings for the differencing tool used by Source Integrity.<br />

To set difference tool preferences in the graphical user interface<br />

1 From the Preferences Configuration dialog box (see “Setting<br />

Preferences” on page 40), click the Diff Tool node.<br />

The Diff Tool pane is displayed.<br />

2 Select one of the following options:<br />

Select the MKS Visual Difference Tool option to use the MKS<br />

Visual Difference program to view differences between revisions.<br />

For more information on the MKS Visual Difference Tool, see<br />

“MKS Visual Difference Interface” on page 100.<br />

Select the Third Party Difference Tool option if you want to use<br />

one of the following programs to view differences:<br />

Araxis Merge, Araxis Ltd.<br />

Beyond Compare 1.x, Scooter Software<br />

Beyond Compare 2.x, Scooter Software<br />

MKS Visual Difference (Classic), MKS Inc.<br />

Windiff, Microsoft<br />

Select Custom Command to specify a particular program to view<br />

differences.<br />

In the field type the location and executable file name for the<br />

program you want to use, or click the Browse button to browse to<br />

the executable file.<br />

3 Click OK to save your preferences.<br />

69


Chapter 3: Getting Started Using Source Integrity<br />

Shutdown<br />

Preferences<br />

70<br />

You can specify shutdown preferences for all clients globally from one<br />

location.<br />

Disconnection Preferences<br />

When disconnecting from an Integrity Server, you can specify client<br />

preferences.<br />

To specify disconnection preferences in the graphical user interface<br />

From the Preferences Configuration dialog box (see “Setting Preferences”<br />

on page 40), click Commands > Disconnect From Server.<br />

The Disconnect From Server pane is displayed.<br />

Confirm Disconnect specifies if to confirm disconnecting from the server<br />

when using the File > Server Connection > Disconnect <strong>com</strong>mand.<br />

Exit Preferences<br />

When shutting down the client, you can specify preferences.<br />

To specify exit preferences in the graphical user interface<br />

From the Preferences Configuration dialog box (see “Setting Preferences”<br />

on page 40), click Commands > Exit.<br />

The Exit pane is displayed.<br />

Managing Integrations<br />

Shutdown all Integrity Clients specifies if to shut down all clients when<br />

shutting down a client using the File > Shutdown <strong>com</strong>mand.<br />

Source Integrity includes functionality for enabling and disabling<br />

supported integrations. Using the Integrations <strong>com</strong>mand, you can select<br />

from a list of available integrations and enable or disable them as required.<br />

There is no requirement to re-install the Integrity Client.<br />

NOTE<br />

Using the Enable/Disable Integrations dialog box or the <strong>com</strong>mand:<br />

si integrations --action=enable <br />

you can always restore an available integration at a later date.<br />

You can have only one of the following versions of Sybase PowerBuilder<br />

installed: 7.0, or 8.0.3.<br />

u s e r g u i d e


For <strong>com</strong>plete information on using third party integrations with<br />

Source Integrity, see the Integrity Solution Integrations <strong>User</strong> <strong>Guide</strong>.<br />

Managing Integrations<br />

To enable integrations for the Integrity Client using the graphical user<br />

interface<br />

1 Start the Integrity Client.<br />

2 To open the Enable/Disable Integrations dialog box select Tools ><br />

Integrations.<br />

The Enable/Disable Integrations dialog box opens.<br />

3 In the Disabled Integrations list, select the available integration(s) that<br />

you want to enable.<br />

4 To move the selected integrations to the Enabled Integrations list,<br />

click . To move all disabled integrations to the Enabled<br />

Integrations list, click .<br />

TIP<br />

You can select multiple integrations by using CTRL + click.<br />

The selected integration is moved to the Enabled Integrations list and<br />

is displayed in bold type.<br />

5 To activate the selected integration(s), click OK.<br />

The selected integration is activated.<br />

6 To <strong>com</strong>plete the activation, restart your <strong>com</strong>puter.<br />

To disable integrations for the Integrity Client using the graphical<br />

user interface<br />

1 Start the Integrity Client.<br />

2 To open the Enable/Disable Integrations dialog box, select Tools ><br />

Integrations.<br />

The Enable/Disable Integrations dialog box opens.<br />

3 In the Enabled Integrations list, select the Source Integrity<br />

integration(s) that you want to disable.<br />

TIP<br />

You can select multiple integrations by using CTRL + click.<br />

71


Chapter 3: Getting Started Using Source Integrity<br />

72<br />

4 To move the selected integration(s) to the Disabled Integrations list,<br />

click . To move all enabled integrations to the Disabled<br />

Integrations list, click .<br />

The selected integration is moved to the Disabled Integrations list.<br />

5 To disable the selected integration, click OK.<br />

The selected integration is disabled.<br />

6 To <strong>com</strong>plete the process, restart your <strong>com</strong>puter.<br />

Quitting a Source Integrity Session<br />

Logging Out of<br />

Source Integrity<br />

When you are finished working on files in the Source Integrity client, you<br />

have three options for ending your session. You can log out of<br />

Source Integrity, close the client window (but leave Source Integrity<br />

running), or shut down the client <strong>com</strong>pletely.<br />

Since the Source Integrity Web interface does not involve a client, logging<br />

out is sufficient.<br />

You can log out of Source Integrity and log in as another user, or allow<br />

another user to log in.<br />

To log out of Source Integrity using the graphical user interface<br />

1 Select File > Server Connection > Disconnect.<br />

Depending on your system preferences, a dialog box is displayed<br />

asking you to confirm that you want to close all current views and<br />

disconnect your server connection. To disable this dialog box, see the<br />

Disconnect From Server <strong>com</strong>mand in “Command Preferences” on<br />

page 48.<br />

2 To disconnect from the server, click Yes.<br />

NOTE<br />

Disconnecting from the server closes all current views, such as Sandbox views.<br />

The Confirm Disconnect dialog box is displayed.<br />

u s e r g u i d e


Closing the<br />

Client<br />

3 Do one of the following:<br />

Quitting a Source Integrity Session<br />

To disconnect all clients that are connected to that server, click<br />

Yes.<br />

To cancel the disconnect, click No.<br />

If you clicked yes, the server connection is disconnected for all clients.<br />

If multiple servers are available in your Server Connection list, all<br />

clients running will automatically connect using the next available<br />

server for that product. For example, Integrity Manager connects to<br />

the next available Integrity Manager enabled server in the Server<br />

Connection list.<br />

To log in again, see “Logging In to Source Integrity” on page 36.<br />

To log out of a Source Integrity session the Source Integrity Web<br />

interface<br />

1 To quit the Source Integrity Web interface, do one of the following:<br />

Click File > Logout.<br />

Click .<br />

The Logout dialog box confirms that you have successfully logged out.<br />

To start a new session in the Source Integrity Web interface, click the<br />

link for MKS Source Integrity Enterprise Edition.<br />

You can close the Source Integrity client so that is no longer displayed on<br />

the desktop, but leave it running in the background, logged in and client<br />

windows intact.<br />

To quit a Source Integrity session in the graphical user interface<br />

Select File > Exit.<br />

The Source Integrity graphical user interface closes. Even though the client<br />

is not displayed on the desktop, it is still running in the background.<br />

Display the client by clicking the application shortcut (see “Starting the<br />

Source Integrity Client” on page 34).<br />

73


Chapter 3: Getting Started Using Source Integrity<br />

Shutting Down<br />

the Client<br />

74<br />

When you are finished using Source Integrity, you can shut down the<br />

Source Integrity client <strong>com</strong>pletely in one action.<br />

To shut down the Source Integrity client in the graphical user<br />

interface<br />

1 Select File > Shutdown.<br />

The Confirm MKS Integrity Client Shutdown dialog box is displayed.<br />

IMPORTANT<br />

Clicking Yes will shut down all clients in addition to Source Integrity, such as<br />

Integrity Manager.<br />

2 Do one of the following:<br />

To shut down all clients, click Yes.<br />

To shut down just the Source Integrity client, click No.<br />

If you clicked Yes, all Integrity GUI clients close, the connection to the<br />

server is disconnected, then the client process shuts down.<br />

If you clicked No, only the Source Integrity GUI closes.<br />

u s e r g u i d e


Source Integrity Interfaces<br />

4<br />

KEY TERMS: filters, graphical user interface, Web interface, <strong>com</strong>mand line interface,<br />

environment variables, MKS Visual Difference, MKS Visual Merge<br />

Source Integrity includes a number of interfaces that you can use to<br />

ac<strong>com</strong>plish your tasks. These interfaces provide you with the flexibility to<br />

work in the environment that is most <strong>com</strong>fortable and suitable for you.<br />

NOTE<br />

If LDAP is used for user authentication with the Integrity Server, all<br />

Source Integrity interfaces display full user names with the corresponding user<br />

IDs in brackets, for example, James Riley (jriley). In addition, the<br />

Websphere Studio Application Developer integration with Source Integrity<br />

displays full user names.<br />

If the full user name attribute is missing on the LDAP server, or a user’s full<br />

user name entry is blank, the client interfaces display the user ID.<br />

Anywhere that you as a user need to log in or authenticate, a user ID must be<br />

entered, not the LDP user name.<br />

This chapter provides an overview of the interfaces available in<br />

Source Integrity. Specific topics covered in this chapter include:<br />

“Source Integrity Graphical <strong>User</strong> Interface” on page 76<br />

“Source Integrity Web Interface” on page 94<br />

“Command Line Interface” on page 98<br />

“MKS Visual Difference Interface” on page 100<br />

“MKS Visual Merge Interface” on page 107<br />

75


Chapter 4: Source Integrity Interfaces<br />

Source Integrity Graphical <strong>User</strong> Interface<br />

Application<br />

Window<br />

76<br />

Source Integrity includes a graphical user interface from which you can<br />

access all of the Source Integrity features for members in both sandbox and<br />

project views.<br />

The application window contains a number of <strong>com</strong>mon features explained<br />

in this section.<br />

Title Bar<br />

The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />

the left side, the title bar displays the name of the software program. On<br />

the right side, the title bar displays the standard Windows buttons for<br />

minimizing, resizing, and closing the application window.<br />

Menu Bar<br />

The menu bar is located directly below the title bar. Each menu contains<br />

available <strong>com</strong>mands. When you first start Source Integrity, there are four<br />

menus in the menu bar: File, Tools, Window, and Help. The list of available<br />

menus and <strong>com</strong>mands varies depending on which view or window is<br />

active (for example, working with a member history or a sandbox).<br />

To see a list of recently used project and sandbox files, select File from the<br />

menu bar. Recently used files are displayed in a numbered list at the<br />

bottom of the File menu.<br />

u s e r g u i d e


Toolbar<br />

Source Integrity Graphical <strong>User</strong> Interface<br />

Immediately below the menu bar is a toolbar that provides easy access to<br />

the most <strong>com</strong>monly used Source Integrity <strong>com</strong>mands.<br />

You can configure the toolbar to suit your needs. For information on<br />

configuring the toolbar, see “Configuring the Source Integrity Toolbars”<br />

on page 82.<br />

Most toolbar buttons only be<strong>com</strong>e available when an item is selected in a<br />

certain window. For example, selecting a project in a Project view displays<br />

project <strong>com</strong>mand toolbar buttons.<br />

ToolTips, which explain the function of each toolbar button, appear when<br />

you hold the mouse pointer over the button.<br />

Project or Sandbox View<br />

Project and Sandbox views display the project members and hierarchy for<br />

projects registered with the Integrity Server.<br />

The Project view gives you access to project-level functions and a limited<br />

number of member-level functions. The Sandbox view mirrors the content<br />

of the project and allows you to manage the project and work directly with<br />

its members. Typically, you create your own Sandbox for a selected project<br />

and then work with that project through your Sandbox.<br />

For more information on Sandbox and Project views, see “Project Views<br />

(GUI)” on page 457.<br />

TIP<br />

When items in the Name column are too large to see in the current column<br />

width, place the mouse pointer over the item to view a ToolTip of the full<br />

name.<br />

Shortcut Menu<br />

Source Integrity supports standard shortcut menus. To display the menu<br />

of actions you can perform on a selected item, select and right click:<br />

a member in a Project or Sandbox view<br />

a revision in a Project or Member History view<br />

a project in the Registered Projects view<br />

a sandbox in the Registered Sandboxes view<br />

Source Integrity displays the applicable shortcut menu.<br />

77


Chapter 4: Source Integrity Interfaces<br />

Printing Lists<br />

and Views<br />

78<br />

Member Information Pane<br />

The member information pane displays details on the working file and<br />

member revision numbers that are available in the project. When there are<br />

size differences between the working file and member revision, the<br />

member information pane also displays this difference (in kilobytes).<br />

Status Bar<br />

When you select a <strong>com</strong>mand from a Source Integrity menu, a brief<br />

explanation of its purpose and status displays in the status bar. The status<br />

bar also displays the progress and status for <strong>com</strong>mands launched from the<br />

graphical user interface. In addition, when you point to a toolbar button,<br />

you can see an explanation of its function.<br />

Workspace<br />

Everything between the toolbar and the status bar is considered the<br />

workspace. This is where Source Integrity displays windows containing<br />

your projects, sandboxes, or member histories. For example, when you<br />

open a sandbox, its members display in a Sandbox view in the workspace.<br />

When you first start Source Integrity, the workspace is empty.<br />

Filter List<br />

Beside the toolbar is an optional list of built-in filters that allows you to<br />

focus your view on a subset of project members you are currently<br />

interested in. Source Integrity displays only those members that meet the<br />

criteria specified by the filter.<br />

The list of built-in filters only displays when a Project or Sandbox view is<br />

active.<br />

For more information on filters, see “Using Filters” on page 86.<br />

You can print the information from all tabular lists and graphical history<br />

views in the Source Integrity graphical user interface.<br />

To print tabular lists and views in the Source Integrity graphical user<br />

interface<br />

1 Display the window that contains the list or view you want to print.<br />

What is displayed in the window on the screen is what is printed. The<br />

following are some tips on printing tabular lists and views:<br />

Resize the window width to fit columns.<br />

Resize the column widths to fit cell contents.<br />

u s e r g u i d e


Quick Access<br />

Keys<br />

Source Integrity Graphical <strong>User</strong> Interface<br />

2 With the desired information displayed in the window, do one of the<br />

following:<br />

Select File > Print.<br />

Click .<br />

The Print dialog box is displayed.<br />

3 If necessary, modify the general, page setup, and appearance options.<br />

The following are some page setup tips for fitting more information on<br />

a page:<br />

Change the paper orientation to landscape to ac<strong>com</strong>modate larger<br />

window widths.<br />

Decrease page margins to fit more information on a page.<br />

If your printer supports multiple page sizes, select a larger paper<br />

size to fit more information on a page.<br />

NOTE<br />

Information from rows is not split across multiple printed pages.<br />

4 Click OK to print.<br />

The information is printed.<br />

Each printed page contains a header that displays the printing date,<br />

the user printing the document, and the window title. Each printed<br />

page is numbered in the footer.<br />

By default, this guide describes how to perform steps using the mouse. For<br />

your convenience, an alternate way to perform many of those same steps is<br />

available using the keyboard.<br />

Access Keys<br />

Keyboard access keys appear as underlined letters on a menu <strong>com</strong>mand, or<br />

as a dialog box option, allowing you to access most items on the interface.<br />

You use the access keys by pressing and holding the ALT key, then the key<br />

indicated by the underlined letter.<br />

Access keys can also be used in a sequence, for example, ALT, F, S. This<br />

sequence means press down and hold ALT, and then press F, and then S. In<br />

the main application window, performing this sequence would open the<br />

Select a Sandbox view.<br />

79


Chapter 4: Source Integrity Interfaces<br />

Configuring the<br />

Source Integrity<br />

Column Set<br />

80<br />

Shortcut Keys<br />

For some <strong>com</strong>mands, shortcut keys are provided as well as access keys.<br />

Shortcuts appear on menus opposite their <strong>com</strong>mand names. For example,<br />

in the Sandbox view:<br />

pressing the INSERT key is the same as selecting the Add Members<br />

<strong>com</strong>mand from the Sandbox menu or the Import Members <strong>com</strong>mand<br />

from the Project menu.<br />

pressing the F2 function key is the same as selecting the Check Out<br />

<strong>com</strong>mand from the Member menu.<br />

The information in any window displays in columns with headings and<br />

icons. You can configure these columns in many different ways to suit your<br />

needs, including changing the sort order, and adding or removing<br />

columns.<br />

Configuring Column Sorting<br />

You can sort the information in each column in an ascending or descending<br />

order. An arrow is displayed indicating the sort order and the members are<br />

sorted accordingly.<br />

Columns such as Name, Label and State are sorted alphabetically, while<br />

columns such as Member Rev., and C.P.ID are sorted numerically. The<br />

Locked column first sorts alphabetically by the locker’s name (the user that<br />

has a lock on the member) and then it sorts numerically by the date of the<br />

lock timestamp. The delta column is sorted by the delta types. The default<br />

sort order for columns is descending.<br />

To sort a column in the graphical user interface<br />

Do one of the following:<br />

Click the column heading.<br />

The sort order inverts and the members are sorted accordingly.<br />

Right click the column heading and select Sort > Ascending or Sort ><br />

Descending.<br />

The sort order is changed and the members are sorted accordingly.<br />

Adding, Removing, and Repositioning Columns<br />

You can change the columns that appear in your windows. You can add<br />

and remove columns or change the order in which they appear within the<br />

windows.<br />

u s e r g u i d e


To add a column in the graphical user interface<br />

Source Integrity Graphical <strong>User</strong> Interface<br />

Do one of the following:<br />

Right click a column heading and select the column you want to add<br />

from the menu, for example Attributes.<br />

The column is displayed in the window.<br />

Right click a column heading and select Columns.<br />

The Columns dialog is displayed where you can select the column that<br />

you want to add from the Not Visible list and add it to the Visible list<br />

by clicking . Click OK to finish the operation.<br />

The column is displayed in the window.<br />

To remove a column in the graphical user interface<br />

Do one of the following:<br />

Right click the column you want to remove and select Hide.<br />

The column is removed from the window.<br />

Right click a column heading and select Columns.<br />

The Columns dialog is displayed where you can select the column you<br />

want to remove from the Visible list and add it to the Not Visible list by<br />

clicking . Click OK to finish the operation.<br />

The column is removed from the window.<br />

To change the column order in the graphical user interface<br />

1 Right click a column heading and select Columns.<br />

The Columns dialog is displayed<br />

2 Select the column you want to move in the Visible list.<br />

3 Use the and buttons to move the column up or down in the<br />

column order.<br />

4 Click OK to finish the operation.<br />

The columns appear in the new order in the window.<br />

TIP<br />

You can also drag a column to a new location. Click the column heading you<br />

want to move, then drag it to the new location in the column set.<br />

81


Chapter 4: Source Integrity Interfaces<br />

Configuring the<br />

Source Integrity<br />

Toolbars<br />

82<br />

The main Source Integrity toolbar is fully customizable to suit your<br />

individual preferences. Changes made to the main toolbar are displayed<br />

immediately.<br />

Buttons on the main toolbar deal primarily with project and sandbox-level<br />

operations. You can configure the main toolbar to display only those<br />

buttons that you normally use and then position the buttons to suit your<br />

workflow.<br />

You can also define your own toolbar buttons to link to tasks that you<br />

perform frequently, for example, buttons that link to build scripts or other<br />

programs. Use separators to visually separate buttons and arrange<br />

functional groups to suit your workflow.<br />

You can customize the main toolbar by:<br />

hiding or showing specific buttons according to your preferences<br />

changing the sequence of the buttons<br />

using separators to group specific buttons according to your<br />

preferences<br />

resequencing toolbar buttons according to your preferences<br />

adding a custom toolbar button to link to frequently performed tasks<br />

In addition to configuring the main Source Integrity toolbar, you can<br />

configure toolbars associated with all of the views. For more information,<br />

see “To configure a view’s toolbar in the graphical user interface” on<br />

page 86.<br />

To customize the main toolbar in the graphical user interface<br />

1 Select Tools > Preferences.<br />

The Preferences dialog box opens.<br />

2 Under the General tab in the Look And Feel area, click .<br />

The Configure main toolbar dialog box opens.<br />

You can customize the main toolbar in the following ways:<br />

To add a button to the main toolbar, under Available Buttons,<br />

select the desired button. Then under Toolbar Contents, select the<br />

button you want the new button to appear below.<br />

Click .<br />

u s e r g u i d e


Source Integrity Graphical <strong>User</strong> Interface<br />

The target button is moved to the list of Toolbar Contents and<br />

appears on the main toolbar.<br />

To remove a button from the main toolbar, under Toolbar<br />

Contents, click to highlight the target button and then<br />

click .<br />

The target button is moved to the list of Available Buttons and no<br />

longer appears on the main toolbar.<br />

To add a separator, under Toolbar Contents, click to highlight the<br />

button you want the separator to appear below, then under<br />

Available Buttons, select a separator.<br />

Click .<br />

A separator is added at the specified location under Toolbar<br />

Contents.<br />

On the main toolbar, the separator is positioned to the right of the<br />

existing button or separator. You can remove the separator the<br />

same way as removing a button.<br />

To change the sequence of a button or separator, remove it from<br />

the Available Buttons list and then add it to the desired location.<br />

3 To accept the changes, click OK.<br />

The Configure main toolbar dialog box closes.<br />

4 To close the Preferences dialog box, click OK.<br />

Your changes display immediately on the main toolbar. The target<br />

button no longer appears on the main toolbar.<br />

To add a custom toolbar button to the main toolbar in the graphical<br />

user interface<br />

When adding a new button to the Toolbar Contents, the new button is<br />

inserted below the selected toolbar button or separator. On the graphical<br />

user interface toolbar, the new button is positioned to the right of the<br />

existing button or separator.<br />

83


Chapter 4: Source Integrity Interfaces<br />

84<br />

You can also use separators to separate buttons visually and arrange<br />

functional groups to suit your workflow. For more information on using<br />

separators, see “To customize the main toolbar in the graphical user<br />

interface” on page 82.<br />

NOTE<br />

You cannot delete a custom toolbar button once it is created. You can only hide<br />

the button or redefine it.<br />

1 Select Tools > Preferences.<br />

The Preferences dialog box opens.<br />

2 Under the General tab, Look And Feel, click .<br />

The Configure main toolbar dialog box opens.<br />

3 Under Available Buttons, click <strong>User</strong> 1 or another available custom<br />

toolbar button, then click .<br />

The Customize <strong>User</strong> Button dialog box opens.<br />

Enter the following information into the text fields:<br />

Program is the path to the program or script file that you want<br />

Source Integrity to run.<br />

To select the program, do one of the following:<br />

Enter the path to the program.<br />

Click Browse to select the program.<br />

Parameters are the options or flags the program requires to run. If<br />

no parameters are required, you can leave this field blank.<br />

Description is the descriptive ToolTip text that appears when the<br />

mouse pointer is paused over the button. This field is optional.<br />

Icon File is the path to the icon file that Source Integrity uses to<br />

represent the selected program or script.<br />

u s e r g u i d e


To select the icon file, do one of the following:<br />

Enter the path to the icon file.<br />

Click Browse to select the icon file.<br />

Source Integrity Graphical <strong>User</strong> Interface<br />

Environment File is a path to a text file that stores environment<br />

variables when the button is used. This field is optional. For more<br />

information on environment variables, see “Environment<br />

Variables” on page 92.<br />

To select the environment file, do one of the following:<br />

Enter the path to the environment file.<br />

Click Browse to select the environment file you have already<br />

created.<br />

4 To accept the changes, click OK.<br />

The Configure main toolbar dialog box closes.<br />

5 To close the Preferences dialog box, click OK.<br />

Your changes display immediately on the main toolbar. The new<br />

button icon is now positioned to the right of the selected toolbar<br />

button.<br />

To remove the button from the main toolbar, see “To customize the<br />

main toolbar in the graphical user interface” on page 82.<br />

To redefine a custom toolbar button in the graphical user interface<br />

1 Select Tools > Preferences.<br />

The Preferences dialog box opens.<br />

2 Under the General tab, Look And Feel, click .<br />

The Configure main toolbar dialog box opens.<br />

3 Under Toolbar Contents, double click the custom toolbar button you<br />

want to redefine.<br />

The Customize <strong>User</strong> Button dialog box opens.<br />

Redefine the text fields as required to select a new program or script.<br />

For more information on the Customize <strong>User</strong> Button dialog box, see “To<br />

add a custom toolbar button to the main toolbar in the graphical user<br />

interface” on page 83.<br />

4 To accept the changes, click OK.<br />

The Configure main toolbar dialog box closes.<br />

85


Chapter 4: Source Integrity Interfaces<br />

Dialog Box<br />

Options<br />

Using Filters<br />

86<br />

5 To close the Preferences dialog box, click OK.<br />

Your changes display immediately on the main toolbar. The new<br />

button icon is now positioned to the right of the selected toolbar<br />

button.<br />

To configure a view’s toolbar in the graphical user interface<br />

1 Select Tools > Preferences.<br />

The Preferences dialog box opens.<br />

2 Click the Views tab, then from the View list, select a view.<br />

3 Click .<br />

The Configure toolbar dialog box opens.<br />

4 Configure the toolbar as desired. For more information, see “To<br />

customize the main toolbar in the graphical user interface” on page 82.<br />

Dialog boxes that you may encounter include check boxes for many<br />

options. A blank check box ( ) means the option is not enabled, a check<br />

mark ( ) means the option is enabled, and a question mark ( ) means<br />

you will be prompted to confirm or specify the option.<br />

For large projects, use filters to display only the relevant members for your<br />

task. Filters allow you to view and manipulate a predefined subset of<br />

project members that are grouped according to their properties.<br />

NOTE<br />

The list of built-in filters only displays if a Project or Sandbox view is active.<br />

You must expand your project (including subprojects), or your sandbox<br />

(including subsandboxes), to view the filtered members.<br />

In the graphical user interface, and Project and Sandbox views, filters<br />

appear in the Filter list located on the toolbar.<br />

Filters for the Project History and Member History views are also available.<br />

For information on applying filters in the Project History view, see “Project<br />

History Filters” on page 264. For information on applying filters in the<br />

Member History view, see “Member History Filters” on page 311.<br />

By selecting the option for Hide Empty Sandboxes or Hide Empty Projects,<br />

you can also choose to remove any sandboxes or projects that do not<br />

contain members.<br />

u s e r g u i d e


Source Integrity Graphical <strong>User</strong> Interface<br />

Selecting the Hide Empty Sandboxes or Hide Empty Projects filters causes<br />

Source Integrity to recursively search each subproject for members and is<br />

therefore a server resource intensive operation. If you have a <strong>com</strong>plex<br />

project with numerous members, you may want to limit your use of this<br />

filtering option.<br />

NOTE<br />

All filters, except the Deferred Items filter, incorrectly show former members in<br />

the filtered view.<br />

Choose one of the following filters, and your view is filtered accordingly:<br />

All Members shows all members of the current project or sandbox.<br />

Any Member Deltas shows only members with working file changes or<br />

out of sync members.<br />

Modified Working Files shows only members with a working file that is<br />

modified.<br />

Out of Sync Members shows only members where the sandbox<br />

revision is not the same as the member revision in the corresponding<br />

project.<br />

New Revision Available shows only those members where a new<br />

revision is available.<br />

NOTE<br />

If you apply the New Revision Available filter in a variant sandbox, the filter<br />

returns only new revisions available in the variant sandbox, it does not return<br />

new revisions from the master project.<br />

Working File Size Deltas shows members with changes in the size (in<br />

bytes) of the working file.<br />

Missing Working Files shows only those members with missing<br />

working files.<br />

Existing Working Files shows members with existing working files.<br />

New Members shows only those members that are newly added to the<br />

project and that have not yet been modified.<br />

Working File on Branch shows members where the working file is on a<br />

branch from a given development path that is not the trunk<br />

development path.<br />

Unresolved Merges shows members affected by unresolved merges.<br />

87


Chapter 4: Source Integrity Interfaces<br />

88<br />

Work in Progress <strong>com</strong>bines the Deferred Items, Members Locked By<br />

Me, and Modified Working Files filters to show members that are<br />

considered work in progress.<br />

Locked Members shows those members locked by any user.<br />

Members Locked By Me shows only members locked by you.<br />

Frozen Members shows only frozen members.<br />

Members with Attribute shows only members with a particular<br />

attribute. If you choose this filter, Source Integrity prompts you for the<br />

target attribute and value. For more information on member<br />

attributes, see “Working With Member Attributes” on page 290.<br />

Enter the target attribute name in the Attribute field and the value for<br />

that attribute in the Value field, then click OK.<br />

Members at Label shows only members that have the specified label<br />

assigned at the member revision. If you choose this filter,<br />

Source Integrity prompts you for the target label.<br />

Enter the label name in the Label field, then click OK.<br />

Members with Label shows only members with the specified label<br />

somewhere in their member history. If you choose this filter,<br />

Source Integrity prompts you for the target label.<br />

Enter the label name in the Label field, then click OK.<br />

Members at State shows only member revisions that have been<br />

assigned a specific promotion state. If you choose this filter,<br />

Source Integrity prompts you to identify the target state. For more<br />

information on promotion states, see “Promoting Members” on<br />

page 299.<br />

Enter a state in the State field, then click OK.<br />

Members with Name shows only members with the specified name. If<br />

you choose this filter, Source Integrity prompts you to identify the<br />

target name.<br />

Enter a name, including the file extension, in the Name field (for<br />

example, utility.dll), then click OK.<br />

Members on Branch shows only members that are off the main<br />

development trunk.<br />

Pending Operations shows any members in your sandbox that are<br />

associated with a pending operations. For more information, see<br />

“Pending Operations” on page 204.<br />

u s e r g u i d e


Source Integrity Graphical <strong>User</strong> Interface<br />

Deferred Items shows any members in your sandbox that are<br />

associated with a pending deferred operation, such as a deferred add,<br />

drop, check in, or rename.<br />

Once a filter is applied to a project, operations performed on all project<br />

members apply only to those members shown as a result of the filter. For<br />

example, if you apply the filter for Modified Working Files and then<br />

perform a Member > Lock operation for that project, the lock operation<br />

applies only to those members shown by the Modified Working Files filter.<br />

Regular Expression Filter (GUI)<br />

A regular expression is a set of symbols and syntactic characters used to<br />

match patterns of text. The Regular Expression filter allows you to apply a<br />

standard regular expression as a filter to a particular selection within<br />

specific dialog boxes in Source Integrity.<br />

There are three selection elements that the Regular Expression filter applies<br />

to, development paths, revisions, and labels. You can, for example, filter a<br />

long list of development paths to find the particular one you are looking<br />

for without scrolling through that long list.<br />

The following table outlines the specific dialog boxes and selection<br />

elements that you can apply the Regular Expression filter to:<br />

à Ã<br />

Create Sandbox On the Specify Type of Sandbox panel, you can filter on<br />

Variant Development Path Name list, Build Revision<br />

list, and Build Label list.<br />

Check Out Under Revision to Check Out, you can filter on the<br />

Revisions list and Labels list.<br />

Create Development<br />

Path<br />

Remove<br />

Development Path<br />

Under Revision, you can filter on the Revisions list and<br />

Labels list.<br />

You can filter on the Development Path list.<br />

Merge Branch Under Target or Branch, you can filter on the Revision<br />

list.<br />

Member Information On the General panel, you can filter on the Member<br />

Revision list.<br />

Delete Label You can filter on the Label list.<br />

Update Revision Under Revision to Set, you can filter on the Revisions<br />

list and Labels list.<br />

Restore Project Under Revision, you can filter on the Revisions list and<br />

Labels list.<br />

89


Chapter 4: Source Integrity Interfaces<br />

90<br />

If you are unfamiliar with using regular expressions, the following<br />

resources can provide more details:<br />

“Matchmaking with regular expressions” by Benedict Chng at<br />

http://www.javaworld.<strong>com</strong>/javaworld/jw-07-2001/jw-0713regex.html<br />

Mastering Regular Expressions by Jeffrey E. F. Friedl, published in 1997<br />

by O’Reilly (www.oreilly.<strong>com</strong>)<br />

To apply the Regular Expression filter in the Check Out, Create<br />

Development Path, Update Revision, or Restore Project dialog box in<br />

the graphical user interface<br />

1 Click the selection element you want to filter, for example, the<br />

Revisions list.<br />

An example of the Revisions list highlighted as the selection element for<br />

filtering.<br />

2 On the keyboard press CTRL + F3 to initiate the filter.<br />

The Please Supply A Pattern To Use dialog box is displayed.<br />

3 In the Filter Pattern field, type the expression you want to use, for<br />

example, a[bc]*.<br />

TIP<br />

The Regular Expression filter remembers up to 5 previous expressions used in<br />

any given session. To use an expression again, select it from the Filter Pattern<br />

list, and click OK.<br />

To undo a filter and return to your original unfiltered selection list,<br />

select No Filter from the Filter Pattern list, and click OK.<br />

u s e r g u i d e


Source Integrity Graphical <strong>User</strong> Interface<br />

4 Select the column you want to apply the filter to from the Column to<br />

Filter on list.<br />

5 Click OK to <strong>com</strong>plete the operation.<br />

The selection is filtered. Only files matching your expression<br />

arguments appear available in the selection list.<br />

To apply the Regular Expression filter in the Remove Development<br />

Path, Merge Branch, Member Information, Delete Label or Create<br />

Sandbox dialog box in the graphical user interface<br />

1 Click the selection element you want to filter, highlighting it, for<br />

example, the Revisions list.<br />

An example of the Revisions list highlighted as the selection element for<br />

filtering.<br />

2 On the keyboard press CTRL + F3 to initiate the filter.<br />

The Please Supply A Pattern To Use dialog box is displayed.<br />

3 In the Filter Pattern field, type the expression you want to use, for<br />

example, a[bc]*.<br />

TIP<br />

The Regular Expression filter remembers up to 5 previous expressions used in<br />

any given session. To use an expression again, select it from the Filter Pattern<br />

list, and click OK.<br />

To undo a filter and return to your original unfiltered selection list,<br />

select No Filter from the Filter Pattern list, and click OK.<br />

91


Chapter 4: Source Integrity Interfaces<br />

Environment<br />

Variables<br />

92<br />

4 Click OK to <strong>com</strong>plete the operation.<br />

The selection is filtered. Only files matching your expression<br />

arguments appear available in the selection list.<br />

Environment variables are accessed by external programs configured<br />

under the user toolbar buttons. When using these variables, the names<br />

must be in uppercase or Source Integrity will not recognize them. You can<br />

use the environment variables listed in this section.<br />

Window Type Opened Associated Environment Variable<br />

All The environment variable MKSSI_WINDOW is set in all cases.<br />

If there is no active window, or no window, then:<br />

MKSSI_WINDOW=none<br />

If there is an active window, then:<br />

MKSSI_WINDOW=[project|sandbox|projecthistory]<br />

Otherwise, the value is set to a window-specific value:<br />

MKSSI_WINDOW=archive<br />

If the active window is a different window, then:<br />

MKSSI_WINDOW=unknown<br />

For example, a Project Modifications window that does not produce any specific<br />

environment variables:<br />

MKSSI_WINDOW=unknown<br />

Note: For the values none and unknown, no other variables are set.<br />

All known window types set three variables for the server:<br />

MKSSI_HOST<br />

MKSSI_PORT<br />

MKSSI_USER<br />

Because Source Integrity supports multiple connections to the server, you should<br />

specify the following environment variables when running a <strong>com</strong>mand line<br />

operation from the toolbar:<br />

si --host=$MKSSI_HOST --port=$MKSSI_PORT<br />

--user=$MKSSI_USER<br />

u s e r g u i d e


Window Type Opened Associated Environment Variable<br />

Project For an open project window:<br />

Source Integrity Graphical <strong>User</strong> Interface<br />

MKSSI_WINDOW=project<br />

MKSSI_FILE=server-side-project-path<br />

MKSSI_NMEMBER=number of MKSSI_MEMBERxx entries<br />

MKSSI_NSUBPROJECT=number of MKSSI_SUBPROJECTyy entries<br />

If any members are selected, then the following variables apply:<br />

MKSSI_MEMBERxx=path-relative-to-project<br />

MKSSI_MEMBER_PROJECTxx=server-side-project/subproject-path<br />

If any subprojects are selected, then the following variables apply:<br />

MKSSI_SUBPROJECTyy=path-relative-to-project<br />

MKSSI_SUBPROJECT_PROJECTyy=server-side-project/subprojectpath<br />

That is, if there are n members selected and m subprojects selected then you have<br />

n occurrences of MKSSI_MEMBER numbered from 1 to n and the number n is also<br />

passed in MKSSI_NMEMBER. There are also occurrences of MKSSI_SUBPROJECT,<br />

numbered from 1 to m, and the number m is passed in MKSSI_NSUBPROJECT.<br />

If a subdirectory is selected, then it is as if that subdirectory is recursively<br />

expanded (only the directories, not subprojects) and all members are selected.<br />

Because a given member may not be in the top level project that is open in the<br />

view, each variable for MKSSI_MEMBER and MKSS_SUBPROJECT has a<br />

corresponding entry for MKSSI_MEMBER_PROJECTxx and<br />

MKSSI_SUBPROJECT_PROJECTxx. Therefore, each MEMBER/SUBPROJECT<br />

variable is relative to its corresponding PROJECT entry, not to the top level<br />

indicated in MKSSI_FILE.<br />

For example:<br />

i=1<br />

while [ $i -le $MKSSI_NMEMBER ]<br />

do<br />

eval si <strong>com</strong>mand<br />

-P\${MKSSI_MEMBER_PROJECT$i}\${MKSSI_MEMBER$i}<br />

let i=i+1<br />

done<br />

Note: If set, the environment variables MKSSI_VARIANT and MKSSI_BUILD are<br />

also exported when invoking an si <strong>com</strong>mand with the options for --devpath and<br />

--projectrevision.<br />

Sandbox For an open sandbox window:<br />

MKSSI_WINDOW=sandbox<br />

MKSSI_FILE=full-path-to-sandbox<br />

MKSSI_NMEMBER=number of MKSSI_MEMBER objects<br />

MKSSI_NSUBPROJECT=number of MKSSI_SUBPROJECT objects<br />

Note: The variables MKSSI_MEMBERxx= and MKSSI_SUBPROJECTxx= take the<br />

same settings as for a project window. The corresponding variables<br />

MKSSI_MEMBER_SANDBOXxx and MKSSI_SUBPROJECT_SANDBOXxx are also as<br />

described for a project. If applicable, MKSSI_VARIANT and MKSSI_BUILD are<br />

also set.<br />

93


Chapter 4: Source Integrity Interfaces<br />

Window Type Opened Associated Environment Variable<br />

Member History For an open member history window:<br />

MKSSI_WINDOW=archive<br />

MKSSI_FILE=pathname-relative to project/sandbox of archive<br />

If the window was opened via a sandbox:<br />

MKSSI_WORKINGFILE=full-path-to-working-file<br />

MKSSI_SANDBOX=full-path-to-sandbox<br />

Note: MKSSI_WORKINGFILE is not set if the working file does not exist.<br />

If the window was opened via a project:<br />

MKSSI_PROJECT=server-path-to-project<br />

If the project/sandbox was a variant:<br />

MKSSI_VARIANT=variant-name<br />

If the project/sandbox was a build:<br />

MKSSI_BUILD=build-number<br />

If revisions were selected:<br />

MKSSI_REVISION=highest revision in selection<br />

MKSSI_REVISIONxx=1.2<br />

That is, there are n variables from MKSSI_REVISION1 to MKSSI_REVISIONxx,<br />

containing each selected revision number.<br />

Project History For an open project history window:<br />

MKSSI_WINDOW=projecthistory<br />

MKSSI_FILE=server-side-project-path<br />

Note: MKSSI_REVISIONxx is set in the same way as a member history.<br />

Source Integrity Web Interface<br />

94<br />

Source Integrity includes a Web interface that allows project managers to<br />

perform key tasks related to project members. Using the Source Integrity<br />

Web interface, you can manage projects and project members, view project<br />

and member histories, and work with project and member attributes—and<br />

this functionality is available without you having to install the<br />

Source Integrity client on your machine.<br />

The Web interface is a program interface that appears in a Web browser,<br />

such as Netscape Navigator and Microsoft Internet Explorer. Working in a<br />

Web interface offers the familiar functionality of a Web browser with no<br />

client installation required.<br />

The Source Integrity Web interface accesses only the Project view and<br />

functionality related to managing project members. For example, you can<br />

view a member revision, check out and check in a member. Similarly, you<br />

can view differences between revisions, but you cannot merge those<br />

revisions.<br />

u s e r g u i d e


Application<br />

Window<br />

Source Integrity Web Interface<br />

The Integrity Server wel<strong>com</strong>e page provides a link to the read-only version<br />

of the Web interface. You can connect to the read-only Web interface by<br />

clicking the read-only mode link displayed under Start Source Integrity<br />

Web Interface.<br />

NOTE<br />

Other functionality related to sandboxes is available only through the graphical<br />

user interface and the <strong>com</strong>mand line interface.<br />

The Source Integrity Web interface window contains a number of <strong>com</strong>mon<br />

features explained in this section.<br />

Title Bar<br />

The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />

the left side, the title bar displays the name of the software program. On<br />

the right side, the title bar displays the standard Windows buttons for<br />

minimizing, resizing, and closing the application window.<br />

You can also use the active links in the title bar to navigate within the<br />

project. To navigate to a subproject, click the applicable portion of the link.<br />

Menu Bar<br />

The menu bar is located directly below the title bar. Each menu contains<br />

available <strong>com</strong>mands. When you first start the Source Integrity Web<br />

interface, there are three menus in the menu bar: File, Tools, and Help. The<br />

list of available menus and <strong>com</strong>mands varies depending on the function<br />

you are performing (for example, working with a project or with a member<br />

history).<br />

95


Chapter 4: Source Integrity Interfaces<br />

96<br />

NOTE<br />

In the Source Integrity Web interface, application functionality is not available<br />

through the shortcut menu.<br />

To see the current user and server that the Source Integrity Web interface is<br />

connected to, point to the Source Integrity icon ( ). A ToolTip appears<br />

displaying the user and server, for example, mkern@abc_server:7001.<br />

Toolbar<br />

Immediately below the menu bar is a toolbar that provides easy access to<br />

the most <strong>com</strong>monly used Source Integrity <strong>com</strong>mands. Toolbar functions<br />

are carried out by clicking the appropriate toolbar button with the left<br />

mouse button. ToolTips, which explain the function of each toolbar button,<br />

appear when you hold the mouse pointer over the button.<br />

Most toolbar buttons only be<strong>com</strong>e available when an item is selected in a<br />

certain window. For example, selecting a project in a Project view displays<br />

project <strong>com</strong>mand toolbar buttons.<br />

Project View<br />

The Source Integrity Web interface provides access to the Project view. The<br />

Project view displays the project members and hierarchy for projects<br />

registered with the Integrity Server.<br />

The Project view also gives you access to project-level functions and a<br />

limited number of member-level functions.<br />

Status Bar<br />

When you select a <strong>com</strong>mand from a Source Integrity menu, a brief<br />

explanation of its purpose and status displays in the status bar. The status<br />

bar also displays the user, server and port number currently logged in for<br />

the session. In addition, when you point to a toolbar button, you can see an<br />

explanation of its function.<br />

Filter List<br />

Beside the toolbar is an optional list of built-in filters that allow you to<br />

focus your view on a subset of the project members you are currently<br />

interested in. Source Integrity displays only those members that meet the<br />

criteria specified by the filter.<br />

u s e r g u i d e


Using Filters<br />

Source Integrity Web Interface<br />

For large projects, use filters to display only the relevant members for your<br />

task. Filters allow you to view and manipulate a predefined subset of<br />

project members that are grouped according to their properties.<br />

The Source Integrity Web interface provides a reduced set of filters related<br />

to managing project members. The filters appear in the Filter list located on<br />

the toolbar.<br />

Choose one of the following filters and your view is filtered accordingly:<br />

All Members shows all members of the current project.<br />

Locked Members shows those members locked by any user.<br />

Members Locked By Me shows only members locked by you.<br />

Frozen Members shows only frozen members.<br />

Members at Label shows only members that have the specified label<br />

assigned at the member revision. If you choose this filter,<br />

Source Integrity prompts you for the target label. For more<br />

information on member attributes, see “Working With Member<br />

Attributes” on page 290.<br />

Under Specify a Label, enter the label name in the field, then click OK.<br />

Members with Label shows only members with the specified label<br />

somewhere in their member history. If you choose this filter,<br />

Source Integrity prompts you for the target label.<br />

Under Specify a Label, enter the label name in the field, then click OK.<br />

Members at State shows only member revisions that have been<br />

assigned a specific promotion state. If you choose this filter,<br />

Source Integrity prompts you to identify the target state. For more<br />

information on promotion states, see “Promoting Members” on<br />

page 299.<br />

Under Specify a State, enter the state name in the field, then click OK.<br />

Members with Attribute shows only members with a particular<br />

attribute. If you choose this filter, Source Integrity prompts you for the<br />

target attribute and value.<br />

Under Specify a Member Attribute, enter the attribute name in the<br />

field, then click OK. Enter the target attribute name in the Attribute<br />

field and the value for that attribute in the Value field, then click OK.<br />

Member on Branch shows only members that are off the main<br />

development trunk.<br />

97


Chapter 4: Source Integrity Interfaces<br />

Command Line Interface<br />

Viewing<br />

Available CLI<br />

Commands<br />

Using the<br />

Graphical <strong>User</strong><br />

Interface From<br />

the CLI<br />

98<br />

Once a filter is applied to a project, operations performed on project<br />

members apply only to those members shown as a result of the filter. For<br />

example, if you apply the filter for Members at State and then perform a<br />

Member > Lock operation for that project, the lock operation applies only to<br />

those members shown by the Members at State filter.<br />

Source Integrity provides a <strong>com</strong>mand line interface (CLI) to manage your<br />

projects, sandboxes, and members, and to configure Source Integrity. To<br />

access the <strong>com</strong>mand line interface from a <strong>com</strong>puter running Windows,<br />

from the Start menu select MS-DOS Prompt or Command Prompt<br />

(depending on the version of Windows).<br />

The <strong>com</strong>mand line interface, or CLI, is a program that allows a user to<br />

enter keywords as instructions to a <strong>com</strong>puter or device to perform specific<br />

tasks. (The MS-DOS® Command Prompt is an example of a CLI.) Results<br />

are typically outputted as simple text to the user’s terminal.<br />

The Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> and man pages<br />

provide <strong>com</strong>plete information about all Source Integrity <strong>com</strong>mands and<br />

their options.<br />

NOTE<br />

If you are using the <strong>com</strong>mand line interface with a Linux, Solaris, AIX, or<br />

HP-UX client, you must manually add /bin/ to your<br />

default PATH, located in your home directory startup files.<br />

If you are working within the sandbox directory where you want to perform<br />

<strong>com</strong>mands you do not need to specify the sandbox name in the <strong>com</strong>mand<br />

options.<br />

You can view available Source Integrity <strong>com</strong>mands by typing si.<br />

To view a list of a <strong>com</strong>mand’s options, add -? or --usage to the end of the<br />

<strong>com</strong>mand, for example, si connect -?.<br />

In addition to using the <strong>com</strong>mand line interface by itself, you can also<br />

<strong>com</strong>bine the graphical user interface with <strong>com</strong>mands entered in the<br />

<strong>com</strong>mand line interface. This can be useful if you prefer to perform certain<br />

operations in the <strong>com</strong>mand line interface and others in the graphical user<br />

interface.<br />

u s e r g u i d e


Command<br />

Prompts<br />

Member Name<br />

Arguments<br />

Command Line Interface<br />

For example, you can use the si co <strong>com</strong>mand to check out a file, attaching<br />

-g or --gui to the end of the <strong>com</strong>mand to view the Check Out dialog box.<br />

You can then select check out options.<br />

This allows you to use the Check Out dialog box without having to launch<br />

the graphical user interface.<br />

For more information on using the graphical user interface with the<br />

<strong>com</strong>mand line interface, see the Source Integrity Enterprise Edition CLI<br />

Reference <strong>Guide</strong> and the online man pages.<br />

You can use some Source Integrity <strong>com</strong>mands without specifying any<br />

options, for example, si connect. Entering only the <strong>com</strong>mand prompts<br />

you to add additional information that you would normally add in the<br />

form of <strong>com</strong>mand options. This is useful for <strong>com</strong>mands, such as si<br />

connect, because the prompts may contain default information, for<br />

example, your default Integrity Server and port number. This information,<br />

if it exists, is in your IntegrityClient.rc or<br />

IntegrityClientSite.rc file.<br />

For project and sandbox <strong>com</strong>mands, member refers to members of an<br />

Integrity Server project. If the member argument is omitted for project or<br />

sandbox <strong>com</strong>mands, the <strong>com</strong>mand is applied to all of the members of the<br />

project or sandbox. The member element must be the last entry of a<br />

<strong>com</strong>mand statement.<br />

There are three ways to apply a <strong>com</strong>mand to multiple members:<br />

Type Multiple Member Names<br />

You can enter two or more member names, separated by spaces, as the<br />

member <strong>com</strong>ponent. For example, the <strong>com</strong>mand:<br />

si co -S project.pj prog.c brochur.toc brochur.idx<br />

checks out all three members. You can name as many members as you<br />

like on the <strong>com</strong>mand line (subject to the line length limitations of your<br />

operating system).<br />

NOTE<br />

Source Integrity <strong>com</strong>mands do not span <strong>com</strong>mand shell line lengths.<br />

99


Chapter 4: Source Integrity Interfaces<br />

100<br />

Use Wildcards<br />

Use wildcards in the member <strong>com</strong>ponent. For example, the <strong>com</strong>mand:<br />

si ci -S c:\work\project.pj brochur.*<br />

checks in all members with the base name brochur and any<br />

extension.<br />

Specify a Member List<br />

A member list (specified with the -F member option) is a text file<br />

containing the names of the members a <strong>com</strong>mand should be applied<br />

to. For example, the <strong>com</strong>mand:<br />

si ci -S c:\work\project.pj -F flist.lst<br />

checks in all the members listed in the flist.lst file.<br />

Members named in the member element may have any level of path<br />

qualification.<br />

A member list is a text file containing a list of member names, with each<br />

name on a line by itself. When you pass a member list to Integrity Server, it<br />

reads the member names and applies the <strong>com</strong>mand to them in sequence.<br />

You can create a member list with any text editor by typing member<br />

names—one name per line—in a plain text file. Alternatively, you can<br />

<strong>com</strong>pile a list of members with the find <strong>com</strong>mand and copy them to a text<br />

file. The find <strong>com</strong>mand is a standard UNIX utility and is available on<br />

Win32 based systems with MKS Toolkit.<br />

MKS Visual Difference Interface<br />

The MKS Visual Difference tool is a graphical application that allows you<br />

to <strong>com</strong>pare a working file and a member revision, or two revisions. It<br />

offers two-way differencing of revisions where differences are highlighted<br />

for you.<br />

u s e r g u i d e


Application<br />

Window<br />

MKS Visual Difference Interface<br />

Similar to the Source Integrity application window, MKS Visual Difference<br />

contains a number of <strong>com</strong>mon features explained in this section.<br />

Title Bar<br />

The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />

the left side, the title bar displays the name of the application and the<br />

member name. On the right side, the title bar displays the standard<br />

Windows buttons for minimizing, resizing, and closing the application<br />

window.<br />

Menu Bar<br />

The menu bar is located directly below the title bar. Each menu contains<br />

available operations. When you first start MKS Visual Difference, there are<br />

three menus in the menu bar: File, View, and Help. The list of available<br />

menus and operations varies depending on the function you are<br />

performing (for example, working in differences mode or merge mode).<br />

101


Chapter 4: Source Integrity Interfaces<br />

102<br />

Toolbar<br />

Immediately below the menu bar is a toolbar that provides easy access to<br />

the most <strong>com</strong>monly used Visual Difference operations. Toolbar functions<br />

are carried out by clicking the appropriate toolbar button. Point to a button<br />

to display a ToolTip that contains a description for that button.<br />

Toolbar buttons be<strong>com</strong>e available and unavailable for use depending on<br />

the mode you are in. For more information, see “Modes” on page 104.<br />

Located immediately below the toolbar buttons are display controls that<br />

change what appears in the view panes. These controls are also available in<br />

the View menu.<br />

NOTE<br />

The Ignore Whitespace, Ignore Case, and Ignore Blanks display controls can<br />

only be adjusted before making changes to the Merge Result. Once you begin<br />

to make changes, (merging or editing), the options be<strong>com</strong>e unavailable.<br />

Difference Blocks is a list containing all of the difference blocks in the<br />

revisions, including the type of difference (change, insertion, deletion),<br />

and the line numbers. If you are working in Merge mode, the<br />

Difference Blocks list also includes edit blocks.<br />

To move to a particular difference block, select the block from the<br />

Difference Blocks list.<br />

The selected difference block appears.<br />

Ignore Whitespace ignores tab and white space throughout the lines in<br />

the revisions.<br />

Ignore Case ignores the type case when <strong>com</strong>paring the revisions.<br />

NOTE<br />

Under the View menu, the following controls are also available:<br />

Synchronize Scrolling causes all of the panes to scroll simultaneously. This<br />

control is enabled by default.<br />

Ignore Blanks ignores white space at the end of lines, and changes it to white<br />

space elsewhere in the line.<br />

u s e r g u i d e


View Panes<br />

MKS Visual Difference Interface<br />

The view panes appear within the MKS Visual Difference window and<br />

display the revisions you are <strong>com</strong>paring including line numbers for<br />

navigation (line numbers can be removed through the MKS Visual<br />

Difference options). Scrolling in the view panes is synchronized.<br />

In Merge mode, there are two different layouts for the view panes, vertical<br />

layout and split layout.<br />

The vertical layout displays two revisions side-by-side for <strong>com</strong>parison.<br />

You can view either the Merge From and Merge To, or by clicking the View<br />

Merge Result button, you can view the Merge From and the Merge Result.<br />

The split layout displays three revisions for <strong>com</strong>parison. The Merge From<br />

and Merge To are displayed side-by-side, and the Merge Result pane<br />

appears below them.<br />

In the Merge Result a number immediately to the left of the line numbers<br />

appears to indicate which revision, Merge From (1) or Merge To (2), the<br />

block originated from.<br />

To change the layout of the view panes in Merge mode, use the View<br />

vertical layout and View split layout buttons on the toolbar, or select View ><br />

Vertical Pane Layout or View > Split Pane Layout.<br />

To display a specific line of code, select View > Go to Line or click . In<br />

the Go to dialog box, from the File list, select the file that contains the line<br />

you want to view. In the Go to Line field, enter the number of the line, for<br />

example, 33. The line of code is displayed in the center of the pane if it<br />

exists in a scrolling region.<br />

The Merge From is the revision or working file (as specified by the<br />

Reassign Merge Roles dialog box), from which blocks are merged. For<br />

information on the Reassign Merge Roles dialog box, see “Merging Two<br />

Revisions” on page 356.<br />

The Merge To is the revision or working file (as specified by the Reassign<br />

Merge Roles dialog box), that the Merge Result file is based on.<br />

The Merge Result file is the file that blocks are merged into, and can be<br />

edited and saved to contain the output of the merge.<br />

The Differences mode uses only the vertical layout, which displays the two<br />

selected revisions side-by-side for <strong>com</strong>parison.<br />

103


Chapter 4: Source Integrity Interfaces<br />

Modes<br />

104<br />

Shortcut Menu<br />

MKS Visual Difference supports standard shortcut menus in Merge mode.<br />

To display the menu of actions you can perform, select a line in any pane<br />

and right click. MKS Visual Difference displays the applicable shortcut<br />

menu.<br />

The available actions displayed in the shortcut menu depends on whether<br />

you right click within the Merge From, Merge To or the Merge Result view<br />

panes.<br />

Shortcut Keys<br />

For some operations, shortcut keys are provided. Shortcut keys appear on<br />

menus opposite their operation names.<br />

NOTE<br />

In MKS Visual Difference, the operations available in a given menu depends on<br />

which mode you are working in. For information on modes, see “Modes” on<br />

page 104<br />

Status Bar<br />

The status bar provides a short summary of the difference blocks for Merge<br />

From and Merge To. It shows insertions, deletions, and changes with a<br />

number indicating how many of each exist.<br />

MKS Visual Difference can operate in two different modes depending on<br />

what it is being used for. Since Visual Difference is both a differencing tool<br />

and a merging tool, it has a Differences mode and a Merge mode.<br />

The Differences mode is used to <strong>com</strong>pare revisions and display the<br />

differences between them. No merging operations are available in the<br />

Differences mode.<br />

The Merge mode is used for all merging related operations and editing.<br />

You can toggle between the two modes in Visual Difference by selecting<br />

File > Differences or File > Merge, or you can click the Differences or Merge<br />

buttons on the toolbar.<br />

When you switch from the Differences mode to the Merge mode, the<br />

Reassign Merge Roles dialog box is displayed. This dialog box allows you<br />

to specify which revision you want as the Merge From and Merge To.<br />

A bullet is displayed next to the mode currently being used.<br />

u s e r g u i d e


Preferences<br />

MKS Visual Difference Interface<br />

Preferences allow you to customize the appearance of the MKS Visual<br />

Difference interface. You can configure general preferences, and font and<br />

color preferences.<br />

Setting General Preferences<br />

Under the General tab, you can set your options for the toolbar, line<br />

numbers, and tab expansion.<br />

To set general preferences in the MKS Visual Difference interface<br />

1 Select View > Preferences.<br />

The Preferences dialog box is displayed.<br />

2 To configure your toolbar, click the Toolbar button.<br />

3 Configure the toolbar as desired. For more information, “To customize<br />

the main toolbar in the graphical user interface” on page 82.<br />

NOTE<br />

The toolbar buttons available for configuration varies depending on which<br />

mode you are working in.<br />

105


Chapter 4: Source Integrity Interfaces<br />

106<br />

4 Under Miscellaneous, set the following options:<br />

To display line numbers in the revisions, select Show Line<br />

Numbers. Clear this option if you want to remove line numbers.<br />

To set the tab size, in the Expand tabs to field enter the number of<br />

spaces you want tabs expanded to. Changes to tab size do not<br />

take effect until the tool is invoked again.<br />

5 Click OK to save your changes.<br />

Setting Font and Color Preferences<br />

Under the Fonts & Colors tab, you can set your preferences for the colors<br />

and fonts used in MKS Visual Difference.<br />

You can use the Reset to Defaults button to reset the display to the original<br />

fonts and colors.<br />

To set font and color preferences in the MKS Visual Difference<br />

interface<br />

1 Select View > Preferences.<br />

The Preferences dialog box is displayed.<br />

2 Click the Fonts & Colors tab.<br />

The Fonts & Colors panel is displayed.<br />

u s e r g u i d e


MKS Visual Merge Interface<br />

3 To change the background color of a particular block (Unchanged,<br />

Inserted, Deleted, Changed, Edited), click the corresponding<br />

Background button.<br />

The Choose Background Color dialog box is displayed.<br />

4 Set your preferred color on the Swatches, HSB or RGB tabs. The<br />

Preview at the bottom of the dialog box displays the selected color for<br />

you.<br />

5 Click OK to set the background color.<br />

6 To change the foreground color of a particular block (Unchanged,<br />

Inserted, Deleted, Changed, Edited) click the corresponding<br />

Foreground button.<br />

The Choose Foreground Color dialog box is displayed.<br />

7 Set your preferred color on the Swatches, HSB, or RGB tabs.<br />

The Preview at the bottom of the dialog box displays the selected color<br />

for you.<br />

8 Click OK to set the foreground color.<br />

9 To set the display font for a particular block (Unchanged, Inserted,<br />

Deleted, Changed, Edited), click the corresponding Font button.<br />

The Choose Font dialog box is displayed.<br />

10 Select the Font, Style and Size from the corresponding list.<br />

The Sample at the bottom of the dialog box displays the selected font,<br />

style and size for you.<br />

11 Click OK to set the font.<br />

12 Click OK to save your font and color changes.<br />

MKS Visual Merge Interface<br />

MKS Visual Difference is updated with your changes.<br />

The MKS Visual Merge tool is a graphical application that allows you to<br />

<strong>com</strong>pare revisions and perform edits and merges. It offers three-way<br />

differencing of revisions where conflicts are highlighted for you. It features<br />

in-line editing, differencing, and conflict resolution. It is similar to MKS<br />

Visual Difference in look and feel, but includes many advanced features<br />

used for <strong>com</strong>plicated merging tasks.<br />

107


Chapter 4: Source Integrity Interfaces<br />

Application<br />

Window<br />

108<br />

The three-way differencing in MKS Visual Merge allows you to <strong>com</strong>pare<br />

the two revisions selected for merging, the Merge From revision and the<br />

Merge Base revision, as well as the working file or Merge To file for the<br />

member. The revisions are highlighted for differences and conflicts<br />

allowing you to choose the blocks you want to merge from each revision<br />

and save to the Merge Result file.<br />

Conflicts, if they exist, are highlighted and appear with a red flag next to<br />

the line number. With all three files available for <strong>com</strong>parison in MKS<br />

Visual Merge you can decide which of the conflicting blocks you want to<br />

incorporate into the merge result, or you can use the editing utilities to<br />

insert blocks from each revision into the merge result.<br />

Similar to the Source Integrity application window, MKS Visual Merge<br />

contains a number of <strong>com</strong>mon features explained in this section.<br />

u s e r g u i d e


Title Bar<br />

MKS Visual Merge Interface<br />

The title bar is the uppermost <strong>com</strong>ponent of the application window. On<br />

the left side, the title bar displays the name of the application and the<br />

member name. On the right side, the title bar displays the standard<br />

Windows buttons for minimizing, resizing, and closing the application<br />

window.<br />

Menu Bar<br />

The menu bar is located directly below the title bar. Each menu contains<br />

available <strong>com</strong>mands. MKS Visual Merge has four menus in the menu bar:<br />

File, Edit, View, and Help. The list of available <strong>com</strong>mands varies depending<br />

on the function you are performing.<br />

Toolbar<br />

Immediately below the menu bar is a toolbar that provides easy access to<br />

the most <strong>com</strong>monly used MKS Visual Merge <strong>com</strong>mands. Toolbar functions<br />

are carried out by clicking the appropriate toolbar button. Point to a button<br />

to display a ToolTip that contains a description for that button.<br />

Located immediately below the toolbar buttons are display controls that<br />

change what appears in the view panes. These controls are also available in<br />

the View menu.<br />

NOTE<br />

The Ignore Whitespace, Ignore Case, and Ignore Blanks display controls can<br />

only be adjusted before making changes to the Merge Result. Once you begin<br />

to make changes, (merging or editing), the options be<strong>com</strong>e unavailable.<br />

Difference Blocks is a list containing all of the difference blocks in the<br />

revisions, including the type of difference (change, insertion, deletion,<br />

and conflict), and the line numbers.<br />

To move to a particular difference block, select the block from the<br />

Difference Blocks list.<br />

The selected difference block is displayed.<br />

Ignore Whitespace ignores tab and white space throughout the lines in<br />

the revisions.<br />

Ignore Case ignores the type case when <strong>com</strong>paring the revisions.<br />

109


Chapter 4: Source Integrity Interfaces<br />

110<br />

NOTE<br />

Under the View menu, the following controls are also available:<br />

Synchronize Scrolling causes all of the panes to scroll simultaneously. This<br />

control is enabled by default.<br />

Ignore Blanks ignores white space at the end of lines, and changes it to white<br />

space elsewhere in the line.<br />

View Panes<br />

The view panes appear within the MKS Visual Merge window and display<br />

the revisions you are <strong>com</strong>paring including line numbers for navigation<br />

(line numbers can be removed through the MKS Visual Merge options).<br />

There are two different layouts for the view panes, vertical layout and split<br />

layout.<br />

The vertical layout displays the three revisions side-by-side for<br />

<strong>com</strong>parison. You can view the Merge From, Merge Base and Merge To<br />

revisions.<br />

The split layout displays in four panes for <strong>com</strong>parison. The Merge From,<br />

Merge Base and Merge To revisions are displayed side-by-side, and the<br />

Merge Result appears below them.<br />

In the Merge Result pane a number immediately to the left of the line<br />

numbers appears to indicate which revision — Merge From (1), Merge Base<br />

(2) or Merge To (3) — the block originated from.<br />

To change the layout of the view panes, use the View vertical layout and<br />

View split layout buttons on the toolbar, or select View > Vertical Pane<br />

Layout or View > Split Pane Layout.<br />

To display a specific line of code, select View > Go to Line or click . In<br />

the Go to dialog box, from the File list, select the file that contains the line<br />

you want to view. In the Go to Line field, enter the number of the line, for<br />

example, 33. The line of code is displayed in the center of the pane if it<br />

exists in a scrolling region.<br />

The Merge From is the revision from which blocks are merged.<br />

The Merge Base is the revision you want to use as the base for calculating<br />

differences against the Merge From to be applied to the Merge To.<br />

The Merge To is the working file, and is used as the basis for the Merge<br />

Result file.<br />

The Merge Result file is the file that blocks are merged into, and can be<br />

edited and saved to contain the output of the merge.<br />

u s e r g u i d e


Preferences<br />

Scrolling in the view panes is synchronized.<br />

Shortcut Menu<br />

MKS Visual Merge Interface<br />

MKS Visual Merge supports standard shortcut menus. To display the<br />

menu of actions you can perform, select a line in any pane and right click.<br />

MKS Visual Difference displays the applicable shortcut menu.<br />

The available actions displayed in the shortcut menu depends on whether<br />

you right click within the Merge From, Merge Base, and Merge To view<br />

panes or the Merge Result view pane.<br />

Shortcut Keys<br />

For some operations, shortcut keys are provided. Shortcut keys appear on<br />

menus opposite their operation names.<br />

Status Bar<br />

The status bar provides a short summary of the difference blocks for each<br />

revision. It shows conflicts, insertions, deletions, and changes with a<br />

number indicating how many of each exist in each file. For example, the<br />

summary, Inserted: 0/2/5, means that in the Merge From there are no<br />

insertions, while in the Merge Base there are two insertions, and in the<br />

Merge To there are 5 insertions.<br />

Conflict statistics show the total number of conflicts.<br />

Preferences allow you to customize the appearance of the MKS Visual<br />

Merge interface. You can configure general options and font and color<br />

options.<br />

Setting General Preferences<br />

Under the General tab, you can set your preferences for the toolbar, line<br />

numbers, and tab spacing.<br />

To set general preferences in the MKS Visual Merge interface<br />

1 Select View > Preferences.<br />

The Preferences dialog box is displayed.<br />

111


Chapter 4: Source Integrity Interfaces<br />

112<br />

2 To configure your toolbar, click the Toolbar button.<br />

Customize the toolbar as desired. For more information, see “To<br />

customize the main toolbar in the graphical user interface” on page 82.<br />

3 Under Miscellaneous, set the following options:<br />

To display line numbers in the revisions, select Show Line<br />

Numbers. Clear this option if you want to remove line numbers.<br />

To set the tab size, in the Expand tabs to field enter the number of<br />

spaces you want tabs expanded to. Changes to tab size do not<br />

take effect until the tool is invoked again.<br />

4 Click OK to save your changes.<br />

Setting Font and Color Options<br />

Under the Fonts & Colors tab, you can set your options for the colors and<br />

fonts used in MKS Visual Merge.<br />

You can use the Reset to Defaults button to reset the display to the original<br />

fonts and colors.<br />

To set font and color preferences in the MKS Visual Merge interface<br />

1 Select View > Preferences.<br />

The Preferences dialog box is displayed.<br />

2 Click the Fonts & Colors tab.<br />

The Fonts & Colors panel is displayed.<br />

u s e r g u i d e


MKS Visual Merge Interface<br />

3 To change the background color of a particular block (Unchanged,<br />

Inserted, Deleted, Changed, Edited, Conflict), click the corresponding<br />

Background button.<br />

The Choose Background Color dialog box is displayed.<br />

4 Set your preferred color on the Swatches, HSB or RGB tabs. The<br />

Preview at the bottom of the dialog box displays the selected color for<br />

you.<br />

5 Click OK to set the background color.<br />

6 To change the foreground color of a particular block (Unchanged,<br />

Inserted, Deleted, Changed, Edited, Conflict), click the corresponding<br />

Foreground button.<br />

NOTE<br />

The foreground color changes the color of the text that is displayed in a<br />

particular block. If the foreground and background colors of a block are the<br />

same you will not be able to read the text.<br />

The Choose Foreground Color dialog box is displayed.<br />

7 Set your preferred color on the Swatches, HSB or RGB tabs. The<br />

Preview at the bottom of the dialog box displays the selected color for<br />

you.<br />

8 Click OK to set the foreground color.<br />

113


Chapter 4: Source Integrity Interfaces<br />

114<br />

9 To set the display font for a particular block (Unchanged, Inserted,<br />

Deleted, Changed, Edited, Conflict) click the corresponding Font<br />

button.<br />

The Choose Font dialog box is displayed.<br />

10 Select the Font, Style and Size from the corresponding list. The Sample<br />

at the bottom of the dialog box displays the selected font, style and<br />

size for you.<br />

11 Click OK to set the font.<br />

12 Click OK to save your font and color changes.<br />

MKS Visual Merge is updated with your changes.<br />

u s e r g u i d e


Project and Sandbox<br />

Operations<br />

KEY TERMS: project, subproject, sandbox, member, revision, variant, build,<br />

development path, deferred operations, keywords<br />

5<br />

This chapter describes the Source Integrity project related features you<br />

will use in your day-to-day activities, such as creating a sandbox.<br />

The tasks you can perform are restricted by the permissions assigned to<br />

you by your administrator. If you find you are unable to perform necessary<br />

operations, you must contact the administrator responsible for<br />

Source Integrity at your site to review the permissions assigned to you.<br />

NOTE<br />

If your administrator has assigned you a new set of permissions, you must<br />

update your permissions by disconnecting your Source Integrity client and<br />

then reconnecting to Integrity Server. An out-of-date permission set may cause<br />

unpredictable behavior when attempting to open projects or perform other<br />

tasks.<br />

This chapter provides details on the following:<br />

“Working With Projects” on page 116<br />

“Working With Subprojects” on page 124<br />

“Working With Sandboxes” on page 135<br />

115


Chapter 5: Project and Sandbox Operations<br />

Working With Projects<br />

Creating a<br />

Project<br />

116<br />

When you are ready to place a related group of files under Source Integrity<br />

control, the first step is to create a project. A project is a container for a<br />

group of files that reside on the Integrity Server.<br />

In addition to creating a project, you can import an existing project from an<br />

earlier version of Source Integrity or, if a project is no longer active, you<br />

may also want to drop the project from the Integrity Server.<br />

This section provides the procedures for:<br />

creating a project<br />

importing a project<br />

dropping a project<br />

adding a project<br />

opening or viewing a project<br />

When creating a project, you only create the project file. To add files, or<br />

members to the project, you must create a sandbox that points to the project<br />

and then add the project members through that sandbox.<br />

You can create a project from the Registered Projects view. With the<br />

Registered Projects view open, click Create (or select Create from the<br />

shortcut menu), and the Specify Project to Create dialog box is displayed.<br />

Specify the location for the project (by typing the path and file name, or<br />

browsing), and specify a project name, then click OK. The project appears<br />

in a Project view.<br />

TIP<br />

For suggested best practices on creating projects, see the Integrity Server<br />

Installation and Administration <strong>Guide</strong>.<br />

To create a project in the graphical user interface<br />

1 Do one of the following:<br />

Select File > New Project.<br />

Click .<br />

The Specify the Project to Create dialog box is displayed.<br />

u s e r g u i d e


Importing a<br />

Project<br />

Working With Projects<br />

2 If your administrator has specified multiple server roots, from the<br />

Look in list select a location where you want to create the project.<br />

Otherwise, go to the next step.<br />

If multiple server roots are specified, the Look in list contains the<br />

possible choices. Once you select a location, its name appears in<br />

brackets in the title bar of the dialog box, for example, (c:/). For<br />

more information on multiple server roots, consult your administrator<br />

or see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />

3 Enter the path and file name, or browse to a location on the Integrity<br />

Server where you want to create the project, for example, C:/<br />

Aurora_Program.<br />

If the project path does not exist on the Integrity Server, the new path<br />

is created.<br />

NOTE<br />

When you specify the name of the new project, Source Integrity automatically<br />

assigns the .pj file extension. If you specify a .pj file extension in uppercase<br />

or mixed case, Source Integrity replaces that file extension with the correct<br />

lowercase .pj file extension. If you specify a file extension other than .pj,<br />

Source Integrity appends the .pj file extension to the file name. For backwards<br />

<strong>com</strong>patibility, you can import projects and subprojects that do not have the<br />

.pj file extension.<br />

4 Enter a name for the project, for example, project.pj.<br />

IMPORTANT<br />

A single project name can be used only once in the same location.<br />

Source Integrity does not distinguish between project names differing only in<br />

case. For example, if project.pj already exists in C:/Aurora_Program,<br />

you cannot create PROJECT.pj in C:/Aurora_Program. This results in an<br />

error and Source Integrity asks you to specify a different path and file name, or<br />

a different project name.<br />

5 Click OK.<br />

The project appears in a Project view (see “Project View” on page 457).<br />

You can now create a sandbox, then add members to the sandbox. For<br />

more information, see “Working With Sandboxes” on page 135.<br />

When you create a project, it is automatically registered with the Integrity<br />

Server; however, projects created with older versions of Source Integrity<br />

must be imported and registered with the Integrity Server.<br />

117


Chapter 5: Project and Sandbox Operations<br />

118<br />

Importing a project registers it with the Integrity Server. Once a project is<br />

imported, Source Integrity <strong>com</strong>mands can be performed upon it.<br />

NOTE<br />

To add projects that were previously dropped from Source Integrity, see<br />

“Adding a Project” on page 120.<br />

To import a project in the graphical user interface<br />

1 Do one of the following:<br />

Select Tools > Manage Projects.<br />

Click .<br />

The Registered Projects view is displayed.<br />

TIP<br />

The Registered Projects view supports standard shortcut menus. To display<br />

the menu of actions you can perform, select a sandbox and then right click it.<br />

Source Integrity displays the applicable shortcut menu.<br />

2 Click Import.<br />

The Select One or More Projects dialog box is displayed.<br />

3 Browse to the project file on the server.<br />

To filter the dialog box to display only project files, from the Files of<br />

type list, select MKS Source Integrity Project files.<br />

NOTE<br />

If your connection to the Integrity Server is disconnected while you are<br />

browsing for a file, the file browser does not show any files or directories.<br />

4 Click OK.<br />

u s e r g u i d e


Dropping a<br />

Project<br />

IMPORTANT<br />

Working With Projects<br />

You cannot import a project that is already registered. Source Integrity does<br />

not distinguish between project names that differ only in case. For example, if<br />

project.pj is already registered in C:/Aurora_Program, you cannot<br />

import PROJECT.pj into C:/Aurora_Program. This results in an error and<br />

Source Integrity does not import the project.<br />

The project is added to the Registered Projects view.<br />

When a project has outlived its usefulness or just does not belong on the<br />

Integrity Server anymore, you can remove it at any time.<br />

To drop a project means that the project is no longer registered with the<br />

Integrity Server. Once a project is dropped, it cannot be accessed with<br />

Source Integrity. However, if the project is not deleted and you can import<br />

it again if you want it to be accessible in Source Integrity.<br />

To add projects that were previously dropped from Source Integrity, see<br />

“Adding a Project” on page 120.<br />

To drop a project in the graphical user interface<br />

1 Do one of the following:<br />

Select Tools > Manage Projects.<br />

Click .<br />

The Registered Projects view appears.<br />

119


Chapter 5: Project and Sandbox Operations<br />

Adding a<br />

Project<br />

120<br />

TIP<br />

The Registered Projects view supports standard shortcut menus. To display<br />

the menu of actions you can perform, select a sandbox and then right click it.<br />

2 Select the project you want to drop.<br />

3 Click Drop.<br />

The Confirm Project Drop dialog appears.<br />

4 To drop the selected project click Yes.<br />

The project is removed from the list of registered projects.<br />

5 Close the Registered Projects view.<br />

You can add the following:<br />

a dropped project that still resides on the server (in the repository)<br />

an existing subproject as a top-level project<br />

a project that was imported but not added to Source Integrity<br />

To add a project in the graphical user interface<br />

1 Do one of the following:<br />

Select Tools > Manage Projects.<br />

Click .<br />

The Registered Projects view appears.<br />

2 Click Add.<br />

The Select One or More Projects dialog box appears.<br />

3 Enter the path and file name, or browse to a location on the Integrity<br />

Server the project is located.<br />

4 Click OK.<br />

The project is added to Source Integrity and is displayed on the<br />

Regular panel in the Registered Projects view.<br />

5 Close the Registered Projects view.<br />

u s e r g u i d e


Opening or<br />

Viewing a<br />

Project<br />

Working With Projects<br />

Opening a project in the graphical user interface allows you to view the<br />

project and perform certain <strong>com</strong>mands with its members.<br />

The Project view displays the members and subprojects of a project.<br />

To open a project in the graphical user interface<br />

1 Do one of the following:<br />

Select File > Open Project.<br />

Click .<br />

The Open Project Wizard appears.<br />

2 In the Project Name field, enter the path and name of the project, or<br />

click Select and choose a project from the list.<br />

3 Click Next.<br />

The second panel of the Open Project Wizard appears.<br />

121


Chapter 5: Project and Sandbox Operations<br />

122<br />

4 Select the type of project you want to open by clicking a project type<br />

option. The available types are:<br />

Normal opens a project based upon the current state of the project.<br />

Variant opens a project based upon a specific revision of the<br />

master project and is used for branching off the main<br />

development path.<br />

NOTE<br />

From the Development Path Name list, select a development path<br />

name, for example, Aurora_Beta_Variant.<br />

The Variant option is unavailable if there are no available development paths.<br />

To create a development path, see “Creating a Development Path” on page 147.<br />

A variant project must be based on a top-level project only.<br />

Build opens a static project based upon a specific revision of the<br />

master project that is used for building or testing the project, but<br />

not for further development.<br />

To specify a revision to base the build project, do one of the<br />

following:<br />

Select Revision, and from the list, select a project revision<br />

number, for example, 1.1.<br />

Select Label, and from the list, select a project label.<br />

u s e r g u i d e


TIP<br />

Working With Projects<br />

You can also open a project from the Registered Projects view. With the<br />

Registered Projects view open, select the project you want to open and click<br />

Open, or select Open from the shortcut menu. The project appears in a Project<br />

view.<br />

5 To accept the options, click Finish. To modify the options, click Back.<br />

The project opens in a Project view.<br />

To open a project in the Web interface<br />

1 Select File > Open Project.<br />

The Select Project dialog box is displayed.<br />

2 Click to highlight the project you want to open.<br />

3 Click OK.<br />

The project opens.<br />

To open a variant project, select File > Open Variant Project. You can<br />

also open a variant project from a Project view by choosing Project ><br />

Open Variant Project.<br />

To open a build project, select File > Open Build Project.<br />

You can also use the active links in the title bar to navigate within a<br />

project. To navigate to a subproject, click the applicable portion of the<br />

link.<br />

123


Chapter 5: Project and Sandbox Operations<br />

Working With Subprojects<br />

Creating a<br />

Subproject<br />

124<br />

Source Integrity allows you to create large projects <strong>com</strong>posed of smaller<br />

<strong>com</strong>ponent projects. These smaller projects are known as subprojects.<br />

Subprojects behave in the same way as projects, and can be accessed with<br />

most project and sandbox <strong>com</strong>mands.<br />

Once you create a subproject, it is considered a member of the project. For<br />

suggested best practices on creating subprojects, see the Integrity Server<br />

Installation and Administration <strong>Guide</strong>.<br />

Components usually fall into the following categories:<br />

source files for creating individual executables<br />

source files for <strong>com</strong>mon libraries<br />

graphic files<br />

documentation<br />

This section discusses the procedures for:<br />

creating a subproject<br />

adding a subproject<br />

creating a shared subproject<br />

configuring a subproject<br />

dropping a subproject<br />

You can create a new subproject with the Subproject > Create <strong>com</strong>mand.<br />

Once you have created a subproject you can add members and configure<br />

the subproject if necessary.<br />

To create a subproject in the graphical user interface<br />

1 With a Project or Sandbox view open, select the project or sandbox to<br />

add the subproject to.<br />

2 From a Project view, select Project > Subproject > Create.<br />

From a Sandbox view, select Sandbox > Subproject > Create.<br />

The Specify the Subproject to Create on localhost:portnumber dialog<br />

box is displayed.<br />

3 Select the subproject to create, or enter the name for the subproject, for<br />

example, applications.pj.<br />

u s e r g u i d e


Adding a<br />

Subproject<br />

4 Click OK.<br />

Working With Subprojects<br />

The subproject appears in a Project or Sandbox view (see “Project<br />

View” on page 457 or “Sandbox View” on page 469).<br />

You can now add members to the subproject as you would with a<br />

project.<br />

When a subproject is dropped from a project the subproject’s historical<br />

information remains. The Subproject > Add <strong>com</strong>mand allows you to re-add<br />

a dropped subproject.<br />

NOTE<br />

In a variant sandbox, you cannot add an existing subproject that does not have<br />

the variant defined.<br />

To add a subproject in the graphical user interface<br />

1 With a Project or Sandbox view open, select the project or sandbox<br />

you want to add the subproject to.<br />

2 From a Project view, select Project > Subproject > Add.<br />

From a Sandbox view, select Project > Subproject > Add.<br />

The Add Subproject Wizard appears.<br />

125


Chapter 5: Project and Sandbox Operations<br />

126<br />

3 In the Subproject Location field, browse to the subproject to add, or<br />

enter the path and name for the subproject, for example,<br />

Libra_Project/applications.pj, and click Next.<br />

Click Finish to add the subproject without specifying a type. The<br />

subproject is added as the default type. For information on the default<br />

type, see your administrator.<br />

The Specify Type of Subproject to Add panel appears.<br />

4 Select one of the following options for the type of subproject you want<br />

to add:<br />

Normal adds a subproject based upon the current state of the<br />

subproject.<br />

Variant adds a subproject based upon a specific revision of the<br />

master project and is used for branching off the main<br />

development path.<br />

NOTE<br />

From the Development Path Name list, select a development path<br />

name, for example, Libra_Beta_Variant.<br />

The Variant option is unavailable if there are no available development paths.<br />

To create a development path, see “Creating a Development Path” on page 147.<br />

u s e r g u i d e


Adding a<br />

Shared<br />

Subproject<br />

Working With Subprojects<br />

Build adds a static subproject based upon a specific revision of the<br />

project that is used for building or testing the project, but not for<br />

further development.<br />

To specify a revision to base the build project, do one of the<br />

following:<br />

Select Revision, and from the list select a project revision<br />

number, for example, 1.1.<br />

Select Label, and from the list select a project label.<br />

Default creates a project based on the type specified in the server<br />

preferences. For information on what the default type is, see your<br />

administrator.<br />

5 To accept the options, click Finish. To modify the options, click Back.<br />

The subproject appears in the Project or Sandbox view (see “Project<br />

View” on page 457 or “Sandbox View” on page 469).<br />

A shared subproject is a subproject that is a member of more than one<br />

project. Source Integrity allows you to share a subproject between two or<br />

more projects by referencing the original subproject. A shared subproject<br />

allows you to access <strong>com</strong>mon members across many projects. Shared<br />

subprojects are not required to be located within the same directory<br />

structure or project hierarchy.<br />

The first step to sharing a subproject is to select an existing subproject, or<br />

master project that you want to add to another project. This existing<br />

subproject will continue to reside within its original master project, but<br />

will be referenced by the other project and shown as a shared subproject.<br />

The next step is creating a new subproject file to represent the shared<br />

subproject. In reality, a shared subproject is actually a new project which<br />

shares the same archive as its original project.<br />

Once you have selected a subproject you want to share and the project you<br />

want to share it to, you can decide what type of subproject you want it to<br />

be to <strong>com</strong>plete the operation.<br />

A shared subproject functions the same as an unshared subproject and is<br />

accessible by the most <strong>com</strong>mands.<br />

127


Chapter 5: Project and Sandbox Operations<br />

128<br />

NOTE<br />

When working with shared subprojects, Source Integrity uses the actual name<br />

of the subproject in the file system, rather than its relative name in the project<br />

hierarchy. This enhances the portability of change packages across different<br />

projects.<br />

You cannot import members into a shared subproject from its shared location.<br />

Shared subprojects (out-of-tree subprojects) that were created in a previous<br />

version of Source Integrity (Standard Edition) are detected as they are<br />

accessed by Source Integrity Enterprise Edition without disrupting the<br />

operation. The format of these subprojects is retained until you change or<br />

update it to the new format by re-configuring it.<br />

To add a shared subproject in the graphical user interface<br />

1 With a Project or Sandbox view open, select the project or sandbox<br />

you want to add the shared subproject to.<br />

2 From a Project view, select Project > Subproject > Add Shared.<br />

From a Sandbox view, select Sandbox > Subproject > Add Shared.<br />

The Add Shared Subproject Wizard appears.<br />

u s e r g u i d e


Working With Subprojects<br />

3 In the Project to be Shared field, click Select to browse to the<br />

subproject to add, or enter the path and name for the subproject, for<br />

example, c:/Libra_Program/tools/project.pj.<br />

The subproject you select in this step is the subproject you want to<br />

reference.<br />

4 Click Next.<br />

The Specify the subproject to add panel appears.<br />

5 In the Subproject Name field, browse or enter the path for the location<br />

of the shared subproject.<br />

The project you select in this step is the project that you want to share<br />

the subproject (selected in step 3) to.<br />

NOTE<br />

The Subproject Name must be in-tree.<br />

6 Click Next.<br />

Click Finish to add the shared subproject without specifying a type.<br />

The subproject is added as the default type. For information on the<br />

default type, see your administrator.<br />

The Specify Type of Subproject to Add panel appears.<br />

129


Chapter 5: Project and Sandbox Operations<br />

130<br />

7 Select one of the following options for the type of shared subproject<br />

you want to add:<br />

Normal adds a subproject based upon the current state of the<br />

subproject.<br />

Variant adds a subproject based upon a specific revision of the<br />

master project and is used for branching off the main<br />

development path.<br />

NOTE<br />

From the Development Path Name list, select a development path<br />

name, for example, Aurora_Beta_Variant.<br />

The Variant option is unavailable if there are no available development paths.<br />

To create a development path, see “Creating a Development Path” on page 147.<br />

Build adds a static subproject based upon a specific revision of the<br />

master project that is used for building or testing the project, but<br />

not for further development.<br />

To specify a revision to base the build project, do one of the<br />

following:<br />

Select Revision, and from the list select a project revision<br />

number.<br />

Select Label, and from the list select a project label.<br />

u s e r g u i d e


Configuring a<br />

Subproject<br />

Working With Subprojects<br />

Default adds a subproject based on the parent project type.<br />

8 To accept the options, click Finish. To modify the options, click Back.<br />

The shared subproject appears in the Project or Sandbox view with a<br />

shared icon (Project view: or Sandbox view: ). For more<br />

information, see “Project View” on page 457 or “Sandbox View” on<br />

page 469.<br />

Once you have created or added a subproject you can modify the type to<br />

suit your needs. For example, you can change a normal subproject to a<br />

build subproject in order to suspend development, or you can change a<br />

variant subproject to a normal subproject to continue development on the<br />

main trunk.<br />

Any changes you make when configuring a subproject will affect the<br />

project as a whole and any shared subprojects within it. Deltas reflecting<br />

these changes appear in the Project or Sandbox view. Some of the<br />

differences you may see include:<br />

Members existing in the original version and configured version of the<br />

subproject display a delta if the working revision in the sandbox is<br />

different from the new member revision.<br />

Members that did not exist in the original version of the subproject but<br />

do exist in the configured subproject display a delta to indicate that<br />

the sandbox does not have a working file for the new member.<br />

Members that existed in the original version of the subproject but do<br />

not exist in the configured subproject display as former members.<br />

Subproject that existed as members in the original version of the<br />

subproject but do not exist in the configured subproject display as<br />

former subprojects.<br />

Resynchronize the subproject to resolve the differences.<br />

When configuring shared subprojects it is important to remember that each<br />

shared subproject is configured independently. This means that when you<br />

configure a shared subproject that the re-configuration does not change all<br />

instances of that subproject. For example, if the subproject tools.pj is<br />

shared in the two projects, Aurora.pj and Libra.pj, a change to the<br />

configuration of Aurora/tools.pj does not affect the configuration of<br />

Libra/tools.pj.<br />

Configured subprojects, or frozen subprojects that were created in a<br />

previous version of Source Integrity (Standard Edition) are detected as<br />

they are accessed by Source Integrity Enterprise Edition without<br />

disrupting the operation. The format of these subprojects is retained until<br />

you change or update it to the new format by re-configuring it.<br />

131


Chapter 5: Project and Sandbox Operations<br />

132<br />

To configure a subproject in the graphical user interface or the Web<br />

interface<br />

1 With a Project or Sandbox view open, select the subproject you want<br />

to configure.<br />

2 In the GUI, from a Project view, select Project > Subproject ><br />

Configure.<br />

In the GUI, from a Sandbox view, select Sandbox > Subproject ><br />

Configure.<br />

In the Web, from a Project view, select Project > Configure Subproject.<br />

The Configure Subproject dialog box is displayed.<br />

3 Under Options, select the configuration type you want for the<br />

subproject. The available types are:<br />

Normal configures a subproject based upon the current state of the<br />

subproject.<br />

Variant configures a subproject based upon a specific revision of<br />

the master project and is used for branching off the main<br />

development path.<br />

NOTE<br />

From the Development Path Name list, select a development path<br />

name, for example, Aurora_Beta_Variant.<br />

The Variant option is unavailable if there are no available development paths.<br />

To create a development path, see “Creating a Development Path” on page 147.<br />

u s e r g u i d e


Dropping a<br />

Subproject<br />

Working With Subprojects<br />

Build configures a static subproject based upon a specific revision<br />

of the master project that is used for building or testing the<br />

project, but not for further development.<br />

To specify a revision to base the build project, do one of the<br />

following:<br />

Select Revision, and from the list select a project revision<br />

number.<br />

Select Label, and from the list select a project label.<br />

Reset to default value configures a subproject to the parent project<br />

type.<br />

4 Click OK to <strong>com</strong>plete the operation.<br />

The subproject is re-configured.<br />

Subprojects configured as a build subproject appear with a build<br />

project icon (Project view: or Sandbox view: ), and the revision<br />

or label that the build project is based on, for example, tools.pj<br />

(1.1).<br />

Subprojects configured as a variant subproject appear with a variant<br />

project icon (Project view: or Sandbox view: ), and the<br />

development path that the variant project is based on, for example,<br />

tools.pj (release_1).<br />

Subprojects configured as a normal subproject appear with the<br />

standard project and sandbox icons.<br />

Depending on what the default project type is, subprojects configured<br />

as default projects, may or may not appear with a different icon.<br />

If a subproject has outlived its usefulness or just does not belong in a<br />

project anymore, you can remove it at any time. You can remove a<br />

subproject through a Project view or through a Sandbox view. For more<br />

details on removing a subproject through a Sandbox view, see “Dropping<br />

Members From a Project” on page 172.<br />

After you remove a subproject from a project, it is no longer listed as part<br />

of the sandbox or master project, but the subproject’s history remains in the<br />

project record, in case you need to recreate an earlier version of the project.<br />

IMPORTANT<br />

When you remove a subproject, you also remove all members within that<br />

subproject.<br />

133


Chapter 5: Project and Sandbox Operations<br />

134<br />

To drop a subproject in the graphical user interface<br />

1 With the Manage Projects dialog box, or a Project or Sandbox view<br />

open, select one or more subprojects to remove.<br />

NOTE<br />

In the Manage Projects dialog box, you can only drop one subproject at a time.<br />

2 From the Manage Projects dialog box, click Drop.<br />

From the Project view, select Project > Drop Members.<br />

From the Sandbox view, select Sandbox > Drop Members.<br />

The Drop Subproject dialog box is displayed.<br />

3 Under Options, select Confirm Drop to have Source Integrity prompt<br />

you to confirm the operation.<br />

The Confirm Drop message appears.<br />

If you did not select the Confirm Drop option on the Drop Subproject<br />

dialog box, the Confirm Drop dialog box does not appear.<br />

4 To remove the subproject, click Yes (for multiple subprojects, click Yes<br />

to All).<br />

The project is updated to reflect the removed subproject.<br />

The subproject is removed from the project.<br />

To retain the subproject, click No (for multiple subprojects, click No to<br />

All).<br />

u s e r g u i d e


Working With Sandboxes<br />

Creating a<br />

Sandbox<br />

Working With Sandboxes<br />

When you want to work with a project, you create a sandbox. A sandbox<br />

resides on your local drive and is a mirror image of the project. Working in<br />

a sandbox allows you to operate in your own workspace without<br />

interfering with the work of others.<br />

Different types of sandboxes are available for different types of<br />

development. Normal sandboxes are useful for the sequential development<br />

of a project over the long or short term. Variant sandboxes are useful for<br />

branching off the main development path. Build sandboxes are useful for<br />

testing a specific revision of the project.<br />

Once a sandbox is created, you can add files or members to that sandbox.<br />

The project is then updated to reflect the addition of new project members.<br />

The following provides procedures for creating sandboxes—normal,<br />

variant, and build—using the graphical user interface. You can also create<br />

subsandboxes.<br />

A subsandbox is a sandbox within a sandbox. Subsandboxes are typically<br />

smaller <strong>com</strong>ponents of a sandbox, such as documentation or graphic files.<br />

NOTE<br />

While it is possible to create more than one sandbox in a single directory it is<br />

not re<strong>com</strong>mended.<br />

To create a sandbox in the graphical user interface<br />

1 Do one of the following:<br />

Select File > New Sandbox.<br />

Click .<br />

The Create Sandbox Wizard appears.<br />

2 In the Project Name field, enter the path and name of the project, or<br />

click Select.<br />

If you have a Project view open, the project path and name appears in<br />

the Project Name field. If you click Select, the Select One or More<br />

Projects dialog box is displayed.<br />

3 Select a project.<br />

135


Chapter 5: Project and Sandbox Operations<br />

136<br />

4 Click Next.<br />

The second panel of the Create Sandbox Wizard appears.<br />

5 In the Sandbox Location field, enter the directory in which you want<br />

to create the sandbox, or click Browse, then browse to a location on<br />

your local drive.<br />

6 Under Options, choose sandbox options by selecting check boxes.<br />

The available options are:<br />

Populate Sandbox adds working files to the sandbox.<br />

Recurse into Subprojects creates subsandboxes recursively from<br />

subprojects and populates the subsandboxes with working files.<br />

If you choose not to recurse into subprojects when creating a<br />

sandbox, subprojects are still created but they are not populated<br />

with working files. To create working files for members at a later<br />

date, use the Resynchronize <strong>com</strong>mand (see “Resyncing<br />

Members” on page 197).<br />

Line Terminator determines the type of ASCII character<br />

Source Integrity recognizes as the end of a line of text: Native (or<br />

automatic, the default setting), LF (or line feed, primarily for<br />

UNIX applications), or CR/LF.<br />

u s e r g u i d e


Working With Sandboxes<br />

Make Sandbox Sparse creates a sandbox with no working files. A<br />

sparse sandbox does not retain working files even when a<br />

member is checked in, and continues to function this way<br />

throughout its use.<br />

View Sandbox After Creation displays the sandbox after it is<br />

created.<br />

Make Sandbox Shared creates a sandbox that is available for<br />

sharing with other users (see “Sharing Sandboxes” on page 139).<br />

7 Click Next.<br />

If the directory you specify does not exist, a Confirm Create Sandbox<br />

Location dialog box is displayed asking if you want to create the new<br />

location. To create the path, click Yes. To change the sandbox location,<br />

click No.<br />

The third panel of the Create Sandbox Wizard appears.<br />

8 Select the type of sandbox you want to create by clicking a sandbox<br />

type option. The available types are:<br />

Normal creates a sandbox based upon the current state of the<br />

project.<br />

137


Chapter 5: Project and Sandbox Operations<br />

Importing a<br />

Sandbox<br />

138<br />

Variant creates a sandbox based upon a specific revision of the<br />

master project and is used for branching off the main<br />

development path. For more information on variant sandboxes,<br />

see “Creating Variant Sandboxes and Development Paths” on<br />

page 146.<br />

NOTE<br />

From the Development Path Name list, select a development path<br />

name, for example, Aurora_Beta_Variant.<br />

The Variant option is unavailable if there are no available development paths.<br />

To create a development path, see “Creating a Development Path” on page 147.<br />

Build creates a static sandbox based upon a specific revision of the<br />

master project that is used for building or testing the project, but<br />

not for further development. For more information on build<br />

sandboxes, see “Using Build Sandboxes” on page 150.<br />

To specify a revision to base the build project, do one of the<br />

following:<br />

Select Revision, and from the list select a project revision<br />

number, for example, 1.1.<br />

Select Label, and from the list select a project label.<br />

9 To accept the options, click Finish.<br />

The sandbox appears in a Sandbox view (see “Sandbox View” on<br />

page 469).<br />

To modify the options, click Back.<br />

You can also create a sandbox from the Registered Sandboxes view.<br />

With the Registered Sandboxes view open, click Create. Specify the<br />

server name and port number in the Specify Server Connection dialog<br />

box, and click OK. The Create Sandbox Wizard appears. To finish<br />

creating your sandbox <strong>com</strong>plete previous steps 2 through 9.<br />

When you create a sandbox, it is automatically registered with the Integrity<br />

Server; however, sandboxes created with earlier versions of<br />

Source Integrity must be imported to register them with the Integrity<br />

Server.<br />

u s e r g u i d e


Sharing<br />

Sandboxes<br />

NOTE<br />

The master project of the sandbox must also be registered with the<br />

Integrity Server before the sandbox is imported.<br />

To import a sandbox in the graphical user interface<br />

1 Do one of the following:<br />

Select Tools > Manage Sandboxes.<br />

Click .<br />

The Registered Sandboxes view is displayed.<br />

Working With Sandboxes<br />

TIP<br />

The Registered Sandboxes view supports standard shortcut menus. To display<br />

the menu of actions you can perform, select a sandbox and right click.<br />

Source Integrity displays the applicable shortcut menu.<br />

2 Click Import.<br />

The Select One or More Files dialog box is displayed.<br />

3 Browse to the sandbox file on your local drive.<br />

If your connection to the Integrity Server is disconnected while you<br />

are browsing for a file, the file browser does not show any files or<br />

directories.<br />

4 Click Open.<br />

The Specify Server Connection dialog box is displayed.<br />

5 Specify the host name and port number for the server on which the<br />

corresponding project resides.<br />

6 Click OK.<br />

The sandbox is added to the Registered Sandboxes view.<br />

Source Integrity provides a way to create a <strong>com</strong>mon build location using<br />

shared sandboxes. Shared sandboxes provide developers and buildmasters<br />

with a window into a single shared work location.<br />

The following is the intended use for sandbox sharing:<br />

1 There exists a <strong>com</strong>mon build location that contains files that<br />

developers need to access in order to build their source before<br />

checking it into the build.<br />

139


Chapter 5: Project and Sandbox Operations<br />

140<br />

2 <strong>User</strong>s share the sandbox by importing it through the network or<br />

mapped drive. The imported sandbox is by reference, so no working<br />

files are stored on the users’ machines.<br />

3 <strong>User</strong>s who imported the shared sandbox now have access to the<br />

working files in the shared sandbox, and use those files to create test<br />

builds on their machines without requiring those files to be stored<br />

locally.<br />

NOTE<br />

To share sandboxes, all clients connecting to the shared sandbox must be<br />

Source Integrity 8.6 or later.<br />

Imported<br />

Sandbox 1<br />

References<br />

Working Files<br />

Shared Sandbox<br />

Common<br />

Location With<br />

Working Files<br />

Imported<br />

Sandbox 2<br />

References<br />

Working Files<br />

Sandbox Shared With Multiple <strong>User</strong>s<br />

<strong>User</strong>s sharing sandboxes:<br />

must select View > Scan for Changes for the project to update their<br />

Sandbox view to see the true state of the sandbox (top level project<br />

updates recursively)<br />

should all be in same time zone<br />

can see deferred operations in their sandbox views that were created<br />

by other users, but those operations do not appear as entries in their<br />

individual Change Package views for the change packages<br />

corresponding to the deferred operations<br />

u s e r g u i d e<br />

Imported<br />

Sandbox 3<br />

References<br />

Working Files


Working With Sandboxes<br />

must have read and write permission for the shared location where<br />

the shared sandbox resides, as well as for the files in that location<br />

cannot submit deferred operations in the sandbox made by other users<br />

using the Submit Change Package <strong>com</strong>mand (their deferred and lock<br />

entries do not appear in your Change Package view)<br />

only top level sandboxes can be shared (Shared, Sparse, and<br />

Line Terminator options in the Sandbox Information view are disabled<br />

for subsandboxes)<br />

CAUTION<br />

In a shared sandbox, to prevent overwriting another user’s changes, do not<br />

make changes to working files for member revisions that are locked by another<br />

user.<br />

Configuring a Sandbox as Shared<br />

For users to share a sandbox, the creator of the sandbox must first<br />

configure the sandbox as shared. Only the sandbox creator can configure<br />

the sandbox as shared. When a top-level sandbox is configured to be<br />

shared, all subsandboxes are shared as well. Subsandboxes cannot be<br />

individually configured to be shared or not shared.<br />

To share out a sandbox in the graphical user interface<br />

1 Do one of the following:<br />

From a Sandbox view, select Sandbox > Properties > Sandbox<br />

Information.<br />

From the Registered Sandboxes view, select a sandbox. Then<br />

click Information.<br />

The Sandbox Information dialog box is displayed with the General<br />

panel displayed.<br />

2 Enable the Shared option.<br />

IMPORTANT<br />

If clients on different platforms are sharing a sandbox, you may need to modify<br />

the line terminator setting to ensure <strong>com</strong>patibility with file editors.<br />

141


Chapter 5: Project and Sandbox Operations<br />

142<br />

3 To finish and share the sandbox, click OK.<br />

If the Sandbox view is open, the title displays Shared. Otherwise, the<br />

the title displays Shared the next time the sandbox is opened in a<br />

Sandbox view.<br />

Importing a Shared Sandbox<br />

Access another user’s shared sandbox using the Import <strong>com</strong>mand. Do so by<br />

browsing through the network to the user’s shared sandbox directory. For<br />

more information on importing sandboxes, see “Importing a Sandbox” on<br />

page 138. When you share another user’s sandbox, no working files are<br />

stored on your local machine.<br />

Only import another user’s sandbox through the network if that sandbox<br />

has sharing enabled. For more information, see “Configuring a Sandbox as<br />

Shared” on page 141.<br />

Only top-level sandboxes can be imported as shared.<br />

Removing Sharing From a Sandbox<br />

When there is no longer a need for a <strong>com</strong>mon location, the creator of the<br />

sandbox can remove the sharing from the sandbox. When sandbox sharing<br />

is removed, users sharing that sandbox no longer have access to it.<br />

Only the creator of the shared sandbox can remove sharing (or edit<br />

sandbox information).<br />

To remove sharing from a sandbox in the graphical user interface<br />

1 Do one of the following:<br />

From a Sandbox view, select Sandbox > Properties > Sandbox<br />

Information.<br />

From the Registered Sandboxes view, select a sandbox. Then<br />

click Information.<br />

The Sandbox Information dialog box is displayed with the General<br />

panel displayed.<br />

2 Clear the Shared option selection.<br />

u s e r g u i d e


Dropping a<br />

Sandbox<br />

3 To finish and remove sharing, click OK.<br />

Working With Sandboxes<br />

The sandbox is no longer shared. If the Sandbox view is open, Sharing<br />

is removed from the title. Otherwise, the next time you open the<br />

Sandbox view, Sharing does not appear in the title bar.<br />

<strong>User</strong>s sharing the sandbox each receive an error message stating the<br />

change in sharing configuration the next time they attempt to access<br />

the sandbox or perform an operation on its contents.<br />

When a sandbox has outlived its usefulness or just does not belong<br />

anymore, you can remove it at any time.<br />

To drop a sandbox means that the sandbox is no longer registered with the<br />

Integrity Server. Once a sandbox is dropped, it cannot be accessed with<br />

Source Integrity. However, the sandbox is not deleted and you can import<br />

it again if you want it to be accessible in Source Integrity.<br />

To drop a sandbox in the graphical user interface<br />

1 Do one of the following:<br />

Select Tools > Manage Sandboxes.<br />

Click .<br />

The Registered Sandboxes view is displayed.<br />

TIP<br />

The Registered Sandboxes view supports standard shortcut menus. To display<br />

the menu of actions you can perform, select a sandbox and right click.<br />

Source Integrity displays the applicable shortcut menu.<br />

2 Select the sandbox you want to drop.<br />

3 Click Drop.<br />

4 Confirm that you want to drop the sandbox by clicking OK.<br />

The Drop Sandbox dialog box is displayed.<br />

143


Chapter 5: Project and Sandbox Operations<br />

Opening or<br />

Viewing a<br />

Sandbox<br />

144<br />

5 From the Delete list, select a delete option.<br />

Nothing does not delete any files from the sandbox directory.<br />

Sandbox Members Only deletes the sandbox members.<br />

Entire Sandbox Directory deletes the sandbox directory and<br />

all of its contents.<br />

CAUTION<br />

If you select the Entire Sandbox Directory option, Source Integrity<br />

deletes all files in the sandbox directory and all files in subdirectories, if any<br />

exist. This includes files not created by Source Integrity.<br />

6 To drop the sandbox, click OK (for multiple sandboxes, click OK to<br />

All).<br />

The sandbox is removed from the list of registered sandboxes.<br />

7 Close the Registered Sandboxes view.<br />

Opening a sandbox in the graphical user interface allows you to view and<br />

work with the sandbox and its members.<br />

The Sandbox view displays the members and subsandboxes of a single<br />

sandbox.<br />

To see a list of recently used files, select File from the menu bar. Recently<br />

used files displays in a numbered list at the bottom of the File menu.<br />

To open a sandbox in the graphical user interface<br />

1 Do one of the following:<br />

Select File > Open Sandbox.<br />

Click .<br />

The Select a Sandbox dialog box is displayed.<br />

u s e r g u i d e


Viewing Which<br />

Sandbox<br />

Locked a<br />

Member<br />

2 To select a sandbox type, click a sandbox type tab.<br />

Regular is a sandbox used for regular development.<br />

Working With Sandboxes<br />

Variant is a sandbox used for branching off the main development<br />

path of another project.<br />

Build is a sandbox based upon a specific revision of a project, but<br />

is used for building or testing the project, not for further<br />

development.<br />

3 Select a sandbox from the displayed sandbox list.<br />

4 Click OK.<br />

The sandbox opens in a Sandbox view.<br />

You can also open a sandbox from the Registered Sandboxes view.<br />

With the Registered Sandboxes view open, select the sandbox you<br />

want to open, and click Open, or select Open from the shortcut menu.<br />

The sandbox appears in a sandbox view (see “Sandbox View” on<br />

page 469).<br />

You can view which sandbox locked a member from the Member History<br />

view, Locks view, Project view and Sandbox view, by setting the view<br />

preferences to display the information. For more information, see “View<br />

Preferences” on page 61.<br />

145


Chapter 5: Project and Sandbox Operations<br />

Creating Variant<br />

Sandboxes and<br />

Development<br />

Paths<br />

146<br />

While a regular sandbox is based on the current state of the project, a<br />

variant sandbox is based on a previously checkpointed revision of the<br />

project. When you create a variant sandbox, you choose a checkpoint<br />

(snapshot) of your project and use it as the starting point for a new branch<br />

of development. Source Integrity allows you to do this by defining a new<br />

development path.<br />

NOTE<br />

You must define the development path before creating the variant sandbox.<br />

A development path is an identifier given to a new branch of software<br />

development. Changes made through the new development path are kept<br />

separate from the main development trunk unless you choose to merge<br />

them later.<br />

Source Integrity allows multiple developers to point to the same<br />

development path, each using their own variant sandbox. In the variant<br />

sandbox, you can see the current state of the project along that<br />

development path and the changes made by other developers using it.<br />

When a variant sandbox is created for the first time, it is also created for all<br />

subprojects, reserving the assigned name as a unique identifier and<br />

ensuring no two paths can share the same name.<br />

Development paths are useful for:<br />

extracting and building from previous versions of a project<br />

building customized versions of a product<br />

performing branch development work<br />

performing post-release maintenance<br />

fixing defects in previous versions of the product<br />

testing new features outside of the main development path<br />

experimenting with research that does not affect regular development<br />

Variant sandboxes pointing to a post-release development path allow you<br />

to make changes to a previous revision of a project. Any fixes, patches, or<br />

changes you check in go into a branch and do not affect the main project,<br />

unless you later choose to merge them.<br />

u s e r g u i d e


Working With Sandboxes<br />

Preventing Conflicts With Other Development Paths<br />

Development paths can conflict when developers working on different<br />

paths need to work on the same revision of a file. There is also the potential<br />

for conflict when development paths access the same member histories.<br />

For example, the current version of a project includes utility.dll,<br />

version 1.4 and the variant sandbox contains utility.dll, version 1.3.<br />

Both versions are stored in the same member history.<br />

Other potential conflicts include:<br />

a developer with a variant sandbox locks revisions needed by<br />

developers working in regular sandboxes<br />

work on one development path locks out those working on a different<br />

development path<br />

To prevent potential conflicts, Source Integrity assumes that locking a<br />

revision is appropriate when you check out a revision when working in a<br />

variant sandbox. You are further prompted to branch the member history<br />

when you check out a revision with a potential conflict, for example:<br />

The project Apex.pj, version 1.2 was checkpointed at version 1.2 and<br />

included utility.dll version 1.2 and library.lib version 1.3.<br />

A development path is created for Apex.pj, version 1.2.1.1 and<br />

includes the same file versions for utility.dll (version 1.2) and<br />

library.lib (version 1.3).<br />

Branching the member history gives each development path its own copy<br />

of the revision.<br />

Creating a Development Path<br />

A variant sandbox uses a project checkpoint as the starting point for new<br />

development. In Source Integrity, you define a new development path for<br />

the variant sandbox.<br />

The development path:<br />

identifies a new direction of development<br />

includes a new revision history<br />

keeps changes separate from the main development path or trunk<br />

You must first create and name the development path, and then create the<br />

variant sandbox.<br />

147


Chapter 5: Project and Sandbox Operations<br />

148<br />

To create a development path in the graphical user interface and Web<br />

interface<br />

1 With a Project, Project History, or Sandbox view open, select the<br />

project you want to create the development path.<br />

To create a variant sandbox using the graphical user interface, see<br />

“Creating a Sandbox” on page 135. from. For more information on<br />

working with subprojects, see “Working With Subprojects” on<br />

page 124.<br />

NOTE<br />

You cannot create a development path based on a variant subproject or build<br />

subproject.<br />

2 In the GUI, from a Project view, select Project > Development Path ><br />

Create.<br />

3 In the Web, from a Project view, select Project > Create Development<br />

Path.<br />

From a Project History view, select History > Create Development Path.<br />

From a Sandbox view, select Sandbox > Development Path > Create.<br />

The Create Development Path dialog box is displayed.<br />

u s e r g u i d e


Removing a<br />

Development<br />

Path<br />

Working With Sandboxes<br />

4 Under Revision, click the desired tab, then modify the Create<br />

Development Path options.<br />

The Selection tab allows you to select the revision to create a<br />

development path from.<br />

To create a development path from a particular type of revision, select<br />

the Pre-Defined Revision option, then choose a revision type from the<br />

list.<br />

Head creates a development path from the head revision in the<br />

project.<br />

Trunk Tip creates a development path from the latest revision in<br />

the trunk, independent of default branch settings.<br />

To create a development path from a specific revision, select the<br />

Specific Revision option, then click the Revisions or Labels tabs to<br />

choose the revision.<br />

The Revisions tab allows you to create a development path from a<br />

specific revision.<br />

The Labels tab allows you to create a development path from a<br />

specific labeled revision.<br />

5 In the Development Path Name field, enter a name for the development<br />

path, for example, Aurora_Beta_Variant.<br />

6 To create the development path, click OK.<br />

The development path is created.<br />

Once a development path is no longer needed or useful, you can remove it<br />

at any time.<br />

CAUTION<br />

If you remove a development path that is referenced by a variant sandbox, you<br />

cannot open that variant sandbox.<br />

To remove a development path in the graphical user interface and<br />

Web interface<br />

1 With a Project, Project History, or Sandbox view open, select the<br />

project.<br />

149


Chapter 5: Project and Sandbox Operations<br />

Using Build<br />

Sandboxes<br />

150<br />

2 In the GUI, from a Project view, select Project > Development Path ><br />

Remove.<br />

In the Web, from a Project view, select Project > Remove Development<br />

Path.<br />

From a Project History view, select History > Remove Development<br />

Path.<br />

From a Sandbox view, select Sandbox > Development Path > Remove.<br />

The Remove Development Path dialog box is displayed.<br />

3 From the Development Path list, select a development path to remove.<br />

For more information, see “Controlling Projects” on page 258.<br />

4 To remove the development path, click OK.<br />

The development path is removed.<br />

After major milestones, such as product releases, you might want to<br />

recreate a static version of an entire project as it existed at some point in the<br />

past. You create a build sandbox, to build or test the project, not to begin<br />

further work along a new development path. Build sandboxes could be<br />

used for quality assurance or production to distribute files in a fixed<br />

configuration.<br />

A build sandbox is a sandbox associated with a particular project revision,<br />

and has no development path (since it is static and not meant for further<br />

development). No further development can be carried out in a build<br />

sandbox.<br />

To create a build sandbox, see “Creating a Sandbox” on page 135. To view<br />

a build project, see “Opening or Viewing a Project” on page 121.<br />

Within a build sandbox, you can:<br />

change labels and states<br />

resynchronize your sandbox<br />

<strong>com</strong>pare a member revision in the build sandbox to another revision<br />

u s e r g u i d e


Working With Sandboxes<br />

merge a member revision in the build sandbox with another revision<br />

(of course, you cannot check a merged file back into the build<br />

sandbox)<br />

check for differences between project revisions, such as changes to a<br />

project since it was last checkpointed<br />

When you create a build sandbox, you choose the project revision on<br />

which to base the build sandbox.<br />

However, with a build sandbox, you cannot:<br />

check out, lock, or check in members<br />

add or remove members<br />

set the development path<br />

calculate dependencies<br />

freeze or thaw members<br />

checkpoint the master project<br />

modify project or member attributes<br />

revert members<br />

set the member revision<br />

Each of these represents further development -- which requires a normal or<br />

variant sandbox.<br />

151


Chapter 5: Project and Sandbox Operations<br />

152<br />

u s e r g u i d e


Member Operations<br />

6<br />

KEY TERMS: member, revision, defer, resync, rename, lock, submit, resynchronize<br />

This chapter describes the Source Integrity member related features you<br />

will use in your day-to-day activities, such as adding and checking out<br />

members.<br />

The tasks you can perform are restricted by the permissions assigned to<br />

you by your administrator. If you find you are unable to perform necessary<br />

operations, you must contact the administrator responsible for<br />

Source Integrity at your site to review the permissions assigned to you.<br />

NOTE<br />

If your administrator has assigned you a new set of permissions, you must<br />

update your permissions by disconnecting your Source Integrity client and<br />

then reconnecting to Integrity Server. An out-of-date permission set may cause<br />

unpredictable behavior when attempting to open projects or perform other<br />

tasks.<br />

This chapter provides details on the following:<br />

“Managing Project Members” on page 154<br />

“Performing Member Operations” on page 176<br />

“Deferring Member Operations” on page 200<br />

“Comparing Differences” on page 205<br />

“Using Keywords” on page 207<br />

153


Chapter 6: Member Operations<br />

Managing Project Members<br />

Displaying<br />

Non-Members<br />

154<br />

You can manage project members by adding them to a project, importing<br />

them into Source Integrity, or dropping them from a project.<br />

From Source Integrity, you can view non-member files residing in your<br />

sandbox directory. The Non-Members view is useful when used<br />

recursively to identify all of the files that need to be placed under source<br />

control. By default, former members are not displayed in the<br />

Non Members view (to modify the default view settings, see “View<br />

Preferences” on page 61). You cannot display multiple Non-Members<br />

views for the same sandbox.<br />

The Non-Members view does not display files that are:<br />

deferred imported members<br />

deferred add members from archive<br />

pending members (add, add from archive, import)<br />

working files from members that are renamed but not resynchronized<br />

Non-members can only be viewed in a sandbox context, and not from any<br />

project view operation.<br />

To display non-member files located in the sandbox directory in the<br />

graphical user interface<br />

1 From a Sandbox view with a project, subproject, or member selected,<br />

select Sandbox > View Non-Members.<br />

The Non-Members view is displayed.<br />

2 By default, if no filter criteria is specified, all non-members are<br />

displayed. To specify filter criteria, see “Filtering Non-Member Files”<br />

on page 156.<br />

NOTE<br />

If a member is selected when you display the Non-Members view, the nonmembers<br />

for the nearest project or subproject are displayed. The project or<br />

subproject name used by the Non-Members view displays in the title bar.<br />

u s e r g u i d e


Managing Project Members<br />

The Non-Members view displays the following information:<br />

Closest Project displays the project or subproject, with file path,<br />

corresponding to the sandbox that is closest to the directory<br />

containing the file.<br />

Closest Sandbox displays the sandbox or subsandbox, with file<br />

path, that is closest to the directory containing the file.<br />

Member ID displays the default member name for the file as it<br />

would appear if it was added to the nearest project. In the case<br />

where the nearest project is a subproject, the relative path is<br />

displayed with the member name.<br />

Absolute Path displays the absolute file path of the file.<br />

Size displays the size of the file in bytes.<br />

Last Modified displays the date that the file was last modified.<br />

You can modify which columns appear in the Non-Members view by<br />

changing the Non-Members view preferences. For more information,<br />

see “View Preferences” on page 61. You can also right-click column<br />

headers and select columns to view.<br />

3 From the Non-Members view, you can perform the following<br />

operations:<br />

To add non-member files to the project, select the member in the<br />

list, then do one of the following:<br />

Select Non-Member > Add.<br />

Click .<br />

<br />

For more information, see “Adding Members to a Project” on<br />

page 157.<br />

To delete non-member files from the sandbox directory, select the<br />

members in the list, then do one of the following:<br />

Select Non-Member > Delete.<br />

Click .<br />

To edit non-member files, select the members in the list, then do<br />

one of the following:<br />

Select Non-Member > Edit.<br />

Click .<br />

155


Chapter 6: Member Operations<br />

156<br />

To exclude non-members by name, including non-members in<br />

subdirectories, select the non-member files in the list; then select<br />

Non-Member > Exclude with Name. Each file name appears in the<br />

Exclude panel in the Non-Member Filter the next time it is<br />

opened, though the information does not persist once the Non-<br />

Member view is closed.<br />

To exclude non-members by file extension, select the nonmembers<br />

in the list, then select Non-Member > Exclude with<br />

Extension. Files that do not have an extension are not excluded.<br />

The file extension appears in the Exclude panel in the Non-<br />

Member Filter the next time it is opened, though the information<br />

does not persist once the Non-Member view is closed. The<br />

wildcard (*) is used to specify all files of a specified extension, for<br />

example, *.java.<br />

To change the filter criteria (include and exclude settings), do one<br />

of the following:<br />

Select View > Filters.<br />

Click .<br />

For more information, see “Filtering Non-Member Files” on<br />

page 156.<br />

To refresh the contents of the view and display non-members<br />

further added to the sandbox directory, select View > Refresh.<br />

TIP<br />

To add selected non-member files to a project or subproject, with a Sandbox<br />

view open, drag the files from the Non Members view to the sandbox or<br />

subsandbox that corresponds to that project or subproject to which you want to<br />

add the project. Subdirectories that do not correspond to subprojects are not<br />

maintained.<br />

Filtering Non-Member Files<br />

You can add filters to determine what file types and folders are displayed<br />

in the Non-Member view.<br />

To filter non-member files in the graphical user interface<br />

1 Select View > Filters.<br />

The Non-Member Filter dialog box is displayed with the Include panel<br />

displayed.<br />

u s e r g u i d e


Adding<br />

Members to a<br />

Project<br />

NOTE<br />

Managing Project Members<br />

If filters are specified in the Non-Members view preferences, those filter<br />

settings appear in the Non-Member Filter dialog box. Only modifications made<br />

to the filter settings in the Preferences Configuration dialog box are saved. For<br />

more information, see “View Preferences” on page 61.<br />

The Include panel displays the Files and Directories tabs. You can add<br />

any <strong>com</strong>bination of files or directories to appear in the Non-Member<br />

view by adding them from the Include panel. By specifying files types<br />

to include, all file types not specified are excluded. To include all<br />

possible file types, clear the list.<br />

Similarly, on the Exclude panel, you can add files or directories to the<br />

exclude list, thereby preventing them from appearing in the<br />

Non-Member view. All file types not specified are included.<br />

In the event of a conflict, the values in the Exclude panel supersede the<br />

values in the Include panel.<br />

2 To add a file or directory, click the appropriate tab to display the<br />

panel.<br />

3 In the text entry field, enter the name of the file or directory, then click<br />

Add.<br />

TIP<br />

To specify all files with a specific file extension, use the wildcard (*), for<br />

example, *.java.<br />

To edit the name of the file or directory, select the name in the list,<br />

then click Edit.<br />

To remove a file or directory, select the name in the list, then click<br />

Remove.<br />

4 When you are finished, click OK to save the filter settings.<br />

Once you create a project, you can add files to it, making them members of<br />

that project.<br />

A project member is any file that is included in a project. Project members<br />

are displayed in the Project view.<br />

In the graphical user interface you can add members through the sandbox.<br />

In the Web interface, because sandboxes do not exist, you can add<br />

members through the project only.<br />

157


Chapter 6: Member Operations<br />

158<br />

Once you have added members to your project, you can check them out for<br />

editing, and then check them in to preserve your changes.<br />

Project members may be one of following types of files: archived (files<br />

under Source Integrity revision control), or subproject (another<br />

Source Integrity project).<br />

NOTE<br />

Adding a large number of members, or a directory with a large number of<br />

members to a Source Integrity sandbox may cause the client to stall if the<br />

Integrity Server does not have the re<strong>com</strong>mended system configuration.<br />

Consult your administrator for more information.<br />

A batch server-side utility, the si import <strong>com</strong>mand, is available for<br />

adding files. For more information on this advanced administration task,<br />

see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />

You can import members in the graphical user interface. For information<br />

on importing members, see “Importing Members” on page 169.<br />

You can also add members that are dropped from a project, using the<br />

working file as the file selection. If no working file exists, use the Add<br />

Members From Archive <strong>com</strong>mand to add the member from an archive<br />

located on the server (see “Adding Members From Archive to a Project” on<br />

page 166).<br />

You can also add a member to the project on a deferred basis. Deferring the<br />

addition of a member allows you to work with the member in your<br />

sandbox without causing any changes in the project. For more information<br />

on deferred operations, see “Deferring Member Operations” on page 200.<br />

NOTE<br />

If there is a deferred add operation associated with a member, you cannot view<br />

the member history for that member because it has not yet been added to the<br />

actual project.<br />

To add members in the graphical user interface<br />

1 With a Sandbox view open, select the sandbox or subsandbox you<br />

want to add members to.<br />

u s e r g u i d e


2 Do one of the following:<br />

Select Sandbox > Member > Add New Members.<br />

Click .<br />

The Add Members Wizard appears.<br />

3 To add a list of files to the project, click Add File.<br />

Managing Project Members<br />

4 To add a directory of files to the project, click Add Directory.<br />

The Select One or More Members to Add to the Sandbox dialog box is<br />

displayed.<br />

5 Select one or more files from the displayed file list, navigating to the<br />

desired directory if necessary.<br />

By default, Non-Members is selected in the Files of type list, which<br />

displays files that are located in the sandbox directory, but are not<br />

members.<br />

TIP<br />

To select multiple files in the graphical user interface, hold CTRL and click the<br />

left mouse button while highlighting each file you want to add.<br />

6 Click Open.<br />

The files are added to the members list. To remove files, select the files,<br />

then click Remove.<br />

159


Chapter 6: Member Operations<br />

160<br />

7 To add members recursively to the project, select Recurse Into<br />

Directories.<br />

8 To create subprojects, select Create Subproject.<br />

9 To <strong>com</strong>plete the operation, click Finish. To make changes, click Back.<br />

The Create Archive dialog box is displayed.<br />

10 Modify the following Create Archive options as necessary:<br />

In the Archive Description field, describe the purpose of the<br />

member archive.<br />

The archive description contains text that describes the purpose of<br />

an archive. Each time you create an archive, you can assign a<br />

description to it.<br />

To add the operation to a change package, from the Change<br />

Package list select a change package. To create a change package,<br />

click Create. For more information, see “Creating a Change<br />

Package” on page 217.<br />

In the Author field, if necessary, enter your user name. The user<br />

name specified in the Add Members <strong>com</strong>mand configuration<br />

appears by default.<br />

u s e r g u i d e


Managing Project Members<br />

In the Revision Number field, if necessary, enter a revision<br />

number for the member. Source Integrity creates the revision<br />

number 1.1 by default.<br />

In the Data Type field, select a file data type from the list. The<br />

archive is stored in the specified format. The available options are:<br />

Auto means the file data type is determined automatically by<br />

Source Integrity. For binary files less than 16K, specify the<br />

Binary file data type.<br />

Text is the file format expected by text file editors.<br />

Binary is file data type containing unprintable characters or<br />

lines too long to be handled by text editors.<br />

In the field for On Existing Archive, the following options apply in<br />

the event that Source Integrity finds an existing archive for the<br />

member you propose to add:<br />

Query <strong>User</strong> causes Source Integrity to ask you for<br />

confirmation on the action to be taken.<br />

Share Archive causes Source Integrity to use the existing<br />

archive for the new member.<br />

Create New Archive causes Source Integrity to create a<br />

new archive for the new member. Source Integrity<br />

automatically generates the archive name and leaves the old<br />

archive unmodified.<br />

Cancel causes Source Integrity to cancel the operation.<br />

To set the timestamp of the revision in the history to the<br />

timestamp of the working file, rather than the time the member<br />

was added, select the Save Working File Timestamp option.<br />

To close the associated change package, select the Close Change<br />

Package option.<br />

To replace literal values in the revision with keywords, select the<br />

Unexpand Keywords option.<br />

To defer adding the member to the project, select Defer Add. This<br />

delays the add operation in the project until the deferred<br />

operation is submitted (see “Submitting Deferred Operations” on<br />

page 202). The operation in the sandbox still takes place<br />

immediately and Source Integrity displays the icon.<br />

If the change package reviews are mandatory, select this option to<br />

create a pending entry for this operation at the time of change<br />

package submission. If this option is not enabled, Source Integrity<br />

161


Chapter 6: Member Operations<br />

162<br />

creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />

more information, see “Change Package Review Process” on<br />

page 240. When a deferred add member operation is submitted as<br />

part of a review, a pending member is created (see “Working<br />

With Pending Revisions” on page 335).<br />

To lock the revision, select the Lock Revision option.<br />

To keep the working file of a newly added member, select the<br />

Retain Working File option.<br />

11 To accept the information, click OK. To accept the information for<br />

multiple members, click OK to All.<br />

If you are adding a dropped member and the member’s archive still<br />

exists, the Existing archive detected dialog box is displayed informing<br />

you that an archive already exists for the member.<br />

12 Select from the following available options:<br />

To add the member and associate it with the existing archive,<br />

select Share the existing archive.<br />

To create a new archive for the member, select Create new archive.<br />

A new archive name is generated automatically and the old<br />

archive is left unmodified.<br />

To cancel the operation and not associate or create an archive,<br />

select Cancel this operation.<br />

13 To <strong>com</strong>plete the operation, click OK.<br />

To <strong>com</strong>plete an operation affecting multiple files, click OK to All.<br />

14 Repeat steps 1 to 12 for the remaining members, if necessary.<br />

The newly added members appear in your Sandbox view.<br />

u s e r g u i d e


To add members in the Web interface<br />

Managing Project Members<br />

1 With the project you want to add a member to open, do one of the<br />

following:<br />

Select Project > Add Member.<br />

Click .<br />

The Non-Member Selection dialog box is displayed.<br />

2 In the field, enter the name of the new member, including the file<br />

extension. For example, features.gif.<br />

3 Click OK.<br />

The Create Archive dialog box is displayed.<br />

4 Modify the following Create Archive options as necessary:<br />

In the Archive Description field, enter a description of the<br />

member.<br />

163


Chapter 6: Member Operations<br />

164<br />

IMPORTANT<br />

The Change Package options, such as Close Change Package, appear only<br />

if change packages are enabled.<br />

In the Author field, if necessary, enter your user name. The user<br />

name specified in the Add Members <strong>com</strong>mand configuration<br />

appears by default.<br />

In the Revision Number field, if necessary, enter a revision<br />

number for the member. Source Integrity creates the revision<br />

number 1.1 by default.<br />

In the Data Type field, select a file data type from the list. The<br />

archive is stored in the specified format. The available options are:<br />

Auto means the file data type is determined automatically by<br />

Source Integrity.<br />

Text is the file format expected by text file editors.<br />

Binary is file data type containing unprintable characters or<br />

lines too long to be handled by text editors.<br />

In the field for On Existing Archive, the following options apply in<br />

the event that Source Integrity finds an existing archive for the<br />

member you propose to add:<br />

Query <strong>User</strong> causes Source Integrity to ask you for<br />

confirmation on the action to be taken.<br />

Share Archive causes Source Integrity to use the existing<br />

archive for the new member.<br />

Create New Archive causes Source Integrity to create a<br />

new archive for the new member. Source Integrity<br />

automatically generates the archive name and leaves the old<br />

archive unmodified.<br />

Cancel causes Source Integrity to cancel the operation.<br />

In the field for Close Change Package, select one of the following<br />

options:<br />

Yes causes Source Integrity to close the associated change<br />

package.<br />

No causes Source Integrity to keep the associated change<br />

package open.<br />

u s e r g u i d e


Managing Project Members<br />

Confirm causes Source Integrity to ask you for confirmation<br />

on the action to be taken.<br />

To lock the revision, select the Lock Revision option.<br />

To replace literal values in the revision with keywords, select the<br />

Unexpand Keywords option.<br />

5 To accept the information, click OK.<br />

The Specify Source File dialog box is displayed.<br />

6 In the field, enter or browse to the source file for the member you want<br />

to add and click OK.<br />

If you are re-adding a dropped member and the member’s archive still<br />

exists, the Existing archive detected dialog box is displayed informing<br />

you that an archive already exists for the member.<br />

Select from the following available options:<br />

To add the member and associate it with the existing archive,<br />

select Share the existing archive.<br />

To create a new archive for the member, select Create new archive.<br />

A new archive name is generated automatically and the old<br />

archive is left unmodified.<br />

To cancel the operation and not associate or create an archive,<br />

select Cancel this operation.<br />

165


Chapter 6: Member Operations<br />

Adding<br />

Members From<br />

Archive to a<br />

Project<br />

166<br />

7 Click OK.<br />

8 Repeat steps 2 through 6 for other members you want to add to the<br />

project.<br />

The member is added and appears in your Project view.<br />

The Add Members From Archive <strong>com</strong>mand can be used for the following:<br />

Add previously dropped members without requiring a sandbox<br />

working file, while preserving the member history.<br />

Add a member that shares the history of another existing member,<br />

where the source member can be located in another project from the<br />

added member.<br />

Note the following about the <strong>com</strong>mand:<br />

It can be deferred when performed from a sandbox.<br />

It may be part of change package review (displayed as pending<br />

members in the project).<br />

It supports multiple selection of archives using the wizard.<br />

To add members from archive in the graphical user interface<br />

1 Do one of the following:<br />

With a Sandbox view open, select the sandbox or subsandbox you<br />

want to add members to.<br />

With a Project view open, select the project or subproject you<br />

want to add members to.<br />

2 Where applicable, do one of the following:<br />

Select Sandbox > Member > Add Members From Archive.<br />

Select Project > Member > Add Members From Archive.<br />

The Add Members From Archive wizard is displayed.<br />

u s e r g u i d e


Managing Project Members<br />

3 Members are added by specifying a member name with an archive<br />

location; together they define an entry that represents the destined<br />

member.<br />

Do one of the following:<br />

Click Select Archives to browse the repository for an archive.<br />

The Locate the Member Archive(s) dialog box is displayed.<br />

Select the archives corresponding to the members you want to<br />

add to the project. Archives are identified by the icon, and by<br />

default are located in the subdirectory named rcs.<br />

To add the selection as an entry in the list, click OK.<br />

In the first field, enter the name that represents the member being<br />

added. Then enter the archive location in the subsequent field<br />

(requires a valid location to an existing archive). The default<br />

archive location is the project selected in step 1.<br />

To add the entry to the list, click Add.<br />

Repeat to add additional entries. Added entries appear in the<br />

following tabular list:<br />

Member Name displays the name of the member (may differ from<br />

the archive file name).<br />

Archive Location displays the absolute path of the archive and the<br />

archive file name.<br />

167


Chapter 6: Member Operations<br />

168<br />

To remove an entry from the list, click Remove. Repeat to remove<br />

additional entries.<br />

4 When you are finished specifying entries to add, click Finish.<br />

The Add Member From Archive dialog box is displayed.<br />

5 The archive location is displayed in the Archive Location field. To<br />

change the location, specify a new location in the field, or click Locate<br />

Archive to select it.<br />

6 To add the operation to a change package, from the Change Package<br />

list, select a change package. To create a change package, click Create.<br />

For more information, see “Creating a Change Package” on page 217.<br />

7 To specify the revision for the added member, in the Revision Number<br />

field, enter the revision number.<br />

8 If desired, select from the following options:<br />

To create subprojects for each subdirectory encountered when<br />

adding members, select Create Subprojects.<br />

To recursively add members that exist in the specified directory<br />

location, select Recurse into Directories.<br />

To close the associated change package after the operation is<br />

<strong>com</strong>plete, select Close Change Package.<br />

To delay the add operations in the project until the deferred<br />

operation is submitted, select Defer Add From Archive (only<br />

available from Sandbox view).<br />

If reviews are mandatory and this option is not selected, a<br />

pending member (and a pending change package entry) is created<br />

when the operation is <strong>com</strong>pleted. For more information, see<br />

“Change Package Review Process” on page 240.<br />

u s e r g u i d e


Importing<br />

Members<br />

Managing Project Members<br />

9 When you are finished, click OK to add the member to the project. To<br />

add all subsequent members specified in the Add Members From<br />

Archive wizard, click OK to All.<br />

The member is added to the project. The member appears in the<br />

Sandbox or Project view.<br />

When you add a member, it is automatically registered with the Integrity<br />

Server; however, members added with earlier versions of Source Integrity<br />

or server resident files must be imported to register them with the Integrity<br />

Server.<br />

NOTE<br />

The master project must be registered with the Integrity Server before the<br />

member is imported.<br />

You cannot import members into a shared subproject. For more information on<br />

shared subprojects, see “Adding a Shared Subproject” on page 127.<br />

Do not use the Import Member <strong>com</strong>mand to add members that are dropped<br />

from a project. Instead, use the Add Members From Archive <strong>com</strong>mand (see<br />

“Adding Members From Archive to a Project” on page 166).<br />

To import a member in the graphical user interface<br />

1 Do one of the following:<br />

From a Project view, select Project > Member > Import Members.<br />

From a Sandbox view, select Sandbox > Member ><br />

Import Members.<br />

The Import Members Wizard is displayed.<br />

169


Chapter 6: Member Operations<br />

170<br />

2 To import a list of files to the project, click Add File.<br />

To import a directory and its contents, click Add Directory.<br />

The Select One or More Members to Import to the Project dialog box is<br />

displayed.<br />

3 Select one or more files from the displayed list, navigating to the<br />

desired directory if necessary. To select multiple files in the graphical<br />

user interface, hold CTRL and click the left mouse button while<br />

highlighting each file you want to add.<br />

NOTE<br />

If your connection to the Integrity Server is disconnected while you are<br />

browsing for a file, the file browser does not show any files or directories.<br />

4 Click Open.<br />

The files are added to the members list.<br />

To remove files, select the files, then click Remove.<br />

5 Click Next to specify options, or click Finish to import files without<br />

specifying options.<br />

The next panel of the Import Members Wizard appears.<br />

u s e r g u i d e


Managing Project Members<br />

6 To add the operation to a change package, from the Change Package<br />

list, select a change package. To create a change package, click Create.<br />

For more information, see “Creating a Change Package” on page 217.<br />

7 Under Options, you can specify the following information:<br />

In the Author field, if necessary, enter your user name. The user<br />

name specified in the <strong>com</strong>mand configuration appears by default.<br />

In the Data Type field, select a file data type from the list. The<br />

archive is stored in the specified format. The available options are:<br />

Auto: file type determined automatically by Source Integrity.<br />

Text: file format expected by text file editors.<br />

Binary: file containing unprintable characters or lines too<br />

long to be handled by text editors.<br />

In the Revision Number field, if necessary, enter a revision<br />

number for the member. Source Integrity creates the revision<br />

number 1.1 by default.<br />

In the Description field, enter a description of the member.<br />

To create subprojects, select the Create Subprojects option.<br />

To import members that exist in the specified directory location<br />

recursively, select the Recurse into Directories option.<br />

171


Chapter 6: Member Operations<br />

Dropping<br />

Members From<br />

a Project<br />

172<br />

To close the change package, select the Close Change Package<br />

option.<br />

To replace literal values in the revision with keywords, select the<br />

Unexpand Keywords option.<br />

To defer importing the member into the project, select Defer<br />

Import (only available when the operation is performed from a<br />

Sandbox view). This delays the import operation in the project<br />

until the deferred operation is submitted (see “Submitting<br />

Deferred Operations” on page 202). The operation in the sandbox<br />

still takes place immediately.<br />

If the change package reviews are mandatory, select this option to<br />

create a pending entry for this operation at the time of change<br />

package submission. If this option is not enabled, Source Integrity<br />

creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />

more information, see “Change Package Review Process” on<br />

page 240. When a deferred import member operation is<br />

submitted as part of a review, a pending member is created (see<br />

“Working With Pending Revisions” on page 335).<br />

To <strong>com</strong>plete the operation, click Finish. To make changes, click Back.<br />

The members appear in the Project or Sandbox view.<br />

If a member has outlived its usefulness or just does not belong in a project<br />

anymore, you can remove it at any time.<br />

In the graphical user interface, you can remove a member through a<br />

Sandbox view, or through a Project view. For more details on removing<br />

members through a Project view, see “Dropping a Subproject” on<br />

page 133.<br />

In the Web interface, because sandboxes do not exist, you can remove<br />

members through the Project view only.<br />

After you remove a member from a project, the member is no longer listed<br />

as part of the sandbox or master project, but the member’s history remains<br />

in the project record, in case you need to recreate an earlier version of the<br />

project.<br />

A former member is one that is dropped from the project. Source Integrity<br />

retains the member history for former members as part of the project.<br />

Depending on the options you select when dropping the member,<br />

Source Integrity can also delete the member’s working file and close any<br />

associated change package.<br />

u s e r g u i d e


NOTE<br />

Managing Project Members<br />

You cannot check in a member that is associated with a deferred drop<br />

operation.<br />

To drop a member in the graphical user interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

remove from the project or sandbox.<br />

2 From a Project view, do one of the following:<br />

Select Project > Drop Members.<br />

Click .<br />

From a Sandbox view, do one of the following:<br />

Select Sandbox > Drop Members.<br />

Click .<br />

The Drop Member dialog box is displayed.<br />

3 Choose the options you want to apply by selecting a check box.<br />

IMPORTANT<br />

The Change Package options, such as Close Change Package, appear only<br />

if change packages are enabled.<br />

The Drop Member options are:<br />

Change Package displays the associated change package, if any.<br />

Delete Working File deletes the working files of the members<br />

being dropped.<br />

173


Chapter 6: Member Operations<br />

174<br />

Confirm Drop prompts you to confirm the drop for each selected<br />

member.<br />

Defer Drop Member delays the drop operation in the project until<br />

the deferred operation is submitted (see “Submitting Deferred<br />

Operations” on page 202). The operation in the sandbox still takes<br />

place immediately and Source Integrity displays the icon.<br />

If the change package reviews are mandatory, select this option to<br />

create a pending entry for this operation at the time of change<br />

package submission. If this option is not enabled, Source Integrity<br />

creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />

more information, see “Change Package Review Process” on<br />

page 240.<br />

Close Change Package closes any associated change package.<br />

For information on the Integrity Manager integration see, “The<br />

Integrity Manager Integration” on page 371.<br />

4 To drop the selected member, click OK. To drop multiple members,<br />

click OK to All.<br />

IMPORTANT<br />

If change packages are enabled, the Associate Change Package with dropped<br />

member dialog box is displayed.<br />

The project or sandbox is updated to reflect the removed member, and<br />

the member is removed from the project.<br />

Once a member is dropped from a project, the change is not<br />

immediately reflected in other sandboxes. Other users must<br />

resynchronize their sandboxes. For more information on<br />

resynchronizing, see “Resyncing Members” on page 197.<br />

To drop a member in the Web interface<br />

1 From a Project view, select the member(s) you want to drop from the<br />

project by clicking the corresponding check box(es).<br />

2 Do one of the following:<br />

Select Project > Drop Members.<br />

Click .<br />

The Drop Member dialog box is displayed.<br />

u s e r g u i d e


Managing Project Members<br />

3 Choose the options you want to apply by selecting from the drop<br />

down list or a check box.<br />

The Drop Member options are:<br />

Change Package displays the associated change package, if any.<br />

Confirm Drop prompts you to confirm the drop for each selected<br />

member.<br />

Close Change Package closes any associated change package.<br />

Select one of the following options:<br />

Yes causes Source Integrity to close the associated change<br />

package.<br />

No causes Source Integrity to keep the associated change<br />

package open.<br />

Confirm causes Source Integrity to ask for confirmation<br />

about the action to be taken.<br />

4 To drop the selected member, click OK. To drop multiple members,<br />

click OK to All.<br />

If you selected the Confirm Drop option in step 3, the Confirm Drop<br />

dialog box is displayed.<br />

To drop the selected member(s), click Yes. To cancel the operation,<br />

click No.<br />

IMPORTANT<br />

If change packages are enabled, the Associate Change Package with dropped<br />

member dialog box is displayed. For information on the Integrity Manager<br />

integration see, “The Integrity Manager Integration” on page 371.<br />

175


Chapter 6: Member Operations<br />

Performing Member Operations<br />

Selecting<br />

Members<br />

176<br />

The member is dropped from the project. The project is updated to<br />

reflect the dropped member.<br />

During development, operations can be performed on project members.<br />

The Select <strong>com</strong>mand allows you to highlight any members of the current<br />

sandbox or project that meet specified selection criteria. Members selected<br />

with this <strong>com</strong>mand can be manipulated as a group by other<br />

Source Integrity <strong>com</strong>mands.<br />

To select specific members (graphical user interface only)<br />

1 With a Project or Sandbox view open, do one of the following:<br />

Select View > Select.<br />

Click .<br />

The Select Members dialog box is displayed.<br />

2 Choose the selection criteria you want to use by selecting a check box.<br />

The available options are:<br />

All Members selects all visible members.<br />

u s e r g u i d e


Performing Member Operations<br />

Changed Members selects members that have specific changes to<br />

them.<br />

To choose all members that have changes, from the Changed<br />

Members list, select All Changes.<br />

To choose all members that have working file changes, from the<br />

Changed Members list, select Working File Changes.<br />

To choose members whose working file revision is different from<br />

the member revision, from the Changed Members list, select Out<br />

of Sync Members.<br />

To choose members that have a new revision available, select New<br />

Revision Available from the Changed Members list.<br />

Members Locked By selects members locked by a specific user.<br />

To choose members locked by you, select from the Members<br />

Locked By list.<br />

To choose members locked by any user, select from the<br />

Members Locked By list.<br />

To choose members locked by a specific user, select a user name,<br />

for example, , from the Members Locked By list.<br />

Members With Label selects members with a specific label. Select a<br />

label from the Members With Label list.<br />

To choose members with any label, select from<br />

the Members With Label list.<br />

Members With State selects members with a specific state. Select a<br />

state from the Members With State list.<br />

Members With Attribute selects members with a specific attribute.<br />

Select an attribute from the Members With Attribute list.<br />

Deferred Items selects members with a deferred operation<br />

associated with it. Select a deferred operation from the Deferred<br />

Items list.<br />

Frozen Members selects all frozen members (members that are in<br />

a state that prevents changes being made to the member<br />

information).<br />

Members With Name selects members with a specific name. Enter<br />

a member name in the Members With Name field. Wildcards such<br />

as ? and * are supported.<br />

177


Chapter 6: Member Operations<br />

Checking Out a<br />

Member<br />

178<br />

Working revision branched from Member Revision selects<br />

members where the working file is on a branch from a given<br />

development path that is not the trunk development path.<br />

Members on Branch selects only members that are off the main<br />

development trunk.<br />

Pending Operations selects members with pending operations<br />

associated with them. Select the pending operation from<br />

the Pending Operations list.<br />

NOTE<br />

All options only apply to visible members. Members in unexpanded directories<br />

and subprojects are not selected.<br />

3 If two or more criteria are selected, they can be joined using the<br />

Logical AND or Logical OR option.<br />

4 To accept the selection criteria, click OK.<br />

The members are selected in the Project or Sandbox view.<br />

Before you can make changes to a member, you must first check it out.<br />

When you check out a revision, it is copied to a working file where you can<br />

view or modify its contents.<br />

Checking out a member extracts the contents of a revision in a member<br />

history and copies it to the working file. You can check out any revision by<br />

specifying either its revision number or label.<br />

If you already have a member checked out, and you have not made any<br />

changes to the member, Source Integrity does not perform the check out a<br />

second time. While the check out dialog does appear, the original check out<br />

stands.<br />

If you already have a member checked out, and you make changes, and<br />

then attempt to check out the member a second time, the Confirm Working<br />

File Update dialog box is displayed. If you want to retain your changes in<br />

the working file, click Yes (Yes to All for multiple members). If you do not<br />

want to retain your changes in the working file, click No (No to All for<br />

multiple members).<br />

In the Source Integrity Web interface, when you check out a revision, it is<br />

downloaded to a working file for editing. This occurs because sandboxes<br />

do not exist in the Web interface.<br />

u s e r g u i d e


To check out a member in the graphical user interface<br />

Performing Member Operations<br />

1 With a Sandbox or Member History view open, select one or more<br />

members to check out.<br />

2 From the Sandbox view, do one of the following:<br />

Select Member > Check Out.<br />

Click .<br />

From the Member History view, do one of the following:<br />

Select History > Check Out.<br />

Click .<br />

The Check Out dialog box is displayed.<br />

3 Click the desired tab, then modify the check out options. For more<br />

information, see “Check Out Options” on page 182.<br />

179


Chapter 6: Member Operations<br />

180<br />

NOTE<br />

If the change packages are enabled, the Change Package options appear on the<br />

General tab.<br />

4 To check out a single selected member, click OK. To check out all<br />

selected members, click OK to All.<br />

The member is checked out for editing, indicated by a lock icon, who<br />

locked the revision, and when it was locked.<br />

For information on advanced check in and check out operations, see<br />

“Branching and Merging Revisions” on page 337.<br />

To check out a member in the Web interface<br />

1 With a Project or Member History view open, select a member to<br />

check out by clicking the corresponding check box.<br />

NOTE<br />

In the Web interface, you can check out only one member per operation.<br />

Multiple member selections for check out cause an error.<br />

2 From the Project view, do one of the following:<br />

Select Member > Check Out<br />

Click .<br />

From the Member History view, do one of the following:<br />

Select History > Check Out.<br />

Click .<br />

The Check Out dialog box is displayed.<br />

u s e r g u i d e


Performing Member Operations<br />

3 Click the desired tab, then modify the check out options. For more<br />

information, see “Check Out Options” on page 182.<br />

NOTE<br />

If the change packages are enabled, the Change Package options appear on the<br />

General tab.<br />

4 To check out the member, click OK.<br />

The File Download dialog box is displayed.<br />

NOTE<br />

Once you have reached the file download stage of the check out operation, if<br />

you cancel the file download the member appears locked in the project. This<br />

occurs because the member is checked out and saved to a temporary location<br />

pending your download options.<br />

To unlock the member, if you have cancelled the file download, select the<br />

member by clicking the corresponding check box and then select Member ><br />

Unlock.<br />

181


Chapter 6: Member Operations<br />

182<br />

5 To download the member, select either of the following options:<br />

To open the member in its associated program immediately,<br />

select Open this file from its current location and click OK. The file<br />

is automatically sent to a temporary directory on your system.<br />

If the member you are checking out is a program or application<br />

(executable format) the File Download dialog box reappears with<br />

the following options:<br />

To run the program immediately, select Run this program<br />

from its current location and click OK.<br />

To save the program to a specified location on your local<br />

drive, select Save this Program to disk and click OK. The Save<br />

As dialog box is displayed. Specify a location for the program<br />

and click Save.<br />

To save the member to a specified location on your local drive,<br />

select Save this file to disk and click OK.<br />

The Save As dialog box is displayed. Specify a location for the<br />

member and click Save.<br />

The member is checked out for editing, indicated by a lock icon, who<br />

locked the revision, and when it was locked.<br />

Check Out Options<br />

Check Out Dialog Box Tab Revision to Check Out Options<br />

Selection Specifies which revision of the member to check out.<br />

To check out a pre-defined revision, click Pre-Defined Revision, then select a<br />

revision type from the list. The available options are:<br />

Member checks out the member revision, that is, the revision shown in the<br />

Sandbox view (this is the default). Head checks out the head revision. Trunk<br />

Tip checks out the latest member revision in the trunk. Member Branch Tip<br />

checks out the latest revision along the member’s current branch of development.<br />

To check out the latest revision, select Specific Revision. The Specific Revision<br />

option selects the most recent revision by default and displays it in brackets, for<br />

example, (1.1).<br />

To check out a revision by state, click Latest revision with State, then select a<br />

state from the list. The options in the list depend on the states configured by your<br />

administrator. This option is only available when Promotion is enabled by your<br />

administrator and is only visible in the graphical user interface.<br />

Revisions Allows you to select a specific member revision to check out. Select a revision<br />

from the member history.<br />

Labels Allows you to select a revision to check out by label. Select a label from the label<br />

list.<br />

u s e r g u i d e


Check Out Dialog Box Tab Revision to Check Out Options<br />

Project allows you set the member revision for the following options:<br />

Performing Member Operations<br />

Member revision on Variant allows you to make a specific variant revision the<br />

member revision.<br />

Member revision on a Project Build allows you to make a specific build revision<br />

the member revision.<br />

General Specifies the following general check out options:<br />

Lock Revision checks out a writable working file and ensures that other users<br />

cannot make changes to the revision by locking the revision. A revision must be<br />

checked out locked if strict locking is enabled, and you intend to make changes<br />

to it.<br />

Overwrite Working File if Changed (graphical user interface only) overwrites the<br />

working file even if it is modified.<br />

Overwrite if Deferred Operation Pending (graphical user interface only)<br />

overwrites the working file if the file has changed and there is a deferred<br />

operation pending on the member.<br />

Change Package options, appear only when change packages are enabled.<br />

Line Terminator (Web interface only) determines the type of line terminator<br />

Source Integrity uses when dealing with members: lf (or line feed, primarily for<br />

UNIX applications), or crlf.<br />

Advanced Specifies the following advanced check out options:<br />

Update Member Revision causes the revision you check out to be<strong>com</strong>e the new<br />

member revision of the project. For example, if the current project member is<br />

listed as Revision 2.3 and you check out Revision 1.7 with the Update Member<br />

Revision option selected, Revision 1.7 replaces Revision 2.3 as the member<br />

revision of the project.<br />

Force Creation of New Branch causes Source Integrity to force the creation of a<br />

new branch on check out.<br />

Merge Working File if Changed (graphical user interface only) automatically<br />

merges any changes from the revision being checked out into the working file.<br />

Restore Revision Timestamp (graphical user interface only) sets the timestamp<br />

of the working file, to which the revision is checked out, to the date and time of<br />

the revision in the history. If this option is not set, the working file’s timestamp is<br />

set to the current date and time.<br />

Create Branch if Variant causes Source Integrity to create a branch off of the<br />

revision you are checking out, if you are working in a variant sandbox and this is<br />

the first time the member is checked out. This reduces the possibility of locking<br />

conflicts with the member while work is being done in the variant and regular<br />

sandboxes.<br />

In the Web interface only, select from one of the following options:<br />

Select Yes to create a branch.<br />

Select No to not create a branch.<br />

Select Confirm to be asked for confirmation of the action to be taken.<br />

183


Chapter 6: Member Operations<br />

Check Out Dialog Box Tab Revision to Check Out Options<br />

Advanced continued Keywords allows you to select keyword expansion options when checking out a<br />

member. To leave keywords unexpanded, select Do Not Expand from the<br />

Keywords list. To replace keywords in the revision with literal values in the<br />

working file, select Expand from the Keywords list. To unexpand keywords in the<br />

working file, select Unexpand from the Keywords list.<br />

On Lock allows you to select a locked file for check out. To be asked to confirm<br />

the required action each time you check out a member, select Query <strong>User</strong>. To<br />

create a branch upon locking the working file, select Branch. To make the<br />

working file writable upon lock, select Make Writable. To be asked to confirm<br />

branching, select Query <strong>User</strong> to Branch. To be asked to confirm that you<br />

want the working file to be writable, select Query <strong>User</strong> to Make Writable.<br />

To cancel the On Lock option, select Cancel. By default, Source Integrity asks<br />

you to confirm the required action each time you check out a member.<br />

Viewing and<br />

Editing a<br />

Member<br />

184<br />

Merge Type (graphical user interface only) specifies the action to be taken when<br />

merging revisions. Select one of the following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken when<br />

merging upon check out.<br />

Cancel causes Source Integrity to cancel the operation.<br />

Automatic causes Source Integrity to perform an automatic merge. For more<br />

information on automatic merging, see “Step Two: Merge Branch” on page 345<br />

Manual causes Source Integrity to initiate the MKS Visual Merge tool.<br />

On Conflicts (graphical user interface only) specifies the action to be taken when<br />

merge conflicts occur. Select one of the following options from the list:<br />

Confirm causes Source Integrity to confirm the action to be taken when a<br />

conflict occurs.<br />

Cancel causes Source Integrity to cancel the operation when a conflict<br />

occurs.<br />

Mark For Later Merge causes Source Integrity to mark the files for<br />

merging at another time, allowing you to resolve the conflict first.<br />

Launch Tool causes Source Integrity to initiate the MKS Visual Merge tool.<br />

Highlight Output File causes Source Integrity to highlight conflicts in<br />

the resulting merged revision.<br />

Error causes Source Integrity to display an error message prompt.<br />

You can open a member or a deferred member in your default editor<br />

application.<br />

The default editor is the editor used to display a working file or revision,<br />

for example, Microsoft Windows Notepad or MKS Toolkit’s vi for<br />

Windows editor.<br />

Whether you can edit or just view the contents of the member depends<br />

upon whether you have read-only or read-write access to the member. You<br />

must have a member locked in your name to be able to check it in.<br />

u s e r g u i d e


Performing Member Operations<br />

Changes to member information are automatically displayed in the<br />

Sandbox view. You can also use the Scan for Changes feature to display<br />

changes if the client is offline from the server or if you need to see changes<br />

on your local drive.<br />

To view or edit a member in the graphical user interface<br />

1 With a Sandbox view open, select the member you want to view or<br />

edit.<br />

2 Do one of the following:<br />

Select Member > Working File > Edit.<br />

Click .<br />

Double click the file icon.<br />

The member’s working file is opened in your default editor or in the<br />

editor associated with the file’s extension. To configure your default<br />

editor, see “Setting Preferences” on page 40.<br />

To view a member in the Web interface<br />

1 With a Project view open, select the member you want to view.<br />

2 Select Member > View Member.<br />

The member is opened in a second browser window.<br />

Scanning for Changes<br />

Member information in a Sandbox view is automatically updated<br />

whenever changes are made, for example, if another user locks a member.<br />

You only need to scan for changes if your connection to the Integrity Server<br />

is offline or if you need to see changes to members on your local drive.<br />

To scan a sandbox for changes in the graphical user interface<br />

1 With a Sandbox view open, select the members you want to scan for<br />

changes.<br />

2 Select View > Scan for Changes.<br />

The Sandbox view displays members whose working file has changed<br />

(indicated by working file deltas, ), or a message informing you<br />

there are newer revisions available in the Member History (indicated<br />

by member deltas, ).<br />

185


Chapter 6: Member Operations<br />

Checking In a<br />

Member<br />

186<br />

When you are satisfied with the changes you have made to a member, you<br />

should check in the member to preserve those changes as a new revision in<br />

the member’s history. Members should be checked in on a regular basis.<br />

checking in a member creates a new revision of a member and adds it to the<br />

member history. When a member is checked in to a revision other than the<br />

head revision or a branch tip revision, a new branch is created.<br />

The author name is the name you associate with revisions upon check in. By<br />

default, your author name is your user name.<br />

In the Source Integrity Web interface, because sandboxes do not exist, a<br />

source file (working file) for the member is specified and checked in as the<br />

new revision.<br />

Starting a Branch When Checking In a Member<br />

Source Integrity usually places a new revision at the top of the trunk,<br />

assigning it a two-part revision number, such as 1.15. There are times,<br />

however, when you do not want your work to be checked into the trunk.<br />

You may be pursuing a line of development that will not be included in the<br />

finished product, or you may be doing post-release maintenance while<br />

development for the next release continues on the trunk. For information<br />

on branching, see “Branching and Merging Revisions” on page 337.<br />

Divergent lines of development in the same archive are managed through<br />

the use of branches. A branch is an independent revision line that uses an<br />

existing revision as its starting point. Members of a branch revision are<br />

identified by their revision numbers. Whereas revisions on the trunk are<br />

characterized by two-part revision numbers (for example, 1.2 or 3.5),<br />

branch revision numbers are prefixed with the number of the revision they<br />

start from. For example, if a branch revision is started from revision<br />

number 1.2, the members of that branch are numbered<br />

1.2.1.3<br />

1.2.1.2<br />

1.2.1.1<br />

and so on. The first two digits of the number identify the revision where<br />

the branch diverges from the trunk, and the last two represent a position<br />

on the branch.<br />

Assigning Revision Numbers<br />

By default, when you check in a member, Source Integrity automatically<br />

assigns a unique revision number to the new revision. It does this by<br />

incrementing the current revision number by one. For example, if the<br />

previous revision is 1.3, the new revision is assigned number 1.4.<br />

u s e r g u i d e


Performing Member Operations<br />

You can choose the revision number of the changes you are checking in, so<br />

long as your revision number:<br />

is greater than the last revision number (you cannot use previously<br />

“skipped” revision numbers)<br />

has no leading zeros (zeros as <strong>com</strong>plete revision numbers are<br />

acceptable)<br />

starts a new branch based on an existing revision<br />

If you check in a revision using an already existing revision number,<br />

Source Integrity attempts to add one to the revision number and check it in<br />

as that revision. If that revision already exists, Source Integrity then<br />

chooses the next available branch number and creates a new branch.<br />

For example, if you are checking in a new revision to an archive where the<br />

head revision is 1.7, the following numbers are valid:<br />

1.8 (greater than head revision)—if you check in a revision as 1.7,<br />

which already exists, Source Integrity assigns it 1.8<br />

1.10 (greater than head revision)<br />

1.72 (none of the numbers between 7 and 72 may be used afterwards)<br />

2.0<br />

1.7.1.1 (if it starts a new branch)<br />

1.7.0.1 (leading zero as the branch number)<br />

The following numbers are invalid:<br />

1.3 even if there was no revision 1.3 previously (Source Integrity<br />

branches the archive and assigns 1.3.x.1, where x is the first available<br />

branch number)<br />

1.08 (leading 0 in last portion)<br />

02.1 is considered the same as 2.1 (leading zero in branch number)<br />

Assigning Revision Descriptions<br />

A revision description is text that be<strong>com</strong>es a permanent part of the archive’s<br />

metadata. It allows you to provide a record of the changes you made and<br />

why you made them. This can be of great value to you or other team<br />

members if it ever be<strong>com</strong>es necessary to revise or update the member.<br />

187


Chapter 6: Member Operations<br />

188<br />

IMPORTANT<br />

The maximum size for a revision description is 64 KB. If you exceed this size<br />

the member history may be<strong>com</strong>e unreadable.<br />

Once a new revision is checked in, its revision description cannot be<br />

changed. You can, however, append new information to a revision<br />

description.<br />

To check in a member in the graphical user interface<br />

NOTE<br />

You cannot check in a member that is associated with a deferred drop<br />

operation.<br />

1 With a Sandbox or Member History view open, select one or more<br />

members to check in.<br />

2 From the Sandbox view, do one of the following:<br />

Select Member > Check In.<br />

Click .<br />

From the Member History view, do one of the following:<br />

Select History > Check In.<br />

Click .<br />

The Check In dialog box is displayed.<br />

TIP<br />

Click the Differences button on the Check In dialog box to view the differences<br />

between your working file and the revision you checked out.<br />

u s e r g u i d e


NOTE<br />

Performing Member Operations<br />

The Change Package options, such as Close Change Package, appear only if<br />

change packages are enabled.<br />

If the member you are checking in had a change package associated with it at<br />

the time of check out, that change package appears by default in the<br />

Change Package field in the Change Package options.<br />

3 In the Revision Description field, enter a <strong>com</strong>ment about the new<br />

revision. For example, you can enter a detailed description of what<br />

you changed, what bug in the software the changes were meant to<br />

correct, or instructions for the next person who works on the member.<br />

IMPORTANT<br />

The maximum size for a revision description is 64 KB. If you exceed this size<br />

the member history may be<strong>com</strong>e unreadable.<br />

If your administrator has set the feature for enforced revision<br />

descriptions, you must make an entry in the Revision Description<br />

field. If the field is blank, Source Integrity displays an error message<br />

and the member is not checked in.<br />

4 Under Options, click the desired tab, then modify the check in options.<br />

For more information, see “Check In Options” on page 192.<br />

189


Chapter 6: Member Operations<br />

190<br />

5 To check in the member, click OK. To check in all remaining members,<br />

click OK to All. For information on advanced check in and check out<br />

operations, see “Branching and Merging Revisions” on page 337.<br />

The member is checked in.<br />

If change package reviews are mandatory, a pending revision is<br />

created. For more information, see “Working With Pending<br />

Revisions” on page 335.<br />

To check in a member in the Web interface<br />

NOTE<br />

You cannot check in a member that is associated with a deferred drop<br />

operation.<br />

1 With a Project or Member History view open, select a member to<br />

check in by clicking the corresponding check box.<br />

In the Web interface, you can check in only one member per operation.<br />

Multiple member selections for check in cause an error.<br />

2 From the Project view, do one of the following:<br />

Select Member > Check In.<br />

Click .<br />

From the Member History view, do one of the following:<br />

Select History > Check In.<br />

Click .<br />

The Check In dialog box is displayed.<br />

u s e r g u i d e


NOTE<br />

Performing Member Operations<br />

The Change Package options, such as Close Change Package, appear only if<br />

change packages are enabled.<br />

3 In the Revision Description field, enter a <strong>com</strong>ment about the new<br />

revision. For example, you can enter a detailed description of what<br />

you changed, what bug in the software the changes were meant to<br />

correct, or instructions for the next person who works on the member.<br />

IMPORTANT<br />

The maximum size for a revision description is 64 KB. If you exceed this size<br />

the member history may be<strong>com</strong>e unreadable.<br />

If your administrator has set the feature for enforced revision<br />

descriptions, you must make an entry in the Revision Description<br />

field. If the field is blank, Source Integrity displays an error message<br />

and the member is not checked in.<br />

4 Under Options, click the desired tab, then modify the check in options<br />

and click OK. For more information, see “Check In Options” on<br />

page 192.<br />

The Specify Source File dialog box is displayed.<br />

191


Chapter 6: Member Operations<br />

Check In Dialog Box Options<br />

192<br />

5 In the field, enter or browse to the location of the working file for the<br />

member you want to check in.<br />

6 To check in the member, click OK.<br />

If the name of the source file you specify is different than the member<br />

name, depending on how you have the Different Member/Source File<br />

Name option set, one of the following occurs:<br />

Source Integrity confirms if you want to proceed. Click No if you<br />

do not want to check in a source file different from the member.<br />

Click Yes if you want to check in a source file different from the<br />

member.<br />

Source Integrity cancels the check in operation because the file<br />

names do not match.<br />

The member is checked in.<br />

If change package reviews are mandatory, a pending revision is<br />

created. For more information, see “Working With Pending<br />

Revisions” on page 335.<br />

Check In Options<br />

General Specifies the following general check in options:<br />

Label is a unique string that identifies the new revision. Revision labels are<br />

usually assigned during check in, but can be assigned later, for instance, using<br />

the Member > Properties > Add Label <strong>com</strong>mand.<br />

Move Existing Label moves the label if it already exists on another revision.<br />

In the Web interface only, select from one of the following options:<br />

Select Yes to move the label.<br />

Select No to not move the label.<br />

Select Confirm to be asked for confirmation of the action to be taken.<br />

Lock Revision causes Source Integrity to check in the working file, then<br />

immediately lock the new revision. This allows you to update the archive while<br />

retaining control of the revision. If this option is not selected, the working file is<br />

checked into the archive unlocked.<br />

u s e r g u i d e


Check In Dialog Box Options<br />

Performing Member Operations<br />

General continued Close Change Package closes the change package associated with the member,<br />

and if the Integrity Manager integration is enabled, updates the issue status in<br />

Integrity Manager.<br />

In the Web interface only, select from one of the following options:<br />

Select Yes to close the associated change package.<br />

Select No to keep the associated change package open.<br />

Select Confirm to be asked for confirmation of the action to be taken.<br />

Defer Check In (graphical user interface only) causes Source Integrity to delay<br />

the check in of the revision. Your lock remains on the revision and<br />

Source Integrity displays the icon and the version information for both the<br />

working and member revisions. Once you submit the check in, your lock is<br />

removed and the member revision moves to the next number in the sequence, as<br />

in the case of a standard check in operation.<br />

Check In if Unchanged checks in the working file even if it has not changed since<br />

it was last checked out.<br />

Update Member Revision makes the new revision the member revision in the<br />

project, replacing the existing member revision.<br />

Different Member/Source File Name (Web interface only) confirms the action to<br />

be taken if the specified source file name and member name are different.<br />

Select Yes to allow the different file names.<br />

Select No to disallow the different file names.<br />

Select Confirm to be asked for confirmation of the action to be taken.<br />

Advanced Specifies the following advanced check in options:<br />

Author is the author name applied to the revision. If necessary, enter a name.<br />

The user name specified in the Add Members <strong>com</strong>mand configuration appears<br />

by default.<br />

Update Member Revision Even on Branch causes Source Integrity to update the<br />

member revision upon check in, even when the locked revision is on a different<br />

branch.<br />

In the Web interface only, select from one of the following options:<br />

Select Yes to update the member revision.<br />

Select No to not update the member revision.<br />

Select Confirm to be asked for confirmation of the action to be taken.<br />

Unexpand Keywords replaces literal values with keywords in the new revision.<br />

Retain Working File (graphical user interface only) causes Source Integrity to<br />

check in the working file and immediately resynchronize it. If this option is<br />

cleared, the working file is deleted after it is checked in.<br />

Revision Number specifies the revision number you want to assign to the<br />

revision. By default, Source Integrity creates the next logical revision number, for<br />

example, 1.1 to 1.2. Optionally, you can enter a revision number.<br />

Force Creation of New Branch causes Source Integrity to create a branch off of<br />

the revision you are checking in.<br />

Save Working File Timestamp (graphical user interface only) sets the timestamp<br />

of the revision in the history to the timestamp of the working file, rather than the<br />

time of check in.<br />

193


Chapter 6: Member Operations<br />

Renaming a<br />

Member<br />

194<br />

You can rename individual members while working from a Project or<br />

Sandbox view. When you rename a member, member attributes are copied<br />

from the old member name to the new member name.<br />

The member’s archive remains the same, and points to the old member<br />

name so that change packages, member histories, and project histories<br />

continue to work.<br />

You can defer the renaming of a member by selecting Defer Rename or<br />

the si rename --defer <strong>com</strong>mand. For more information deferred<br />

operations, see “Deferring Member Operations” on page 200.<br />

NOTE<br />

Because renaming a member effects a change on other users on the same<br />

development path, the member you want to rename must not be locked by any<br />

other user.<br />

Renaming a locked revision in a variant project moves the lock to the duplicate<br />

revision, even if the lock was generated in the master project.<br />

Renaming a Member That Is the Tip Revision<br />

The tip revision is the most recent revision on a branch in a history.<br />

When you rename an unlocked member, Source Integrity places a lock on<br />

that member and creates a new, unlocked revision at the tip. For example,<br />

if you rename an unlocked member (1.3), Source Integrity locks revision<br />

1.3 and checks in a duplicate file for revision 1.4, with the new member<br />

name, leaving 1.4 unlocked.<br />

If you rename a locked member, Source Integrity performs the rename<br />

operation and retains your lock. For example, if you rename a locked<br />

revision (1.3), Source Integrity performs the rename by checking in a<br />

duplicate file for 1.4 and then moves your lock to revision 1.4.<br />

If you rename a member in a variant project while you also have the<br />

member locked in the master project, Source Integrity performs the rename<br />

operation but moves your lock to the variant member.<br />

Renaming Members on a Branch<br />

If you rename a member that is not the tip revision, that is, a revision along<br />

the branch, Source Integrity creates a duplicate of that revision along a new<br />

branch and updates the member revision to that branch.<br />

To rename a member in the graphical user interface<br />

1 With a Project or Sandbox view open, select the member you want to<br />

rename.<br />

u s e r g u i d e


2 Select Member > Rename.<br />

Performing Member Operations<br />

The Rename Member dialog box opens, displaying the existing name<br />

of the selected member, as well the name of the project (or sandbox)<br />

the member resides in.<br />

3 In the New Name text field, enter the new name of the member.<br />

4 Under Change Package, select a change package, if applicable, or<br />

create a change package to link to.<br />

NOTE<br />

The requirement for change package information applies only if the integration<br />

with Integrity Manager is enabled.<br />

5 Under Options, click a check box to choose the preferred options for<br />

the rename operation. The available options are:<br />

Rename Working File renames the working file in your sandbox<br />

and preserves any changes made to that file. If not set, the<br />

working file is not renamed and be<strong>com</strong>es a former member which<br />

will be confirmed for deletion the next time the sandbox is<br />

resynchronized. This setting has no effect if the <strong>com</strong>mand is<br />

performed directly from a Project view.<br />

Confirm Rename causes Source Integrity to confirm that you want<br />

to rename the selected member.<br />

Close Change Package closes the specified change package after<br />

performing the rename operation.<br />

195


Chapter 6: Member Operations<br />

Discarding<br />

Changes to a<br />

Member<br />

196<br />

Overwrite Existing File replaces an existing working file in the<br />

sandbox for the new file name.<br />

Defer Rename delays the rename operation in the project until the<br />

deferred operation is submitted. The rename operation in the<br />

sandbox still takes place immediately and Source Integrity<br />

displays the icon.<br />

If the change package reviews are mandatory, select this option to<br />

create a pending entry for this operation at the time of change<br />

package submission. If this option is not enabled, Source Integrity<br />

creates the pending entry at the <strong>com</strong>pletion of this procedure. For<br />

more information, see “Change Package Review Process” on<br />

page 240.<br />

6 To <strong>com</strong>plete the rename operation, click OK.<br />

The new member name is displayed in the list of project members.<br />

Source Integrity creates a new, duplicate revision in the archive so that<br />

a change package can be associated with the operation.<br />

If you are sure you do not want to check in a member’s modified working<br />

file, you can revert it to its state before it was checked out.<br />

Reverting a member discards any changes made to a member’s working<br />

file since it was checked out, and then unlocks it.<br />

When you revert a deferred add operation, Source Integrity retains the<br />

working file for the pending member. After the revert operation, the file<br />

be<strong>com</strong>es a non-member, rather than a former member, because it was<br />

never added to the project.<br />

To discard changes to a member’s working file in the graphical user<br />

interface<br />

1 With a Sandbox, or Member History view open, select one or more<br />

members that are checked out in your name or are modified.<br />

2 From a Sandbox view, do one of the following:<br />

Select Member > Revert.<br />

Click .<br />

From a Member History view, do one of the following:<br />

Select History > Revert.<br />

A confirmation dialog box is displayed if the working file is modified.<br />

u s e r g u i d e


Resyncing<br />

Members<br />

Performing Member Operations<br />

3 To proceed with the revert operation for a member, click Yes (for<br />

multiple members click Yes to All).<br />

The member is reverted to its original state, prior to check out.<br />

When many users are working from sandboxes based on the same master<br />

project, it is <strong>com</strong>mon for the members in an individual sandbox to be<strong>com</strong>e<br />

out of sync with the member revisions in the master project. For example,<br />

the member revision of a particular file may be at 1.5, while you still have<br />

revision 1.2 in your sandbox.<br />

When this happens, a member delta symbol ( ) appears next to the<br />

member in the graphical user interface, signaling its status. In the<br />

<strong>com</strong>mand line interface, you can use the si viewsandbox <strong>com</strong>mand to<br />

display changes to files and archives.<br />

To update out of sync working files to the most current member revisions,<br />

you resynchronize the members.<br />

For information on Resyncing members with deferred operations, see<br />

“Resyncing Members With Deferred Operations” on page 203<br />

To resynchronize a member in the graphical user interface<br />

1 With a Sandbox view open, select one or more members that contain<br />

member deltas.<br />

2 Do one of the following:<br />

Select Member > Resynchronize.<br />

Click .<br />

If you have made changes to your working file (without a lock), and<br />

then attempt to check out the member, the Confirm Working File<br />

Update dialog box is displayed. If you want to retain your changes in<br />

the working file, click Yes (Yes to All for multiple members). If you do<br />

not want to retain your changes in the working file, click No (No to All<br />

for multiple members).<br />

If the working file is writable, you will be asked to confirm<br />

overwriting it.<br />

When working in your sandbox, you can also apply the<br />

Resynchronize By CP <strong>com</strong>mand. When you select a member and use<br />

Resynchronize By CP, Source Integrity automatically searches the<br />

change package associated with the member you are resynchronizing<br />

and then brings the changes from the project to your sandbox. If the<br />

member you want to resynchronize has more than one change<br />

package associated with it (different change packages can exist for<br />

197


Chapter 6: Member Operations<br />

Locking a<br />

Member<br />

198<br />

each revision of a member), you must apply the Resynchronize By CP<br />

<strong>com</strong>mand for each change package associated with the member. For<br />

more information on resynchronizing by change package, see “Using<br />

the Resync By CP Command” on page 436.<br />

3 To resynchronize the member, click Yes (for multiple members, click<br />

Yes to All).<br />

The selected member is updated.<br />

If the working file of the member you are resyncing is modified,<br />

Source Integrity asks you to confirm that you want to merge your<br />

modifications into the working file. For more information on merging<br />

on a resyncing, see “Automatic Merging on Resync” on page 352.<br />

Locking a member prevents more than one user from simultaneously<br />

making changes to the same revision. When a revision is locked, no one<br />

other than the locker can check in changes to that revision.<br />

Normally you lock a member during a check out. Sometimes, however,<br />

you may have made changes to a working file that was not checked out in<br />

your name first. In this case, you can set a lock without overriding your<br />

changes.<br />

In the graphical user interface, a locked member is denoted with a padlock<br />

symbol ( ), along with the locker’s name, and the date and time the<br />

member was locked.<br />

The person who has a revision locked is referred to as the locker.<br />

NOTE<br />

Locking a member does not affect the working file in any way. Source Integrity<br />

does not make the working file writable if it was read-only, and does not verify<br />

that it corresponds to the revision being locked. Make sure the working file<br />

corresponds to the revision you want to lock.<br />

To lock a member in the graphical user interface and Web interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

lock.<br />

2 Do one of the following:<br />

Select Member > Lock.<br />

Click .<br />

u s e r g u i d e


Performing Member Operations<br />

If your administrator has enabled the integration with<br />

Integrity Manager and set the option for IMTrackLocksEnabled,<br />

Source Integrity displays the Lock Revision dialog box.<br />

3 Configure the following options as necessary:<br />

Change Package options appear only if change packages are<br />

enabled. Select a change package from the Change Package drop<br />

down list, or click Create to create a new change package.<br />

Force Creation of New Branch causes Source Integrity to create a<br />

branch off of the revision you are locking.<br />

In the Web interface only, select an option from the drop down<br />

list:<br />

Select Yes create a new branch.<br />

Select No to not create a new branch.<br />

Select Confirm to be asked for confirmation of the action to<br />

be taken.<br />

Create Branch if Variant causes Source Integrity to create a branch<br />

off of the revision you are locking, if you are working in a variant<br />

sandbox. This option is available only through the graphical user<br />

interface and <strong>com</strong>mand line interface.<br />

To apply the lock with the selected options, click OK. To apply locks to<br />

multiple files, click OK to All.<br />

A padlock symbol appears next to the revision number, and your user<br />

name and the date/time you locked the revision display in the Locked<br />

column.<br />

Depending on your view preferences (see “View Preferences” on<br />

page 61), additional lock information may be available in columns,<br />

199


Chapter 6: Member Operations<br />

Unlocking a<br />

Member<br />

200<br />

such as Lock Timestamp, Locker Development Path, Locker Sandbox,<br />

Locker Project, Locker, or Locker Host.<br />

If the locked member is selected in Sandbox or Project view,<br />

information about the lock is displayed in the Member Information<br />

Pane. Lock information is also available as a ToolTip when pointing to<br />

the lock icon.<br />

To manage your locks, see “Managing Revision Locks” on page 328.<br />

When you no longer need the exclusive ability to change a member, you<br />

can unlock it again. This is normally done by default when you check the<br />

member in. You can unlock a member without checking it in, but your<br />

changes will not be recorded if you choose to do so.<br />

Depending on the permissions your administrator has defined, you may<br />

also be able to unlock a revision that is locked by another user.<br />

To unlock a member in the graphical user interface and Web interface<br />

Do one of the following:<br />

With a Project or Sandbox view open, select one or more locked<br />

members to unlock, then do one of the following:<br />

Select Member > Unlock.<br />

Click .<br />

With the Locks for <strong>User</strong> window open (see “Locks View” on<br />

page 450), select one or more locked members, then select Locks ><br />

Unlock.<br />

The revision is unlocked and the padlock symbol ( ) is removed.<br />

Deferring Member Operations<br />

For certain operations in Source Integrity, you can defer the <strong>com</strong>pletion of<br />

the <strong>com</strong>mand until a later time. The defer option allows you to see the<br />

effect of the operation in your sandbox without affecting the project. The<br />

deferral of operations is provided as a selectable option in two ways:<br />

through the graphical user interface and in the <strong>com</strong>mand line interface as<br />

the --defer option.<br />

u s e r g u i d e


You can apply the defer option to the following operations:<br />

“Adding Members to a Project” on page 157<br />

Deferring Member Operations<br />

“Adding Members From Archive to a Project” on page 166<br />

“Dropping Members From a Project” on page 172<br />

“Checking In a Member” on page 186<br />

“Renaming a Member” on page 194<br />

“Importing Members” on page 169<br />

“Updating a Member’s Revision” on page 293<br />

TIP<br />

You can also apply the Deferred Items filter to display any members that are<br />

associated with deferred operations. For more information on using the<br />

Deferred Items filter, see “Using Filters” on page 86.<br />

A deferred member is a member that is associated with any deferred<br />

operation (add, drop, check in, rename). A deferred member appears in the<br />

sandbox, but the deferred operation is not shown in the project until the<br />

deferred operation is submitted.<br />

Deferred operations are visible only from the client-side sandbox and are<br />

seen in the project only when they are submitted. It is important to note<br />

that deferred operations can be added to a change package and then<br />

submitted as a group of changes, but the deferred operations do not appear<br />

on the Integrity Server until they are submitted to the project. For more<br />

information, see “Submitting Change Packages” on page 238.<br />

With the exception of deferred rename and check in operations,<br />

Source Integrity supports only single deferred operations on a member. If<br />

you try to perform multiple deferred operations on a single member,<br />

Source Integrity reports an error.<br />

NOTE<br />

Once you have specified a deferred operation on a member, Source Integrity<br />

does not allow any further operations that would cause that member to be<br />

modified.<br />

201


Chapter 6: Member Operations<br />

Submitting<br />

Deferred<br />

Operations<br />

202<br />

You can simultaneously defer rename and check in operations on a single<br />

member. When these deferred operations are submitted, Source Integrity<br />

first performs the check in operation followed by the rename operation.<br />

The sequence for performing these operations is set by default and is not<br />

configurable.<br />

If change package reviews are mandatory, ensure that the deferred option<br />

is enabled in <strong>com</strong>mand dialog boxes, or Source Integrity creates pending<br />

entries (and if necessary pending revisions) at the time the <strong>com</strong>mand<br />

operation is <strong>com</strong>pleted rather than when the associated change package is<br />

submitted. For more information, see “Change Package Review Process”<br />

on page 240.<br />

IMPORTANT<br />

When adding multiple deferred operations on the same member to a change<br />

package, only <strong>com</strong>binations of deferred check in and deferred rename<br />

are possible.<br />

To submit, or <strong>com</strong>plete, a deferred operation, you use the Member > Submit<br />

<strong>com</strong>mand. Submitting the operation <strong>com</strong>pletes the <strong>com</strong>mand and makes it<br />

visible in the associated project.<br />

If change package reviews are mandatory, when you submit deferred<br />

operations using the Member > Submit <strong>com</strong>mand, pending entries (and if<br />

necessary pending revisions) are created. You must still submit the<br />

associated change package for review before the changes are <strong>com</strong>mitted to<br />

the repository. For more information, see “Submitting Change Packages”<br />

on page 238 and “Change Package Review Process” on page 240.<br />

To submit a deferred operation in the graphical user interface<br />

1 From a Sandbox view, select the member with the deferred operation<br />

you want to submit (for example, a deferred check in, add, drop, or<br />

rename operation).<br />

2 From the menu bar, select Member > Submit.<br />

The Submit dialog box opens.<br />

u s e r g u i d e


Cancelling<br />

Deferred<br />

Operations<br />

Resyncing<br />

Members With<br />

Deferred<br />

Operations<br />

Deferring Member Operations<br />

3 Under Options, click to select the options for each item being<br />

submitted:<br />

Use the change package provided when the element was deferred<br />

selects the change package that was originally associated with the<br />

deferred item.<br />

Override the change package to a specified value provides the<br />

means to select (or create) a different change package from the<br />

one that was originally associated with the deferred item.<br />

Close Change Package causes Source Integrity to close the change<br />

package after submitting the item and <strong>com</strong>pleting the associated<br />

deferred operation.<br />

4 To <strong>com</strong>plete the submission, click OK.<br />

Source Integrity submits the item and <strong>com</strong>pletes the deferred<br />

operation.<br />

Once you have deferred an operation, you must use the Member > Revert<br />

<strong>com</strong>mand to cancel the defer operation. For more information on the revert<br />

<strong>com</strong>mand, see “Discarding Changes to a Member” on page 196.<br />

When you revert a deferred add operation, Source Integrity retains the<br />

working file for the deferred member.<br />

After the revert operation, the file be<strong>com</strong>es a non-member, rather than a<br />

former member, because it was never added to the project.<br />

When you resynchronize a member associated with a deferred operation,<br />

Source Integrity performs the following:<br />

Deferred Add<br />

When resynchronizing a member associated with a deferred add,<br />

Source Integrity does not make any changes to the working file.<br />

203


Chapter 6: Member Operations<br />

Pending<br />

Operations<br />

204<br />

Deferred Drop<br />

When resynchronizing a member associated with a deferred drop,<br />

where the working file is modified, Source Integrity asks you if you<br />

want to overwrite the existing working file.<br />

Deferred Rename<br />

When resynchronizing a member associated with a deferred rename,<br />

Source Integrity asks you if you want to overwrite the existing<br />

working file. If the new working file is missing, Source Integrity<br />

resynchronizes it. The working file with the old name is then deleted<br />

from the sandbox.<br />

Deferred Checkin<br />

When resynchronizing a member associated with a deferred check in,<br />

Source Integrity asks you if you want to overwrite the existing<br />

working file.<br />

Deferred Update Revision<br />

When resynchronizing a member associated with a deferred update<br />

revision, Source Integrity asks you if you want to overwrite the<br />

existing working file.<br />

Deferred Import<br />

When resynchronizing a member associated with a deferred import,<br />

Source Integrity asks you if you want to delete the existing working<br />

file.<br />

For additional information on resyncing members, see “Resyncing<br />

Members” on page 197<br />

If change package reviews are mandatory, then pending operations are<br />

created when deferred operations are submitted either individually, or as<br />

part of a change package (see “Submitting Deferred Operations” on<br />

page 202 and “Submitting Change Packages” on page 238). Pending<br />

operations correspond to pending entries in the associated change<br />

package.<br />

Pending operations are operations whose proposed changes reside on the<br />

server, but have not been <strong>com</strong>mitted to the repository.<br />

The changes are <strong>com</strong>mitted to the repository once the change package is<br />

accepted upon review (see “Change Package Review Process” on<br />

page 240). Pending operations can create pending revisions and members<br />

(see “Working With Pending Revisions” on page 335).<br />

u s e r g u i d e


Resyncing<br />

Pending<br />

Revisions<br />

Comparing Differences<br />

Comparing Differences<br />

When reviews are not mandatory, pending entries are created when the<br />

changes are not successfully <strong>com</strong>mitted to the database. Source Integrity<br />

moves the change package to the CommitFailed state. You can open the<br />

change package and then submit it again, or continue development and<br />

submit it later.<br />

Pending operations cannot be reverted like deferred operations, but must<br />

be discarded from the associated change package. For more information,<br />

see “Discarding CP Entries” on page 254.<br />

When checking out a member that has a pending update to a member<br />

revision that was submitted by you, the pending revision is selected by<br />

default in the GUI and Web.<br />

When resynchronizing a member with a pending revision, clicking Yes to<br />

the confirmation message replaces a pending revision with the member<br />

revision; with the working file corresponding to the member revision. For<br />

more information, see “Working With Pending Revisions” on page 335.<br />

After you have made changes to a member’s working file, you usually<br />

check in those changes as a new revision. But you may also decide that<br />

those changes should be discarded. Before you make this decision, you<br />

have to be able to view the changes that you are checking in, or those that<br />

you are discarding if you choose.<br />

Source Integrity Visual Difference allows you to view the differences<br />

between the member’s working file and its member revision. You can also<br />

select two specific revisions and <strong>com</strong>pare them. For information on<br />

<strong>com</strong>paring revisions, see “Comparing Revisions” on page 331.<br />

You can also <strong>com</strong>pare differences between your checked out working file<br />

and the locked revision through the Check In dialog. For details on viewing<br />

differences through the Check In dialog, see “Checking In a Member” on<br />

page 186.<br />

Source Integrity allows you to use a third party differencing tool, in the<br />

graphical user interface, if you do not want to use Visual Difference. You<br />

can specify a third party difference tool in your preferences. For<br />

information on setting up third party differencing tools, see “Difference<br />

Tool Preferences” on page 69.<br />

205


Chapter 6: Member Operations<br />

206<br />

NOTE<br />

In the Source Integrity Web interface you cannot <strong>com</strong>pare a working file to its<br />

member revision but you can <strong>com</strong>pare revision differences. For information on<br />

<strong>com</strong>paring revisions, see “Comparing Revisions” on page 331.<br />

For information on merging revisions, see “Merging Revisions” on<br />

page 353 or “Branching and Merging Revisions” on page 337.<br />

To <strong>com</strong>pare a member’s working file to its member revision in the<br />

graphical user interface<br />

1 With a Sandbox view open, select a member that has a modified<br />

working file (indicated by a working file delta ), or a member that<br />

has a new revision available (indicated by a member delta ).<br />

2 Do one of the following:<br />

Select Member > Diff/Merge > Differences.<br />

Click .<br />

Visual Difference launches and displays the member’s working file<br />

and member revision side-by-side, highlighting the differences<br />

between them, or Source Integrity informs you there are no<br />

differences between the files.<br />

u s e r g u i d e


Using Keywords<br />

Using Keywords<br />

A keyword is a placeholder that can be inserted into text-based working<br />

files. This placeholder is a special variable (for example, $Date$,<br />

$Author$, $State$) used to represent textual information in a working<br />

file. Keywords can be expanded (that is, replaced with their literal values)<br />

when a revision is checked out.<br />

To use a keyword, simply include it in a working file, surrounded by<br />

dollar signs (for example, $Date$) and check the file back into its archive.<br />

207


Chapter 6: Member Operations<br />

208<br />

NOTE<br />

Your administrator may define custom keywords for your use. For information<br />

about these keywords, see your administrator or the Integrity Server Installation<br />

and Administration <strong>Guide</strong>.<br />

The next time you check out the revision, Source Integrity scans it for<br />

keywords and replaces them with the appropriate information, if keyword<br />

expansion is turned on.<br />

Keyword expansion is the process of automatically adding or updating<br />

information to a keyword reference when a revision is checked out or<br />

viewed.<br />

For example, if the $Date$ keyword is encountered, the date and time of<br />

the revision (assigned at check in) is added to the working file as part of the<br />

keyword. When expanded, the entry would look something like<br />

$Date: 2002/06/12 10:25:32$<br />

This method of adding or updating information in a keyword is called<br />

keyword expansion.<br />

For example, if the member main.c has the keywords $Author$ and<br />

$State$ embedded within it, checking out main.c and issuing the<br />

<strong>com</strong>mand:<br />

returns<br />

ident main.c<br />

main.c:<br />

$author: paula_t $<br />

$state: Exp $<br />

The following Source Integrity <strong>com</strong>mands contain keyword expansion<br />

options:<br />

Add Members<br />

Check Out<br />

Check In<br />

Resynchronize<br />

Revert Member<br />

Keyword expansion is configured using the Preferences dialog box in the<br />

graphical user interface or the si setprefs <strong>com</strong>mand in the <strong>com</strong>mand<br />

line interface. The <strong>com</strong>mand line interface settings and dialog boxes in the<br />

u s e r g u i d e


Using Keywords<br />

graphical user interface can override the default settings. For information<br />

on setting <strong>com</strong>mand keyword options, see “Command Preferences” on<br />

page 48.<br />

For information on setting the keyword options for individual <strong>com</strong>mands,<br />

see Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> or man pages.<br />

Keyword expansion applies to text files only. It is disabled for binary files.<br />

Text before and after the keyword is preserved, making it suitable for use<br />

within expressions, as above, and within <strong>com</strong>ments.<br />

If keyword expansion is enabled and you are checking out a text file that<br />

contains the string<br />

$Revision$<br />

Source Integrity, when it encounters this string, automatically adds the<br />

value of the keyword $Revision$ in the format<br />

where<br />

$Revision: value $<br />

value is the appropriate value of the keyword (in this case, the revision<br />

number).<br />

For example, including the statement<br />

char revnum[] = "$Revision$";<br />

in a C source file creates a character string named revnum containing the<br />

file’s revision number. The program can then be configured to display this<br />

string when it starts up, automatically presenting the current revision of<br />

the program’s source file.<br />

Using the $Revision$ keyword to obtain the revision number of a file is<br />

one of the <strong>com</strong>mon applications of keywords. Other <strong>com</strong>mon applications<br />

include:<br />

The $Header$ keyword provides a one-line summary of useful<br />

information associated with a revision. Including this information in a<br />

<strong>com</strong>ment makes the information available to anyone looking at the<br />

member.<br />

The $Log$ keyword supplies the same sort of information as<br />

$Header$ plus the revision description. The $Log$ keyword provides<br />

a <strong>com</strong>plete list of changes that are made to the member over time.<br />

209


Chapter 6: Member Operations<br />

Locating<br />

Keywords<br />

Table of<br />

Keywords<br />

210<br />

NOTE<br />

Ã<br />

The keyword format of $$ causes Source Integrity to replace<br />

between the first $ and the next $. If you use a keyword in the format<br />

$, Source Integrity continues to replace until it encounters another<br />

$. It is possible that Source Integrity may not encounter another $ until the file<br />

is checked out again. This type of keyword use returns results that are similar<br />

to logging.<br />

You can use the ident <strong>com</strong>mand in the <strong>com</strong>mand line interface to locate<br />

and display keywords (expanded or unexpanded) in one or more<br />

members. For more information about the ident <strong>com</strong>mand, see the<br />

Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong> or the online man<br />

pages.<br />

This <strong>com</strong>mand displays the name of each member that contains keywords,<br />

as well as the keywords themselves. This provides an easy way to extract<br />

identification information from source files, as well as <strong>com</strong>piled object<br />

files.<br />

Source Integrity maintains several keywords that can be used in working<br />

files. Keywords are case-sensitive.<br />

Your administrator may create custom keywords. For information on<br />

using custom keywords contact your administrator.<br />

The following table describes default keywords and what each expands to.<br />

$Author$ The name of the user who checked in the revision.<br />

$CompanyInfo$ The name of the <strong>com</strong>pany and/or other <strong>com</strong>pany info including<br />

address, E-mail and phone numbers.<br />

Strings may contain standard escapes like “\n” for new lines, but<br />

must be in ISO-646.<br />

$Date$ The check in date and time of the revision (as assigned at check<br />

in). The time is shown in Greenwich Mean Time (GMT/ or<br />

Coordinated Universal Time).<br />

$Header$ The file name of the archive, as well as the revision number, date<br />

and time, author, state, and locker (if locked).<br />

$Id$ The same as $Header$.<br />

$Locker$ The user ID of the user who locked the revision (empty if not<br />

locked).<br />

u s e r g u i d e


Ã<br />

Using Keywords<br />

$Log$ The revision description supplied during check in, preceded by<br />

the archive’s member name, revision number, author, and revision<br />

date.<br />

Repeated check out operations append revision descriptions,<br />

rather than replacing existing ones.<br />

Note: this keyword does not unexpand.<br />

$Name$ The revision label (or labels) attached to a revision.<br />

$ProjectName$ The fully qualified name of the project of which the archive is a<br />

member.<br />

$ProjectRevision$ The revision number of the project that the archive is related. For<br />

use in build sandboxes only.<br />

$ProjectSetting attribute The current value of the attribute defined in Source Integrity. For<br />

example, if the project contains pj set OS=unix, the keyword<br />

$Setting OS$ is expanded to $Setting OS: unix$<br />

$RCSfile$ The archive’s unqualified member name.<br />

$Revision$ The revision number.<br />

$SandboxSetting attribute The current value of the attribute defined in Source Integrity. For<br />

example, if the sandbox contains pj set OS=unix, the keyword<br />

$Setting OS$ is expanded to $Setting OS: unix$<br />

$Setting attribute$ The current value of the attribute defined in Source Integrity. For<br />

example, if the member contains pj set OS=nt, the keyword<br />

$Setting OS$ is expanded to $Setting: nt$.<br />

$Source$ The same as $RCSfile$. The archive’s unqualified member<br />

name.<br />

$State$ The state setting of the revision.<br />

211


Chapter 6: Member Operations<br />

212<br />

u s e r g u i d e


Using Change Packages<br />

and Reviews<br />

7<br />

KEY TERMS: change package, change package ID, submit change package, change<br />

package entry, change package review<br />

When addressing a development issue, work may need to be performed<br />

on several members. Source Integrity provides change packages to group<br />

all of the necessary changes together. When used with lock tracking and<br />

deferred operations, change packages provide an essential tool for<br />

controlling and monitoring development.<br />

This chapter provides details on the following:<br />

“What Are Change Packages?” on page 214<br />

“Why Use Change Packages?” on page 215<br />

“Using Change Packages to Control Development” on page 216<br />

“Creating a Change Package” on page 217<br />

“Adding Entries to a Change Package” on page 219<br />

“Managing Change Packages” on page 220<br />

“Submitting Change Packages” on page 238<br />

“Change Package Review Process” on page 240<br />

“Managing Change Package Entries” on page 252<br />

“Viewing CP Entry Member Differences” on page 255<br />

213


Chapter 7: Using Change Packages and Reviews<br />

What Are Change Packages?<br />

214<br />

A change package is a group of changes made by a single user that can be<br />

considered a logical unit of work. Only the creator of a change package<br />

may add entries to that change package. Change package entries take the<br />

form of operations, both deferred and <strong>com</strong>mitted. When reviews are<br />

mandatory, change package entries take the form of pending entries before<br />

they are <strong>com</strong>mitted.<br />

For more information on change package entries, see “Change Package<br />

Entry Types” on page 220 and “CP Entry Categories” on page 244<br />

A change package administrator is a user with the permission to discard,<br />

close, and submit change packages that were not created by that user.<br />

The following rules apply when using issues and change packages:<br />

Each change package has a unique change package ID (CP ID). The CP<br />

ID is a colon separated identifier of the following form:<br />

:<br />

NOTE<br />

If Integrity Manager integration is enabled, then the issue ID is used as the<br />

container ID. For more information, see “The Integrity Manager Integration”<br />

on page 371.<br />

A change package acts as a log of both the changes to members that<br />

have already been <strong>com</strong>mitted to the repository (server), and as a<br />

record of work in progress, which is only visible to the user on the<br />

desktop and not <strong>com</strong>mitted to the repository. It tracks the work in<br />

progress using deferred operations that can be associated with a<br />

change package. When reviews are mandatory, a change package acts<br />

as a control placed on changes to the repository, by making them<br />

pending before they are <strong>com</strong>mitted (see “Change Package Review<br />

Process” on page 240).<br />

A traditional change package has the following states: Open, Closed,<br />

Discarded, and CommitFailed. A change package is open, or “in<br />

progress” until you close it, which signifies that work on the change is<br />

<strong>com</strong>pleted. If the changes fail to <strong>com</strong>mit to the repository, then the<br />

change package can be submitted again, or opened to continue work.<br />

When reviews are mandatory, a change package has additional states<br />

before it is closed (see “CP States” on page 241).<br />

u s e r g u i d e


Operations That Add Entries to a Change Package<br />

Only the creator of a change package or a change package<br />

administrator can close a change package.<br />

Once a change package is closed, it can only reopened by a<br />

change package administrator.<br />

Operations That Add Entries to a<br />

Change Package<br />

Why Use Change Packages?<br />

The following member operations add entries to a change package:<br />

“Checking Out a Member” on page 178<br />

“Renaming a Member” on page 194<br />

“Locking a Member” on page 198<br />

“Adding Members to a Project” on page 157<br />

“Adding Members From Archive to a Project” on page 166<br />

“Dropping Members From a Project” on page 172<br />

“Checking In a Member” on page 186<br />

“Updating a Member’s Revision” on page 293<br />

“Importing Members” on page 169<br />

“Apply CP Procedures” on page 398<br />

Change packages provide the following advantages:<br />

Change packages allow related changes to be grouped as a logical<br />

unit.<br />

Change packages allow work in progress to be submitted to the<br />

repository (server) all at once (using submit change package), which<br />

prevents users from partially submitting related work in progress.<br />

Change packages provide a way to apply related changes to a project<br />

or sandbox in one operation.<br />

Using change packages, users are able to resync the changes required<br />

to address a specific issue without resyncing the entire project.<br />

215


Chapter 7: Using Change Packages and Reviews<br />

216<br />

Because a change package is stored with each new revision, there is a<br />

relationship between every change in the repository and all of the<br />

other changes made by the author.<br />

Using change packages with the track locks feature, managers can<br />

monitor work in progress.<br />

Groups of changes can be reviewed as a unit. If reviews are<br />

mandatory, changes are reviewed before they are <strong>com</strong>mitted to the<br />

server repository.<br />

TIP<br />

You can expand the capabilities of change packages with Integrity Manager to<br />

take advantage of workflow and process management through the use of<br />

issues. The change packages can then be associated with issues. Enabling the<br />

Integrity Manager integration also permits multiple change packages for each<br />

issue. For more information, see “The Integrity Manager Integration” on<br />

page 371.<br />

Using Change Packages to Control<br />

Development<br />

The following is an example of a way to use change packages to control<br />

development. You can <strong>com</strong>bine this example with the review process to<br />

control what changes be<strong>com</strong>e a permanent part of the repository (see<br />

“Change Package Review Process” on page 240).<br />

1 Open the Manage Change Packages window (see “Managing Change<br />

Packages” on page 220). This is your control center for managing your<br />

development activities.<br />

2 Create a change package (see “Creating a Change Package” on<br />

page 217) for the changes you need to make to address an issue. The<br />

change package acts as a container, grouping together the specific<br />

members (files) that need to be changed to address the issue.<br />

Source Integrity assigns the change package an ID and leaves the<br />

change package in an open state.<br />

You can see the change package listed in the Manage Change<br />

Packages window.<br />

3 View the change package in the Change Package view (see “Viewing<br />

Change Package Details and Entries” on page 226). All operations you<br />

associate with the change package appear in this window.<br />

u s e r g u i d e


Creating a Change Package<br />

4 As part of your development process, identify the members that are<br />

affected by the issue. Associate the members with the change package<br />

(see “Operations That Add Entries to a Change Package” on<br />

page 215).<br />

NOTE<br />

You can only add change package lock entries to a change package through a<br />

check out and member lock if lock tracking is enabled. For more information on<br />

lock tracking, see your administrator.<br />

The operations are listed in the Change Package view.<br />

5 When all of the development to address the issue is <strong>com</strong>pleted, submit<br />

the change Package (see “Submitting Change Packages” on page 238).<br />

Any locked members are converted to deferred check in operations,<br />

then checked in.<br />

All of the deferred operations are submitted.<br />

Creating a Change Package<br />

Although you can submit operations individually, or check in a<br />

member without deferring it, submitting all of your operations at one<br />

time ensures that changes are submitted as a group.<br />

If reviews are mandatory, the review process begins here. Do not<br />

continue with the following step. For more information, see “CP<br />

Review Workflow” on page 242.<br />

6 Close the change package when the work to address the issue is<br />

<strong>com</strong>pleted. The change package is moved to the Closed state, and the<br />

change package disappears from the Manage Change Packages<br />

window.<br />

To find the change package and view its entries, see “Finding Change<br />

Packages” on page 222).<br />

You can create a change package from Source Integrity views and when<br />

performing member operations.<br />

You can also create change packages from Integrity Manager. For more<br />

information, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

217


Chapter 7: Using Change Packages and Reviews<br />

218<br />

To create a change package in the graphical user interface<br />

1 Create a change package in one of the following ways:<br />

With a Project, Sandbox, or Member History view open, select<br />

Change Package > Create.<br />

With a Manage Change Packages window open, do one of the<br />

following:<br />

Select Change Package > Create.<br />

Click .<br />

Create a change package when performing a member operation<br />

(see “Operations That Add Entries to a Change Package” on<br />

page 215).<br />

In to the Change Package portion of the panel, click Create.<br />

The Create Change Package dialog box is displayed.<br />

2 In the Summary field, enter a summary of the change package. A value<br />

for this field is mandatory<br />

3 In the Description field, if necessary, enter a detailed description of the<br />

change package.<br />

NOTE<br />

If the Integrity Manager integration is enabled, when you create a change<br />

package you can associate it with an issue. For more information, see “Creating<br />

a Change Package for an Issue” on page 375.<br />

u s e r g u i d e


4 Click OK.<br />

Adding Entries to a Change Package<br />

The change package is created. To view the change package, see<br />

“Viewing Change Package Details and Entries” on page 226.<br />

Adding Entries to a Change Package<br />

Once a change package is created, you can add entries to that change<br />

package when performing member operations (see “Operations That Add<br />

Entries to a Change Package” on page 215).<br />

Refer to the Change Package portion of the panel.<br />

From the change package list, select a change package. The list presents the<br />

Change package ID then the summary, for example, 13:1 Failed<br />

install.<br />

After the operation is <strong>com</strong>pleted, the entry is added to the change package.<br />

Depending on the operation, the change package’s ID appears in one of the<br />

member’s CPID (change package ID) columns in the Project or Sandbox<br />

view. Not all CPID columns appear by default. For information on the<br />

possible CPID columns, see “Sandbox View” on page 66.<br />

If the change package contains deferred operations or lock entries, a<br />

icon is displayed beside the change package ID in the Working CPID<br />

column of the Sandbox view.<br />

TIP<br />

You can also add an entry to a change package by dragging the member from a<br />

Sandbox view to a a Change Package view (or change package in the Manage<br />

Change Packages window). The Check Out dialog box is displayed with the<br />

change package selected. For more information, see “Checking Out a Member”<br />

on page 178.<br />

Lock tracking must be enabled for the Lock change package entry to<br />

appear in the Manage Change Packages window when viewed from a<br />

client on another machine.<br />

219


Chapter 7: Using Change Packages and Reviews<br />

220<br />

NOTE<br />

To add change package entries to a change package, the integrity client must be<br />

connected to the server on which the change package resides.<br />

Change Package Entry Types<br />

The following table displays the operation for each change package entry<br />

type.<br />

Change Package Entry<br />

Types<br />

Managing Change Packages<br />

Operation<br />

Add Add Member<br />

AddFromArchive Add Member From Archive<br />

Check In Deferred Check In<br />

Drop Drop Member<br />

Import Import Member<br />

Lock Lock Member, Check Out<br />

Rename Rename Member<br />

Update Check In, Update Member Revision<br />

UpdateRevision Update Member Revision<br />

UpdateArchive Check In (without updating member revision)<br />

Source Integrity provides a central location to manage change packages<br />

you have created that contain entries that have not been <strong>com</strong>mitted to the<br />

server repository. From one location, you can view a change package and<br />

its entries, view any issues associated with a change package, submit any<br />

deferred operations for that change package, close a change package, edit a<br />

change package, or create a new change package.<br />

If reviews are mandatory, submitted change packages continue to appear<br />

in the Manage Change Packages window until they are successfully<br />

<strong>com</strong>mitted to the repository.<br />

u s e r g u i d e


Managing Change Packages<br />

To manage change packages in the graphical user interface<br />

Do one of the following:<br />

Select Tools > Manage My Change Packages.<br />

Click .<br />

The Manage Change Packages window is displayed.<br />

By default, the Manage Change Packages window displays the following<br />

information:<br />

ID displays the change package ID.<br />

Issue displays the issue ID if Integrity Manager is enabled.<br />

Creator displays the user name of the person who created the change<br />

package.<br />

State displays current state of the change package (see “CP States” on<br />

page 241).<br />

Summary displays the summary statement for the change package.<br />

Additional columns are available in the client preferences. To change the<br />

displayed columns, see the Change Packages View option in the “View<br />

Preferences” on page 61.<br />

TIP<br />

Right-click the column header to hide, show, or sort the available columns.<br />

From the Manage Change Packages window, you can perform the<br />

following tasks using the Change Package menu:<br />

View Change Package entries and information (see “Viewing Change<br />

Package Details and Entries” on page 226)<br />

View Issue associated with the change package (see “Viewing a<br />

Change Package’s Issue” on page 376)<br />

Submit the change package (see “Submitting Change Packages” on<br />

page 238)<br />

221


Chapter 7: Using Change Packages and Reviews<br />

Finding Change<br />

Packages<br />

222<br />

Discard an existing change package (see “Discarding Change<br />

Packages” on page 236)<br />

Open a closed change package (see “Opening Change Packages” on<br />

page 249)<br />

Close a change package (see “Closing a Change Package” on page 235)<br />

Edit an existing change package (see “Editing a Change Package” on<br />

page 233)<br />

Accept casts an accept vote on a change package that is under review<br />

(see “Accepting a Change Package” on page 245<br />

Reject rejects a change package that is under review (see “Rejecting a<br />

Change Package” on page 247).<br />

Create a new change package (see “Creating a Change Package” on<br />

page 217)<br />

For information on the Review Log panel, see “Viewing the CP Review<br />

Log” on page 250.<br />

Source Integrity provides you with a way to search through all of the<br />

change packages created by anyone, including closed change packages.<br />

If the Integrity Manager integration is enabled you can use a query to find<br />

change packages based on <strong>com</strong>plex criteria. See “Finding Change Packages<br />

Using a Query” on page 378 for more information.<br />

To find change packages in the graphical user interface<br />

1 Select Tools > Find > Change Packages.<br />

The Find Change Packages dialog box is displayed with the By Filter<br />

panel displayed.<br />

u s e r g u i d e


Managing Change Packages<br />

If you want to find change packages using a filter, continue. To find a<br />

change package using its ID, go to step 3.<br />

2 You can search for change packages using the following filters:<br />

State finds change packages if they are currently in the specified<br />

state.<br />

Created By finds change packages that were created by a specified<br />

user.<br />

Creation Date finds change packages that were created on a<br />

specified date. The default date is today. Click Change to specify<br />

another date using the Creation Date Filter.<br />

Closed Date finds change packages that were closed on a specified<br />

date. The default date is today. Click Change to specify another<br />

date using the Creation Date Filter.<br />

Member finds change packages that contain a specified member<br />

name.<br />

Project finds change packages whose members belong to a<br />

specified project.<br />

Summary finds change packages that contain specified text in the<br />

change package summary.<br />

223


Chapter 7: Using Change Packages and Reviews<br />

224<br />

Description finds change packages that contain specified text in<br />

the change package description.<br />

Entry Type Modifier finds change packages based on their<br />

category. The categories are Committed and Pending. For more<br />

information, see “CP Entry Categories” on page 244.<br />

Entry Type finds change packages that contain a specified entry<br />

type. For more information, see “Change Package Entry Types”<br />

on page 220.<br />

NOTE<br />

Lock tracking must be enabled to filter by the Lock entry type. The Entry Type<br />

filter only finds locks that were made from a Project view.<br />

Pending Review By finds change packages submitted for review<br />

but not yet been accepted or rejected by a specified reviewer.<br />

Accepted By finds change packages accepted by a specified user.<br />

Rejected By finds change packages rejected by a specified user.<br />

Associated with Issue finds change packages that are associated<br />

with an Integrity Manager issue, if the integration is enabled. For<br />

more information, see “The Integrity Manager Integration” on<br />

page 371.<br />

To <strong>com</strong>bine filters, select the desired filters, then select Logical<br />

AND or Logical OR to specify their relationship.<br />

To invert a filter, click the filter a second time and the ! symbol<br />

appears. For example, search for change packages that are not<br />

associated with a specified project.<br />

When you are finished, go to step 5.<br />

3 To find a change package by using the change package ID, click the By<br />

ID tab.<br />

The By ID panel is displayed.<br />

u s e r g u i d e


4 Enter one of the following into the ID field:.<br />

Managing Change Packages<br />

A container ID, for example 12. This finds all changes packages<br />

with that container ID. If the Integrity Manager integration is<br />

enabled, the container ID is the same as the issue ID.<br />

The full change package ID, for example 12:1. This finds the single<br />

change package.<br />

To add the ID to the list, click Add.<br />

The ID appears in the list. Add as many IDs to the list as you want.<br />

To remove IDs from the list, select the IDs from the list, then click<br />

Remove.<br />

NOTE<br />

If the Integrity Manager integration is enabled, the By Query panel is available.<br />

For more information, see “Finding Change Packages Using a Query” on<br />

page 378.<br />

5 Click OK.<br />

The results are displayed in the Filtered Change Packages window.<br />

The Filtered Change Packages window displays change packages in<br />

the same way as the Change Packages view does. For more<br />

information, see “Change Packages View” on page 444.<br />

225


Chapter 7: Using Change Packages and Reviews<br />

Viewing Change<br />

Package Details<br />

and Entries<br />

226<br />

To update the search criteria with current data, select View > Refresh.<br />

To refine your search results, from the Filtered Change Packages<br />

window, select View > Filter.<br />

To start a new search, repeat this procedure.<br />

Once you add members to a change package (see “Adding Entries to a<br />

Change Package” on page 219), you can use Source Integrity to view the<br />

change package information for those members or revisions.<br />

NOTE<br />

When working with shared subprojects, Source Integrity uses the actual name<br />

of the subproject in the file system rather than its relative name in the project<br />

hierarchy. Therefore, the change package entries for a shared subproject use<br />

the actual file system name of the subproject. This enhances the portability of<br />

change packages across different projects.<br />

To view change package information and entries in the graphical user<br />

interface<br />

1 Do one of the following:<br />

From a Project or Sandbox view, select View Change Package,<br />

then one of the following:<br />

Working displays the change package associated with a<br />

deferred or a lock operation performed by the current user<br />

from the current sandbox (available only from Sandbox<br />

view).<br />

Member displays the change package associated the<br />

operation that set the member revision.<br />

Creation displays the change package that created the<br />

revision that is currently the member revision. This revision<br />

may be different from the member change package ID if an<br />

import, add member from archive, or set member revision<br />

operation was used.<br />

Locker displays the change package associated with the lock<br />

on the member revision.<br />

Pending displays the change package associated with a<br />

pending operation.<br />

u s e r g u i d e


Do one of the following:<br />

Managing Change Packages<br />

From the Annotated Revision view (see “Viewing an<br />

Annotated Revision” on page 316), select the annotation<br />

block corresponding to the change package you want to<br />

view.<br />

With the Manage Change Packages view open (see<br />

“Managing Change Packages” on page 220), select the<br />

change package you want to view.<br />

Then do one of the following:<br />

Select Change Package > View Change Package.<br />

Click .<br />

Double click the change package name.<br />

The Change Package view is displayed.<br />

2 To view change package information, click the Attributes tab.<br />

The Attributes panel is displayed.<br />

The Attributes panel displays the change package ID, summary,<br />

current change package state, person who created the change package,<br />

date the change package was created, and description (if one was<br />

provided). If applicable, the Attributes panel also displays the closed<br />

date and reolution information.<br />

3 To view change package entries, click the Entries tab.<br />

The Entries panel is displayed.<br />

By default, the Entries panel displays the following information for<br />

each change package entry:<br />

Type is the entry type of the change package entry. For<br />

information on possible entry types, see “Change Package Entry<br />

Types” on page 220.<br />

227


Chapter 7: Using Change Packages and Reviews<br />

228<br />

Member displays name of the member associated with the change<br />

package entry.<br />

When it is a Rename entry type, the member name is displayed in<br />

the form: newname(oldname).<br />

Revision displays the revision number associated with the change<br />

package entry.<br />

Sandbox displays the name of the sandbox where the deferred<br />

operation, check out, or lock took place.<br />

Project displays the name and path of the project that the member<br />

belongs to. If the entry occurred from a shared subproject, the<br />

subproject name and path are displayed.<br />

Variant displays the name of the variant development path (if a<br />

variant was used) the change package entry is derived from.<br />

Date Changed displays the date the entry was made.<br />

Server displays the host name of the server the entry was made<br />

on.<br />

Additional columns are available in the client preferences. To change<br />

the displayed columns, see “View Preferences” on page 61.<br />

TIP<br />

Right click the column header to hide, show, or sort columns.<br />

4 From the Entries panel, you can select a change package entry and<br />

then perform the following tasks from the Change Package Entry<br />

menu:<br />

View Differences for the entry (see “Viewing CP Entry Member<br />

Differences” on page 255).<br />

View Revision that is associated with the entry (see “Viewing a<br />

Member’s Working File or Revision” on page 322). This always<br />

displays the revision stored in the repository.<br />

TIP<br />

Double click a locked member, a deferred check in, or a pending update entry<br />

to display the working file.<br />

View Revision Information associated with the entry (see<br />

“Viewing and Editing Revision Information” on page 314).<br />

u s e r g u i d e


Managing Change Packages<br />

View the Member History associated with the entry (see “Viewing<br />

a Member History” on page 310).<br />

Submit selected deferred entries (see “Submitting Deferred<br />

Operations” on page 202).<br />

Edit Settings for the selected deferred entries (see “Submitting<br />

Deferred Operations” on page 202).<br />

Discard discards the selected entries (see “Discarding CP Entries”<br />

on page 254).<br />

Move moves the selected entries to another change package (see<br />

“Moving CP Entries” on page 252).<br />

Edit Working File that is associated with a entry (see “Viewing a<br />

Member’s Working File or Revision” on page 322).<br />

Check In the selected lock entries (.see “Checking In a Member”<br />

on page 186).<br />

To update the list of change package entries with the most recent<br />

changes, select View > Refresh.<br />

To display or not display un<strong>com</strong>mitted entries (deferred entries and<br />

lock entries), select View > Show Un<strong>com</strong>mitted. Repeat to enable or<br />

disable the option.<br />

To display or not display entries that are pending, select View ><br />

Show Pending. Repeat to enable or disable the option.<br />

To display or not display <strong>com</strong>mitted entries, select View > Show<br />

Committed. Repeat to enable or disable the option.<br />

To view change package information and entries in the Web interface<br />

1 Do one of the following:<br />

With a Project view open, select the member whose change<br />

package you want to view.<br />

With a Member History view open, select the member revision<br />

whose change package you want to view.<br />

2 Select Change Package > View Change Package.<br />

TIP<br />

Click the change package ID to view the change package.<br />

The Change Package view is displayed.<br />

229


Chapter 7: Using Change Packages and Reviews<br />

230<br />

For more information on the change packages view, see “Change Package<br />

View” on page 443.<br />

To view a member’s change package information in the graphical user<br />

interface<br />

1 With a Project or Sandbox view open, select the member whose<br />

information you want to view.<br />

2 Do one of the following:<br />

Select Member > Properties > Member Information.<br />

Click .<br />

The Member Information dialog box is displayed.<br />

3 Click the Change Package tab.<br />

The Change Package panel appears.<br />

The issue ID and summary are displayed. If the member is not<br />

associated with a change package, No Change Package<br />

Information Available appears in the Change Package panel.<br />

The change package that appears is associated with the operation that<br />

created the member revision.<br />

4 When you are finished viewing the member information, click OK.<br />

u s e r g u i d e


Managing Change Packages<br />

To view a member’s change package information in the Web interface<br />

1 With the Project view open, select the member whose information you<br />

want to view.<br />

2 Select Member > Member Information.<br />

3 Scroll to the Change Package section.<br />

4 The CP ID and summary are displayed. If the member is not<br />

associated with a change package, No Change Package<br />

Information Available appears in the Change Package section.<br />

5 When you have finished viewing the member information, click OK.<br />

To view a revision’s change package information in the graphical user<br />

interface<br />

1 With a Member History view open, select the revision whose<br />

information you want to view.<br />

2 Do one of the following:<br />

Select History > Revision Information.<br />

Click .<br />

The Revision Information dialog box is displayed.<br />

3 Click the Change Package tab.<br />

The Change Package panel appears.<br />

231


Chapter 7: Using Change Packages and Reviews<br />

232<br />

The CP ID and summary are displayed. If the revision is not<br />

associated with a change package, No Change Package<br />

Information Available appears in the Change Package panel.<br />

4 When you are finished viewing the revision information, click OK.<br />

To view a revision’s change package information in the Web interface<br />

1 With a Member History view open, select the revision whose<br />

information you want to view.<br />

2 Do one of the following:<br />

Select History > Revision Information.<br />

Click .<br />

The Revision Information dialog box is displayed.<br />

3 Scroll down to view the change package information.<br />

u s e r g u i d e


Editing a<br />

Change<br />

Package<br />

Managing Change Packages<br />

The CP ID and summary are displayed. If the revision is not<br />

associated with a change package, No Change Package<br />

Information Available appears in the Change Package panel.<br />

4 When you are finished viewing the revision information, click OK.<br />

You can update a change package when necessary. You can update the<br />

summary, state, and description of a change package.<br />

NOTE<br />

You can only edit a change package that you created, unless you have<br />

administrator permissions.<br />

To edit a change package in the graphical user interface<br />

1 Do one of the following:<br />

With the Manage Change Packages view open (see “Managing<br />

Change Packages” on page 220), select the change package you<br />

want to edit.<br />

From a Sandbox view, select the member whose associated<br />

change package you want to edit.<br />

In a Change Package view, display the change package you want<br />

to edit (see “Viewing Change Package Details and Entries” on<br />

page 226).<br />

233


Chapter 7: Using Change Packages and Reviews<br />

234<br />

2 Do one of the following:<br />

Select Change Package > Edit.<br />

Click .<br />

The Edit Change Package dialog box is displayed.<br />

3 Edit the change package as required:<br />

In the Summary field, enter a new summary for the change<br />

package or add to the existing summary.<br />

In the State field, select a state for the change package from the<br />

list (see “CP States” on page 241).<br />

If reviews are mandatory, change packages in state CommitFailed,<br />

Rejected, or Discarded can be moved to the Open state as part of<br />

the state workflow. For more information, see “Change Package<br />

Review Process” on page 240.<br />

In the Description field, enter a new description for the change<br />

package or add to the existing description.<br />

4 Click OK to save your changes.<br />

To edit a change package in the Web interface<br />

1 In a Project view, select the member that is associated with the change<br />

package you want to edit.<br />

2 Under the C.P.ID column, click the number link for the change<br />

package.<br />

The Change Package view opens.<br />

3 Do one of the following:<br />

Under the Actions menu, click Edit Change Package.<br />

Click .<br />

u s e r g u i d e


Closing a<br />

Change<br />

Package<br />

The Edit Change Package dialog box is displayed.<br />

4 Edit the change package as required:<br />

Managing Change Packages<br />

In the Summary field, enter a new summary for the change<br />

package or add to the existing summary.<br />

In the State field, select a state for the change package from the<br />

list (see “CP States” on page 241).<br />

If reviews are mandatory, change packages in state CommitFailed,<br />

Rejected, or Discarded can be moved to the Open state as part of<br />

the state workflow. For more information, see “Change Package<br />

Review Process” on page 240.<br />

In the Description field, enter a new description for the change<br />

package or add to the existing description.<br />

5 Click OK to save your changes.<br />

Once the necessary changes are made to the members and they are<br />

<strong>com</strong>mitted to the repository, the change package can be closed.<br />

In addition to this procedure, you can close a change package in the<br />

graphical user interface when performing member operations (see<br />

“Operations That Add Entries to a Change Package” on page 215).<br />

If the Integrity Manager integration is enabled, closing a change package<br />

allows the issue to move forward in the Integrity Manager workflow. For<br />

more information, see “The Integrity Manager Integration” on page 371.<br />

NOTE<br />

You can only close a change package that you have created unless you have<br />

administrative permissions.<br />

235


Chapter 7: Using Change Packages and Reviews<br />

Discarding<br />

Change<br />

Packages<br />

236<br />

If reviews are mandatory, you cannot close a change package. It must<br />

follow the review process and be closed by the Integrity Server. For more<br />

information, see “Change Package Review Process” on page 240.<br />

To close a change package in the graphical user interface<br />

1 Do one of the following:<br />

With the Manage Change Packages window open (see<br />

“Managing Change Packages” on page 220), select the change<br />

package you want to close.<br />

From a Sandbox view, select the member whose associated<br />

change package you want to close.<br />

In a Change Package view, display the change package you want<br />

to close (see “Viewing Change Package Details and Entries” on<br />

page 226).<br />

2 Do one of the following:<br />

Select Change Package > Close.<br />

Click .<br />

The Confirm Close Change Package dialog box is displayed.<br />

3 To close the change package, click OK.<br />

The change package is closed.<br />

To close a change package when performing an operation in the<br />

graphical user interface<br />

You can close a change package when performing member operations (see<br />

“Operations That Add Entries to a Change Package” on page 215).<br />

To close the change package when performing a member operation: on the<br />

dialog box, enable the Close Change Package option.<br />

After the operation is <strong>com</strong>pleted, the change package is closed.<br />

Source Integrity provides a way to remove change packages from active<br />

use when they are not needed by discarding them.<br />

Change packages can only be discarded if they are in the Open or<br />

Rejected states. In order to discard a change package, that change<br />

package must be both created by you and not contain any <strong>com</strong>mitted<br />

entries. However, a change package administrator may discard a change<br />

package created by another user.<br />

u s e r g u i d e


TIP<br />

Managing Change Packages<br />

If only specific entries need to be removed from a change package, see<br />

“Discarding CP Entries” on page 254.<br />

When a change package is discarded, the following happens where<br />

applicable:<br />

All un<strong>com</strong>mitted entries are removed from the change package.<br />

Al deferred operations corresponding to deferred entries are reverted.<br />

All locks on members corresponding to lock entries are released.<br />

All pending operations corresponding to pending entries are reverted,<br />

and appear as discarded entries in the review log (to preserve the<br />

review history).<br />

All pending revisions that correspond to pending entries are deleted.<br />

Any archives created for pending members associated with pending<br />

entries in the change package are deleted from the server (pre-existing<br />

archives that were shared to create a pending member are not<br />

deleted).<br />

Note the following about discarded change packages:<br />

The change package ID for the discarded change package can never be<br />

used for any future change packages that are created.<br />

Discarded change packages have a state of Discarded, and can still be<br />

viewed using the Change Package filter (see “Finding Change<br />

Packages” on page 222).<br />

If the change package has undergone a review, the review log persists.<br />

Discarded change packages can be opened and used again (see<br />

“Opening Change Packages” on page 249).<br />

To discard change packages in the graphical user interface<br />

1 Do one of the following:<br />

In the Change Package view (see “Viewing Change Package<br />

Details and Entries” on page 226), display the change package<br />

you want to discard.<br />

From the Manage Change Packages view (see “Managing Change<br />

Packages” on page 220), select the change packages to be<br />

discarded.<br />

237


Chapter 7: Using Change Packages and Reviews<br />

238<br />

From the Sandbox view, select member revisions associated with<br />

the change packages to be discarded.<br />

2 Select Change Package > Discard.<br />

The Confirm Discard Change Package dialog box is displayed.<br />

3 To discard the change packages, click Yes.<br />

If the change package contains entries, the Confirm Discard Change<br />

Package Entry dialog box is displayed. To discard all entries in the<br />

change package, click Yes to All .<br />

The change packages are moved to the Discarded state.<br />

To discard a change package in the Web interface<br />

1 Display the change package you want to discard in the Change<br />

Package view. For more information, see “To view change package<br />

information and entries in the Web interface” on page 229.<br />

2 From the Change Package view, select Actions > Discard Change<br />

Package.<br />

The Confirm Discard Change Package dialog box is displayed.<br />

3 To discard the change package, click Yes.<br />

If the change package contains entries, the Confirm Discard Change<br />

Package Entry dialog box is displayed. To discard all entries in the<br />

change package, click Yes to All.<br />

The change package is moved to the Discarded state.<br />

Submitting Change Packages<br />

Although you can submit operations individually, you can ensure that no<br />

operations are missed by submitting a change package that contains<br />

deferred operations. Deferred operations are visible only from the<br />

Source Integrity Client, and are not <strong>com</strong>mitted to the repository until they<br />

are submitted. You can submit change packages containing any<br />

<strong>com</strong>bination of deferred, pending, and <strong>com</strong>mitted entries.<br />

When reviews are mandatory, submitting a change package begins the<br />

review process (see “Change Package Review Process” on page 240).<br />

u s e r g u i d e


To submit change package in the graphical user interface<br />

1 Do one of the following:<br />

Submitting Change Packages<br />

From the Manage Change Packages view (see “Managing Change<br />

Packages” on page 220), select the change packages you want to<br />

submit.<br />

In the Change Package view (see “Viewing Change Package<br />

Details and Entries” on page 226), display the change package<br />

you want to submit.<br />

From a Sandbox view, select the member whose associated<br />

change package you want to submit.<br />

2 To submit the change package, do one of the following:<br />

Select Change Package > Submit.<br />

Click .<br />

NOTE<br />

Locked members with lock entries in a change package are checked in when<br />

the change package is submitted.<br />

The Submit Change Package Status dialog box is displayed,<br />

containing information on the status of your change package. The<br />

dialog box notifies you if your change package is submitted,<br />

<strong>com</strong>mitted, or failed to <strong>com</strong>mit.<br />

IMPORTANT<br />

If when a change package is submitted it only contains pending entries, you are<br />

prompted, and in order to <strong>com</strong>mit those pending entries you must click Yes to<br />

submit the change package even if there are no deferred or lock entries. To set<br />

this option as default, see “Command Preferences” on page 48.<br />

If a review is mandatory for any project that the member<br />

corresponding to a change package entry is associated with, the<br />

Submit Change Package <strong>com</strong>mand begins the review process which<br />

must be <strong>com</strong>pleted before the changes are <strong>com</strong>mitted to the<br />

repository.<br />

If the change package is a resolution change package, by default you<br />

are prompted with the option to apply the change package after it is<br />

submitted. For more information, see “Working With a Resolution<br />

CP” on page 428.<br />

239


Chapter 7: Using Change Packages and Reviews<br />

Change Package Review Process<br />

How the CP<br />

Review Works<br />

240<br />

A change package review is a review of changes by specified reviewers<br />

before the changes are <strong>com</strong>mitted to the server repository.<br />

If change package reviews are mandatory globally, then all change<br />

packages must progress through the change package review process.<br />

If change package reviews are mandatory at the project level only, then a<br />

change package only progresses through the review process if it contains<br />

at least one entry associated with a member in a project that requires a<br />

review. Change packages follow the review process before the changes are<br />

successfully <strong>com</strong>mitted to the server repository. All other change packages<br />

function as non-review change packages.<br />

IMPORTANT<br />

To use change package reviews, you must use Source Integrity 8.6 or later.<br />

A change package reviewer is a user specified by your administrator to<br />

review change packages containing members associated with specific<br />

projects. The reviewer may be individually specified or a member of a<br />

specified reviewer group. In the case of a reviewer group, any member of<br />

that group casts an accept or reject vote on behalf of the entire group.<br />

A change package watcher is a user specified by your administrator who is<br />

notified when a reviewed change package is closed after being successfully<br />

<strong>com</strong>mitted to the repository. Change package watchers may be<br />

individually specified or a member of a specified watcher group.<br />

A Super Reviewer is a user with permission to vote on change packages that<br />

the user is not a listed reviewer for. Voting as a super reviewer overrides<br />

all other votes, for example casting an accept vote as a super reviewer is<br />

sufficient for accepting the change package.<br />

Following is a summary of how the change package review process works:<br />

1 The review starts when a developer (change package creator) submits<br />

a change package containing deferred entries (or any <strong>com</strong>bination of<br />

deferred, pending, or <strong>com</strong>mitted entries).<br />

2 Source Integrity creates a pending change package entry for each<br />

deferred entry, and where necessary pending revisions.<br />

3 Change Package Reviewers (possibly a mentor or a senior developer)<br />

accept or reject the change package.<br />

u s e r g u i d e


CP States<br />

Change Package Review Process<br />

4 The change package entries are either <strong>com</strong>mitted to the database<br />

(accepted case) or the developer opens the change package and<br />

continues development (rejected case)<br />

For a detailed description of the change package review process, see “CP<br />

Review Workflow” on page 242.<br />

NOTE<br />

Although the review process describes submitting change packages with<br />

deferred entries thereby creating pending entries; if deferred operations are not<br />

mandatory, you can create pending entries at the time the operation is<br />

<strong>com</strong>pleted by clearing the deferred option. You can then submit the change<br />

package containing the pending entries for review.<br />

Submit<br />

Change Package<br />

Pending Entries<br />

and Revisions<br />

Change Package Review Overview<br />

ACCEPT or REJECT<br />

Committed<br />

Open and<br />

Work<br />

Server<br />

The following table provides details on change package states. Where<br />

specified, some are only used in the review workflow:<br />

Change Package State Details<br />

Open The only state where work can be performed using a<br />

change package (new entries created).<br />

Submitted The state the change package is in while it is being<br />

reviewed. All operations are pending.<br />

241


Chapter 7: Using Change Packages and Reviews<br />

CP Review<br />

Workflow<br />

242<br />

Change Package State Details<br />

Accepted An intermediate state denoting that the change<br />

package is accepted by all of the reviewers.<br />

Source Integrity automates the state change from<br />

Accepted to Closed if the changes are successfully<br />

<strong>com</strong>mitted to the repository.<br />

CommitFailed The state signifying that the pending changes could<br />

not be <strong>com</strong>mitted to the repository.<br />

Rejected The state denoting that the change package is<br />

rejected by a reviewer. The creator must manually<br />

move the change package to Open to continue<br />

development.<br />

Discarded Empty change packages or change packages with<br />

changes that do not need to be <strong>com</strong>mitted to the<br />

repository are moved by the creator to the<br />

Discarded state. Discarded change packages can<br />

be opened at a later date if needed.<br />

Closed The end state for the change package, when<br />

pending changes are successfully <strong>com</strong>mitted to the<br />

repository.<br />

A change package under review progresses through states in a workflow.<br />

For a graphical representation of the workflow, see the diagram “Change<br />

Package State Workflow” on page 244.<br />

The following is the change package progression through the workflow:<br />

1 A change package is created, and in the Open state. Entries are added<br />

to the change package by the developer.<br />

2 The developer submits the change package to begin the change<br />

package review process (see “Submitting Change Packages” on<br />

page 238), and Source Integrity moves the change package to the<br />

Submitted state.<br />

An e-mail is sent to notify the reviewers of the change package<br />

submission (if the server is configured to send e-mail notifications).<br />

The e-mail contains both change package and review information.<br />

3 The reviewer or reviewers, either accept the change package or reject<br />

it. The following can then happen:<br />

If all individual reviewers and at least one reviewer from a<br />

reviewer group (if any exist) accept the change package, it is<br />

moved to the Accepted state. For each vote cast by a reviewer,<br />

Source Integrity sends the reviewers an e-mail notification of the<br />

u s e r g u i d e


Change Package Review Process<br />

accept vote. When all reviewers have voted to accept the change<br />

package, Source Integrity sends each reviewer and the creator an<br />

e-mail notification that the change package is accepted.<br />

Source Integrity then <strong>com</strong>mits the changes to the repository, and<br />

then closes the change package. If Source Integrity fails to <strong>com</strong>mit<br />

the changes to the repository, it moves the change package to the<br />

CommitFailed state and an e-mail notification is sent to the creator<br />

stating the <strong>com</strong>mit failure and the error associated with that<br />

failure.<br />

From the CommitFailed state, once the <strong>com</strong>mit failure reason is<br />

remedied, the creator can submit the change package again. Since<br />

the review is already <strong>com</strong>pleted, the change package moves to the<br />

Closed state without requiring passage through the review<br />

process an additional time, or any additional e-mail notifications<br />

to be sent.<br />

From the CommitFailed state, the creator can also move the<br />

change package back to Open, continue development, and then<br />

submit it for review again.<br />

If an accepted change package is successfully <strong>com</strong>mitted to the<br />

repository, Source Integrity then closes the change package and<br />

an e-mail notification is sent to the change package watchers.<br />

Change packages in the Closed state cannot be opened.<br />

If a reviewer (either an individual or a group member) rejects the<br />

change package, Source Integrity moves it to the Rejected state<br />

and an e-mail notification is sent to each reviewer and the creator.<br />

The creator of the change package then moves the change<br />

package to the Open state (by editing the change package and<br />

changing the state), continues development, and then submits the<br />

change package again.<br />

NOTE<br />

The creator of the change package continues development on pending<br />

revisions by checking them out. For more information, see “Working With<br />

Pending Revisions” on page 335.<br />

The user can also discard the change package if it is no longer<br />

needed for development (thereby discarding entries contained int<br />

he change package). Change packages in the Discarded state can<br />

be moved back to the Open state if they are needed again.<br />

243


Chapter 7: Using Change Packages and Reviews<br />

CP Entry<br />

Categories<br />

244<br />

Change Package State Workflow<br />

There are four categories of change package entries: deferred, pending,<br />

discarded, and <strong>com</strong>mitted. For a <strong>com</strong>plete list of change package entry<br />

types, see “Change Package Entry Types” on page 220.<br />

The following are change package entry type categories and their<br />

descriptions:<br />

deferred entries appear only when the change package is in the Open<br />

state, for deferred operations (see “Deferring Member Operations” on<br />

page 200).<br />

pending entries appear only when the change package is in the Open,<br />

Submitted, Accepted, Rejected, and CommitFailed states, for<br />

operations performed when reviews are mandatory, and when<br />

deferred operations are submitted (see “Submitting Change Packages”<br />

on page 238 and “Submitting Deferred Operations” on page 202).<br />

discarded entries can only be viewed from the review log. For more<br />

information, see “Discarding CP Entries” on page 254 and “Viewing<br />

the CP Review Log” on page 250.<br />

<strong>com</strong>mitted entries are entries that are <strong>com</strong>mitted to the repository. They<br />

are denoted simply by the change package entry type name, for<br />

example update.<br />

u s e r g u i d e


Reviewing<br />

Changes<br />

Accepting a<br />

Change<br />

Package<br />

NOTE<br />

Change Package Review Process<br />

For change packages that are not under review, only the deferred and<br />

<strong>com</strong>mitted entry types are available for use in Source Integrity.<br />

You can use the Resync CP <strong>com</strong>mand to create working files in your<br />

sandbox for all of the changes in the change package you intend to review.<br />

For more information, see “Using the Resync CP Command” on page 406.<br />

After a change package is submitted, each individual reviewer and one<br />

member of each reviewer group (if specified) in the reviewer list must<br />

accept the change package before it can be <strong>com</strong>mitted to the repository and<br />

then closed.<br />

To view the list of reviewers and reviewer groups, see “Viewing the CP<br />

Review Log” on page 250.<br />

NOTE<br />

To accept a change package, the integrity client must be connected to the server<br />

on which the change package resides.<br />

To accept a change package in the graphical user interface and<br />

Web interface<br />

1 Do one of the following:<br />

From the graphical user interface, do one of the following:<br />

From the Change Packages for to review view<br />

(see“Viewing Your Pending Reviews” on page 250), select<br />

the change package you want to accept.<br />

From the Change Packages view, select the change package<br />

you want to accept.<br />

In the Change Package view (see “Viewing Change Package<br />

Details and Entries” on page 226), display the change<br />

package you want to accept.<br />

Select Change Package > Accept or click .<br />

From the Web interface, with a Project or Member History view<br />

open, click the change package ID. The Change Package View is<br />

displayed.<br />

Select Actions > Accept Change Package or click .<br />

245


Chapter 7: Using Change Packages and Reviews<br />

246<br />

The Accept Change Package dialog box is displayed.<br />

The following information is displayed:<br />

ID displays the change package ID number.<br />

Summary displays the summary description of change package.<br />

Creator displays the user name of the user who created the<br />

change package.<br />

Review As displays the user name of the reviewer accepting the<br />

change package.<br />

2 In the Capacity list, select the capacity in which you are the reviewer.<br />

Due to factors determined by your administrator, the options in the<br />

list vary per user for each change package. The possible options are:<br />

Individual casts a vote as an individual reviewer in the<br />

reviewer list.<br />

Member of casts a vote on behalf of the entire group<br />

(only a one user from a group is necessary to vote on behalf of the<br />

entire group).<br />

All Reviewers casts a vote as a specific user and any group to<br />

which the reviewer belongs.<br />

Super Reviewer casts an overriding accept vote that is sufficient<br />

for accepting the change package even if there are additional<br />

reviewers. A super reviewer does is not required to be a listed<br />

reviewer for the change package.<br />

3 Enter <strong>com</strong>ments on the change package elements in the Comments<br />

field if desired.<br />

4 To accept the change package, click OK.<br />

The accept vote is cast and recorded in the review log (see “Viewing<br />

the CP Review Log” on page 250).<br />

If there reviewers in addition to yourself, an e-mail is sent to notify<br />

those reviewers that you have cast an accept vote for the change<br />

package.<br />

When all of the individual reviewers and at least one reviewer from<br />

each reviewer group have accepted the change package, an e-mail is<br />

sent to notify the reviewers and the creator that the change package is<br />

accepted.<br />

u s e r g u i d e


Rejecting a<br />

Change<br />

Package<br />

Change Package Review Process<br />

Once the change package is accepted, it is <strong>com</strong>mitted to the server<br />

repository. If the change package is successfully <strong>com</strong>mitted to the<br />

repository, it then moves to a state of Closed. For more information on<br />

change package states, see “CP Review Workflow” on page 242.<br />

If the change package under review is closed, an e-mail notification of<br />

the Closed state is sent to the change package watchers.<br />

All e-mail notifications contain Change Package and Review<br />

information.<br />

If a reviewer of a change package determines that invalid changes were<br />

made, or additional development must be <strong>com</strong>pleted to resolve an issue;<br />

the reviewer can reject the change package. A single reviewer rejection is<br />

enough to reject a change package, even if there are multiple reviewers.<br />

The creator of the change package can reject it without being listed as a<br />

reviewer.<br />

To view the list of reviewers and reviewer groups, see “Viewing the CP<br />

Review Log” on page 250.<br />

To reject a change package in the graphical user interface and<br />

Web interface<br />

1 Do one of the following:<br />

From the graphical user interface, do one of the following:<br />

From the Change Packages for to review view<br />

(see“Viewing Your Pending Reviews” on page 250), select<br />

the change package you want to reject.<br />

From the Change Packages view, select a change package<br />

you want to reject.<br />

In the Change Package view (“Viewing Change Package<br />

Details and Entries” on page 226), display the change<br />

package you want to reject.<br />

Select Change Package > Reject or click .<br />

From the Web interface, with a Project or Member History view<br />

open, click the change package ID. The Change Package View is<br />

displayed.<br />

Select Actions > Reject Change Package or click .<br />

The Reject Change Package dialog box is displayed.<br />

247


Chapter 7: Using Change Packages and Reviews<br />

248<br />

The following information is displayed:<br />

ID is the change package ID number.<br />

Summary is the summary description of change package.<br />

Creator is the user name who created the change package.<br />

Review As is the user name of the reviewer rejecting the change<br />

package.<br />

2 In the Capacity list, select the capacity in which you are the reviewer.<br />

Due to factors determined by your administrator, the options in the<br />

list vary per user for each change package. The possible options are:<br />

Individual casts a vote as an individual reviewer in the<br />

reviewer list.<br />

Member of casts a vote on behalf of the entire group<br />

(only a one user from a group is necessary to vote on behalf of the<br />

entire group).<br />

All Reviewers casts a vote as a specific user and any group to<br />

which the reviewer belongs.<br />

Super Reviewer casts an overriding reject vote that is sufficient<br />

for rejecting the change package even if there are additional<br />

reviewers. A super reviewer does is not required to be a listed<br />

reviewer for the change package.<br />

3 Enter <strong>com</strong>ments on the change package elements in the Comments<br />

field if desired.<br />

4 To reject the change package, click OK.<br />

The change package moves to a state of Rejected and the vote is<br />

recorded in the review log (see “Viewing the CP Review Log” on<br />

page 250). An e-mail notification of the change package’s rejection is<br />

sent to the reviewers and creator.<br />

From the Rejected state, the change package can be discarded, or<br />

reopened. For more information on change package states, see “CP<br />

Review Workflow” on page 242.<br />

u s e r g u i d e


Opening<br />

Change<br />

Packages<br />

CP Review<br />

Notifications<br />

Change Package Review Process<br />

The open state is the only state you can add new entries to a change<br />

package. As part of the review workflow, change packages in the following<br />

states can be opened: CommitFailed, Rejected, and Discarded.<br />

CAUTION<br />

Only a Change Package Administrator can open a change package in the<br />

Closed state. Modifying closed change package contents can <strong>com</strong>promise the<br />

integrity of the server repository.<br />

To open a change package in the graphical user interface and<br />

Web interface<br />

1 Do one of the following:<br />

From the graphical user interface, do one of the following:<br />

From the Manage Change Packages view, select the change<br />

packages to be opened.<br />

Display the change package in the Change Package view<br />

Select Change Package > Open or click .<br />

From the Web interface, with a Project or Member History view<br />

open, click the change package ID. The Change Package View is<br />

displayed.<br />

Select Actions > Open Change Package or click .<br />

The change package is opened.<br />

E-mail notifications are sent out to change package reviewers, watchers,<br />

and the creator at points throughout the change package review process.<br />

For specific information on when each e-mail notification is sent, see the<br />

individual procedures; or for an overview, see “CP Review Workflow” on<br />

page 242.<br />

Each e-mail notification contains a description of the action that prompted<br />

the notification, change package information containing the details and<br />

entries, and Review information containing reviewer and voting<br />

information. Some aspects of e-mail notification may be configured<br />

specifically for your review implementation, including no e-mail<br />

notification. Contact your administrator for more information.<br />

249


Chapter 7: Using Change Packages and Reviews<br />

Viewing Reviews<br />

Viewing Your<br />

Pending<br />

Reviews<br />

Viewing the CP<br />

Review Log<br />

250<br />

Source Integrity provides you with a list of all of the change packages you<br />

are currently listed as a reviewer for. Review information is viewable from<br />

the Change Package view review log.<br />

As a reviewer, you can view all of the change packages you are to review<br />

from one convenient view. A change package only appears in the list after<br />

it is submitted. You can then view all of the review information<br />

individually for each change package.<br />

NOTE<br />

It is possible for you to be a reviewer of a change package you created. Contact<br />

your administrator for more information.<br />

To view your reviews in the graphical user interface<br />

1 Select Tools > My Reviews.<br />

The Change Packages for to review view is displayed.<br />

By default, the following information is displayed:<br />

ID is the change package ID.<br />

Issue is the issue ID if the Integrity Manager integration is<br />

enabled.<br />

Creator is the user name who created the change package.<br />

State is current state of the change package (see “CP States” on<br />

page 241).<br />

Summary is the summary statement for the change package.<br />

The columns are the same as those in the Change Package view. To<br />

modify the columns that appear, see “View Preferences” on page 61.<br />

Source Integrity provides review logs as part of a <strong>com</strong>plete review audit<br />

process. A log consists of individual records for each reviewer vote cast.<br />

Each time the change package is submitted for review, a new log begins.<br />

To view the change package review log in the graphical user interface<br />

and Web interface<br />

From the Change Package view (see “Viewing Change Package Details and<br />

Entries” on page 226), click the Review Log tab.<br />

u s e r g u i d e


The Review Log panel appears.<br />

Viewing Reviews<br />

Each change package review log contains a record of every vote by a<br />

reviewer on the change package. Each review record contains the<br />

following information:<br />

Review State<br />

The possible review states are:<br />

Review Pending the change package is still in a state of Submitted and<br />

there are outstanding votes to be cast by reviewers.<br />

Accepted the change package is in a state of Accepted, and all of the<br />

individual reviewers and a user from each reviewer group have<br />

accepted the change package.<br />

Rejected the change package is in a state of Rejected, and at least one<br />

reviewer has rejected the change package.<br />

Reviewer Type<br />

The possible reviewer types are:<br />

<strong>User</strong> Reviewer is a user voting in an individual capacity.<br />

Group Reviewer is a user voting in a group capacity on behalf of that<br />

group.<br />

Super Reviewer is a user casting an overriding vote in a super<br />

reviewer capacity, and is not required to be a user on the reviewer list<br />

or in a group on the group reviewer list.<br />

Vote<br />

The possible vote values are:<br />

Pending signifies that the reviewer or group reviewer has not yet cast<br />

a vote.<br />

Accepted signifies that the user has cast an accept vote for the change<br />

package.<br />

Rejected signifies that the user has cast a reject vote for the change<br />

package.<br />

Comments<br />

Displays information that reviewers optionally provide to clarify their<br />

votes.<br />

251


Chapter 7: Using Change Packages and Reviews<br />

252<br />

Changes<br />

Displays in tabular form the changes that were made to members upon<br />

submission of the change package. For information on the columns<br />

displayed, see “Change Package View” on page 443.<br />

Managing Change Package Entries<br />

Moving CP<br />

Entries<br />

Source Integrity provides flexibility for managing change package entries.<br />

You can move change package entries from one change package to<br />

another. For example, if you checked in a member with the incorrect<br />

change package, you can move that change package entry to the correct<br />

change package, thereby ensuring auditing accuracy.<br />

Note the following about moving change package entries:<br />

Only the change package creator can move entries from one change<br />

package to another.<br />

Both the originating and the target change packages must be open.<br />

Only a change package administrator can move entries from one<br />

closed change package to another open change package, and only if<br />

the closed change package is not one that was reviewed. A change<br />

package administrator can also move entries from one open change<br />

package to another open change package.<br />

To move change package entries in the graphical user interface<br />

1 From the Entries panel on the Change Package view, select the change<br />

package entries you want to move.<br />

2 Do one of the following:<br />

Select Change Package Entry > Move.<br />

Click .<br />

The Move Change Package Entry dialog box is displayed.<br />

u s e r g u i d e


Managing Change Package Entries<br />

3 From the Target Change Package list, select the change package you<br />

want to move the entries to. The change packages are listed with the<br />

C.P. ID and the summary.<br />

If you want to create a new change package for the entries, click<br />

Create. For more information, see “Creating a Change Package” on<br />

page 217.<br />

If you are a change package administrator, the Show all open Change<br />

Packages option is available. Select the option to make change<br />

packages that you did not create available in the Target Change<br />

Package list.<br />

4 When you are finished, click OK.<br />

The Confirm Move Change Package dialog box is displayed.<br />

5 To move each entry presented, click Yes. To move all entries without<br />

viewing individual prompts, click Yes to All.<br />

The change package entries are moved to the selected change package.<br />

TIP<br />

You can move change package entries by dragging them from one change<br />

package view to another.<br />

To move change package entries in the Web interface<br />

1 With a Project or Member History view open, click the change<br />

package ID.<br />

The Change Package view is displayed.<br />

2 Click the Entries tab.<br />

The Entries panel is displayed.<br />

3 Select the change package entries you want to move.<br />

4 Do one of the following:<br />

Select Actions > Move Change Package Entry.<br />

Click .<br />

The Move Change Package Entry dialog box is displayed.<br />

253


Chapter 7: Using Change Packages and Reviews<br />

Discarding CP<br />

Entries<br />

254<br />

5 From the Target Change Package list, select the change package you<br />

want to move the entries to. The change packages are listed with the<br />

C.P. ID and the summary, for example, 10:1 help dialog broken.<br />

If you want to create a new change package for the entries, click<br />

Create. For more information, see “Creating a Change Package” on<br />

page 217.<br />

6 When you are finished, click OK.<br />

The Confirm Move Change Package dialog box is displayed.<br />

7 To move the entry, click Yes. Repeat for additional entries.<br />

The change package entries are moved to the selected change package.<br />

You can remove entries from a change package by discarding them. To<br />

discard entries, the change package must be in an Open or Rejected state.<br />

Only a change package administrator can discard entries from closed<br />

change packages, and only if reviews are not mandatory.<br />

When a change package entry is discarded, the following happens if<br />

applicable:<br />

Deferred operations corresponding to deferred entries are reverted.<br />

Locks on members corresponding to lock entries are released and<br />

working file changes are reverted. Source Integrity confirms all<br />

working file overwrites.<br />

Pending operations corresponding to pending entries are reverted,<br />

and discarded entries are created (to preserve the review history).<br />

Pending revisions corresponding to pending entries are deleted.<br />

Archives created for pending members associated with entries in the<br />

change package are deleted from the server (pre-existing archives that<br />

were shared to create a pending member are not deleted).<br />

Note the following about discarding change package entries:<br />

Only the creator of the change package or a change package<br />

administrator can discard entries.<br />

If change packages are mandatory, <strong>com</strong>mitted entries cannot be<br />

discarded (contact your administrator for more information).<br />

To discard change package entries in the graphical user interface<br />

1 From the Entries panel on the Change Package view, select the change<br />

package entries you want to discard.<br />

u s e r g u i d e


Viewing CP<br />

Entry Member<br />

Differences<br />

2 Do one of the following:<br />

Select Change Package Entry > Discard.<br />

Click .<br />

Managing Change Package Entries<br />

The Confirm Discard Change Package Entry dialog box is displayed.<br />

3 To discard each entry presented, click Yes. To discard all entries<br />

without viewing individual prompts, click Yes to All.<br />

The change package entry or entries are discarded.<br />

To discard change package entries in the Web interface<br />

1 With a Project or Member History view open, click the change<br />

package ID.<br />

The Change Package view is displayed.<br />

2 Click the Entries tab.<br />

The Entries panel is displayed.<br />

3 Select the change package entries you want to discard.<br />

4 Do one of the following:<br />

Select Actions > Discard Change Package Entry.<br />

Click .<br />

The Confirm Discard Change Package Entry dialog box is displayed.<br />

5 To discard the entry, click Yes. Repeat for additional entries.<br />

The change package entry or entries are discarded.<br />

From the Change Package view, you can view the member differences of<br />

any change package entry.<br />

For updates, Source Integrity <strong>com</strong>pares the most recent revision checked<br />

into the change package with its immediately preceding revision. For<br />

example, if you want to view the differences for the member readme.txt<br />

at revision 1.3, Source Integrity <strong>com</strong>pares revisions 1.3 and 1.2,<br />

displaying them in the Differences window<br />

For lock entries in the graphical user interface, Source Integrity <strong>com</strong>pares<br />

the working file with its immediately preceding revision. You cannot<br />

difference a lock entry that does not have an associated sandbox.<br />

255


Chapter 7: Using Change Packages and Reviews<br />

256<br />

To view change package entry member differences in the Graphical<br />

user interface<br />

1 With the Manage Change Packages window open (see “Managing<br />

Change Packages” on page 220), select the change package that<br />

contains entries that you want to difference.<br />

2 Do one of the following:<br />

Select Change Package > View Change Package.<br />

Double click the change package.<br />

The Change Package view is displayed.<br />

3 Select the change package entry you want to difference<br />

4 Select Change Package Entry > View Differences.<br />

The Differences window appears displaying the two revisions sideby-side,<br />

highlighting the differences between them, or<br />

Source Integrity informs you that there are no differences. For more<br />

information, see “Comparing Differences” on page 205.<br />

To view change package entry member differences in the Web<br />

interface<br />

1 In a Project view, select a member that has a change package<br />

associated with it.<br />

2 Under the C.P.ID column, click the number link for the change<br />

package.<br />

The Change Package view is displayed.<br />

3 Select the change package entry you want to difference.<br />

4 Do one of the following:<br />

Under the Actions menu, click View Member Differences.<br />

Click .<br />

The Differences window appears displaying the two revisions sideby-side,<br />

highlighting the differences between them, or<br />

Source Integrity informs you that there are no differences. For more<br />

information, see “Comparing Differences” on page 205.<br />

u s e r g u i d e


Viewing and Editing<br />

Projects, Sandboxes, and<br />

Members<br />

8<br />

KEY TERMS: project information, project history, label, promote, demote, checkpoint,<br />

attribute, member information, freezing, thawing, member revision<br />

Source Integrity allows you to perform a variety of functions to control<br />

projects, sandboxes, and members during your development cycle. For<br />

example, you can freeze members to prevent changes and thaw them to<br />

allow changes. You can also checkpoint projects to provide a snapshot of<br />

their contents at particular development points, so you can always<br />

reproduce <strong>com</strong>plete project configurations (including the files and the<br />

directory trees they reside in) at any time in the future.<br />

This chapter provides details on the following:<br />

“Controlling Projects” on page 258<br />

“Controlling Sandboxes” on page 280<br />

“Controlling Members” on page 287<br />

“Generating Reports” on page 303<br />

257


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Controlling Projects<br />

Viewing and<br />

Editing Project<br />

Information<br />

258<br />

To help you control your projects, Source Integrity provides functionality<br />

for working with project information such as project histories, labels,<br />

states, development checkpoints, and project revisions.<br />

Source Integrity allows you to view and edit three categories of project<br />

information:<br />

general project information<br />

project attributes<br />

development path information<br />

To view or edit project information in the graphical user interface and<br />

Web interface<br />

1 With a Project or Sandbox view open, select the project or sandbox.<br />

2 In the GUI from a Project view, select Project > Properties > Project<br />

Information.<br />

In the GUI from a Sandbox view, select Sandbox > Properties > Project<br />

Information.<br />

In the Web from a Project view, select Project > Project Information.<br />

The Project Information dialog box is displayed.<br />

3 View or make changes to the project information as required.<br />

u s e r g u i d e


The General tab displays the following project information:<br />

Project Name is the path and name of the project.<br />

Controlling Projects<br />

Shared From appears only if the project you selected is a shared<br />

subproject and displays the path and name of the project where<br />

the shared subproject originated. For information on Shared<br />

Subprojects, see “Adding a Shared Subproject” on page 127.<br />

Server is the Integrity Server name and port number where the<br />

project resides.<br />

Development Path displays the development path name (if a<br />

variant project on a development path, or project contains a<br />

variant subproject on a development path).<br />

Revision is the project’s current revision number.<br />

Last Checkpointed is the last date and time the project was<br />

checkpointed.<br />

Members is the number of members in the project, not including<br />

subprojects.<br />

Subprojects is the number of subprojects in the project.<br />

Description is a free-form text description of the master project.<br />

Edit the existing description, or enter a new description.<br />

For information about the Attributes tab, see “Working With Project<br />

Attribute Information” on page 259. For information about the<br />

Development Paths tab, see “Working With Development Path<br />

Information” on page 261.<br />

4 To accept any changes you have made, click OK.<br />

The project information is saved.<br />

Working With Project Attribute Information<br />

Configuration options in project files are sometimes called attributes.<br />

Within project files, you can set your own attributes as well as those<br />

predefined as options. You can set these attributes from the graphical user<br />

interface or Web interface.<br />

In the graphical user interface, you can view and edit project attribute<br />

information through the Attributes tab. Attributes define local variables or<br />

set options. You can set either master project attributes to apply across an<br />

entire project or sandbox attributes that apply only in your workspace,<br />

sometimes overriding project attributes.<br />

259


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

260<br />

Attributes can have either of the following formats:<br />

variable<br />

variable=value<br />

For more information on project attributes, see the Integrity Server<br />

Installation and Administration <strong>Guide</strong>.<br />

To view or edit project attribute information in the graphical user<br />

interface<br />

1 Select the target project.<br />

2 Select Project > Properties > Project Information.<br />

The Project Information dialog box is displayed.<br />

3 Click the Attributes tab.<br />

The Attributes panel appears.<br />

4 In the Variable field, enter a variable, for example, OS.<br />

NOTE<br />

The variable name cannot include the “=” character.<br />

5 In the Value field, enter a value, for example, Win32.<br />

6 To add the attribute, click Add. To remove attributes, select them, then<br />

click Remove.<br />

The attributes appear in the attributes list.<br />

u s e r g u i d e


7 To accept any changes you have made, click OK.<br />

The project information is saved.<br />

Controlling Projects<br />

To view or edit project attribute information in the Web interface<br />

1 Open the target project by selecting File > Open Project.<br />

2 Select Project > Project Information.<br />

The Project Information dialog box opens.<br />

3 Scroll to the Attributes section.<br />

4 In the Variable field, enter a variable, for example, OS.<br />

5 In the Value field, enter a value, for example, Win32.<br />

6 To add the attribute, click Add.<br />

The attributes appear in the attributes list.<br />

To remove attributes, select them, then click Remove.<br />

7 To accept any changes you have made, click OK.<br />

The project information is saved.<br />

Working With Development Path Information<br />

A development path is an identifier given to a new direction of file<br />

development. Changes made through the new development path are kept<br />

separate from the main development trunk unless you later choose to<br />

merge them.<br />

261


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

262<br />

In the graphical user interface, the Development Paths tab shows a<br />

selectable list of any development paths created from the current project. A<br />

development path is identified by name, with the revision number (on<br />

which the development path is based) in brackets, for example,<br />

Aurora_Beta_Variant (1.1).<br />

CAUTION<br />

If you remove a development path that is referenced by a variant sandbox, you<br />

can no longer open that variant sandbox.<br />

To view or edit project development path information in the graphical<br />

user interface<br />

1 Select the target project.<br />

2 Select Project > Properties > Project Information.<br />

The Project Information dialog box is displayed.<br />

3 Click the Development Paths tab.<br />

The Development Paths panel appears.<br />

4 To delete a development path, select one from the list.<br />

5 Click Delete.<br />

The development path is deleted from the list.<br />

6 To accept any changes you have made, click OK.<br />

The project information is saved.<br />

u s e r g u i d e


Viewing a<br />

Project History<br />

TIP<br />

Controlling Projects<br />

To create a development path, see “Creating a Development Path” on page 147.<br />

To view development path information in the Web interface<br />

1 Open the target project by selecting File > Project.<br />

2 Select Project > Project Information.<br />

The Project Information dialog box opens.<br />

3 Scroll to the Development Paths section.<br />

4 Review the development path information presented in the text field.<br />

When you want to view the history of a project, you can open its project<br />

history. Opening the project history of a sandbox is the same as viewing<br />

the project history of its master project.<br />

The Project History view is a window that displays the revision history of a<br />

project, including details on the revision number, author, date, labels, and<br />

promotion state of the project.<br />

To view a project history in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select the project or sandbox.<br />

2 From a Project view, select Project > View Project History.<br />

From a Sandbox view, select Sandbox > View Project History.<br />

The Project History view is displayed.<br />

In the graphical user interface, you can toggle between the Graphical<br />

History view and the List view in the Project History view. For more<br />

information on toggling views, see “Changing Views (GUI)” on<br />

page 449.<br />

263


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

264<br />

Project History Filters<br />

Like the filters in the Project and Sandbox views, the Project History filters<br />

allow you to view and manipulate a predefined subset of project revisions<br />

that are grouped according to their properties.<br />

You can apply filters to a Project History in either the Graphical History<br />

view or the List view. Project History filters are located in the View menu.<br />

Choose one of the following filters, and your view is filtered accordingly:<br />

All Revisions shows all the revisions in the project.<br />

You cannot use the All Revisions filter in <strong>com</strong>bination with other<br />

filters. Selecting the All Revisions filter deactivates other filters. A<br />

bullet next to the All Revisions filter indicates that it is active.<br />

Development Paths shows all the revisions with a development path.<br />

Labeled shows all revisions that have labels.<br />

You can use the Development Paths filter and Labeled filter in<br />

<strong>com</strong>bination to show all the revisions with a current development<br />

path and a label. A check mark next to the filter indicates the active<br />

filter.<br />

u s e r g u i d e


Opening a Build<br />

Project<br />

Adding Project<br />

Labels<br />

Controlling Projects<br />

Once a filter is applied, operations performed on project members<br />

apply only to those members shown as a result of the filter. For<br />

example, if you apply the filter for Labeled and then perform a History<br />

> Lock operation for that project, the lock operation applies only to<br />

those members shown by the Labeled filter.<br />

A Build project is a static project based upon a specific revision of the<br />

master project. It is used for building or testing the project, but not for<br />

further development.<br />

To open a build project in the graphical user interface<br />

1 With a Project History view open, select the revision you want to open<br />

as a Build project.<br />

2 Select History > Open Build Project.<br />

The Build project appears in a new Project view.<br />

To open a build project in the Web interface<br />

1 From the File menu, select Open Build Project.<br />

The Select Build Project dialog box opens.<br />

2 Select the project you want to open from the Project list, and specify<br />

the project revision (if necessary) in the Project Revision list.<br />

The Build project appears in a Project view.<br />

As with project members, you can add labels to project revisions. Labels are<br />

unique text that describe the product stage or release, or the content of the<br />

project. Project labels can be based on any information that would be<br />

useful in identifying that particular revision of the project. Labels appear in<br />

alphabetical order.<br />

To add a label to a project in the graphical user interface and Web<br />

interface<br />

1 With a Project History view open, select the revision you want to label.<br />

2 Do one of the following:<br />

Select History > Add Label.<br />

Click .<br />

The Add Project Label dialog box is displayed.<br />

265


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Deleting Project<br />

Labels<br />

266<br />

TIP<br />

In the Source Integrity Web interface, you can also add a project label from the<br />

Project view by selecting Project > Add Label.<br />

3 In the Label field, enter a label for the project, for example, Bug Fixes.<br />

Labels cannot contain colons (:), square brackets ([ ]), or leading<br />

spaces. Additionally they cannot have the same format as a valid<br />

revision number.<br />

4 In the graphical user interface, to move an existing label to another<br />

revision, select the Move Existing Label option.<br />

In the Web interface select one of the following options from the list:<br />

Select Yes to move an existing label to another revision.<br />

Select No to maintain the label location.<br />

Select Confirm to be asked for confirmation about the action to be<br />

taken.<br />

5 To accept the new label, click OK.<br />

The project revision is labeled.<br />

As with project members, you can delete project labels. Deleting project<br />

labels may be appropriate in situations where a label is no longer relevant<br />

or where an incorrect label is applied.<br />

To delete a project label in the graphical user interface and Web<br />

interface<br />

1 With a Project History view open, do one of the following:<br />

Select History > Delete Label.<br />

Click .<br />

The Delete Project Label dialog box is displayed.<br />

u s e r g u i d e


Promoting a<br />

Project<br />

TIP<br />

Controlling Projects<br />

In the Source Integrity Web interface, you can also delete a project label from<br />

the Project view by selecting Project > Delete Label.<br />

2 From the Label list, select a label to delete from the project, for<br />

example, Bug Fixes.<br />

3 To confirm the deletion, click OK.<br />

The project label is deleted.<br />

As with a project member, you can promote the project itself (or change its<br />

state). Controlling a project’s state helps in managing the entire project<br />

through the development cycle, especially if the promotion function is<br />

restricted to key project personnel.<br />

Promotion is the process of managing data as it moves through a<br />

structured development cycle. Any project (whether it is software<br />

development, document production, or any other type of data<br />

management) goes through recognizable phases: from inception, through<br />

development, testing, quality assurance, and <strong>com</strong>pletion.<br />

Typically, you promote a project (or set its state) when you checkpoint it,<br />

but you can do so at any time.<br />

The available promotion states are defined by your administrator.<br />

When you promote a project, only the project (.pj) file is affected.<br />

Individual members of the project are not changed.<br />

To promote a project in the graphical user interface and Web interface<br />

1 With a Project History view open, select the revision you want to<br />

promote.<br />

267


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Demoting a<br />

Project<br />

268<br />

2 Do one of the following:<br />

Select History > Promote.<br />

Click .<br />

The Promote Project dialog box is displayed.<br />

TIP<br />

In the Source Integrity Web interface, you can also promote a project from the<br />

Project view by selecting Project > Promote.<br />

3 Select a new state from the Promote to State list, for example, Beta.<br />

4 To accept the new state, click OK.<br />

The project is promoted.<br />

As with a project member, you can demote the project itself (or change its<br />

state). Typically, you demote a project (or set its state) when you<br />

checkpoint it, but you can do so at any time.<br />

NOTE<br />

When you demote a project, only the project file (.pj) is affected. Individual<br />

members of the project are not changed.<br />

To demote a project in the graphical user interface and Web interface<br />

1 With a Project History view open, select the revision you want to<br />

demote.<br />

2 Do one of the following:<br />

Select History > Demote.<br />

Click .<br />

The Demote Project dialog box is displayed.<br />

u s e r g u i d e


Checkpointing<br />

a Project<br />

TIP<br />

Controlling Projects<br />

In the Source Integrity Web interface, you can also demote a project from the<br />

Project view by selecting Project > Demote.<br />

3 Select a state from the Demote to State list, for example, Exp.<br />

4 To accept the new state, click OK.<br />

Just as you check in a source file to preserve the changes made to it from<br />

one revision to another, you can also track the evolution of an entire<br />

project. In Source Integrity, this process is called checkpointing.<br />

Checkpointing a project creates a new revision of the project and adds it to<br />

the project history. When you checkpoint a project, you save all the<br />

information needed to recreate the project <strong>com</strong>pletely at any time in the<br />

future. The saved information includes the project structure and the list of<br />

members with their revision numbers.<br />

A checkpoint saves a copy of the project in the project’s history as a<br />

revision, including the list of members along with their revision numbers,<br />

and project and member attributes.<br />

You can use the project’s revision number to keep track of your projects,<br />

but to simplify post-release maintenance, use a label to identify significant<br />

project development milestones when you checkpoint a project.<br />

For example, if you checkpoint a project and label it with a release<br />

identifier (for example, Release 6.2), you can find and recreate that<br />

particular development state more easily.<br />

NOTE<br />

Checkpointing a project affects the project only; it does not check in every<br />

member of the project.<br />

If you are working in a sandbox, issuing a checkpoint <strong>com</strong>mand<br />

checkpoints the sandbox’s master project.<br />

269


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

270<br />

If you want to create a variant or build sandbox, you must first checkpoint<br />

the project.<br />

To checkpoint a project in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select the project or sandbox.<br />

2 From a Project view, do one of the following:<br />

Select Project > Checkpoint Project.<br />

Click .<br />

From a Sandbox view, do one of the following:<br />

Select Sandbox > Checkpoint Project.<br />

Click .<br />

The Checkpoint dialog box is displayed.<br />

3 Click an option tab, if necessary, then modify the checkpoint options.<br />

The General tab specifies general checkpoint options:<br />

Label is a unique text string assigned by you to identify a new<br />

project revision, for example, Beta. Labels cannot contain colons<br />

(:), square brackets ([ ]), or leading spaces. Additionally they<br />

cannot have the same format as a valid revision number. To add<br />

labels to a project from a Project or Sandbox view, see “Adding<br />

Labels to Members” on page 297.<br />

u s e r g u i d e


Restoring a<br />

Project<br />

NOTE<br />

Controlling Projects<br />

If you specify a label that contains the same name as one used for another<br />

project revision in the history, and have the MoveProjectLabel permission,<br />

the label from the earlier project revision is moved to the new revision. For<br />

more information, contact your administrator.<br />

Apply Label to All Members applies the checkpoint label to all<br />

project members.<br />

Notify when Complete (graphical user interface) causes<br />

Source Integrity to confirm that the checkpoint operation has<br />

finished.<br />

State is a one-word description of a new revision’s status. Select a<br />

state from the State list, for example, Exp.<br />

Apply State to All Members applies the checkpoint state to all<br />

project members.<br />

The Advanced tab specifies advanced checkpoint options:<br />

Recurse into Subprojects recursively checkpoints subprojects.<br />

This option must be selected for the entire project to be<br />

checkpointed.<br />

If a subproject is a build project, the checkpoint references the<br />

subproject and identifies it as being of build type, but does not<br />

checkpoint it.<br />

Author is the author name applied to the checkpoint. Your user<br />

name appears by default.<br />

4 In the Checkpoint Description field, enter a description of the<br />

checkpoint, for example, Ready for peer review.<br />

5 To accept the checkpoint, click OK.<br />

The Restore Project <strong>com</strong>mand allows you to restore a project to a<br />

previously checkpointed revision. When you apply the Restore Project<br />

<strong>com</strong>mand, Source Integrity modifies the selected project to reflect the<br />

member list of the target project revision. Any further development then<br />

proceeds from the restored project revision.<br />

271


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

272<br />

Restoring a project is useful when development must revert back to an<br />

earlier version and there are no plans to proceed from the current version<br />

of the project. Restoring a project is not an option when the goal is to test a<br />

particular version.<br />

IMPORTANT<br />

Do not use the Restore Project <strong>com</strong>mand to create a new development branch<br />

from a previously checkpointed project revision. For new development paths,<br />

you should instead create a development path (see “Creating Variant<br />

Sandboxes and Development Paths” on page 146).<br />

Source Integrity performs the Restore Project <strong>com</strong>mand as follows:<br />

A checkpoint is performed on the current project revision.<br />

The project is restored to the target revision.<br />

A final checkpoint of the restored revision is made.<br />

Therefore, for each project you restore, two revisions are generated. For<br />

example, if the head revision of the project is 1.4 and you decide to restore<br />

it to Revision 1.2, the following project revisions are generated:<br />

1.6 final checkpoint<br />

1.5 pre-checkpoint<br />

You would then continue your project development work from revision<br />

1.6.<br />

You can effectively undo the Restore Project <strong>com</strong>mand by restoring the<br />

project to the pre-checkpointed revision. Build projects cannot be restored<br />

using the Restore Project <strong>com</strong>mand.<br />

You can restore any registered project or subproject through the graphical<br />

user interface, using either a Project or Sandbox view, or through the<br />

<strong>com</strong>mand line interface. When you work through a sandbox or<br />

subsandbox, the corresponding master project is referenced. The Restore<br />

Project <strong>com</strong>mand can be applied to both normal and variant projects.<br />

To restore a project or subproject in the graphical user interface<br />

1 With a Project or Sandbox view open, select the project or sandbox.<br />

2 From a Project view, select Project > Restore Project.<br />

From a Sandbox view, select Sandbox > Restore Project.<br />

The Restore Project dialog box is displayed.<br />

u s e r g u i d e


Controlling Projects<br />

By default, Source Integrity selects the head revision as the project<br />

revision to restore.<br />

3 Click an option tab, and then modify the options for restoring the<br />

project:<br />

The Selection tab provides two methods for selecting the project<br />

revision you want to restore.<br />

Pre-Defined Revision that is, by default, the Head revision of the<br />

project. The Head revision represents the latest revision on the<br />

default branch of development (or on the trunk, if no default is<br />

specified).<br />

The Trunk Tip represents the latest revision in the main branch<br />

of development, independent of the default branch settings.<br />

To select a pre-defined project revision, choose the desired<br />

revision from the list.<br />

Specific Revision that is, by default, the most recently<br />

checkpointed project revision.<br />

To change the specific revision, select the Revisions tab or the<br />

Labels tab.<br />

The Revisions tab allows you to select a specific project revision by<br />

number from the list of existing project revisions (in other words, from<br />

all previously checkpointed versions of the project).<br />

273


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

274<br />

The Labels tab allows you to select a specific project revision by label<br />

from the list of existing project revisions (in other words, from all<br />

previously checkpointed versions of the project).<br />

4 In the Reason For Restore field, enter a description of the reason for<br />

restoring the project.<br />

5 To <strong>com</strong>plete the restore operation, click OK.<br />

The selected version of the project is restored.<br />

In the member information pane of your Sandbox view,<br />

Source Integrity displays information on the corresponding working<br />

file and available revision.<br />

u s e r g u i d e


Viewing Project<br />

Differences<br />

Controlling Projects<br />

6 To update the working file to the member revision number of the<br />

target project, highlight the member and resynchronize it by choosing<br />

Member > Resynchronize.<br />

Source Integrity updates the working files to the member revision<br />

number of the target project. All restored members are returned to the<br />

initial state (by default, this is EXP).<br />

Typically, the next time you check in the restored members, the<br />

member revision number is incremented to the next sequential level.<br />

Source Integrity allows you to view a summary of the changes that have<br />

occurred between two versions of a project. In the graphical user interface<br />

and Web interface, this functionality is provided through View Project<br />

Differences. In the <strong>com</strong>mand line interface, you can access this<br />

functionality through the si mods <strong>com</strong>mand.<br />

Information is provided on any change packages that have been applied<br />

between two revisions of the project. This information is extremely useful<br />

for confirming the specific content of a project.<br />

For more information on checkpointing, see “Checkpointing a Project” on<br />

page 269.<br />

As you work with the project and its members, the content of the project<br />

file changes:<br />

The revision number of the project is updated each time you<br />

checkpoint that project.<br />

As you check in individual project members, their revision numbers<br />

change.<br />

Project members may be added or deleted.<br />

Project attributes may be added or deleted.<br />

Source Integrity can also checkpoint subprojects if a project is<br />

checkpointed recursively.<br />

The changes to a project and its members are not tracked as they happen,<br />

but rather the View Project Differences <strong>com</strong>mand takes two checkpoints (or<br />

a checkpoint and the current version) of the project and then <strong>com</strong>pares<br />

them.<br />

The View Project Differences <strong>com</strong>mand can <strong>com</strong>pare the following:<br />

two specified revisions of the project<br />

the current revision of the project with a specified revision<br />

the current version of the project with the last checkpointed revision<br />

275


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

276<br />

Change package information displayed on the By Change Package panel is<br />

drawn from the modifications calculated from the checkpoint <strong>com</strong>parison.<br />

For more information, see “Project Differences View” on page 462.<br />

Viewing Differences Between Two Specified<br />

Revisions of the Project<br />

To view differences between two specified revisions of a project, you select<br />

the individual revisions so that Source Integrity can <strong>com</strong>pare them.<br />

To view project revision differences in the graphical user interface<br />

If you select more than two project revisions, the View Project Differences<br />

<strong>com</strong>mand is disabled. You can only view project differences for one project<br />

or between two versions of a project.<br />

1 With a Project or Sandbox view open, select the project whose<br />

differences you want to view.<br />

2 From a Project view, select Project > View Project History.<br />

From a Sandbox view, select Sandbox > View Project History.<br />

The Project History view is displayed.<br />

3 From the Project History view, select the two revisions of the project<br />

you want to <strong>com</strong>pare. Use CTRL when clicking to select or clear a<br />

selection.<br />

u s e r g u i d e


4 With the required versions selected, do one of the following:<br />

Select History > View Project Differences.<br />

Click .<br />

Controlling Projects<br />

The Project Differences view opens, displaying the list of project<br />

differences.<br />

For information about the view, see “Project Differences View” on<br />

page 462.<br />

To perform further <strong>com</strong>parisons, close the Project Differences view<br />

and return to the Project History view.<br />

To return to the Project History view, select Window from the<br />

Source Integrity menu and choose Project History from the list.<br />

To view project revision differences in the Web interface<br />

If you select more than two project revisions, the View Project Differences<br />

<strong>com</strong>mand is disabled. You can only view project differences for one project<br />

or between two versions of a project.<br />

1 Select the project whose differences you want to view.<br />

2 From a Project view, click Project > View Project History.<br />

The Project History view is displayed.<br />

3 From the Project History view, click the check boxes of the project<br />

versions you want to <strong>com</strong>pare.<br />

4 With the required versions selected, do one of the following:<br />

Click History > View Project Differences.<br />

Click .<br />

The Changes Since view opens, displaying the list of project<br />

differences.<br />

277


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

278<br />

Using a Project view in the Web interface, you can also <strong>com</strong>pare the<br />

current version of the project with the last checkpointed revision by<br />

clicking Project > View Project Differences.<br />

Viewing Differences Between the Current Revision<br />

of the Project With a Specified Revision<br />

To <strong>com</strong>pare the current revision of a project with a specified revision, you<br />

select the individual revision and Source Integrity <strong>com</strong>pares it to the<br />

current revision.<br />

In the graphical user interface, from the Project History view (in either the<br />

List view or the Graphical History view), select one version of the project.<br />

Then select History > View Project Differences, Source Integrity <strong>com</strong>pares<br />

the current project revision with the specified revision.<br />

The Project Differences view opens, displaying the list of project<br />

differences. For information, see “Project Differences View” on page 462.<br />

In the Web interface, from the Project History view, select one version of<br />

the project. Then select History > View Project Differences, Source Integrity<br />

<strong>com</strong>pares the current project revision with the specified revision.<br />

The Changes Since view opens, displaying the list of project differences.<br />

u s e r g u i d e


Controlling Projects<br />

Viewing Differences Between the Current Version of<br />

the Project With the Last Checkpointed Revision<br />

When no specific version of the project is selected, Source Integrity<br />

<strong>com</strong>pares the current revision of the project with the last checkpointed<br />

revision. This <strong>com</strong>parison shows all of the changes to the project since it<br />

was created or since the last time it was checkpointed.<br />

In the graphical user interface (in the List view or the Graphical History<br />

view), no project is selected so that Source Integrity <strong>com</strong>pares the current<br />

revision of the project with the last checkpointed revision. This <strong>com</strong>parison<br />

shows all of the changes to the project since it was created or since the last<br />

time it was checkpointed. For information about the view, see “Project<br />

Differences View” on page 462.<br />

In the Web interface, no project is selected so that Source Integrity<br />

<strong>com</strong>pares the current revision of the project with the last checkpointed<br />

revision. This <strong>com</strong>parison shows all of the changes to the project since it<br />

was created or since the last time it was checkpointed.<br />

Using a Project view in the Web interface, you can also <strong>com</strong>pare the<br />

current version of the project with the last checkpointed revision by<br />

clicking Project > View Project Differences.<br />

279


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Controlling Sandboxes<br />

Viewing<br />

General<br />

Sandbox<br />

Information<br />

280<br />

To help you manage your individual sandboxes, Source Integrity allows<br />

you to view two categories of sandbox information:<br />

general sandbox information<br />

project attributes<br />

sandbox attributes<br />

General sandbox information includes the name you have given the<br />

sandbox and the project it points to, together with the host name and port<br />

number of the Integrity Server where the project resides, the current<br />

revision of the project, the last checkpointed revision, and the number of<br />

members and subsandboxes in the sandbox.<br />

To view sandbox information in the graphical user interface<br />

1 Do one of the following:<br />

From the Registered Sandboxes view, select the sandbox. Then<br />

click Information.<br />

With a Sandbox view open, select the sandbox. Then select<br />

Sandbox > Properties > Sandbox Information.<br />

The Sandbox Information dialog box is displayed.<br />

u s e r g u i d e


Viewing Project<br />

Attributes From<br />

a Sandbox<br />

Controlling Sandboxes<br />

The General tab displays the following general sandbox information:<br />

Sandbox Name is the path and name of the sandbox.<br />

Project Name is the path and name of the master project.<br />

Server is the Integrity Server name and port number where the<br />

master project resides.<br />

Revision is the master project’s current revision number.<br />

Last Checkpointed is the last date and time the master project was<br />

checkpointed.<br />

Members is the number of members in the sandbox.<br />

Subsandboxes is the number of subsandboxes in the sandbox.<br />

Sparse setting determines if the selected sandbox is a sparse<br />

sandbox.<br />

Shared setting determines if the selected sandbox is a shared<br />

sandbox.<br />

Line Terminator setting determines the type of ASCII character<br />

Source Integrity recognizes as the end of a line of text: Native (or<br />

automatic, the default setting), LF (or line feed, primarily for<br />

UNIX applications), or CR/LF.<br />

Project Description is a description of the master project.<br />

Working from your sandbox, you can view project attribute information<br />

through the graphical user interface. These are the attributes that apply<br />

across the entire project. To modify project attributes, see “Working With<br />

Project Attribute Information” on page 259.<br />

Attributes can have either of the following formats:<br />

variable<br />

variable=value<br />

To view project attributes in the graphical user interface<br />

1 Do one of the following:<br />

From the Registered Sandboxes view, select the sandbox. Then<br />

click Information.<br />

With a Sandbox view open, select the sandbox. Then select<br />

Sandbox > Properties > Sandbox Information.<br />

The Sandbox Information dialog box is displayed.<br />

281


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Viewing<br />

Sandbox<br />

Attributes<br />

282<br />

2 Click the Project Attributes tab.<br />

The Project Attributes panel appears.<br />

The project attributes are displayed view-only.<br />

3 To close the Sandbox Information dialog box, click OK.<br />

Working from your sandbox, you can view and edit sandbox attribute<br />

information through the graphical user interface. These are sandbox<br />

attributes that apply to your workspace.<br />

Attributes can have either of the following formats:<br />

variable<br />

variable=value<br />

To view or edit sandbox attribute information in the graphical user<br />

interface<br />

1 Do one of the following:<br />

From the Registered Sandboxes view, select the sandbox. Then<br />

click Information.<br />

With a Sandbox view open, select the sandbox. Then select<br />

Sandbox > Properties > Sandbox Information.<br />

The Sandbox Information dialog box is displayed.<br />

2 Click the Attributes tab.<br />

The Attributes panel appears.<br />

u s e r g u i d e


Taking Sandbox<br />

Snapshots<br />

3 In the Variable field, enter a variable, for example, OS.<br />

NOTE<br />

The variable name cannot include the “=” character.<br />

4 In the Value field, enter a value, for example, Win32.<br />

Controlling Sandboxes<br />

5 To add the attribute, click Add. To remove attributes, select them, then<br />

click Remove.<br />

The attributes appear in the attributes list.<br />

6 To accept any changes you have made, click OK.<br />

The sandbox information is saved.<br />

A snapshot is a capture of the current state of a sandbox, where each<br />

element in the sandbox can be identified with a pre-existing entity in the<br />

repository on the Integrity Server. The sandbox snapshot creates a<br />

standard project revision from which a build sandbox can be created and a<br />

development path assigned. The project revision number takes the form of<br />

a branched revision in the project history. For example, if the head revision<br />

of the project is 1.1, then the project revision created by the snapshot will<br />

be 1.1.1.1.<br />

The set of sandbox elements includes the following:<br />

sandbox members identified with an archive and working revisions<br />

from which the archive was created<br />

former members that were dropped but are still present in your<br />

sandbox<br />

subsandboxes, identified by project name and type<br />

former subsandboxes that were dropped but are still present in your<br />

sandbox<br />

Note the following about sandbox snapshots:<br />

To be included in the snapshot, there must be no working file changes<br />

in the sandbox.<br />

If the working file revision differs from the member revision, it is the<br />

working file revision that is included in the snapshot.<br />

Members with no working files are not included in the snapshot.<br />

Former members that still have working files in the sandbox directory<br />

appear as members in the snapshot.<br />

283


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

284<br />

Former subprojects that are still in the sandbox view appear as<br />

subprojects in the snapshot.<br />

Source Integrity always uses the actual name of the member working<br />

file for the snapshot.<br />

You cannot take a snapshot of a sparse sandbox.<br />

The Snapshot Sandbox <strong>com</strong>mand is performed on the entire sandbox,<br />

independently of the filter used to display the contents of a sandbox.<br />

Differencing can be performed between a project revision created by a<br />

snapshot and another project revision (including revisions created by<br />

a snapshot) in the project history, but the revision cannot be<br />

differenced with the sandbox contents.<br />

In order to specify an existing development path when taking a<br />

sandbox snapshot, you must use the CLI. For more information, see<br />

The Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong>.<br />

Members of a sandbox need to be associated with a corresponding<br />

archive on the Integrity Server.<br />

When recursing into subsandboxes, the snapshot represents exactly<br />

the same directory structure and files of your sandbox. All subproject<br />

elements be<strong>com</strong>e the same type and shared subprojects of different<br />

types be<strong>com</strong>e shared subprojects of the same type.<br />

When you snapshot a sandbox recursively that contains<br />

subsandboxes, for those subsandboxes the snapshot creates a<br />

branched project revision based on the revision of the subproject<br />

captured in the last checkpoint of the master project (if one exists), not<br />

the current revision of the subproject in your sandbox. Member<br />

revisions are unaffected.<br />

When you snapshot a sandbox non-recursively the subproject<br />

elements refer to the exact type they were in the sandbox at the time<br />

the snapshot is performed, so configured subprojects remain<br />

configured. For more information, see “Configuring a Subproject” on<br />

page 131.<br />

The following is the re<strong>com</strong>mended scenario for when to take a sandbox<br />

snapshot in a development environment:<br />

1 You are in a situation where you are working in a regular sandbox, but<br />

should be working in a variant sandbox.<br />

2 Instead of checking in your changes to the main development path,<br />

check in (or merge in) your changes on a branch.<br />

3 Snapshot the sandbox.<br />

u s e r g u i d e


Controlling Sandboxes<br />

4 Create a development path from the project revision that corresponds<br />

to the snapshot (see “Creating a Development Path” on page 147).<br />

5 Create a variant sandbox from the development path you created, and<br />

then continue work on that development path.<br />

TIP<br />

From the CLI, you can specify an existing development path at the time you<br />

take the snapshot. For more information, see the Source Integrity Enterprise<br />

Edition CLI Reference <strong>Guide</strong>.<br />

The following is the re<strong>com</strong>mended scenario for when to take a sandbox<br />

snapshot in a build environment:<br />

1 Checkpoint the project.<br />

2 Create a build sandbox for the build.<br />

3 The build fails, but since development has continued, some of the<br />

required members are at later revisions than the last checkpoint.<br />

4 Perform a resynchronize of the required revisions to fix the build (you<br />

can use resync cp).<br />

5 Snapshot the sandbox, and use the project revision created by the<br />

snapshot to recreate the build in the future using a build sandbox,<br />

instead of using the original project checkpoint.<br />

To take a snapshot of a sandbox in the graphical user interface<br />

1 From a Sandbox view, select Sandbox > Snapshot Sandbox.<br />

The Snapshot Sandbox dialog box is displayed.<br />

285


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

286<br />

2 Click an option tab, if necessary, then modify the snapshot. options.<br />

The General tab specifies general snapshot options:<br />

Label is a unique text string assigned by you to identify the<br />

project revision created by the snapshot. Labels cannot contain<br />

colons (:), square brackets ([ ]), or leading spaces. Additionally<br />

they cannot have the same format as a valid revision number.<br />

TIP<br />

When creating a build sandbox, labels to identify the project revision created<br />

by the snapshot.<br />

Apply Label to All Members applies the snapshot label to all<br />

sandbox members.<br />

Notify when Complete causes Source Integrity to confirm that the<br />

snapshot operation has finished. The notification message<br />

displays the name and path of the sandbox, and revision number<br />

of the project revision created by the snapshot.<br />

u s e r g u i d e


Controlling Members<br />

State is a one-word description of the snapshot revision’s status.<br />

Select a state from the State list, for example, Exp.<br />

Apply State to All Members applies the revision state to all project<br />

members.<br />

The Advanced tab specifies advanced snapshot options:<br />

Recurse into Sub-sandboxes recursively snapshots the sandbox.<br />

This option must be selected to snapshot the entire sandbox, and<br />

is by default, selected.<br />

Author is the author name applied to the snapshot. Your user<br />

name appears by default.<br />

3 If desired, in the Snapshot Description field, enter a description for the<br />

snapshot.<br />

4 When you are finished, to snapshot the sandbox, click OK.<br />

The sandbox snapshot is taken and appears as a branched project<br />

revision in the project history. To see the revision in the history, see<br />

“Viewing a Project History” on page 263.<br />

NOTE<br />

Controlling Members<br />

Viewing and<br />

Editing Member<br />

Information<br />

If working files are missing from the sandbox, a warning appears listing the<br />

missing working files that will not appear in the snapshot. If you want to<br />

include those working files in the snapshot, cancel the operation, provide the<br />

working files (by resynchronizing the corresponding members), then perform<br />

the snapshot.<br />

To help you control your project members, Source Integrity provides<br />

functionality for working with member information such as member<br />

revisions, labels, development states, and information states.<br />

Source Integrity allows you to view and edit four types of member<br />

information:<br />

general<br />

attributes<br />

labels<br />

change package<br />

287


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

288<br />

To view or edit member information in the graphical user interface<br />

and Web interface<br />

1 With a Project or Sandbox view open, select the member whose<br />

information you want to view or edit.<br />

2 From the GUI, do one of the following:<br />

Select Member > Properties > Member Information.<br />

Click .<br />

From the Web, do one of the following:<br />

Select Member > Member Information.<br />

Click .<br />

The Member Information dialog box is displayed.<br />

3 View or make changes to the member information as required.<br />

The Member Information dialog box presents the following<br />

information on the General panel:<br />

Member Name is the path and name of the member.<br />

Project/Sandbox Name is the path and name of the member’s<br />

project or sandbox.<br />

u s e r g u i d e


NOTE<br />

Controlling Members<br />

As part of the Change Package review process, if the member has a pending<br />

operation against it or one of its revisions, the information appears in a note,<br />

for example, This member has a pending update to member<br />

revision 1.2 by devans.<br />

Member Revision is the displayed member revision. To select<br />

another member revision, choose a revision from the Member<br />

Revision list.<br />

Created By is the name of the user who created the revision and<br />

the date and time it was created.<br />

Locked By is the name of the user who locked the revision, and<br />

the date and time it was locked.<br />

Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />

where the lock on the revision was made.<br />

State is the state assigned to the revision. To change the state of<br />

the revision, choose a state from the State list. For more<br />

information on states, see “Promoting Members” on page 299.<br />

Revision Description is a brief description of the revision. You<br />

cannot change an existing revision description from this dialog<br />

box, but you can append additional <strong>com</strong>ments to it. To do so,<br />

enter any supplemental information in the Revision Description<br />

field below the present information (indicated by a line if an<br />

existing description is present).<br />

For information on the Attributes tab, see “To view or edit member<br />

attributes in the graphical user interface” on page 290. For information<br />

on the Labels tab, see “To view or edit member labels in the graphical<br />

user interface” on page 292. For information on the Change Package<br />

tab, see “To view a member’s change package information in the<br />

graphical user interface” on page 230.<br />

4 When you are finished viewing or editing the member information,<br />

click OK to accept the changes.<br />

The member information is saved.<br />

289


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

290<br />

Working With Member Attributes<br />

You can add or delete member attributes that allow you to categorize<br />

members, and then perform operations on them as a group. For example,<br />

in the graphical user interface, you could use the Select <strong>com</strong>mand to<br />

highlight only those members with the attribute sys=dos and then check<br />

them out as a group.<br />

Every project member can have any number of attribute statements that<br />

define variables for the member. Attributes can have either of the<br />

following formats:<br />

variable<br />

variable=value<br />

To view or edit member attributes in the graphical user interface<br />

1 Select the target member.<br />

2 Select Member > Properties > Member Information.<br />

The Member Information dialog box is displayed.<br />

3 Click the Attributes tab.<br />

The Attributes panel appears.<br />

4 In the Variable field, enter a variable, for example, os.<br />

u s e r g u i d e


NOTE<br />

The variable cannot include the “=” character.<br />

5 In the Value field, enter a value, for example, dos.<br />

6 To add the attribute, click Add.<br />

The attributes appear in the attributes list.<br />

To remove an attribute, select it, then click Remove.<br />

7 To accept the changes, click OK.<br />

Controlling Members<br />

To view or edit member attribute information in the Web interface<br />

1 With the Project view open, select the member whose information you<br />

want to view or edit.<br />

2 Select Member > Member Information.<br />

The Member Information dialog box opens.<br />

3 Scroll to the Attributes section.<br />

4 In the Variable field, enter a variable for example, os.<br />

5 In the Value field, enter a value, for example, win32.<br />

6 To add the attribute, click Add.<br />

The attributes appear in the attributes list.<br />

To remove attributes, select them, then click Remove.<br />

7 To accept any changes you have made, click OK.<br />

The member information is saved.<br />

Working With Member Labels<br />

Labels are unique text that describe and refer to a revision of a member.<br />

Labels can be based on the product release the revision was included in, on<br />

the content of the revision, on changes made to the revision, or any other<br />

sort of information that would be useful in identifying that particular<br />

revision.<br />

Although you generally assign a label to a new revision upon check in, you<br />

may sometimes want to add an additional label or change the label<br />

assigned to a revision.<br />

Labels appear in alphabetical order.<br />

291


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

292<br />

To view or edit member labels in the graphical user interface<br />

1 Select the target member.<br />

2 Right click and select Member Information.<br />

The Member Information dialog box is displayed.<br />

3 Click the Labels tab.<br />

The Labels panel appears.<br />

4 In the Label field, enter a label for the member revision, for example,<br />

Draft1.<br />

5 To add the label, click Add.<br />

6 To remove an existing label, select it from the list of labels, then click<br />

Remove.<br />

7 To accept the changes, click OK.<br />

To view or edit member label information in the Web interface<br />

1 With the Project view open, select the member whose information you<br />

want to view or edit.<br />

2 Select Member > Member Information.<br />

The Member Information dialog box opens.<br />

3 Scroll to the Labels section.<br />

4 In the Label field, enter a variable for example, Draft1.<br />

5 To add the label, click Add.<br />

u s e r g u i d e


Updating a<br />

Member’s<br />

Revision<br />

Controlling Members<br />

6 To remove an existing label, select it from the list of Labels, then click<br />

Remove.<br />

The attributes appear in the attributes list.<br />

7 To accept the changes, click OK.<br />

The member information is saved.<br />

Within the graphical user interface, you can use the Update Member<br />

Revision option when you are checking in a member to ensure the most<br />

recent revision of each member is added to the list of members in the<br />

project. If the option is not enabled, the project list might not reflect the<br />

most current revision of each member’s history.<br />

For example, if the current project member is revision 2.7 of an archived<br />

file, but a newer revision (revision 2.8) has been added to the member’s<br />

history, you can update the member to the new revision.<br />

You can also update the member revision by using the Update Revision<br />

<strong>com</strong>mand.<br />

NOTE<br />

You cannot update a frozen member’s revision. You must first thaw the<br />

member and then update it. For information on thawing members, see<br />

“Thawing Members” on page 302.<br />

To update a member’s revision in the graphical user interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

update.<br />

2 Select Member > Properties > Update Revision.<br />

The Set Member Revision dialog box is displayed.<br />

293


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

294<br />

3 Click an option tab, if necessary, then modify the set member revision<br />

options.<br />

The Selection tab allows you to select a revision to update to.<br />

NOTE<br />

If Promotion is enabled by your administrator, the Last revision with State<br />

option appears. This option allows you to update the revision by a specific<br />

state.<br />

To check out a revision by state, click Latest revision with State, then select a<br />

state from the list. The options in the list depend on the states configured by<br />

your administrator. For more information on the available states, see your<br />

administrator.<br />

A pre-defined revision is a symbolic revision that represents a location<br />

in the development path. To select a pre-defined revision to update<br />

the member to, click Pre-Defined Revision, then choose a pre-defined<br />

revision from the list. The available pre-defined revisions are:<br />

Working updates the member revision to the version of the<br />

working file.<br />

Head updates the member revision to the member’s head<br />

revision.<br />

Trunk Tip updates the member revision to the latest revision in<br />

the trunk, independent of the default branch settings.<br />

u s e r g u i d e


Controlling Members<br />

Member Branch Tip updates the member revision to the latest<br />

revision along the member’s current branch of development.<br />

Saved Revision Rule updates the member revision to a saved<br />

revision. The revision is one that was saved in the CLI using<br />

--save option with the si updaterevision <strong>com</strong>mand, and can<br />

be a specified revision or any symbolic revision. For more<br />

information, see the Source Integrity Enterprise Edition CLI<br />

Reference <strong>Guide</strong>.<br />

To select a specific revision, click Specific Revision, then click the<br />

Revisions, Labels, or Project tab to choose a revision.<br />

The Revisions tab allows you to select a specific revision to make<br />

the member revision.<br />

The Labels tab allows you to make a specific labeled revision the<br />

member revision.<br />

The Project tab allows you set the member revision for the<br />

following options:<br />

Member revision on Variant allows you to make a specific<br />

variant revision the member revision.<br />

Member revision on a Project Build allows you to make a<br />

specific build revision or label the member revision.<br />

4 To add the operation to a change package, from the Change Package<br />

list, select a change package. To create a change package, click Create.<br />

For more information, see “Creating a Change Package” on page 217.<br />

5 Under Options, you can specify the following information:<br />

6 To <strong>com</strong>mit the operation later, select Defer Update Revision.<br />

If the change package reviews are mandatory, select this option to<br />

create a pending entry for this operation at the time of change package<br />

submission. If this option is not enabled, Source Integrity creates the<br />

pending entry at the <strong>com</strong>pletion of this procedure. For more<br />

information, see “Change Package Review Process” on page 240.<br />

7 To close the change package when the operation is <strong>com</strong>plete, select<br />

Close Change Package.<br />

8 To set the member revision, click OK (for multiple members, click OK<br />

to All).<br />

The member is updated to the specified revision.<br />

295


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

296<br />

To update a member’s revision in the Web interface<br />

1 With a Project view open, select one or more members to update.<br />

2 Select Member > Update Revision.<br />

The Update Member Revision dialog box is displayed.<br />

3 Click an option tab, if necessary, then modify the set member revision<br />

options.<br />

The Selection tab allows you to select a revision to update to.<br />

To select a pre-defined revision to update, click Pre-Defined Revision,<br />

then choose a pre-defined revision from the list. The available predefined<br />

revisions are:<br />

Head updates the member revision to the member’s head<br />

revision.<br />

Trunk Tip updates the member revision to the latest revision in<br />

the trunk, independent of the default branch settings.<br />

Member Branch Tip updates the member revision to the latest<br />

revision along the member’s current branch of development.<br />

Working updates the member revision to the version of the<br />

working file.<br />

Saved Revision Rule updates the member revision to a saved<br />

revision. The revision is one that was saved in the CLI using<br />

--save option with the si updaterevision <strong>com</strong>mand, and can<br />

u s e r g u i d e


Adding Labels<br />

to Members<br />

Controlling Members<br />

be a specified revision or any symbolic revision. For more<br />

information, see the Source Integrity Enterprise Edition CLI<br />

Reference <strong>Guide</strong>.<br />

To select a specific revision, click Specific Revision, then click the<br />

Revisions or Labels tab to choose a revision.<br />

The Revisions tab allows you to select a specific revision to make<br />

the member revision.<br />

The Labels tab allows you to make a specific labeled revision the<br />

member revision.<br />

4 To add the operation to a change package, from the Change Package<br />

list, select a change package.<br />

5 In the field for Close Change Package, select one of the following<br />

options:<br />

Yes causes Source Integrity to close the associated change<br />

package.<br />

No causes Source Integrity to keep the associated change package<br />

open.<br />

Confirm causes Source Integrity to ask you for confirmation on<br />

the action to be taken.<br />

6 To set the member revision, click OK (for multiple members, click OK<br />

to All).<br />

The member is updated to the specified revision.<br />

Labels are unique text that describe and refer to a revision. Labels can be<br />

based on the product release the revision was included in, on the content of<br />

the revision, on changes made to the revision, or any other sort of<br />

information that would be useful in identifying that particular revision.<br />

Although you generally add a label to a new revision upon check in, there<br />

may be times when you want to add an additional label or change the label<br />

assigned to a revision.<br />

In the Web interface, Source Integrity displays up to three member labels<br />

in the Labels column of the Project view. If a member has more than three<br />

labels, Source Integrity displays a link ( ) that you can click to view all<br />

the member labels.<br />

Labels appear in alphabetical order in selection lists.<br />

297


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Deleting<br />

Member Labels<br />

298<br />

To add a label to a member in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

label.<br />

2 In the GUI, select Member > Properties > Add Label.<br />

3 In the Web, select Member > Add Label.<br />

The Add Label dialog box is displayed.<br />

:member appears in the Revision field indicating the label will be<br />

applied to the member revision.<br />

4 In the Label field, enter a label for the member, for example, Draft1.<br />

Labels cannot contain colons (:), square brackets ([ ]), or leading<br />

spaces. Additionally they cannot have the same format as a valid<br />

revision number.<br />

TIP<br />

You can also add labels to the member in the Member Information dialog box.<br />

5 To move the label, if it already exists on another revision, select the<br />

Move Existing Label option.<br />

6 To accept the new label, click OK (for multiple members, click OK to<br />

All).<br />

The member is labeled.<br />

Sometimes you may want to delete a member label. For instance, you may<br />

decide the label no longer accurately reflects that particular revision. In<br />

addition, if you have assigned the same label to a number of members, you<br />

might want to remove them all with one <strong>com</strong>mand.<br />

u s e r g u i d e


Promoting<br />

Members<br />

Controlling Members<br />

To delete a member label in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

delete labels from.<br />

2 In the GUI, select Member > Properties > Delete Label.<br />

In the Web, select Member > Delete Label.<br />

The Delete Label dialog box is displayed.<br />

3 Select a label to delete from the Label list.<br />

TIP<br />

You can also delete a member’s labels in the Member Information dialog box.<br />

4 To accept the deletion, click OK (for multiple members, click OK to<br />

All).<br />

The member label is deleted.<br />

Promotion is the process of managing data as it moves through a<br />

structured development cycle. Each phase is represented by states that are<br />

defined by the administrator. Project members can also be demoted to a<br />

predefined lower state.<br />

At particular milestones, project members are ready to move to the next<br />

stage of their development cycle (for example, from Development to<br />

Test).<br />

If no state system is defined, a default value of Exp (Experimental) is<br />

assigned to all revisions.<br />

299


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Demoting<br />

Members<br />

300<br />

To promote a member in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

promote.<br />

2 In the GUI, select Member > Properties > Promote.<br />

In the Web, select Member > Promote.<br />

The Promote Member dialog box is displayed.<br />

:member appears in the Revision field indicating the member revision<br />

will be promoted.<br />

3 Select a new state from the Promote to State list, for example, Test.<br />

4 To accept the new promotion state, click OK (for multiple members,<br />

click OK to All).<br />

The member is promoted.<br />

Project members can also be demoted to a predefined lower state of<br />

development.<br />

To demote a member in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select one or more members to<br />

demote.<br />

2 In the GUI, select Member > Properties > Demote.<br />

In the Web, select Member > Demote.<br />

The Demote Member dialog box is displayed.<br />

u s e r g u i d e


Freezing<br />

Members<br />

Controlling Members<br />

:member appears in the Revision field indicating the member revision<br />

will be demoted.<br />

3 Select a new state from the Demote to State list, for example,<br />

Development.<br />

4 To accept the new state, click OK (for multiple members, click OK to<br />

All).<br />

The member is demoted.<br />

When your development team has largely finished a portion of a project<br />

and some project members are in a stable state, you can freeze individual<br />

members within a project or sandbox.<br />

Freezing a member places it in a state that prevents changes from being<br />

made to the member information that resides in the project file. For<br />

example, you cannot update the member revision or change the attributes<br />

of a frozen member. Freezing is the opposite of thawing a member.<br />

Freezing restricts member information from being updated, preventing<br />

these members from being changed by accident. However, development<br />

work can still continue in the member file itself. For example, if new<br />

revisions are checked into the member’s archive, Source Integrity does not<br />

update the project’s member revision.<br />

Freezing is useful for facilitating:<br />

project checkpointing<br />

member promotion<br />

software distribution<br />

Freezing prevents changes to member information in the project, but does<br />

not affect the member file itself. Revisions can still be checked out,<br />

modified, and checked in, but none of the changes are included as part of<br />

the member information in the project.<br />

301


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

Thawing<br />

Members<br />

302<br />

You can change the label or state of frozen members, but not their<br />

attributes. Freezing can be used immediately before a checkpoint operation<br />

to ensure no one changes the project or its members before the checkpoint<br />

is <strong>com</strong>plete.<br />

When you want to allow project members to be changed, you can thaw<br />

them (see “Thawing Members” on page 302).<br />

If a member is frozen, Source Integrity reports the availability of new<br />

revisions when anyone checks them into the archive. Source Integrity does<br />

not update the project to the latest revision, so an appropriate person must<br />

make the decision to thaw the member and update the project as a whole.<br />

A sample freezing sequence is as follows:<br />

Working with the Apex.pj project, a release engineer freezes project<br />

member utility.dll at revision 1.2.<br />

The snowflake symbol appears beside utility.dll, revision 1.2 in<br />

the Apex.pj Project view. (The snowflake symbol appears only in the<br />

context of the project.)<br />

A developer checks out utility.dll, revision 1.2, modifies it, and<br />

checks it back in.<br />

The new version of utility.dll is not accessible to the Apex.pj<br />

project until revision 1.2 is thawed.<br />

To freeze a member in the graphical user interface and Web interface<br />

1 With a Project or Sandbox view open, select the member you want to<br />

freeze.<br />

2 In the GUI, select Member > Properties > Freeze.<br />

In the Web, select Member > Freeze.<br />

A snowflake symbol ( ) appears beside the selected member.<br />

When you decide to allow project members to evolve again, you can thaw<br />

any frozen ones.<br />

Thawing a member removes the restriction on changing member<br />

information in the project and makes previously checked in member<br />

information available to the project. Thawing a member is the opposite of<br />

freezing a member.<br />

A sample thawing sequence is as follows:<br />

As part of the development cycle of the Apex.pj project, the release<br />

engineer freezes the file utility.dll, revision 1.2.<br />

u s e r g u i d e


Generating Reports<br />

About the<br />

Report<br />

Information<br />

Generating Reports<br />

A developer checks out utility.dll, revision 1.2, modifies it, and<br />

checks it back in.<br />

The new version of utility.dll (that is, version 1.3) is not accessible<br />

to the Apex.pj project until revision 1.2 is thawed.<br />

The release engineer thaws utility.dll, revision 1.2.<br />

Thawing revision 1.2 of utility.dll makes the changes available to<br />

the Apex.pj project.<br />

Source Integrity notifies that a newer revision of utility.dll<br />

(version 1.3) is available to the project.<br />

Once the developer’s modifications are reviewed and accepted, the<br />

release engineer incorporates the modifications by choosing Member ><br />

Properties > Update Revision in the GUI, or Member > Update Revision<br />

in the Web interface. Source Integrity updates Apex.pj to include the<br />

modifications previously checked in by the developer.<br />

Revision 1.3 be<strong>com</strong>es the head revision for the project member<br />

utility.dll.<br />

To thaw a member in the graphical user interface and Web interface<br />

1 With a Project or Sandbox view open, select the member you want to<br />

thaw. The member is one that is marked with a snowflake symbol<br />

( ).<br />

2 In the GUI, select Member > Properties > Thaw.<br />

In the Web, select Member > Thaw.<br />

The snowflake symbol beside the selected member disappears.<br />

In the graphical user interface, Source Integrity Reporter analyzes projects,<br />

their members, or individual archives, and allows you to generate a variety<br />

of reports and graphs based on its findings. Reports and graphs can be<br />

printed or viewed on the screen. To use Reporter, you must have a default<br />

printer installed.<br />

Reporter calculates a summary of the changes to a project or archive, then<br />

displays or prints the summary as text or, for some reports, as a graph.<br />

Customized reports, created using Microsoft Access, can also be<br />

produced.<br />

303


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

About Graphs<br />

Report Types<br />

304<br />

Reporter’s data files (containing the results of its project or archive<br />

analysis) can be saved as text files that can be read by most database<br />

applications.<br />

Reporter generates the following summaries:<br />

changes introduced by individual authors<br />

changes between the member revision and a revision with a particular<br />

label<br />

changes between the member revision and any other revision<br />

a list of locked members and the names of users who locked them<br />

a list of revisions with a particular label or state<br />

project member history (including revision descriptions) by file<br />

Whenever graphs are available in Reporter, you are given the option of<br />

displaying the report in a text version (the default) or as a graph. If you<br />

display a report as a graph, you can define how you want it to look. Using<br />

graphs, you can give reports a custom look to suit your preferences or for<br />

quick, project-specific identification.<br />

Reporter allows you to generate different types of reports based on the<br />

information Source Integrity maintains about project members and<br />

revisions in the archives. Reporter can generate the following report types:<br />

Changes Grouped by Author<br />

This type of report lists changes to members or revisions grouped by the<br />

person who made them. For example, if both Fred and Ethel made changes<br />

to several members, the report would include two sections, one for Fred<br />

and one for Ethel. Each section of the report shows:<br />

name of the member<br />

revision number of changed revisions<br />

date the change was made<br />

number of lines (or bytes for binary files) that were added or deleted<br />

This type of report offers two additional options:<br />

The report can be on a single, specified author, or all authors.<br />

It can be restricted to changes made before or after a specified date.<br />

u s e r g u i d e


Changes Grouped by Author (Summary)<br />

Generating Reports<br />

This type of report shows a brief summary of changes made by each user.<br />

Each type of project member (Text, Binary, Auto-Detect) appears in a<br />

separate section of the report, subdivided according to the person who<br />

made the changes.<br />

The information summarized includes:<br />

name of the member<br />

total number of revisions changed by each person<br />

total number of lines (or bytes for binary files) that were added or<br />

deleted by each person<br />

This report type offers two additional options:<br />

The report can be on a single, specified author, or all authors.<br />

It can be restricted to changes made before or after a specified date.<br />

Revisions Newer Than Member Revision<br />

This report tells you which members have more recent revisions available.<br />

For example, if a member revision is revision number 1.3, but the archive<br />

contains revisions numbered 1.4, 1.5, and 1.6, this report lists the newer<br />

available revisions and information about each, including:<br />

name of the member<br />

revision numbers of newer revisions in the archive<br />

date of the newer revisions<br />

revision description for each newer revision<br />

Changes From Member Revision to Label<br />

This report lists all revisions in a member’s archive between the member<br />

revision and another revision with a specified label. This report can be<br />

generated for a single member, or for all project members.<br />

For each member, the report shows:<br />

name of the member<br />

revision numbers of all the revisions between the member and the<br />

labeled revision<br />

author of each revision<br />

date of each revision<br />

revision description for each revision<br />

305


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

306<br />

Changes From Member Revision to Revision<br />

This report lists all revisions in the member archive between the member<br />

revision and another revision with a specified revision number. This report<br />

can be generated for a single member, or for all project members.<br />

For each member, the report shows:<br />

name of the member<br />

revision numbers of all the revisions between the member revision<br />

and the selected revision number<br />

author of each revision<br />

date of each revision<br />

revision description for each revision<br />

List Locked Revisions<br />

This report lists all locked revisions in a project or archive. For each locked<br />

revision, the report lists:<br />

name of the member<br />

revision number<br />

person who has it locked<br />

List Revisions Associated With Labels<br />

This report scans the archives of all project members and extracts any<br />

labels they contain. For each label it finds, the report lists:<br />

name of the label<br />

name of the member archive<br />

revision number the label is associated with<br />

List Revisions Associated With States<br />

This report scans the archives of all project members and extracts any state<br />

settings they contain. For each state setting it finds, the report lists:<br />

state setting<br />

name of the member archive<br />

most recent revision the state is associated with<br />

u s e r g u i d e


Creating a Report<br />

Project Member History<br />

Generating Reports<br />

This report displays all the revisions of a specified project member. For<br />

each revision, it shows:<br />

revision number<br />

revision date<br />

revision description<br />

When you choose the member to report on, you can specify that the<br />

information should be sorted according to Revision Number or Revision<br />

Date, in either ascending or descending order.<br />

Source Integrity provides you with the ability to create reports.<br />

Reports are summaries of the data in your project. Reports are based on the<br />

standard and custom fields of issue types. Reports can be customized to<br />

include images, fonts, hyperlinks, and can be saved as HTML files for<br />

viewing on the Web.<br />

To create a report in the graphical user interface<br />

1 With a Project or Sandbox view open, select the project or sandbox<br />

you want to report on.<br />

2 From a Project view, select Project > Reports.<br />

From a Sandbox view, select Sandbox > Reports.<br />

The Select Report Type dialog box is displayed.<br />

3 To save the results of the Reporter’s analysis to data files that can be<br />

read by most database applications, select the Save Data Files option.<br />

307


Chapter 8: Viewing and Editing Projects, Sandboxes, and Members<br />

308<br />

4 If you have created customized reports with Microsoft Access that you<br />

want to use with Reporter, select the Show Customized Reports<br />

option, then specify the report name with the Custom Reports selector.<br />

5 From the Report Type list, select a report type to generate, as described<br />

in “Report Types” on page 304.<br />

6 Click OK.<br />

If the report type requires additional information (for example, a<br />

range of revisions), a second dialog box is displayed to collect it.<br />

Reports appear in plain text format by default. Some report types,<br />

however, allow you to display the information graphically.<br />

7 To display a report as a report, click Report.<br />

To display a report as a graph, click Graph.<br />

8 If necessary, type in any additional information.<br />

9 Click OK.<br />

The report or graph appears in a scrollable, scalable window.<br />

u s e r g u i d e


Viewing and Editing<br />

Member Histories and<br />

Revisions<br />

9<br />

KEY TERMS: member history, archive information, revision information, working file,<br />

locking, unlocking, branching, merging<br />

While sandboxes and projects allow you to manage and access project<br />

members and the contents of individual members—the history of changes<br />

are saved in member histories.<br />

Source Integrity lets you save and recreate every stage (or revision) in the<br />

development of each member you use.<br />

When you make changes to a project member and check it back in, your<br />

changes are automatically added to the member history. If you ever need<br />

to see that version of the member again, check out the appropriate revision,<br />

and Source Integrity rebuilds an exact copy for you.<br />

This chapter provides details on the following:<br />

“Viewing a Member History” on page 310<br />

“Viewing and Editing Archive Information” on page 312 and<br />

“Viewing and Editing Revision Information” on page 314<br />

“Viewing an Annotated Revision” on page 316<br />

“Viewing and Editing Revision Labels” on page 319<br />

“Viewing a Member’s Working File or Revision” on page 322<br />

“Promoting Revisions” on page 323 and “Demoting Revisions” on<br />

page 324<br />

“Locking Revisions” on page 324, “Unlocking Revisions” on page 326,<br />

“Locking Multiple Revisions” on page 327, and “Managing Revision<br />

Locks” on page 328<br />

“Setting the Member Revision” on page 330, “Deleting Revisions” on<br />

page 331, and “Comparing Revisions” on page 331<br />

309


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

Viewing a Member History<br />

310<br />

You can view the entire history of a member, including information about<br />

who modified individual revisions, revision labels, and revision<br />

descriptions.<br />

To view a member history in the graphical user interface and Web<br />

interface<br />

1 With a Project or Sandbox view open, select the member whose<br />

history you want to view.<br />

NOTE<br />

In the Source Integrity Web interface, application functionality is not available<br />

through the shortcut menu.<br />

2 Do one of the following:<br />

Select Member > View Member History.<br />

Click .<br />

The member history appears in a Member History view.<br />

u s e r g u i d e


NOTE<br />

Viewing a Member History<br />

If there is an pending add operation for a member, you cannot view the<br />

member history for that member because it has not yet been added to the actual<br />

project.<br />

You can toggle between the Graphical History view and List view in<br />

the Member History view. For more information on toggling views,<br />

see “Changing Views (GUI)” on page 449.<br />

IMPORTANT<br />

If you choose a project and select the View Member History <strong>com</strong>mand,<br />

Source Integrity opens the member history for each member of the project. For<br />

larger projects, this action requires a long execution time.<br />

Member History Filters<br />

Like the filters in the Project and Sandbox views, the Member History<br />

filters allow you to view and manipulate a predefined subset of project<br />

members that are grouped according to their properties.<br />

311


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

312<br />

You can apply filters to a Member History in either the Graphical History<br />

view or the List view. Member History filters are located in the View menu.<br />

Choose one of the following filters, and your view is filtered accordingly:<br />

All Revisions shows all the revisions of the selected member.<br />

You cannot use the All Revisions filter in <strong>com</strong>bination with other<br />

filters. Selecting the All Revisions filter deactivates other filters. A<br />

bullet next to the All Revisions filter indicates that it is active.<br />

Branched shows all the revisions that are branched.<br />

Labeled shows all revisions with a label.<br />

Locked shows all the revisions locked by any user.<br />

Member shows the member revision, and shows the revision with the<br />

working file (if it is different than the member revision).<br />

Pending shows all pending revisions.<br />

You can use filters in <strong>com</strong>bination (except the All Revisions filter) to show<br />

all the revisions on the current development path with a label. A check<br />

mark next to the filter indicates the active filter.<br />

Once a filter is applied, operations performed on project members apply<br />

only to those members shown as a result of the filter.<br />

Viewing and Editing Archive Information<br />

Just as it maintains information about each project member,<br />

Source Integrity also maintains historical information about each member<br />

archive called archive information. This information, includes revision<br />

labels, users who have locks on revisions in the archive, the starting point<br />

of the default branch revision, the data type (text or binary), whether the<br />

archive is <strong>com</strong>pressed, whether strict-locking applies to the archive, and a<br />

description of the archive.<br />

The default branch is the branch Source Integrity tries to check in files to. If<br />

unspecified during a check in, files are checked in to the trunk.<br />

u s e r g u i d e


Viewing and Editing Archive Information<br />

To view or edit archive information in the graphical user interface and<br />

Web interface<br />

1 With a Member History view open, do one of the following:<br />

Select History > Archive Information.<br />

Click .<br />

The Archive Information dialog box is displayed.<br />

2 Click an option tab, if necessary, then view or modify the archive<br />

information:<br />

The General tab specifies general archive information options.<br />

Member Name is the path and name of the member that the<br />

archive is for.<br />

Project/Sandbox Name is the path and name of the member’s<br />

project or sandbox.<br />

Archive Name is the path and name of the displayed archive.<br />

Archive Type displays the type of data stored in the archive.<br />

Default Branch specifies the starting point of the default branch.<br />

To specify a default branch, enter a branch number in the Default<br />

Branch field, for example, 2.1.1.<br />

313


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

314<br />

Strict Locking specifies if a strict locking policy is in effect for the<br />

archive. With strict locking on, a user must have a revision locked<br />

before checking in any changes. To enable strict locking, select the<br />

Strict Locking option.<br />

Compressed specifies if the archive is <strong>com</strong>pressed. To <strong>com</strong>press<br />

the archive, select the Compressed option.<br />

Store by Reference causes each revision to be saved to a separate<br />

file, instead of saving all revisions to one file. This feature<br />

improves performance for archives that contain large binary files.<br />

To store the archive by reference, select the Store by Reference<br />

option.<br />

Archive Description describes the archive. If necessary, enter or<br />

edit a description.<br />

The Labels panel displays a list of revision labels in the archive, for<br />

example, Draft1 1.1.<br />

The Locks panel displays a list of users who have locks on revisions in<br />

the archive, for example, sholmes 1.2.<br />

3 To save your changes, click OK.<br />

The archive information is saved.<br />

Viewing and Editing Revision Information<br />

Source Integrity maintains detailed information about each member<br />

revision in a member history. In the graphical user interface, this revision<br />

information displays in columns in the Member History view.<br />

Each revision is assigned a unique revision number used to identify a<br />

revision in a history. Revisions on the trunk are numbered as two-part<br />

decimals (such as, 1.1, 1.2, 1.3, 1.4, …). Revisions on a branch are numbered<br />

by adding two-part decimals to the number of the revision they branch<br />

from. For example, if a branch is started from revision 1.3, its revisions<br />

would be numbered 1.3.1.1, 1.3.1.2, 1.3.1.3, and so on.<br />

The revision can also be viewed and modified with the Revision<br />

Information <strong>com</strong>mand.<br />

The Labels tab displays the labels assigned to the selected revision and also<br />

allows you to add or remove labels. For more information on viewing and<br />

editing revision labels, see “Viewing and Editing Revision Labels” on<br />

page 319.<br />

u s e r g u i d e


Viewing and Editing Revision Information<br />

The Change Package tab provides information on change packages<br />

associated with the revision. The Change Package tab only appears if<br />

change packages are enabled.<br />

To view or edit general revision information in the graphical user<br />

interface and Web interface<br />

1 With a Member History view open, select the revision whose<br />

information you want to view or edit.<br />

2 Do one of the following:<br />

Select History > Revision Information.<br />

Click .<br />

The Revision Information dialog box is displayed.<br />

3 View or make changes to the member information as allowed.<br />

The General tab displays the following information:<br />

Member Name is the path and name of the member.<br />

Project/Sandbox Name is the path and name of the member’s<br />

project or sandbox.<br />

Revision is the revision corresponding to the displayed<br />

information. If the revision is pending, then pending appears in<br />

parenthesis (see “Working With Pending Revisions” on<br />

page 335).<br />

Created By is the name of the user who created the revision, and<br />

the date and time it was created.<br />

315


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

316<br />

Locked By is the name of the user who locked the revision, and<br />

the date and time it was locked.<br />

Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />

where the lock on the revision was made.<br />

State is the state assigned to the member. To apply a different<br />

state to the member, choose a state from the State list.<br />

Revision Description is a brief description of the revision. You<br />

cannot change an existing revision description from this dialog<br />

box, but you can append additional <strong>com</strong>ments to it. To do so,<br />

enter any supplemental information in the Revision Description<br />

field below the present information (indicated by a line if an<br />

existing description is present).<br />

4 To accept the changes, click OK.<br />

The revision information is saved.<br />

Viewing an Annotated Revision<br />

Source Integrity provides an annotated revision view for member<br />

revisions. Use it when you want to investigate the reason and<br />

circumstances a revision was introduced or changed. Rather than<br />

searching the content of revisions in the history one revision at a time, you<br />

can see the content and information for all of the revisions in an annotated<br />

list.<br />

In annotation blocks, each line of the revision is displayed, with information<br />

about the last modification made to each line of the revision’s contents. By<br />

default, the annotated revision list includes the revision number, author,<br />

date, line number, and revision contents.<br />

You can view annotated revision information from the Project, Sandbox, or<br />

Member History views.<br />

When using the Annotated view:<br />

you can only view annotation for one member at a time.<br />

you must close and then reopen the view to see subsequent updates to<br />

the member<br />

only content that was added or changed on a per revision basis is<br />

displayed, not deleted content<br />

u s e r g u i d e


NOTE<br />

Viewing an Annotated Revision<br />

The annotated view can only be displayed for members of text format.<br />

To view annotated revisions in the graphical user interface and Web<br />

interface<br />

1 With a Project, Sandbox, or Member History view open, select the<br />

revision you want to view.<br />

2 From a Project or Sandbox view, select Member > View Annotated<br />

Member.<br />

From a Member History view, do one of the following:<br />

Select History > View Annotated Revision.<br />

Click .<br />

The Annotated Revision view is displayed.<br />

The Annotated Revision view displays the following information:<br />

Revision displays the revision number for each annotated block.<br />

If the revision is pending, then pending appears in parenthesis<br />

(see “Working With Pending Revisions” on page 335).<br />

Author displays the author of the revision.<br />

317


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

318<br />

Date displays the date each member revision was created.<br />

Line displays the line number for each line of text in the revision.<br />

Revision Contents displays the text contained in each annotation<br />

block.<br />

C.P. ID displays the change package ID for the annotation block.<br />

In the Web interface, the Revision Information for the specified<br />

revision is displayed in the bottom frame.<br />

To customize the fields displayed in the Annotated Revision view, see<br />

“View Preferences” on page 61.<br />

From the View menu, you can perform the following tasks:<br />

Find ( )searches for the first instance of a text string in the<br />

<br />

revision contents column and highlights the text.<br />

Find Next applies the last search to the remaining revision<br />

contents column and highlights the next instance the text appears.<br />

Find Previous applies the last search for the text string to the<br />

revision contents column in reverse order.<br />

Go to Line ( )displays a specific line of text. To go to a specific<br />

line, enter the number for the line, for example, 33. The line of<br />

code is displayed in the center of the pane if it exists in a scrolling<br />

region.<br />

3 Select an annotation block, then from the History menu, select one of<br />

the following:<br />

Revision Information, see “Viewing and Editing Revision<br />

Information” on page 314.<br />

View Revision, see “Viewing a Member’s Working File or<br />

Revision” on page 322.<br />

View Member History, see “Viewing a Member History” on<br />

page 310.<br />

From the Change Package menu, select one of the following:<br />

View Change Package, see “Using Change Packages and<br />

Reviews” on page 213.<br />

View Issue, see “Viewing a Change Package’s Issue” on page 376.<br />

u s e r g u i d e


TIP<br />

Viewing and Editing Revision Labels<br />

From the graphical user interface, right click the annotation block and then<br />

select an option.<br />

Viewing and Editing Revision Labels<br />

Although you generally assign a label to a new revision upon check in,<br />

there may be times you want to add an additional label or change the label<br />

assigned to a revision.<br />

A revision label is a textual name that describes and refers to revisions in a<br />

history. When a file is checked in, you are given the option of assigning it a<br />

revision label. Revisions in a history can be displayed and selected either<br />

by revision number or revision label.<br />

To view or edit revision labels in the graphical user interface<br />

1 With a Member History view open, select the revision whose<br />

information you want to view or edit.<br />

2 Do one of the following:<br />

Select History > Revision Information.<br />

Click .<br />

The Revision Information dialog box is displayed.<br />

3 Click the Labels tab.<br />

The Labels panel appears.<br />

4 In the Label field, enter a label for the revision, for example, Beta<br />

Fixes. Labels cannot contain colons (:), square brackets ([ ]), or<br />

leading spaces. Additionally they cannot have the same format as a<br />

valid revision number.<br />

319


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

Adding<br />

Revision Labels<br />

320<br />

5 To add the label, click Add.<br />

6 To remove an existing label, select it from the list, then click Remove.<br />

7 To accept the changes, click OK.<br />

The revision information is saved.<br />

Although you generally assign a label to a new revision upon check in,<br />

there may be times when you want to add an additional label or change the<br />

label that is already assigned to a revision.<br />

In the Web interface, Source Integrity displays up to three revision labels in<br />

the Labels column of the Project view. If a revision has more than three<br />

labels, Source Integrity displays a link ( ) that you can click to view all<br />

the revision labels.<br />

To add a label to a revision in the graphical user interface and Web<br />

interface<br />

1 With a Member History view open, select the revision you want to<br />

label.<br />

2 Do one of the following:<br />

Select History > Add Label.<br />

Click .<br />

u s e r g u i d e


Deleting<br />

Revision Labels<br />

TIP<br />

Viewing and Editing Revision Labels<br />

You can also add a label using the Revision Information dialog box, as<br />

described in “Viewing and Editing Revision Information” on page 314.<br />

The Add Label dialog box is displayed.<br />

3 In the Label field, enter a label for the revision, for example, Draft1.<br />

Labels cannot contain colons (:), square brackets ([ ]), or leading<br />

spaces. Additionally they cannot have the same format as a valid<br />

revision number.<br />

4 To move an existing label from the revision, select the Move Existing<br />

Label option.<br />

5 To add a label, if it already exists, to another revision, click OK (for<br />

multiple members, click OK to All).<br />

The revision label is added.<br />

If you have assigned the wrong label to a revision, you can delete that label<br />

either through the graphical user interface or the <strong>com</strong>mand line interface.<br />

To delete a revision label from a revision in the graphical user<br />

interface and Web interface<br />

1 With a Member History view open, do one of the following:<br />

Select History > Delete Label.<br />

Click .<br />

TIP<br />

You can also delete a label using the Revision Information dialog box, as<br />

described in “Viewing and Editing Revision Information” on page 314.<br />

321


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

322<br />

The Delete Label dialog box is displayed.<br />

2 From the Label list, select a label to delete, for example, Draft1.<br />

3 To accept the deleted label, click OK (for multiple members, click OK<br />

to All).<br />

The revision label is deleted.<br />

Viewing a Member’s Working File or<br />

Revision<br />

When you view a revision, Source Integrity copies the revision to a readonly<br />

temporary file and opens it for you. The temporary file is not the<br />

revision. If you make changes to the file and want to save it, the actual<br />

revision is not modified.<br />

Although it can be used to show the contents of any revision in an archive,<br />

this <strong>com</strong>mand is typically used with the working file, since it provides a<br />

mechanism to open the member without leaving the Source Integrity<br />

application environment.<br />

A working file is a file that contains a working copy of a checked out<br />

revision. <strong>User</strong>s edit and change the working file, not the revision itself.<br />

Changes to the working file are added to the history (as a new revision)<br />

when the working file is checked in.<br />

To view a member’s working file or revision in the graphical user<br />

interface or Web interface<br />

1 With a Member History view open, select the working file or revision<br />

you want to view.<br />

u s e r g u i d e


2 Do one of the following:<br />

Select History > View Revision.<br />

Click .<br />

Promoting Revisions<br />

Promoting Revisions<br />

The member’s working file or revision is opened in your default editor<br />

or in the editor associated with the file’s extension.<br />

Normally, you promote a member’s revision (set its state) when you<br />

checkpoint its master project, but you can do so at any time.<br />

To promote a revision in the graphical user interface and Web<br />

interface<br />

1 With a Member History view open, select a revision to promote.<br />

2 Do one of the following:<br />

Select History > Promote.<br />

Click .<br />

The Promote Member dialog box is displayed.<br />

3 Select a new state from the Promote to State list, for example, Beta.<br />

The next highest state appears in the Promote to State list.<br />

4 To accept the new state, click OK (for multiple members, click OK to<br />

All).<br />

The revision is promoted.<br />

323


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

Demoting Revisions<br />

Locking Revisions<br />

324<br />

You can demote a revision by changing its promotion state setting from a<br />

higher level to a lower one.<br />

To demote a revision in the graphical user interface and Web interface<br />

1 With a Member History view open, select a revision to demote.<br />

2 Do one of the following:<br />

Select History > Demote.<br />

Click .<br />

The Demote Member dialog box is displayed.<br />

3 Select a new state from the Demote to State list.<br />

By default, the next lowest state appears in the Demote to State list.<br />

4 To accept the new state, click OK (for multiple members, click OK to<br />

All).<br />

The revision is demoted.<br />

Revisions are normally locked at checkout time, but you can lock a revision<br />

without checking it out of the archive. Locking a revision ensures that no<br />

one else can modify that revision.<br />

u s e r g u i d e


Locking Revisions<br />

To lock a revision in the graphical user interface and Web interface<br />

1 With a Member History view open, select a revision to lock.<br />

2 Do one of the following:<br />

Select History > Lock.<br />

Click .<br />

If your administrator has enabled the integration with Integrity<br />

Manager and set the IMTrackLocksEnabled option, Source Integrity<br />

opens the Lock Revision dialog box.<br />

3 Configure the following options as necessary:<br />

Change Package options appear only if change packages are<br />

enabled. Select a change package from the Change Package drop<br />

down list, or click Create to create a new change package.<br />

Force Creation of New Branch causes Source Integrity to create a<br />

branch off of the revision you are locking.<br />

In the Web interface only, select an option from the list:<br />

Select Yes to create a new branch.<br />

Select No to not create a new branch.<br />

Select Confirm to be asked for confirmation of the action to<br />

be taken if branch creation is required.<br />

Create Branch if Variant causes Source Integrity to create a branch<br />

off of the revision you are locking, if you are working in a variant<br />

sandbox. This option is available only through the graphical user<br />

interface and <strong>com</strong>mand line interface.<br />

To apply the lock with the selected options, click OK. To apply locks to<br />

multiple files, click OK to All.<br />

325


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

Unlocking Revisions<br />

326<br />

A padlock symbol appears next to the revision number, and your user<br />

name and the date/time you locked the revision display in the Locked<br />

column.<br />

You can unlock a revision without checking it back into the archive.<br />

Unlocking a revision does not discard any changes you have made;<br />

however, resynchronizing or reverting the member would discard those<br />

changes.<br />

If you attempt to unlock a revision that is locked by another user, a<br />

message warns you that you are about to break someone else’s lock.<br />

NOTE<br />

Although you may not be prohibited from breaking someone else’s lock, you<br />

should be cautious about doing so, because it can result in confusion and<br />

duplication of effort in shared working environments. For information on<br />

permissions, see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />

To unlock a revision in the graphical user interface and Web interface<br />

Do one of the following:<br />

With a Member History view open, select a revision to unlock<br />

(denoted by a padlock symbol), then do one of the following:<br />

Select History > Unlock.<br />

Click .<br />

With the Locks for <strong>User</strong> window open (see “Locks View” on<br />

page 450), select one or more locked revisions, then select Locks ><br />

Unlock.<br />

If the lock is not held by you, you are asked to confirm breaking the lock.<br />

To confirm that you want to break the lock, click Yes.<br />

The padlock symbol and the name of the user who had the revision locked<br />

both disappear.<br />

u s e r g u i d e


Locking Multiple Revisions<br />

Locking Multiple Revisions<br />

Locking a revision ensures that no one else can modify that revision. In<br />

some cases locking more than one revision in a member history at the same<br />

time is required.<br />

Cases where you may require multiple locking include:<br />

You are working on both the main branch of development (where new<br />

development is occurring) and in a variant sandbox (where fixes are<br />

occurring)<br />

You are working in two variant sandboxes and need to modify a<br />

different revision in the same member history in each sandbox<br />

You are sharing the member history across many projects and need to<br />

modify a different revision in the same member history in each<br />

particular project<br />

Locking multiple revisions triggers variant branching when necessary. For<br />

example, if you are working in a variant sandbox that does not already<br />

have its own branch, Source Integrity prompts you to create the branch.<br />

Source Integrity then moves the variant and the variant member revision<br />

to that branch. For information on working with variant sandboxes, see<br />

“Creating Variant Sandboxes and Development Paths” on page 146.<br />

NOTE<br />

Your administrator must explicitly set the locking policy to allow locking<br />

multiple revisions. See your administrator to find out if your system is<br />

configured for multiple locking.<br />

Multiple Lock Procedures<br />

There are several ways to lock multiple revisions. The following sections<br />

outline the procedures you can use.<br />

To lock multiple revisions in the graphical user interface<br />

From the Member History view:<br />

Follow the procedure for Locking a Revision (see “Locking Revisions”<br />

on page 324). Repeat to lock other revisions.<br />

Follow the procedure for Checking Out a Member (see “Checking Out<br />

a Member” on page 178) by specifying the revision number (Member<br />

History view via the Sandbox view only). Repeat to check out and lock<br />

other revisions.<br />

327


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

Managing Revision Locks<br />

328<br />

From the Sandbox view, follow the procedure for Checking Out a Member<br />

(see “Checking Out a Member” on page 178) by specifying the revision<br />

number. Repeat to check out and lock other revisions.<br />

To lock multiple revisions in the Web interface<br />

From the Member History view:<br />

Follow the procedure for Locking a Revision (see “Locking Revisions”<br />

on page 324). Repeat to lock other revisions.<br />

Follow the procedure for Checking Out a Member (see “Checking Out<br />

a Member” on page 178) by specifying the revision number. Repeat to<br />

check out and lock other revisions.<br />

From the Project view, follow the procedure for Checking Out a Member<br />

(see “Checking Out a Member” on page 178) by specifying the revision<br />

number. Repeat to check out and lock other revisions.<br />

You can view a list of all of the members you have locked across all<br />

projects, even projects that you no longer have permissions to access. You<br />

can then remove unused locks.<br />

To manage revision locks in the graphical user interface and Web<br />

interface<br />

1 Select Tools > Manage My Locks.<br />

The Locks for <strong>User</strong> window is displayed.<br />

The Locks for <strong>User</strong> window displays the following information:<br />

Project displays the name and path of the project where the<br />

member revision was locked from. If the member revision was<br />

locked from a shared subproject, it is the subproject name and<br />

path that are displayed.<br />

u s e r g u i d e


Managing Revision Locks<br />

Member Name displays the member name for the locked revision.<br />

Revision displays the locked revision number.<br />

Time displays the time the revision was locked<br />

You can also display other columns such as Archive Name, Host, <strong>User</strong>,<br />

C.P. ID, Sandbox, Development Path. For more information, see “View<br />

Preferences” on page 61.<br />

You can perform the following tasks:<br />

To delete a lock or locks, select a list item, then select Locks ><br />

Unlock.<br />

The revision is unlocked.<br />

To refresh the list of locked revisions, select View > Refresh.<br />

The list is updated.<br />

To change the user (GUI only) whose locks are displayed, select<br />

Locks > Change <strong>User</strong>.<br />

The Retrieve All Locks for a <strong>User</strong> dialog box is displayed.<br />

From the Locker list, select the name of the user whose locks you<br />

want to view, then click OK.<br />

The user’s locks are displayed in the Locks for <strong>User</strong> window.<br />

NOTE<br />

You may only view other users’ locks on revisions in archives that are in<br />

projects you have permission to view. You can always view your locks for any<br />

project regardless of project permissions.<br />

From the Locks for <strong>User</strong> window, you cannot remove another user’s lock on a<br />

member that was locked from a shared subproject.<br />

Finding Locks<br />

Source Integrity can display all of the locks for a specified user.<br />

To find locks in the graphical user interface<br />

1 Select Tools > Find > Locks.<br />

The Retrieve All Locks for a <strong>User</strong> dialog box is displayed.<br />

329


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

Setting the Member Revision<br />

330<br />

2 From the Locker list, select the name of the user whose locks you want<br />

to view, then click OK.<br />

The user’s locks are displayed in the Locks for <strong>User</strong> window.<br />

NOTE<br />

Although you may not be prohibited from breaking someone else’s lock, you<br />

should be cautious about doing so, because it can result in confusion and<br />

duplication of effort in shared working environments. For information on<br />

permissions, see the Integrity Server Installation and Administration <strong>Guide</strong>.<br />

You can specify a particular revision as the member revision for a project.<br />

The member revision is the default revision that users work with in all<br />

other sandboxes. For example, if demoapp.c 1.1 is the member revision,<br />

setting 1.2 as the member revision makes it the default revision in all<br />

sandboxes.<br />

To set the member revision from the member history in the graphical<br />

user interface and Web interface<br />

1 With a Member History view open, select the revision you want to<br />

make the member revision.<br />

2 Do one of the following:<br />

Select History > Set Member Revision.<br />

Click .<br />

The selected revision be<strong>com</strong>es the member revision, indicated by a<br />

member revision icon ( ).<br />

u s e r g u i d e


Deleting Revisions<br />

Comparing Revisions<br />

Deleting Revisions<br />

If you know you will never use a revision again, you can delete it,<br />

provided it is not a pending revision associated with a change package in a<br />

state other than Closed or Discarded. For more information, see<br />

“Working With Pending Revisions” on page 335 and “Change Package<br />

Review Process” on page 240.<br />

CAUTION<br />

Only delete a revision when you are certain you will never need it again. Once<br />

you delete a revision, it cannot be retrieved. Any historical checkpoints based<br />

on a particular revision be<strong>com</strong>e invalid if that revision is deleted. A revision<br />

cannot be deleted if it is the starting point (root) of a branch. You should never<br />

delete the head revision of an archive.<br />

To delete a revision in the graphical user interface<br />

1 With a Member History view open, select the revision you want to<br />

delete.<br />

You can only delete one revision at a time in the graphical user<br />

interface.<br />

2 Do one of the following:<br />

Select History > Delete Revision.<br />

Click .<br />

Source Integrity asks you to confirm the deletion.<br />

NOTE<br />

Any existing locks on revisions are removed when those revisions are deleted.<br />

3 To delete the selected revision, click Yes. To keep the selected revision,<br />

click No.<br />

Source Integrity deletes the revision.<br />

When you are working with an evolving body of source files, you can<br />

<strong>com</strong>pare two revisions to see what changes you made from one revision to<br />

the next, or any two specific revisions.<br />

331


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

332<br />

With Source Integrity you can <strong>com</strong>pare:<br />

any two text-based revisions in a history<br />

a text-based revision and its associated working file in a sandbox<br />

any two text files<br />

The <strong>com</strong>mands discussed in this section for the graphical user interface use<br />

MKS Visual Difference, a standalone application that <strong>com</strong>pares and<br />

merges members and revisions.<br />

MKS Visual Difference calculates the differences between working files or<br />

revisions and displays them side by side in their own panes, along with a<br />

summary of the differences between the files. Using MKS Visual<br />

Difference, you can also interactively merge two members or revisions. For<br />

information on merging in MKS Visual Difference, see “Merging Two<br />

Revisions” on page 356.<br />

In the Web interface, the Differences window displays the revisions sideby-side<br />

in the same pane. For more information on the MKS Visual<br />

Difference interface, see “MKS Visual Difference Interface” on page 100.<br />

Source Integrity allows you to use a third party differencing tool, in the<br />

graphical user interface, if you do not want to use MKS Visual Difference.<br />

You can specify a third party difference tool in your preferences. For<br />

information on setting up third party differencing tools, see “Difference<br />

Tool Preferences” on page 69.<br />

To <strong>com</strong>pare two revisions in the graphical user interface<br />

1 With a Member History view open, select two revisions to <strong>com</strong>pare, or<br />

a revision and the working file.<br />

To select two revisions in the graphical user interface, select the first<br />

revision, then hold down CTRL and click the second revision.<br />

2 Do one of the following:<br />

Select History > Differences.<br />

Click .<br />

NOTE<br />

In the Source Integrity Web interface, application functionality is not available<br />

through the shortcut menu.<br />

The MKS Visual Difference window is displayed.<br />

u s e r g u i d e


Comparing Revisions<br />

Both revisions and a summary of the differences between them are<br />

displayed in the MKS Visual Difference window.<br />

To <strong>com</strong>pare two revisions in the Web interface<br />

1 With a Member History view open, select two revisions to <strong>com</strong>pare, or<br />

a revision and the working file.<br />

2 Do one of the following:<br />

Select History > Differences.<br />

Click .<br />

The Differences window opens.<br />

Both revisions and a summary of the differences between them are<br />

shown in the Differences window.<br />

333


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

334<br />

You can also select from the following rules when viewing the<br />

<strong>com</strong>parison:<br />

Ignore blanks ignores tabs and white space throughout lines in<br />

the revisions, but does not ignore the splitting of a word<br />

Ignore whitespace ignores tabs and white space within a line, and<br />

ignores the splitting of a word<br />

Ignore case ignores the type case when <strong>com</strong>paring the revisions<br />

Diffs only displays only the difference blocks in the revisions<br />

Wrap causes the text in the revisions to wrap at a specified<br />

character count. Enter the number of characters at which you<br />

want the text to wrap within the pane. Wrap is enabled by default.<br />

3 To exit the Differences window, click OK.<br />

u s e r g u i d e


Working With Pending Revisions<br />

Working With Pending Revisions<br />

Pending revisions are created by Source Integrity when a change package<br />

containing deferred operations is submitted. Pending revisions are also<br />

created when reviews are mandatory and an operation that creates a new<br />

revision is performed without deferral (see the documentation for the<br />

desired operation for more information).<br />

When reviews are mandatory, the pending revisions persist until the<br />

change package is accepted and the changes are successfully <strong>com</strong>mitted to<br />

the repository (and then be<strong>com</strong>e <strong>com</strong>mitted entries). If the change package<br />

is rejected, the creator of the change package can edit pending revisions by<br />

checking them out.<br />

When reviews are not mandatory, you only see pending revisions under<br />

the one of following circumstances:<br />

Deferred operations, which when <strong>com</strong>mitted create a new member<br />

revision, are submitted but fail to <strong>com</strong>mit to the database.<br />

A change package that contains deferred operations, which when<br />

<strong>com</strong>mitted create a new member revision, is submitted but fails to<br />

<strong>com</strong>mit to the database.<br />

If the changes fail to <strong>com</strong>mit to the repository, Source Integrity moves the<br />

change package to a state of CommitFailed. You can submit the operation<br />

or change package again (the pending revisions are then changed to<br />

member revisions), or open the change package and continue development<br />

and then submit the change package. For more information, see<br />

“Submitting Deferred Operations” on page 202 and “Change Package<br />

Review Process” on page 240.<br />

Pending revisions are denoted with pending in parenthesis in all views<br />

that display revision numbers, for example 1.2 (pending).<br />

Reviewing a Pending Revision<br />

To review a pending revision created by the action of another user, obtain<br />

a working file for the revision by checking out the revision by its number<br />

(you cannot obtain a lock on the pending revision).<br />

You can view the working file for the pending change package entry from<br />

the Change Package view by selecting Entries > Edit Working File (See<br />

“Viewing Change Package Details and Entries” on page 226).<br />

Resyncing a pending revision from your sandbox, replaces the working file<br />

(corresponding to the pending revision) with the member revision.<br />

335


Chapter 9: Viewing and Editing Member Histories and Revisions<br />

336<br />

Pending members<br />

A pending member, is a member that is associated with a pending operation<br />

that adds it to the project. The pending member is denoted by a pending<br />

icon displayed in the Name column of the Sandbox and Project views.<br />

The following are <strong>com</strong>mands that create pending members: Import, Add,<br />

Add From Archive, Rename To.<br />

In the case of a pending add member operation, the archive name for the<br />

pending revision is reserved on the server, thereby preventing other users<br />

from specifying the same archive name in any future add member<br />

operations.<br />

Pending Revision Caveats<br />

Except for the following information, all <strong>com</strong>mands that involve revisions<br />

can be performed on pending revisions.<br />

Note that pending revisions:<br />

cannot be set as the member revision by a user<br />

cannot be the basis for another revision, unless that revision is also a<br />

pending revision created by the same user in the same change package<br />

can only be locked by their respective creators<br />

can only be deleted by discarding the corresponding pending entry<br />

from the change package<br />

are not recorded in a project checkpoint or sandbox snapshot, and<br />

similarly do not appear in project restore<br />

cannot be imported into a project<br />

Information about pending revisions is can be viewed in the Revision<br />

Information dialog box (see “Viewing and Editing Revision Information”<br />

on page 314 and “Viewing and Editing Member Information” on<br />

page 287).<br />

u s e r g u i d e


Branching and Merging<br />

Revisions<br />

KEY TERMS: branching, merging, merge result file<br />

10<br />

As your projects evolve, you may need to branch members to facilitate<br />

development in multiple directions. When you want to <strong>com</strong>bine the<br />

development occurring on different branches, you can merge the revisions.<br />

You may also want to merge revisions that are part of the same Member<br />

History to incorporate earlier development into the current development<br />

of the member, or vice versa. Source Integrity allows you to merge two<br />

revisions and the corresponding working file into a single merged revision<br />

with the MKS Visual Merge tool.<br />

This chapter explains the branching and merging tasks and the different<br />

ways you can <strong>com</strong>plete them.<br />

Specific topics covered in this chapter include:<br />

“Branching Revisions” on page 338<br />

“Making Locked Members Writable” on page 340<br />

“Merging Branched Revisions” on page 343<br />

“Merging Revisions” on page 353<br />

“Resolving Merges” on page 367<br />

337


Chapter 10: Branching and Merging Revisions<br />

Branching Revisions<br />

338<br />

A branch is a revision path that diverges from the main line of development<br />

(or trunk) in a member or project history. A branch is typically created by<br />

checking in a file to a revision other than the head revision. The most<br />

recent revision of a branch in a history is called the tip revision. When you<br />

branch a member the working revision number is appended to indicate the<br />

branch. For example, the member features.txt at revision 1.2 is<br />

branched and appears with the working revision number 1.2.1.1.<br />

The branching on check out option allows multiple users to share locks on<br />

the same revision by creating new branches automatically. You can use this<br />

option to check out a file that is locked by another user. When you apply<br />

the branching on check out option, Source Integrity provides you with a<br />

locked working revision on new branch where you can proceed with<br />

development.<br />

You can merge revisions when development is <strong>com</strong>plete, or check in your<br />

revisions to the new branch without merging. For more details on checking<br />

in and merging, see “Merging on Check In” on page 343.<br />

To branch a member upon check out in the graphical user interface<br />

and Web interface<br />

1 With a Project or Sandbox view open, select one or more locked<br />

members to check out.<br />

2 Do one of the following:<br />

Select Member > Check Out.<br />

Click .<br />

The Check Out dialog box is displayed.<br />

u s e r g u i d e


Branching Revisions<br />

3 Click the desired tab, then modify the check out options. For details on<br />

check out options, see “Checking Out a Member” on page 178.<br />

4 To check out a single selected member, click OK. To check out all<br />

selected members, click OK to All.<br />

The Resolve Lock Conflict dialog box is displayed.<br />

5 Select the Create a new branch with a lock option.<br />

6 To check out and branch a single selected member, click OK.<br />

To check out and branch all selected members, click OK to All.<br />

To cancel the check out and branch without checking out the member,<br />

select the Cancel this operation option, and click OK.<br />

339


Chapter 10: Branching and Merging Revisions<br />

340<br />

NOTE<br />

If you have made changes to your working file (without a lock), and then<br />

attempt to check out the member, the Confirm Working File Update dialog box<br />

is displayed. If you want to retain your changes in the working file, click Yes<br />

(Yes to All for multiple members). If you do not want to retain your changes in<br />

the working file, click No (No to All for multiple members).<br />

The member is checked out for editing on a new branch, indicated by a<br />

lock icon, and a new working revision number. A member delta<br />

symbol also appears indicating that the working file corresponds to<br />

the new branch revision.<br />

Making Locked Members Writable<br />

If you want to edit a locked file without creating a branch, Source Integrity<br />

provides an alternate method. You can make the working file in your<br />

sandbox writable so that you can continue with development while<br />

waiting for the lock to be released. When the lock is released, you can then<br />

check out the member with a lock and check in your changes.<br />

In the graphical user interface, you can make your working file writable<br />

during the check out process, or from a Sandbox view.<br />

In the Web interface, you can make your working file writable during the<br />

check out process.<br />

To make a member writable in the graphical user interface<br />

1 With a Sandbox view open, select one or more locked members to<br />

make writable.<br />

2 Select Member > Working File > Make Writable.<br />

The working file in your sandbox is made writable for editing. The<br />

member revision number and working revision number are not<br />

affected.<br />

IMPORTANT<br />

The changes you make to the working file in your sandbox are not part of the<br />

project history until you check out the member locked, and then check the<br />

member back in.<br />

u s e r g u i d e


Making Locked Members Writable<br />

To make a member writable upon check out in the graphical user<br />

interface<br />

1 With a Project or Sandbox view open, select one or more locked<br />

members to make writable.<br />

2 Do one of the following:<br />

Select Member > Check Out.<br />

Click .<br />

The Check Out dialog box is displayed.<br />

3 Click the desired tab, then modify the check out options. For details on<br />

check out options, see “Checking Out a Member” on page 178.<br />

4 To make a single selected member writable, click OK. To make all<br />

selected members writable, click OK to All.<br />

The Resolve Lock Conflict dialog box is displayed.<br />

5 Select the Make your working file writable option.<br />

6 To make a single selected member writable, click OK. To make all<br />

selected members writable, click OK to All.<br />

The working file in your project or sandbox is made writable for<br />

editing. The member revision number and working revision number<br />

are not affected.<br />

IMPORTANT<br />

The changes you make to the working file in your sandbox are not part of the<br />

project history until you check out the member locked, and then check the<br />

member back in.<br />

341


Chapter 10: Branching and Merging Revisions<br />

342<br />

To make a member writable in the Web interface upon check out<br />

1 From a Project view, select one or more locked member to make<br />

writable.<br />

2 Do one of the following:<br />

Select Member > Check Out.<br />

Click .<br />

The Check Out dialog box is displayed.<br />

3 Click the desired tab, then modify the check out options. For details on<br />

check out options, see “Checking Out a Member” on page 178.<br />

4 To make a single selected member writable, click OK. To make all<br />

selected members writable, click OK to All.<br />

The Resolve Lock Conflict dialog box is displayed.<br />

5 Select the Ignore and continue without a lock option.<br />

6 To make a single selected member writable, click OK. To make all<br />

selected members writable, click OK to All.<br />

The revision in your project is made writable for editing. The member<br />

revision number is not affected.<br />

IMPORTANT<br />

The changes you make to the working file in your project are not part of the<br />

project history until you check out the member locked, and then check the<br />

member back in.<br />

u s e r g u i d e


Merging Branched Revisions<br />

Merging on<br />

Check In<br />

Merging Branched Revisions<br />

When you want to <strong>com</strong>bine the development occurring on different<br />

branches, you can merge the branched revisions into a single revision.<br />

Source Integrity recognizes cases where a previous merge has occurred,<br />

(whether by merging the branch, automatic merging, or using the MKS<br />

Visual Merge and MKS Visual Difference tools), and merges only changes<br />

since the last merge operation. Thus, the first merge branch operation<br />

occurring on a given branch merges all changes throughout the branch.<br />

Any subsequent merge branch operations will merge only changes since<br />

the previous merge operation.<br />

Merging operations are available only in the graphical user interface and<br />

<strong>com</strong>mand line interface.<br />

Merging on check in is a two step process that allows users sharing locks<br />

on a revision to update the member revision and then merge changes from<br />

a branch if necessary.<br />

Step One: Check In<br />

In the first step, you can check in a revision from a branch when the<br />

member revision is locked with the option of updating the member<br />

revision in the project. For more details on updating the member revision,<br />

see “Updating a Member’s Revision” on page 293.<br />

To check in and update the member revision using the graphical user<br />

interface<br />

1 With a Sandbox view open, select one or more members to check in.<br />

2 Do one of the following:<br />

Select Member > Check In.<br />

Click .<br />

The Check In dialog box is displayed.<br />

NOTE<br />

The Change Package options, such as Close Change Package, appear only if<br />

change packages are enabled.<br />

If the member you are checking in had a change package associated with it at<br />

the time of check out, that change package appears by default in the Change<br />

Package field in the Change Package options.<br />

343


Chapter 10: Branching and Merging Revisions<br />

344<br />

3 In the Revision Description field, enter a <strong>com</strong>ment about the new<br />

revision. For example, you can enter a detailed description of what<br />

you changed, what bug in the software the changes were meant to<br />

correct, or instructions for the next person who works on the member.<br />

NOTE<br />

If your administrator has set the feature for enforced revision descriptions, you<br />

must make an entry in the Revision Description field. If the field is blank,<br />

Source Integrity displays an error message and the member is not checked in.<br />

4 Under Options, click the desired tab, then modify the check in options.<br />

For details on check in options, see “Checking In a Member” on<br />

page 186.<br />

5 To check in the member, click OK. To check in all remaining members,<br />

click OK to All.<br />

The Confirm Update Of Member Revision dialog box is displayed.<br />

u s e r g u i d e


Merging Branched Revisions<br />

6 To check in and update a single selected member, click Yes. To check<br />

in and update all selected members, click Yes to All.<br />

The member is checked in. The new revision be<strong>com</strong>es the member<br />

revision in the project, and the member revision number increments<br />

accordingly.<br />

To check in a single member without updating, click No. To check in<br />

all remaining members without updating, click No to All.<br />

NOTE<br />

Source Integrity confirms the action to be taken if the working file you want to<br />

check in has unresolved merge conflicts. For information on resolving merges,<br />

see “Resolving Merges” on page 367.<br />

The member is checked in but is not updated to the member revision.<br />

The working revision number increments accordingly, and the<br />

original member revision in the project remains unchanged.<br />

To cancel the check in and update without checking in the member,<br />

click Cancel.<br />

Step Two: Merge Branch<br />

In the second step, you can merge the changes between revisions on<br />

branches, making the merged revision the member revision for the project.<br />

For more details on merging, see “Merging Revisions” on page 353.<br />

To merge revisions in the graphical user interface<br />

1 With a Sandbox or Member History view open, select one or more<br />

members to merge.<br />

IMPORTANT<br />

Revisions must be checked in prior to merging. An error occurs if the working<br />

file is modified and not checked in.<br />

2 From the Sandbox view, select Member > Diff/Merge > Merge Branch.<br />

From the Member History view, select History > Merge Branch.<br />

The Merge Branch dialog box is displayed.<br />

345


Chapter 10: Branching and Merging Revisions<br />

346<br />

3 Specify the Target revision that the working revision is merged into.<br />

You can specify a revision by name from the Symbolic list, specify a<br />

particular revision from the Revision list, or specify a revision by label<br />

from the Label list.<br />

4 Specify the Branch revision you want to merge with the Target<br />

revision. You can specify a revision by name from the Symbolic list,<br />

specify a particular revision from the Revision list, or specify a<br />

revision by label from the Label list.<br />

5 Under Options <strong>com</strong>plete the following as required:<br />

Select Lock target revision to lock the merged revision when the<br />

merge is <strong>com</strong>plete.<br />

Select Force Creation of New Branch to automatically create a<br />

branch for the merged revision.<br />

Select Create Branch if Variant to automatically create a branch for<br />

the merged revision if you are working in a variant sandbox.<br />

Configure the Merge Type option to specify the method you want<br />

to use for merging. Select one of the following from the list:<br />

Confirm causes Source Integrity to prompt you for the action<br />

to be taken.<br />

u s e r g u i d e


Merging Branched Revisions<br />

Cancel causes Source Integrity to cancel the merge<br />

operation.<br />

Automatic causes Source Integrity to automatically merge<br />

the files.<br />

Manual causes Source Integrity to launch the MKS Visual<br />

Merge tool.<br />

Configure the On Conflicts option to specify how you want<br />

Source Integrity to handle any conflicts that occur during<br />

merging. Select one of the following from the list:<br />

Confirm causes Source Integrity to prompt you for the action<br />

to be taken.<br />

Cancel causes Source Integrity to cancel the merge operation<br />

when a conflict occurs.<br />

Mark For Later Merge causes Source Integrity to exit the<br />

merge operation and mark the working file with an<br />

unresolved merge icon.<br />

Launch Tool causes Source Integrity to launch the MKS<br />

Visual Merge tool.<br />

Highlight Output File causes Source Integrity to<br />

<strong>com</strong>plete the merge automatically and highlight the output<br />

file where any conflicts occurred.<br />

Error causes Source Integrity to display an error message<br />

prompt.<br />

6 Under Change Package, select a change package to associate with the<br />

merged file from the Change Package list.<br />

Click Create to create a new change package for the file.<br />

NOTE<br />

The Change Package options only appear if change packages are enabled.<br />

7 To merge the revision, click OK. To merge revisions of more than one<br />

member, click OK to All.<br />

Source Integrity merges all the changes to the working file on the<br />

branch (from the point of branching up to the point of check in) into<br />

the member revision for the project.<br />

347


Chapter 10: Branching and Merging Revisions<br />

Merging<br />

Revisions by<br />

Dragging<br />

348<br />

You can merge revisions in the Graphical History view by dragging. The<br />

drag-and-drop action initiates the Merge Branch <strong>com</strong>mand.<br />

For more information on the Graphical History view, see “Graphical<br />

History View (GUI)” on page 445.<br />

For more information on Dragging, see “Dragging in the Graphical History<br />

View (GUI)” on page 448.<br />

To merge revisions in the graphical user interface Graphical History<br />

view by dragging<br />

1 Select the branch revision you want to merge.<br />

2 Drag the branch revision onto the target revision (the revision you<br />

want to merge into).<br />

The Merge Branch dialog box is displayed.<br />

3 Specify the Target revision that the working revision is merged into.<br />

You can specify a revision by name from the Symbolic list, specify a<br />

particular revision from the Revision list, or specify a revision by label<br />

from the Label list.<br />

u s e r g u i d e


Merging Branched Revisions<br />

4 Specify the Branch revision you want to merge with the Target<br />

revision. You can specify a revision by name from the Symbolic list,<br />

specify a particular revision from the Revision list, or specify a<br />

revision by label from the Label list.<br />

5 Under Options <strong>com</strong>plete the following as required:<br />

Select Lock target revision to lock the merged revision when the<br />

merge is <strong>com</strong>plete.<br />

Select Force Creation of New Branch to automatically create a<br />

branch for the merged revision.<br />

Select Create Branch if Variant to automatically create a branch for<br />

the merged revision if you are working in a variant sandbox.<br />

Configure the Merge Type option to specify the method you want<br />

to use for merging. Select one of the following from the list:<br />

Confirm causes Source Integrity to prompt you for the action<br />

to be taken.<br />

Cancel causes Source Integrity to cancel the merge<br />

operation.<br />

Automatic causes Source Integrity to automatically merge<br />

the files.<br />

Manual causes Source Integrity to launch the MKS Visual<br />

Merge tool.<br />

Configure the On Conflicts option to specify how you want<br />

Source Integrity to handle any conflicts that occur during<br />

merging. Select one of the following from the list:<br />

Confirm causes Source Integrity to prompt you for the action<br />

to be taken.<br />

Cancel causes Source Integrity to cancel the merge operation<br />

when a conflict occurs.<br />

Mark For Later Merge causes Source Integrity to exit the<br />

merge operation and mark the working file with an<br />

unresolved merge icon.<br />

Launch Tool causes Source Integrity to launch the MKS<br />

Visual Merge tool.<br />

349


Chapter 10: Branching and Merging Revisions<br />

Automatic<br />

Merging on<br />

Check Out<br />

350<br />

Highlight Output File causes Source Integrity to<br />

<strong>com</strong>plete the merge automatically and highlight the output<br />

file where any conflicts occurred.<br />

Error causes Source Integrity to display an error message<br />

prompt.<br />

6 Under Change Package, select a change package to associate with the<br />

merged file from the Change Package list.<br />

Click Create to create a new change package for the file.<br />

NOTE<br />

The Change Package options only appear if the Integrity Manager integration<br />

is enabled.<br />

7 To merge the revision, click OK. To merge revisions of more than one<br />

member, click OK to All.<br />

Source Integrity merges all the changes to the working file on the<br />

branch (from the point of branching up to the point of check in) into<br />

the member revision for the project.<br />

The Automatic Merging on Check Out option allows you to merge a<br />

member revision, if it is modified, with your working file upon check out.<br />

This option allows you to have the most <strong>com</strong>plete working file available.<br />

For more details on merging, see “Merging Revisions” on page 353.<br />

To merge revisions automatically on check out in the graphical user<br />

interface<br />

1 With a Sandbox view open, select one or more members to check out.<br />

2 Do one of the following:<br />

Select Member > Check Out.<br />

Click .<br />

The Check Out dialog box is displayed.<br />

u s e r g u i d e


Merging Branched Revisions<br />

3 Under Options, click the Advanced tab, then click the Merge Working<br />

File if Changed check box.<br />

4 To check out a single selected member, click OK. To check out all<br />

selected members, click OK to All.<br />

If you have made changes to your working file (without a lock), and<br />

then attempt to check out the member, the Confirm Working File<br />

Update dialog box is displayed. If you want to retain your changes in<br />

the working file, click Yes (Yes to All for multiple members). If you do<br />

not want to retain your changes in the working file, click No (No to All<br />

for multiple members).<br />

Depending on the preferences you have set for the check out<br />

<strong>com</strong>mand (see “Command Preferences” on page 48), Source Integrity<br />

takes one of the following actions when a conflict occurs:<br />

Source Integrity asks you to confirm the action to be taken.<br />

Source Integrity cancels the operation.<br />

351


Chapter 10: Branching and Merging Revisions<br />

Automatic<br />

Merging on<br />

Resync<br />

352<br />

Source Integrity exits the merge operation and marks the working<br />

file with an unresolved merge icon. For information on resolving<br />

merges, see “Resolving Merges” on page 367.<br />

Source Integrity automatically launches the MKS Visual Merge<br />

tool. For information on the MKS Visual Merge tool, see<br />

“Working With MKS Visual Merge” on page 361.<br />

Any changes to the working file are merged and the member is<br />

checked out for editing, indicated by a lock icon, who locked the<br />

revision, and when it was locked.<br />

The Automatic Merging on Resync option allows you to merge a member<br />

revision, if it is modified, with your working file upon resyncing. This<br />

option provides you with the most <strong>com</strong>plete working file available. For<br />

more details on merging, see “Merging Revisions” on page 353. For more<br />

information on resyncing members, see “Resyncing Members” on<br />

page 197.<br />

To merge revisions automatically on resynchronization in the<br />

graphical user interface<br />

1 With a Sandbox view open, select one or more members that contain<br />

member deltas that denote that both the working file is modified and a<br />

new member revision available.<br />

u s e r g u i d e


Merging Revisions<br />

2 Do one of the following:<br />

Select Member > Resynchronize.<br />

Click .<br />

The Confirm Working File Merge dialog appears.<br />

Merging Revisions<br />

3 To merge and resynchronize the member, click Yes (for multiple<br />

members, click Yes to All). To cancel the merging and resynchronizing<br />

the member, click No (for multiple members, click No to All).<br />

Depending on the preferences you have set for the resynchronize<br />

<strong>com</strong>mand (see “Command Preferences” on page 48), Source Integrity<br />

takes one of the following actions when a conflict occurs:<br />

Source Integrity asks you to confirm the action to be taken.<br />

Source Integrity cancels the operation.<br />

Source Integrity exits the merge operation and marks the working<br />

file with an unresolved merge icon. For information on resolving<br />

merges, see “Resolving Merges” on page 367.<br />

Source Integrity automatically launches the MKS Visual Merge<br />

tool. For information on the MKS Visual Merge tool, see<br />

“Working With MKS Visual Merge” on page 361.<br />

The selected member is updated and merged.<br />

Source Integrity offers a number of different methods to merge revisions.<br />

This section describes the methods of merging revisions automatically or<br />

by using the MKS Visual Difference and MKS Visual Merge tools. These<br />

tools are available through the graphical user interface only, but can be<br />

launched from the <strong>com</strong>mand line interface. Command line interface<br />

procedures are also included in this section.<br />

For more information on MKS Visual Difference, see “MKS Visual<br />

Difference Interface” on page 100.<br />

353


Chapter 10: Branching and Merging Revisions<br />

Merging<br />

Revisions<br />

Automatically<br />

354<br />

For more information on MKS Visual Merge, see “MKS Visual Merge<br />

Interface” on page 107.<br />

For more information on the <strong>com</strong>mand line interface, see “Command Line<br />

Interface” on page 98.<br />

IMPORTANT<br />

Members must be checked out before you can merge them.<br />

If you do not want to use MKS Visual Difference or MKS Visual Merge to<br />

merge revisions in the graphical user interface, you can merge revisions<br />

automatically.<br />

To merge revisions automatically in the graphical user interface<br />

1 From a Sandbox or Member History view, select the revisions you<br />

want to merge.<br />

2 Do one of the following:<br />

From the Sandbox view, select Member > Diff/Merge > Merge.<br />

From the Member History view, select History > Merge.<br />

The Merge dialog box is displayed.<br />

3 Specify the revisions you want to merge. You can specify a revision by<br />

name from the Symbolic list, specify a particular revision from the<br />

Revision list, or specify a revision by label from the Label list.<br />

u s e r g u i d e


4 Click OK to continue.<br />

Merging Revisions<br />

The Merge dialog box is displayed (if your preferences are set to<br />

confirm the action to be taken, see “Command Preferences” on<br />

page 48)<br />

5 Select Automatically and click OK.<br />

The revisions are merged.<br />

If Source Integrity encounters a conflict, depending on your<br />

preferences (see “Command Preferences” on page 48), the Conflict<br />

resolution dialog box is displayed.<br />

The merge operation may be canceled, the MKS Visual Merge tool<br />

may be launched, the output file may be highlighted, or the revisions<br />

may be marked for merging later.<br />

Select an option, then Click OK. Source Integrity provides a message<br />

indicating why the merge was canceled.<br />

6 Check in the merged revision.<br />

355


Chapter 10: Branching and Merging Revisions<br />

Working With<br />

MKS Visual<br />

Difference<br />

356<br />

The MKS Visual Difference tool is a graphical application that allows you<br />

to <strong>com</strong>pare revisions. It offers two-way differencing of revisions where<br />

differences are highlighted for you. MKS Visual Difference operates in two<br />

modes, Difference mode and Merge mode. You must be in Merge mode to<br />

merge revisions in MKS Visual Difference.<br />

Merging Two Revisions<br />

You can use MKS Visual Difference to merge differences between two<br />

revisions selected from a member history or the member revision and<br />

working file. The graphical user interface and <strong>com</strong>mand line interface<br />

allow you to merge differences between two revisions.<br />

To merge two revisions in the graphical user interface<br />

1 Compare two revisions whose differences you want to merge, as<br />

described in “Comparing Revisions” on page 331.<br />

2 In Visual Difference, do one of the following:<br />

Select File > Merge.<br />

Click .<br />

The Reassign Merge Roles dialog box is displayed.<br />

3 Specify which of the selected revisions you want as the Merge From<br />

revision and the Merge To revision by selecting it from the list.<br />

4 Click OK to continue to Merge mode.<br />

MKS Visual Difference switches to the Merge mode split layout. For<br />

information on the MKS Visual Difference layouts, see “View Panes”<br />

on page 103.<br />

u s e r g u i d e


5 Complete the required changes by doing one of the following:<br />

Merging Blocks (see “Merging Blocks” on page 358)<br />

Merging Revisions<br />

Editing Merge Results (see “Editing Merge Results” on page 363)<br />

6 To save the Merge Result select File > Save As (or File > Save if you<br />

have already specified a file name for the merge result).<br />

The Save merge result dialog box is displayed.<br />

357


Chapter 10: Branching and Merging Revisions<br />

358<br />

7 Enter the file name you want to save your merge result as. By default,<br />

Source Integrity selects the file name corresponding to the member<br />

name.<br />

8 Click Save to save the Merge Result.<br />

The Merge Result is saved.<br />

Merging Blocks<br />

Difference blocks are highlighted within each revision and may be<br />

insertions, deletions, or changes. You can select the blocks you want to<br />

merge by this method.<br />

The merging by blocks functions are accessible from the Edit menu and the<br />

shortcut menu. The following outlines the operations you can use:<br />

Merge Block replaces a block in the Merge Result. The block you select<br />

to merge is inserted, replacing the corresponding block in the Merge<br />

Result.<br />

Merge Block Above inserts the selected block above the adjacent block<br />

in the merge result file.<br />

Merge Block Below inserts the selected block below the adjacent block<br />

in the merge result file.<br />

You can also perform these operations in the following ways:<br />

Double click a block in the Merge From or Merge To panes to replace<br />

the adjacent block in the Merge Result.<br />

Drag blocks from the Merge From and Merge To panes to the Merge<br />

Result pane.<br />

You must save the merge result file to <strong>com</strong>plete the merging operation. For<br />

information on saving merge results, see “Saving Merge Results” on<br />

page 360.<br />

u s e r g u i d e


Editing Merge Results<br />

Merging Revisions<br />

Once you are working in Merge mode in MKS Visual Difference you can<br />

directly edit the merge result if necessary.<br />

In MKS Visual Difference you can cut, copy, and paste text in the merge<br />

result. MKS Visual Difference highlights the edited text and displays the<br />

edit icon ( ) next to the line number. You can access editing functions in<br />

the following ways:<br />

From the Edit menu, select Cut, Copy, Paste, or Select All.<br />

From the toolbar, click the Cut, Copy, or Paste buttons.<br />

From the shortcut menu, select Cut, Copy, Paste, or Select All.<br />

Use the following shortcut keys:<br />

Cut = CTRL+X<br />

Copy = CTRL+C<br />

Paste = CTRL+V<br />

Select All = CTRL+A<br />

You can also add and delete text by selecting a line within the merge result<br />

and type or delete as required.<br />

Reverting Merge Results<br />

If you have made changes to the merge result file that you want to discard,<br />

you can revert the merge result file to its last saved state or revert a<br />

particular block.<br />

To revert merge results in the graphical user interface<br />

1 Do one of the following:<br />

Select Edit > Revert Merge Result File.<br />

Click .<br />

The merge result file is reverted to its last saved state.<br />

359


Chapter 10: Branching and Merging Revisions<br />

360<br />

To revert merge results by block in the graphical user interface<br />

1 Select the block you want to revert in the merge result file.<br />

2 Select Edit > Revert Block.<br />

The block is replaced with the adjacent block in the Merge To.<br />

Saving Merge Results<br />

Once you have edited or merged blocks into the merge result file, you must<br />

save the file. You can save the file as the member and check it in to<br />

continue development or you can choose a file name of your choice. If you<br />

do not save the merge result file as the member, Source Integrity does not<br />

recognize any changes to the member.<br />

To save merge results in the graphical user interface<br />

1 Select File > Save As.<br />

The Save merge result dialog box is displayed.<br />

2 Enter the file name you want to save your merge result as. By default,<br />

if the working file is involved in the <strong>com</strong>parison, Source Integrity<br />

selects the file name corresponding to the member name.<br />

3 Click Save to <strong>com</strong>plete the operation.<br />

The merge result file is saved.<br />

NOTE<br />

If you save the merge result to your working file, MKS Visual Difference<br />

automatically recalculates the differences when it is saved.<br />

u s e r g u i d e


Working With<br />

MKS Visual<br />

Merge<br />

Merging Revisions<br />

Once you have selected a file name and saved the merge result file, as you<br />

continue to make changes you can do one of the following to save it:<br />

Select File > Save.<br />

Click .<br />

The MKS Visual Merge tool is a graphical application that allows you to<br />

<strong>com</strong>pare, edit and merge revisions. It offers three-way differencing of<br />

revisions where conflicts are highlighted for you. Open MKS Visual Merge<br />

by selecting Manually from the Merge dialog box (see “Merging Revisions<br />

Automatically” on page 354).<br />

Viewing Conflicts<br />

Conflicts, if they exist, are highlighted and appear with a red flag next to<br />

the line number in the view panes. Conflicts are also listed in the Difference<br />

Blocks list. You can decide which of the conflicting blocks you want to<br />

incorporate into the merge result, and use the merging and editing utilities<br />

to revise the merge result.<br />

You can use the Next Conflict Block ( ) and Previous Conflict Block<br />

( ) buttons to navigate through the revisions and view all the conflicts.<br />

361


Chapter 10: Branching and Merging Revisions<br />

362<br />

Merging by Nonconflicting Blocks<br />

Merging by nonconflicting blocks allows you to merge without including<br />

any areas of conflict. MKS Visual Merge incorporates all difference blocks<br />

(except conflict blocks) from the Merge From revision into the merge result<br />

file.<br />

To merge revisions by nonconflicting blocks in MKS Visual Merge<br />

1 Do one of the following:<br />

Select Edit > Merge All Nonconflicting Blocks.<br />

Click .<br />

All nonconflicting difference blocks are applied to the merge result<br />

file.<br />

u s e r g u i d e


Merging Revisions<br />

2 Save the merge result file to retain the changes as described in “Saving<br />

Merge Results” on page 364.<br />

Merging by Blocks<br />

If you do not want to merge entire revisions you can merge by difference<br />

blocks or lines. Difference blocks are highlighted within each revision and<br />

may be insertions, deletions, changes, or conflicts.<br />

The merging by blocks functions are accessible from the Edit menu and the<br />

shortcut menu. The following outlines the <strong>com</strong>mands you can use:<br />

Merge Block inserts the selected block or line into the merge result file<br />

in the same location as it appears in the revision it originated from.<br />

Merge Block Above inserts the selected block or line above the adjacent<br />

block in the merge result file.<br />

Merge Block Below inserts the selected block or line below the adjacent<br />

block in the merge result file.<br />

In addition to these <strong>com</strong>mands, in MKS Visual Merge you can simply<br />

select a block and double click it or drag it into the merge result file.<br />

You must save the merge result file to <strong>com</strong>plete the merging operation. For<br />

information on saving merge results, see “Saving Merge Results” on<br />

page 364.<br />

Editing Merge Results<br />

While you are working in MKS Visual Merge you can directly edit the<br />

merge result if necessary.<br />

In MKS Visual Merge you can cut, copy, and paste text in the merge result.<br />

MKS Visual Merge highlights the edited text and displays the edit icon ( )<br />

next to the line number. You can access editing functions in the following<br />

ways:<br />

From the Edit menu, select Cut, Copy, Paste, or Select All.<br />

From the toolbar, click the Cut, Copy, or Paste buttons.<br />

From the shortcut menu, select Cut, Copy, Paste, or Select All.<br />

Use the following shortcut keys:<br />

Cut = CTRL+X<br />

Copy = CTRL+C<br />

Paste = CTRL+V<br />

Select All = CTRL+A<br />

363


Chapter 10: Branching and Merging Revisions<br />

364<br />

You can also add and delete text by selecting a line within the merge result<br />

and type or delete as required.<br />

Reverting Merge Results<br />

If you have made changes to the merge result file that you want to discard,<br />

you can revert the merge result file to its original state or revert a particular<br />

block or line.<br />

To revert merge results to the original state in MKS Visual Merge<br />

Do one of the following:<br />

Select Edit > Revert Merge Result File.<br />

Click .<br />

The merge result file is reverted to its last saved state.<br />

To revert merge results by block in MKS Visual Merge<br />

1 Select the block or line you want to revert in the merge result file.<br />

2 Select Edit > Revert Block.<br />

The block or line is removed from the merge result file.<br />

Saving Merge Results<br />

Once you have edited or merged blocks into the merge result file, you must<br />

save the file. You can save the file as the member and check it in to<br />

continue development or you can choose a file name of your choice. If you<br />

do not save the merge result file as the member, Source Integrity does not<br />

recognize any changes to the member.<br />

To save merge results in MKS Visual Merge<br />

1 Select File > Save As.<br />

The Save merge result dialog box is displayed.<br />

u s e r g u i d e


Merging Revisions<br />

2 Enter the file name you want to save your merge result as. By default,<br />

Source Integrity selects the file name corresponding to the member<br />

name.<br />

3 Click Save to <strong>com</strong>plete the operation.<br />

The merge result file is saved.<br />

NOTE<br />

If you save the merge result to your working file, MKS Visual Merge<br />

automatically recalculates the differences when it is saved.<br />

Once you have selected a file name and saved the merge result file, as you<br />

continue to make changes you can do one of the following to save it:<br />

Select File > Save.<br />

Click .<br />

Click the Save button on the status bar.<br />

Suspending Merges<br />

Once you have initiated a merge, you can suspend it and then resolve it at<br />

a later time. Suspending merges allows you to mark the working file to<br />

indicate that merging is required. This provides time you may need to<br />

investigate conflicts or difference blocks before finishing the merge.<br />

You can only suspend a merge operation if there are changes since the last<br />

time you saved the merge result.<br />

365


Chapter 10: Branching and Merging Revisions<br />

Merging in the<br />

Command Line<br />

Interface<br />

366<br />

To suspend merges in MKS Visual Merge<br />

1 In MKS Visual Merge, click the Close button on the status bar.<br />

The Mark for Later Merge dialog box is displayed.<br />

2 Click Yes to mark the revision for merging at a later time.<br />

In your Sandbox view the member is marked with an unresolved<br />

merge symbol ( ) and in the member information pane<br />

Source Integrity indicates that resolution is required.<br />

To resolve a suspended merge, see “Resolving Merges” on page 367.<br />

In the <strong>com</strong>mand line interface, you can merge two revisions using the si<br />

merge <strong>com</strong>mand. Merging in the <strong>com</strong>mand line interface operates as the<br />

graphical user interface where two revisions and a working file are<br />

<strong>com</strong>pared and merged.<br />

You can also launch the MKS Visual Merge and MKS Visual Difference<br />

tools from the <strong>com</strong>mand line interface by using the -g option with the<br />

merge <strong>com</strong>mand.<br />

To merge two revisions in the <strong>com</strong>mand line interface<br />

Use the si merge <strong>com</strong>mand:<br />

si merge -r value -r value member --sandbox=value<br />

where<br />

-r value -r value specifies the revisions you want to merge, for<br />

example, -r1.1 -r1.2.<br />

member specifies the member whose revisions you want to merge, for<br />

example, demoapp.c.<br />

--sandbox=value specifies the sandbox containing the member whose<br />

revisions you want to merge, for example, c:/sandboxdemo/<br />

project.pj.<br />

Depending on the preferences you have set for the Merge <strong>com</strong>mand (see<br />

“Command Preferences” on page 48), Source Integrity may ask one or both<br />

of the following questions:<br />

u s e r g u i d e


Resolving Merges<br />

How would you like to perform the merge?<br />

Select an option from the list provided.<br />

How would you like to handle conflicts?<br />

Select an option from the list provided.<br />

Resolving Merges<br />

Source Integrity merges the differences between the two revisions and<br />

saves them to the member’s working file.<br />

Check in the merged revision.<br />

For a <strong>com</strong>plete list of options for the si merge <strong>com</strong>mand, see the<br />

Source Integrity Enterprise Edition CLI Reference <strong>Guide</strong>.<br />

During the process of merging revisions you may decide to suspend the<br />

operation and mark the working files for merging at a later time. Working<br />

files that are marked for merging appear with an unresolved merge<br />

symbol ( ) in the delta column in the Sandbox view.<br />

If you have begun the merging process but decided to use the Mark for<br />

Later Merge option to postpone the <strong>com</strong>pletion of the merge process, when<br />

you are ready to merge the selected revisions you can use the Resolve<br />

Merge <strong>com</strong>mand to do so.<br />

To resolve a merge in the graphical user interface<br />

1 In a Sandbox view, select a member with an unresolved merge<br />

symbol.<br />

2 Select Member > Diff/Merge > Resolve Merge.<br />

The Merge dialog box is displayed (if your preferences are set to<br />

confirm the action to be taken, see “Command Preferences” on<br />

page 48).<br />

367


Chapter 10: Branching and Merging Revisions<br />

368<br />

3 Select either of the following options for how you want to <strong>com</strong>plete<br />

the merge, then click OK:<br />

Automatically <strong>com</strong>pletes the merge process without launching the<br />

MKS Visual Merge tool. A delta, visible in the Sandbox view,<br />

appears indicating that the merge is <strong>com</strong>plete.<br />

If Source Integrity encounters a conflict, depending on your<br />

preferences (see “Command Preferences” on page 48), the<br />

operation may be canceled, the revisions may be marked for<br />

merging later, the output file may be highlighted, or the MKS<br />

Visual Merge tool may be launched.<br />

Manually allows you to <strong>com</strong>plete the merge operation through the<br />

MKS Visual Merge tool. The MKS Visual Merge tool appears in a<br />

new window displaying the revisions you want to merge. In MKS<br />

Visual Merge perform merging and editing as required. Complete<br />

steps 4 through 7.<br />

For information on using the MKS Visual Merge tool, see “MKS Visual<br />

Merge Interface” on page 107, and “Working With MKS Visual<br />

Merge” on page 361.<br />

4 In the MKS Visual Merge window, click File > Save As.<br />

The Save merge result dialog box is displayed.<br />

u s e r g u i d e


Resolving Merges<br />

5 Enter the file name you want to save your merge result as. By default,<br />

Source Integrity selects the file name corresponding to the Merge To<br />

revision.<br />

6 Click Save to merge the revisions.<br />

The revisions are merged.<br />

7 To close MKS Visual Merge, click Close.<br />

In your Sandbox view, a delta appears indicating that the merge is<br />

<strong>com</strong>plete.<br />

369


Chapter 10: Branching and Merging Revisions<br />

370<br />

u s e r g u i d e


The Integrity Manager<br />

Integration<br />

KEY TERMS: Integrity Manager, change package, issue, change package ID<br />

11<br />

Integrity Manager extends the concept of defect tracking to include<br />

support for managing <strong>com</strong>ponents, tasks, and a <strong>com</strong>plex workflow. This is<br />

particularly important when your organization has implemented a<br />

Software Configuration Management (SCM) process for the proposal,<br />

review, and approval of all software changes. Source Integrity supports the<br />

managing of <strong>com</strong>ponents and tasks in change packages. For more<br />

information on change packages, see “Using Change Packages and<br />

Reviews” on page 213.<br />

As part of the <strong>com</strong>plete MKS Integrity Solution, Integrity Manager allows<br />

you to associate issues with Source Integrity change packages. Your<br />

administrator configures Source Integrity to allow change packages,<br />

enables the Integrity Manager integration, and then defines the issue types<br />

that can use change packages.<br />

This chapter discusses the following:<br />

“Integrating With Integrity Manager” on page 372<br />

“How the Integration Works” on page 372<br />

“Creating a Change Package for an Issue” on page 375<br />

“Adding Entries to an Issue’s Change Package” on page 376<br />

“Viewing a Change Package’s Issue” on page 376<br />

“Finding Change Packages Using a Query” on page 378<br />

371


Chapter 11: The Integrity Manager Integration<br />

Integrating With Integrity Manager<br />

How the Integration Works<br />

372<br />

As part of the integration with Integrity Manager, you can associate<br />

change packages with Integrity Manager issues. Issues provide more<br />

detailed information on the issue that needs to be addressed, and control<br />

the workflow of development and testing, known as the software<br />

development cycle.<br />

Issues track changes in the software development cycle. For example, your<br />

administrator can configure Integrity Manager in a way that a problem<br />

issue may be associated with a solution issue for easy tracking and<br />

monitoring of both issues. Each issue has an audit trail, which may be used<br />

to evaluate internal processes for the effectiveness of the problem<br />

resolution process. In effect, issues track all aspects of any engineering<br />

endeavor.<br />

Integrating with Integrity Manager allows you to specify groups of<br />

developers who are affected by an issue, who can then be notified using email<br />

notification rules.<br />

Administrators define what issue types can use change packages and<br />

configure Source Integrity to integrate with Integrity Manager.<br />

Change packages can be grouped together using an issue to create a larger<br />

logical grouping of changes. Each change package in an issue can be<br />

created by a different user for team development of an issue.<br />

For detailed information on Integrity Manager operations, see the<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

Before reading about how the integration works, you should note the<br />

following rules that apply when using issues and change packages:<br />

Multiple change packages can be created for a single issue. If the<br />

resolution of an issue requires more than one set of changes, a new<br />

change package can be created for each new set of changes. This also<br />

allows multiple users to work on the same issue.<br />

If an issue type does not allow open change packages, you cannot<br />

create and associate new change packages with that issue. Check with<br />

your administrator to find out which issue types allow open change<br />

packages.<br />

u s e r g u i d e


How the Integration Works<br />

Only issue states specified by your administrator allow open change<br />

packages. When attempting to advance to a state that does not allow<br />

open change packages, Integrity Manager instructs you to first close<br />

the issue’s change package.<br />

Typically, an issue cannot advance to the final state in an<br />

Integrity Manager workflow until all change packages are closed. See<br />

your administrator for more information.<br />

<strong>User</strong>s can view change package information from both<br />

Integrity Manager and Source Integrity, reducing the need to work in<br />

both applications to use the integration features.<br />

When the Integrity Manager integration is enabled, the change<br />

package ID is a colon-separated identifier of the form:<br />

:<br />

NOTE<br />

When working with shared subprojects, Source Integrity uses the actual name<br />

of the subproject in the file system rather than its relative name in the project<br />

hierarchy. Therefore, the change package entries for a shared subproject use<br />

the actual file system name of the subproject. This enhances the portability of<br />

change packages across different projects.<br />

The following is an example of the re<strong>com</strong>mended way to use change<br />

packages with Integrity Manager to control development:<br />

1 In Integrity Manager, submit an issue that needs to be addressed. For<br />

more information, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

2 In Source Integrity, open the Manage Change Packages window (see<br />

“Managing Change Packages” on page 220). This is your control<br />

center for managing your grouping of tasks.<br />

3 Create a change package (see “Creating a Change Package” on<br />

page 217) to use for the group of tasks you need to perform to address<br />

an issue. The change package acts as a container, grouping together<br />

the specific members (files) that need to be changed to address the<br />

issue. When creating the change package, associate it with the issue<br />

you created in Integrity Manager.<br />

Source Integrity assigns the change package an ID and leaves the<br />

change package in the Open state.<br />

You can see the change package listed in the Manage Change<br />

Packages window.<br />

373


Chapter 11: The Integrity Manager Integration<br />

374<br />

4 View the change package in the Change Package view (see “Viewing<br />

Change Package Details and Entries” on page 226). All operations you<br />

do to address the issue appear in this window.<br />

5 As part of your development process, identify the members that are<br />

affected by the issue. Add the members to the change package (see<br />

“Operations That Add Entries to a Change Package” on page 215).<br />

NOTE<br />

You can only see change package lock entries in a change package from<br />

Integrity Manager if lock tracking is enabled. For more information on lock<br />

tracking, see your administrator.<br />

The operations are listed in the Change Package view.<br />

6 When all of the development to address the issue is <strong>com</strong>pleted, submit<br />

the change Package (see “Submitting Change Packages” on page 238).<br />

All deferred operations are submitted.<br />

Any locked members are converted to deferred check in operations,<br />

then checked in.<br />

Although you can submit operations individually, or check in a<br />

member without deferring it, submitting all of your operations at one<br />

time ensures that no operations miss the development build.<br />

If reviews are mandatory, the review begins here, and the following<br />

numbered steps are not <strong>com</strong>pleted. For more information, see “CP<br />

Review Workflow” on page 242.<br />

7 Close the change package to signify that the work to address the issue<br />

is <strong>com</strong>pleted. The change package disappears from the Manage<br />

Change Packages window.<br />

To find the change package and view its entries, see “Finding Change<br />

Packages” on page 222 or “Finding Change Packages Using a Query”<br />

on page 378.<br />

8 In Integrity Manager, advance the issue through the workflow. At this<br />

point, the verification phase begins. If it is determined that more work<br />

needs to be performed to address the issue, the user moves the issue to<br />

an earlier state in the workflow, then you (or another developer)<br />

create an additional change package. The process is repeated until the<br />

issue is sufficiently addressed.<br />

u s e r g u i d e


Creating a Change Package for an Issue<br />

Creating a Change Package for an Issue<br />

You can create a change package and associate it with an issue from the<br />

menu bar, when checking out, checking in, adding, dropping, locking, or<br />

renaming a member.<br />

To create a change package for an issue in the graphical user<br />

interface<br />

1 Create a change package in one of the following ways:<br />

With a Project, Sandbox, Manage Change Packages, or Member<br />

History view open, select Change Package > Create.<br />

Create a change package when performing member operations<br />

(see “Operations That Add Entries to a Change Package” on<br />

page 215).<br />

In the Change Package portion of the panel, Click Create.<br />

Create performs a query for all issues assigned to you that can be<br />

associated with a change package. The qualifying criteria are set by the<br />

administrator as part of the workflow in Integrity Manager.<br />

The Create Change Package dialog box is displayed.<br />

2 From the Choose Issue list, select the issue you want to associate with<br />

the change package.<br />

Integrity Manager supplies the issues for the Choose Issue list. This<br />

list displays issues assigned to you that are in a state that allows open<br />

change packages. For more information on issues, see the<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

375


Chapter 11: The Integrity Manager Integration<br />

376<br />

Depending on how your administrator has configured<br />

Integrity Manager, you may be able to select , and the change<br />

package appears on an issue of “SI Change Package” type in Integrity<br />

Manager.<br />

3 In the Summary field, type a summary of the change package.<br />

By default, the issue summary appears in the change package<br />

Summary field.<br />

4 In the Description field, if necessary, type a detailed description of the<br />

change package.<br />

5 Click OK.<br />

Adding Entries to an Issue’s<br />

Change Package<br />

The change package is created. To view the change package, see<br />

“Viewing Change Package Details and Entries” on page 226.<br />

Once a change package is created and associated with an issue, you can<br />

add entries to that change package when performing member operations<br />

(see “Operations That Add Entries to a Change Package” on page 215).<br />

Refer to the Change Package portion of the panel.<br />

From the change package list, select a change package. The list presents the<br />

Change package ID then the summary, for example, 13:1 Failed<br />

Install.<br />

After the operation is <strong>com</strong>pleted, the entry is added to the change package.<br />

The change package’s ID appears in one of the change package ID columns<br />

of the Project or Sandbox view.<br />

Viewing a Change Package’s Issue<br />

As part of the Integrity Manager integration, you can launch<br />

Integrity Manager from Source Integrity to view issues that are associated<br />

with change packages.<br />

u s e r g u i d e


Viewing a Change Package’s Issue<br />

To view a change package’s issue in the graphical user interface<br />

1 Do one of the following:<br />

From the Manage Change Packages window (see “Managing<br />

Change Packages” on page 220), select a change package.<br />

Open the Change Package view (see “Viewing Change Package<br />

Details and Entries” on page 226).<br />

With the Annotate Revision view open (see “Viewing an<br />

Annotated Revision” on page 316), select an annotation block.<br />

2 Do one of the following:<br />

Select Change Package > View Issue.<br />

Click .<br />

The Integrity Manager graphical user interface opens, displaying the<br />

associated issue. For more information on Integrity Manager, see the<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

To view a change package’s issue from the Project or Sandbox view<br />

in the graphical user interface<br />

With a Project or Sandbox view open, select a member that has a change<br />

package associated with it.<br />

Select Change Package, then one of the following:<br />

Working displays the issue for the change package associated with a<br />

deferred or a lock operation performed by the current user from the<br />

current sandbox.<br />

Member displays the issue for the change package associated the<br />

operation that set the member revision.<br />

Creation displays the issue for the change package that created the<br />

revision that is currently the member revision. This revision may be<br />

different from the Member CPID if an import, add member from<br />

archive, or set member revision operation was used.<br />

Locker displays the issue for the change package associated with the<br />

lock on the member revision.<br />

Pending displays the issue for the change package associated with a<br />

pending operation.<br />

The Integrity Manager graphical user interface opens, displaying the<br />

associated issue. For more information on Integrity Manager, see the<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

377


Chapter 11: The Integrity Manager Integration<br />

378<br />

To view a change package’s issue in the Web interface<br />

1 In a Project view, select a member that has a change package<br />

associated with it.<br />

2 Select Change package > View Issue.<br />

The issue is displayed in the Integrity Manager Web interface.<br />

Finding Change Packages Using a Query<br />

You can create issue queries in Integrity Manager, and then use them in<br />

Source Integrity to find change packages. This is useful for change<br />

packages that are closed, because they no longer appear in the Manage<br />

Change Packages window.<br />

To find a change package using an Integrity Manager query in the<br />

graphical user interface<br />

1 Select Tools > Find > Change Packages.<br />

The Find Change Packages dialog box is displayed.<br />

2 Click the By Query tab.<br />

The By Query panel is displayed.<br />

u s e r g u i d e


Finding Change Packages Using a Query<br />

By Query uses an existing Integrity Manager query to find and display<br />

the change packages.<br />

For information on searching for change packages using the By Filter<br />

or By ID panel, see “Finding Change Packages” on page 222.<br />

3 Select the desired query from the list. For more information on<br />

creating queries, see the Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

4 Click OK.<br />

The results are displayed in the Filter Change Packages window. The<br />

Filtered Change Packages window displays change packages in the<br />

same way as the Manage Change Packages window does. For more<br />

information, see “Managing Change Packages” on page 220.<br />

To update the search results with current data, select View > Refresh.<br />

To create a new search from the Change Packages view, select View ><br />

Filter.<br />

379


Chapter 11: The Integrity Manager Integration<br />

380<br />

u s e r g u i d e


Advanced Change Package<br />

Operations<br />

12<br />

KEY TERMS: issue, change package entries, change package, apply change<br />

package, resynchronize change package, backfill list, resynchronize by<br />

change package, resolution change package<br />

Apply Change Package (Apply CP) and Resynchronize Change Package<br />

(Resync CP) represent two of the most powerful features of the<br />

Integrity Solution. In an environment where development is constantly<br />

evolving to include bug fixes or new features, Apply CP and Resync CP<br />

allow you to identify and incorporate only the specific bug fixes or content<br />

that you want to include in a new project. The functionality allows you to<br />

move specific changes—whether from the master project to a variant, or<br />

from a variant to the master project.<br />

Apply CP and Resync CP rely on the use of change packages to track<br />

individual changes that modify project content or create new content.<br />

The chapter includes the following topics:<br />

“Change Package Feature Overview” on page 382<br />

“Using the Apply CP Command” on page 387<br />

“Using the Resync CP Command” on page 406<br />

“Working With a Resolution CP” on page 428<br />

“Using the Resync By CP Command” on page 436<br />

381


Chapter 12: Advanced Change Package Operations<br />

Change Package Feature Overview<br />

Change<br />

Package<br />

Methodology<br />

382<br />

A change package is a group of changes made by a single user which can be<br />

considered a logical unit of work. Only the creator of a change package<br />

may add entries to that change package. Change packages entries take the<br />

form of operations, both deferred and <strong>com</strong>mitted. Apply CP and Resync<br />

CP only apply to <strong>com</strong>mitted change packages entries.<br />

Both Apply CP and Resync CP rely on the use of change packages to track<br />

individual changes that modify project content or create new content. If a<br />

development team is using change packages consistently, Source Integrity<br />

can isolate all changes related to a specific issue because this information is<br />

recorded as part of the change package. Once the dependencies are<br />

calculated, the operation <strong>com</strong>pletes and the change packages are applied in<br />

the project.<br />

If a development team does not use the change package methodology,<br />

isolating specific content be<strong>com</strong>es a <strong>com</strong>plex, manual task. In a large code<br />

project, this could mean searching hundreds of files to determine which<br />

ones are related to a specific issue. To build the project, it would then be<br />

necessary to add and drop files, update file revisions, merge around<br />

unwanted revisions, merge in required changes, and merge out any<br />

unwanted changes.<br />

Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated<br />

process be<strong>com</strong>es largely automated. In Source Integrity, the Apply CP<br />

operation adds and drops files, and updates file revisions as required to<br />

create the desired change. If merging is required, you can use the Resync<br />

CP <strong>com</strong>mand. Resync CP allows you to either merge in desired changes or<br />

merge around unwanted changes.<br />

Apply CP and Resync CP are most useful for code and other text files<br />

where differencing can be performed. The operations are not<br />

re<strong>com</strong>mended for binary files because of the difficulties encountered in<br />

differencing and merging binaries.<br />

When used across a development project, Apply CP and Resync CP are<br />

powerful tools for managing changes and new content. However, the<br />

effectiveness of the functionality ultimately relies on the following factors:<br />

accurate and consistent use of change packages for logging issues<br />

associating related changes into a single change package that<br />

ultimately addresses the issue in question<br />

Because issues, and their associated change packages, follow a workflow<br />

progression, it is critical that each member of the development team record<br />

and track all changes as they are made, from the initial phase to the<br />

u s e r g u i d e


Change<br />

Package<br />

Commands<br />

Change Package Feature Overview<br />

<strong>com</strong>pletion phase in which the associated problem is addressed. All<br />

changes relating to a given issue must then be associated with the correct<br />

change package. Once the problem is addressed, or the feature added, that<br />

change package can be closed.<br />

It is equally important that issues are clearly delineated so that each change<br />

package addresses only one problem area or feature. Certainly, one<br />

problem area or feature may require many files to address it, but if you<br />

create a change package that is too wide in scope, it be<strong>com</strong>es difficult to<br />

extract specific changes later on.<br />

With accurate and consistent logging, Source Integrity can clearly identify<br />

the specific member revisions (or files) that address the identified problem<br />

or <strong>com</strong>plete the required feature. Without this type of tracking, applying a<br />

change package may not have the desired results and manual reviews may<br />

be<strong>com</strong>e necessary.<br />

Consider the following scenario at abcBusiness: A major customer<br />

purchased version 2.0 of abcBusiness’ Aurora software. The customer now<br />

wants a new feature—data <strong>com</strong>pression—that they can use with Aurora<br />

2.0. The development team at abcBusiness has already <strong>com</strong>pleted work on<br />

a data <strong>com</strong>pression feature, but the feature has been engineered only as<br />

part of the up<strong>com</strong>ing Aurora 3.0 release.<br />

To address the customer’s needs, abcBusiness would normally have to<br />

assign a separate development team to create the new feature for Aurora<br />

2.0. But how can abcBusiness take advantage of the work already<br />

<strong>com</strong>pleted on the data <strong>com</strong>pression feature and provide it to the customer?<br />

If the development team has been using change packages, they can isolate<br />

the files that relate to the new data <strong>com</strong>pression feature. However, without<br />

the functionality of Apply CP and Resync CP, the buildmaster at<br />

abcBusiness would have to search the required change package(s)<br />

manually and individually review all of the associated files to isolate the<br />

changes related to the feature. The buildmaster would then have to add<br />

and drop files manually, update file revisions, merge around unwanted<br />

revisions, merge in required changes, and merge out any unwanted<br />

changes.<br />

Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated<br />

process be<strong>com</strong>es largely automated. In Source Integrity, the Apply CP<br />

operation works directly in the project to add and drop files, and update<br />

file revisions as required to create the desired change. Source Integrity<br />

presents you with a list—the backfill list—including all change packages<br />

required to capture the issue. In the Apply CP operation, you must either<br />

383


Chapter 12: Advanced Change Package Operations<br />

384<br />

accept or decline this list—you cannot make selections. If you accept the<br />

list, the Apply CP <strong>com</strong>mand <strong>com</strong>pletes the changes directly in the project.<br />

If you decline the list, the Apply CP <strong>com</strong>mand cannot <strong>com</strong>plete.<br />

If the Apply CP <strong>com</strong>mand fails because merging is required, you can then<br />

run the Resync CP <strong>com</strong>mand. Resync CP works in your sandbox and<br />

allows you to make selections from the backfill list. Source Integrity then<br />

merges around unwanted changes and uses differencing to merge files.<br />

Consider once again, the abcBusiness development team. Because the team<br />

has been tracking all of their changes through the use of change packages,<br />

they can target the main trunk of development and use Apply CP and<br />

Resync CP functionality to extract only those files that relate to the new<br />

data <strong>com</strong>pression feature. Those specific change packages can then be<br />

applied to a variant project of Aurora 2.0 and testing carried out within a<br />

new project designed specifically for the customer.<br />

The functionality allows you to maximize existing development work,<br />

while being more responsive to both internal and external stakeholders.<br />

Apply CP and Resync CP are especially effective in any environment<br />

where there are large numbers of files to deal with—whether these are<br />

code files for a software project or Web pages for a <strong>com</strong>plex Web site.<br />

CAUTION<br />

The Apply CP operation works directly on the project and cannot be undone.<br />

Exercise caution when working with the Apply CP <strong>com</strong>mand and ensure that<br />

you have checkpointed your project before starting the <strong>com</strong>mand. When using<br />

the Resync CP <strong>com</strong>mand in your sandbox, you should also confirm all changes<br />

before checking in the files.<br />

Apply CP Command<br />

This section provides an example to show how Apply CP can be used in<br />

your environment. In this example, the buildmaster brings a feature from<br />

the main trunk of project development and applies it to an earlier release.<br />

The abcBusiness software <strong>com</strong>pany has released their Aurora software,<br />

version 3.0. When the release was <strong>com</strong>pleted, the project was<br />

checkpointed. The development team is now working on a new set of<br />

features for the next release, 4.0. A new feature for this release is a<br />

timestamp function. All the changes associated with the timestamp<br />

function are recorded in a change package, or set of issues, that isolates the<br />

feature from other features.<br />

Now abcBusiness receives a request from a customer who has Release 3.0<br />

but also needs the new timestamp feature for its global operations. The<br />

code in development for Aurora 4.0 is not stable enough for release and too<br />

u s e r g u i d e


Change Package Feature Overview<br />

many resources would be required to accelerate the release schedule. How<br />

can abcBusiness provide the timestamp feature without affecting the<br />

current release? Because the code for this feature is isolated within a<br />

change package, the Apply CP <strong>com</strong>mand can be used to transfer the<br />

feature to the earlier, stable release.<br />

The buildmaster at abcBusiness would:<br />

Create a variant project off of the checkpoint for version 3.0. This<br />

variant project is isolated from the rest of the development team so<br />

that unwanted changes are not added to the main trunk of the<br />

development path.<br />

Use Apply CP to apply the change package to the variant project. The<br />

change package contains all the files that were changed or added to<br />

produce the timestamp feature. Apply CP is essentially adding the<br />

feature to the variant of Aurora 3.0.<br />

Create an executable of the software.<br />

That executable can then be tested by Quality Assurance and shipped to<br />

the customer.<br />

Resync CP and Resync By CP Commands<br />

This section provides an example to show how Resync CP can be used in<br />

your environment. The example also illustrates how Resync By CP can be<br />

used in a developer’s sandbox.<br />

The development team at abcBusiness is working on the next release,<br />

which contains hundreds of files that span many Source Integrity projects.<br />

Whenever a fix is made, or a feature added, it may require the<br />

manipulation of a single file, or many different files across multiple<br />

projects. A fix or new feature may also include new dependencies within<br />

the source code.<br />

If developers resynchronize only a single file into their sandboxes, their<br />

builds may break because of new dependencies in the code. Such broken<br />

builds cause delays and prevent the team from <strong>com</strong>pleting their work on<br />

time. However, it is possible to avoid this lost time by using the Resync CP<br />

and Resync By CP <strong>com</strong>mands.<br />

Resync CP allows developers to specify a change package and have all<br />

changes associated with that change package resynchronized into their<br />

sandboxes. The <strong>com</strong>mands save development time because they:<br />

automatically search for the required files<br />

385


Chapter 12: Advanced Change Package Operations<br />

Resolving<br />

Conflicts<br />

386<br />

determine what other change packages the selection is dependant on<br />

(this is known as the backfill list) and also resynchronize those change<br />

packages into the sandbox<br />

If the developer is working on a file conflict, Resync CP and Resync By CP<br />

also merge new information into a file. The merge operation ensures that<br />

the sandbox is up-to-date and that no changes are lost.<br />

The Resync CP and Resync By CP <strong>com</strong>mands also allow a developer to<br />

remove a bug fix or feature that is in<strong>com</strong>plete or not working.<br />

The basic process for resolving conflicts is to apply the target change<br />

package using the Apply CP <strong>com</strong>mand. If the Apply CP operation fails<br />

because of a merge conflict, you can do one of the following:<br />

use the Resync CP <strong>com</strong>mand to create a resolution change package. A<br />

resolution change package is a specialized change package that<br />

records all applied change packages, resolved conflicts, checked in<br />

modified files, and conflicts resolved by merging.<br />

use the MKS Visual Merge tool to resolve conflicts and perform<br />

merges. Depending on your preferences, Visual Merge may appear by<br />

default for conflict resolution. For information on using Visual Merge<br />

for conflict resolution, see “Working With MKS Visual Merge” on<br />

page 361. For information on the MKS Visual Merge tool, see “MKS<br />

Visual Merge Interface” on page 107.<br />

The newly created resolution change package is then applied to the project<br />

using the Apply CP <strong>com</strong>mand. The process involves the following key<br />

steps:<br />

Use the Apply CP <strong>com</strong>mand to apply a change package to the main<br />

trunk of development.<br />

If no merges are required and the Apply CP operation succeeds, the<br />

changes are made in the project.<br />

If Apply CP fails due to a required merge, use the Resync CP<br />

<strong>com</strong>mand on the same change package and create a resolution change<br />

package. Resync CP places the required files, locked, in your sandbox.<br />

Verify the merges to ensure they are correct.<br />

In your sandbox, check in the members, making sure to associate them<br />

with the newly created resolution change package.<br />

Close the resolution change package.<br />

u s e r g u i d e


Apply that resolution change package to the project.<br />

Using the Apply CP Command<br />

The Apply CP <strong>com</strong>mand works directly in the project, adding and<br />

dropping files, and updating file revisions as required to apply the<br />

resolution change package and update the project.<br />

It is important to note that while Resync CP can be used to apply a<br />

resolution change package, the results may not always be acceptable. For<br />

example, if your bug fix is in an existing project member, there would<br />

already be an archive for that member in the project. As a result, Resync CP<br />

would add the modified member on a branch. This additional branching<br />

might not be acceptable in your project.<br />

NOTE<br />

Using the Apply CP Command<br />

A helpful practice prior to using Apply CP, is to start with a Resync CP<br />

operation in a sandbox, and then build and test the results, even if no merges<br />

are required. Because the operation may be creating a <strong>com</strong>bination of source<br />

code that has never existed before, this step ensures that the results will build<br />

and work. Once you are certain of the results, you can then use the Apply CP<br />

<strong>com</strong>mand and work directly in the project.<br />

Apply CP relies on the use of change packages to track individual changes<br />

that modify project content or create new content. The Apply CP operation<br />

presents you with a backfill list that includes all of the change packages<br />

required for the identified issue. If you accept the backfill list, the operation<br />

then adds and drops files, and updates file revisions as required to create<br />

the feature, content, or bug fix you are looking for.<br />

How Does Apply CP Work?<br />

The Apply CP operation applies change packages through a revision<br />

process. By applying a change package, you can incorporate only those<br />

changes that you want to include in the project.<br />

The Apply CP operation reads the entries in a change package and updates<br />

the project to the revisions listed in that change package. This function of<br />

the <strong>com</strong>mand is an automated process of the Update Revision <strong>com</strong>mand<br />

(si updaterevision). The Apply CP operation may also require that<br />

files be added or dropped. This function of the <strong>com</strong>mand is an automated<br />

process of the Add Member <strong>com</strong>mand (si add) and the Drop Member<br />

<strong>com</strong>mand (si drop).<br />

387


Chapter 12: Advanced Change Package Operations<br />

Key Apply CP<br />

Concepts<br />

388<br />

When Should I Use the Apply CP Command?<br />

You should use the Apply CP <strong>com</strong>mand when you need to update a<br />

project to include changes listed in a change package. The updating<br />

process updates member revisions, and may also involve adding and<br />

dropping files. The Apply CP <strong>com</strong>mand is most useful for building<br />

software.<br />

Are There Any Limitations When Using Apply CP?<br />

The Apply CP operation adds and drops files, and updates file revisions.<br />

Apply CP only operates on closed change packages and cannot perform<br />

merging. The operation is carried out in relation to the project. If you run<br />

the Apply CP <strong>com</strong>mand from a sandbox, the sandbox acts as a redirector to<br />

the project.<br />

The next four sections describe how the Apply CP <strong>com</strong>mand works and<br />

how you can use it in your development environment. The topics covered<br />

are:<br />

“Key Apply CP Concepts” on page 388<br />

“How Apply CP Works” on page 389<br />

Procedures for the graphical user interface<br />

the Apply CP backfill list, (“Apply CP Backfill List” on page 391)<br />

The following outlines the key concepts associated with the Apply CP<br />

<strong>com</strong>mand:<br />

The Apply CP operation occurs in the project (whereas the Resync CP<br />

operation occurs only in the sandbox). You can perform the Apply CP<br />

operation from a sandbox, but this only acts as a redirector to the<br />

project.<br />

In principle, change packages are applied through a revision process.<br />

By applying a change package, you can incorporate only those<br />

changes that you want to include in the project.<br />

Apply CP cannot address changes that require merging. Apply CP can<br />

only make changes based on <strong>com</strong>plete files—it can only add files,<br />

drop files, and update a file revision. For more information on<br />

resolving merge questions, see “Using the Resync CP Command” on<br />

page 406.<br />

Apply CP only works with closed change packages; therefore, you<br />

must close the change package before you apply it. The Apply CP<br />

operation is <strong>com</strong>mitting changes directly to a project and, for this<br />

u s e r g u i d e


How Apply CP<br />

Works<br />

Using the Apply CP Command<br />

reason, it is important that the entire change package is treated as a<br />

single, indivisible change. If a change package is not closed, it may not<br />

stand alone and may break the build.<br />

Source Integrity allows you to run the Apply CP <strong>com</strong>mand first and<br />

then, if required, run the Resync CP <strong>com</strong>mand to perform any<br />

required merge operations.<br />

If an Apply CP operation is not successfully <strong>com</strong>pleted,<br />

Source Integrity tells you what you need to do to apply the change<br />

package successfully.<br />

The Apply CP backfill list presents you with all the change packages<br />

that the selected change packages depend on. To run the <strong>com</strong>mand,<br />

you must accept the entire list.<br />

The changes made by an Apply CP operation can be recorded in a<br />

change package for auditing purposes.<br />

If reviews are mandatory, the changes made by an Apply CP<br />

operation must be recorded as pending entries in a change package.<br />

The change package must then be submitted, which starts the review<br />

process (see “Change Package Review Process” on page 240).<br />

The Apply CP operation adds and drops files, and updates file revisions to<br />

include specific content in a project. For example, consider a simplified<br />

application of the <strong>com</strong>mand in the main trunk of development for the<br />

Aurora project (Aurora_Project.pj). The project member, main.c,<br />

includes a bug fix that allows the printing of version information. Issue 21<br />

addresses the bug fix and is associated with the file main.c (revision 1.2)<br />

through change package (CP) 21:1.<br />

The buildmaster wants to pick up the changes that address the bug fix and<br />

apply these to a variant project, Aurora_Variant_1_0. In the variant<br />

project, main.c is at revision 1.1.<br />

389


Chapter 12: Advanced Change Package Operations<br />

390<br />

Before applying a change package (simple case)<br />

To get the bug fix for the variant project (Aurora_Variant_1_0.pj), the<br />

buildmaster uses the si applycp <strong>com</strong>mand to apply CP 21:1:<br />

si applycp -P f:/Aurora_Project/project.pj --devPath<br />

Aurora_Variant_1_0 21:1<br />

The <strong>com</strong>mand runs as follows:<br />

Applying change packages...<br />

21:1<br />

main.c<br />

Aurora_Project<br />

1.2<br />

CP 21:1<br />

***The following set of operations will be performed:<br />

Project: f:/Aurora_Project/<br />

project.pj[Aurora_Variant_1_0]<br />

main.c<br />

Member main.c: update member revision to Revision<br />

1.2<br />

Are you sure you wish to proceed? [yn]: y<br />

u s e r g u i d e<br />

Aurora_Variant_1_0<br />

1.1<br />

CP 21:1 addresses Issue 21 - “Modify the Main class<br />

so that it prints version information.”<br />

Archive for main.c<br />

1.2<br />

1.1<br />

CP 21:1<br />

CP 20:1


Apply CP<br />

Backfill List<br />

main.c<br />

Aurora_Project<br />

1.2<br />

CP 21:1<br />

Applying CP 21:1 updates main.c revision 1.1 to revision 1.2<br />

to include the fix for printing version information.<br />

Archive for main.c<br />

1.2<br />

1.1<br />

CP 21:1<br />

CP 20:1<br />

main.c<br />

After applying a change package (simple case)<br />

Using the Apply CP Command<br />

Aurora_Variant_1_0<br />

1.2 CP 21:1<br />

In this case, because CP 21:1 included only an updating of main.c from<br />

revision 1.1 to revision 1.2, Apply CP updates the revision for main.c from<br />

1.1 to 1.2 in the variant project.<br />

The following provides an example of the backfill list and how it works in<br />

the Apply CP <strong>com</strong>mand. The main project, Aurora_Project.pj, now<br />

includes an additional bug fix for project member, main.c. Issue 22<br />

addresses that bug fix and is associated with the file main.c (revision 1.3)<br />

through CP 22:1.<br />

The buildmaster wants to pick up the changes that address the bug fix and<br />

apply these to a variant project, Aurora_Variant_1_0. In the variant<br />

project, main.c is at revision 1.1.<br />

391


Chapter 12: Advanced Change Package Operations<br />

392<br />

main.c<br />

Aurora_Project<br />

1.3<br />

CP 22:1<br />

CP 22:1 addresses Issue 22 -<br />

“Add About information to the Main tool.”<br />

Archive for main.c<br />

Before applying a change package that requires backfilling<br />

1.3<br />

1.2<br />

1.1<br />

CP 22:1<br />

CP 21:1<br />

CP 20:1<br />

main.c<br />

Again, to pick up the bug fix for the variant project, the buildmaster uses<br />

the si applycp <strong>com</strong>mand to apply CP 22:1. By default, the backfill option<br />

is set to Entire Change Packages (--backfill=cp). The buildmaster<br />

enters the <strong>com</strong>mand:<br />

si applycp -P f:/Aurora_Project/project.pj --devPath<br />

Aurora_Variant_1_0 22:1<br />

u s e r g u i d e<br />

Aurora_Variant_1_0<br />

1.1


main.c<br />

Aurora_Project<br />

1.3<br />

CP 22:1<br />

Using the Apply CP Command<br />

Applying CP 22:1 updates main.c from revision 1.1 to revision 1.3 in the variant<br />

project to include the bug fix for About information. The backfill list included<br />

CP 21:1.<br />

Archive for main.c<br />

1.3<br />

1.2<br />

CP 22:1<br />

CP 21:1<br />

1.1 CP 20:1<br />

main.c<br />

Aurora_Variant_1_0<br />

After the backfill list is accepted, the Apply CP operation updates<br />

main.c in the variant project from revision 1.1 to revision 1.3<br />

1.3<br />

CP 22:1<br />

393


Chapter 12: Advanced Change Package Operations<br />

394<br />

The <strong>com</strong>mand runs as follows:<br />

Applying change packages...<br />

22:1<br />

The following warnings have occurred:<br />

-------------------<br />

The change package(s)<br />

21:1 -- main.c(1.2)<br />

are required in order to apply this list of change<br />

packages.<br />

They will be automatically added to the list, since the<br />

backfill option is set to Entire Change Package(cp).<br />

--------------------<br />

*** The following set of operations will be performed:<br />

Project: f:/Aurora_Project/<br />

project.pj[Aurora_Variant_1_0]<br />

Member main.c: update member revision to<br />

Revision 1.3<br />

Are you sure you wish to proceed? [yn](n): y<br />

In this case, Apply CP updates the revision for main.c from 1.1 to 1.3 in<br />

the variant project. Revision 1.2 is automatically added to the member<br />

history in the variant project because it was accepted as part of the backfill<br />

list (CP 21:1).<br />

Apply CP Backfill Options<br />

The Apply CP <strong>com</strong>mand operates recursively. To apply a change package,<br />

Source Integrity searches the specified change packages for revision<br />

changes between the current revision and the target revision.<br />

Backfill<br />

Option (GUI)<br />

Entire Change<br />

Packages<br />

Backfill<br />

Option (CLI)<br />

Function<br />

cp Selected by default for the Apply CP<br />

<strong>com</strong>mand. Recursively finds all historic<br />

revisions required by the specified change<br />

packages and applies them. It does not ask<br />

the user to confirm the backfill list.<br />

u s e r g u i d e


Backfill<br />

Option (GUI)<br />

Back<br />

Revisions Only<br />

Backfill<br />

Option (CLI)<br />

Function<br />

Using the Apply CP Command<br />

revision Processes only the changes in the specified<br />

change package(s). Any change packages<br />

associated with intermediate revisions are<br />

not picked up.<br />

Note: Processing by revision reduces the<br />

total number of changes you bring into the<br />

variant; however, this option may result in<br />

broken builds because indirectly associated<br />

files are not picked up.<br />

Error error Results in an error if other change packages<br />

are required but not specified.<br />

Skip Revisions skip Results in an error if any backfill revisions are<br />

specified during the Apply CP operation.<br />

Ask to Specify ask Displays the backfill list. To <strong>com</strong>plete the<br />

Apply CP operation, you must accept the<br />

entire list. If you decline the list, the Apply CP<br />

operation fails.<br />

In the Apply CP operation, you must accept the entire backfill list or the<br />

operation fails. If you do not want to accept the entire backfill list, you<br />

must instead perform a Resync CP operation. The Resync CP <strong>com</strong>mand<br />

allows you to merge around unwanted revisions in your sandbox. For<br />

more information on resynchronizing change packages, see “Using the<br />

Resync CP Command” on page 406.<br />

The next example illustrates how Apply CP handles a more <strong>com</strong>plex<br />

change package—one that contains code modifications that are dependent<br />

on a new file. In this example, main.c is revised to call a value defined in a<br />

new file, main.h.<br />

The developer working on the code has checked in all these changes and<br />

associated both files with CP 22:1. Development work then continues to<br />

include a further revision to main.c which is checked in at revision 1.3 and<br />

associated with CP 23:1. The main project therefore contains main.c at<br />

revision 1.3 and main.h at revision 1.1.<br />

395


Chapter 12: Advanced Change Package Operations<br />

396<br />

Aurora_Project<br />

main.c<br />

1.3<br />

Archive for main.c<br />

1.3<br />

1.2<br />

CP 23:1<br />

CP 22:1<br />

1.1 CP 21:1<br />

The buildmaster now wants to incorporate the changes into the variant<br />

project. The buildmaster therefore uses the Apply CP <strong>com</strong>mand to apply<br />

CP 23:1 to Aurora_Variant_1_0.<br />

u s e r g u i d e<br />

Aurora_Variant_1_0<br />

main.h 1.1<br />

main.c 1.1<br />

Archive for main.h<br />

1.1 CP 22:1<br />

CP 21:1 Add main.c revision 1.1 to Aurora_Project<br />

CP 22:1 Update main.c to revision 1.2 in Aurora_Project<br />

Add main.h revision 1.1 to Aurora_Project<br />

CP 23:1<br />

Update main.c to revision 1.3 in Aurora_Project<br />

Before applying a change package that contains an associated file


CP 21:1<br />

CP 22:1<br />

CP 23:1<br />

Aurora_Project<br />

main.c 1.3<br />

main.h 1.1<br />

Archive for main.h<br />

1.1 CP 22:1<br />

Archive for main.c<br />

1.3<br />

1.2<br />

CP 23:1<br />

CP 22:1<br />

1.1 CP 21:1<br />

Using the Apply CP Command<br />

Aurora_Variant_1_0<br />

main.c<br />

Apply CP 23:1 updates main.c to revision 1.3 and<br />

adds main.h revision 1.1 in Aurora_Variant_1_0<br />

Add main.c revision 1.1 to Aurora_Project<br />

Update main.c to revision 1.2 in Aurora_Project<br />

Add main.h revision 1.1 to Aurora_Project<br />

Update main.c to revision 1.3 in Aurora_Project<br />

After applying a change package that contains an associated file<br />

In this case, if the buildmaster selects the default backfill option—backfill<br />

by Entire Change Packages—the variant is updated to include all the<br />

contents of CP 22:1 (that is, main.c at revision 1.3 and main.h at revision<br />

1.1.) However, if the buildmaster instead chooses to backfill by Back<br />

Revisions Only, the build is broken because any intermediate change<br />

packages are only filled by revision. In this case, the result is to place only<br />

revision 1.3 of main.c in the variant. The associated file (main.h)<br />

contained in the CP 22:1 is not added.<br />

The preceding examples illustrated how to bring changes from the main<br />

trunk of development to a variant project. You can also take changes that<br />

are created on a branch or variant—for example, for an older release—and<br />

1.3<br />

main.h<br />

1.1<br />

397


Chapter 12: Advanced Change Package Operations<br />

Apply CP<br />

Procedures<br />

398<br />

bring them to the main trunk that may already include new feature<br />

development. For more information on performing this operation using<br />

Resync CP, see “Working on a Variant” on page 413.<br />

This section describes the step-by-step procedures required to perform the<br />

Apply CP <strong>com</strong>mand in both the graphical user interface and <strong>com</strong>mand line<br />

interface.<br />

CAUTION<br />

You cannot undo an Apply CP operation. Therefore, before applying any<br />

change packages, you should checkpoint your project. You can then use the<br />

Restore Project <strong>com</strong>mand to revert to the earlier version of the project. For<br />

more information on checkpointing, see “Checkpointing a Project” on<br />

page 269. For more information on restoring a project, see “Restoring a Project”<br />

on page 271.<br />

To apply a change package in the graphical user interface<br />

1 From a Sandbox or Project view, select the project you want to apply<br />

change packages to.<br />

2 Select Change Package > Apply Change Package.<br />

The Apply Change Packages wizard opens, displaying the Apply List<br />

panel.<br />

u s e r g u i d e


3 To add change packages to the Apply List, click Add.<br />

Using the Apply CP Command<br />

If you know the ID number of the change package(s) or issue(s) you<br />

want to add, you can also enter that number in the Change Package ID<br />

field and then click Insert. For multiple numbers, include a space<br />

between each change package ID.<br />

The Find Change Package Panel appears.<br />

4 Select filter criteria for the change package, or if Integrity Manager is<br />

enabled, select a query. For more information, see “Finding Change<br />

Packages” on page 222 and “Finding Change Packages Using a<br />

Query” on page 378.<br />

5 After you specify the filter criteria or query, click OK.<br />

The Select Change Package(s) dialog appears. The Change Packages<br />

tab is populated with the filter or query results.<br />

399


Chapter 12: Advanced Change Package Operations<br />

400<br />

NOTE<br />

When using the Apply CP <strong>com</strong>mand, you can only apply closed change<br />

packages. Because you cannot apply an open change package to a project, the<br />

option for Allow Open Change Packages is disabled by default. If you<br />

need to work with an open change package, you must use the Resync CP<br />

<strong>com</strong>mand. For more information on resynchronizing change packages, see<br />

“Using the Resync CP Command” on page 406.<br />

Available information is displayed in the panel as follows:<br />

Tab Table Columns<br />

Change Packages C.P. ID is the identification number of the change package<br />

(in the form x:y, where x is the container ID (if<br />

Integrity Manager is enabled it is also the issue ID), and y<br />

is the change package index number).<br />

State is the state of the change package (see “CP States”<br />

on page 241).<br />

Summary is the summary description of the issue<br />

associated with the change package.<br />

u s e r g u i d e


Tab Table Columns<br />

Change Package<br />

Entries<br />

Using the Apply CP Command<br />

Type lists the type of operation that was used to manipulate<br />

the listed member. For more information, see “Change<br />

Package Entry Types” on page 220.<br />

Project lists the file path of the project.<br />

Member lists the name of the member file.<br />

Revision lists the revision number of the member file.<br />

Development Path lists the development path, or variant,<br />

that the change came from.<br />

Server is the name of the Integrity Server the project<br />

resides on.<br />

Member History Displays the following information for each revision in the<br />

member history:<br />

Revision is the revision number of the selected member.<br />

Author is the user ID of the individual who checked in the<br />

member revision.<br />

Date is the date the member revision was checked in.<br />

Labels are the labels, if any, assigned to the revision in the<br />

history.<br />

State is the workflow state of the member.<br />

C.P. ID is the change package identification number of the<br />

revision.<br />

6 To view the information for change package entries, select a change<br />

package ID under the Change Packages tab and then click the Change<br />

Package Entries tab.<br />

The Change Package Entries tab is populated with information on the<br />

associated change package entries.<br />

Under the Change Package Entries tab detailed information is<br />

displayed for each entry in the change package. For more information,<br />

see “Change Package Entry Types” on page 220.<br />

To view the information for a member history, select a member under<br />

the Change Package Entries tab, then click the Member History tab.<br />

401


Chapter 12: Advanced Change Package Operations<br />

402<br />

Once you select a member, the Member History tab is populated with<br />

information on the associated member history.<br />

NOTE<br />

Under the Member History tab, you can highlight a member revision, and use<br />

the shortcut menu to select View Revision or Revision Information. To perform<br />

differencing between revisions, use CTRL+click to select two revisions and then<br />

use the shortcut menu to select Differences.<br />

7 To add change packages selected, click OK.<br />

TIP<br />

You can also double click to view a revision.<br />

The added change packages are displayed in the Apply List.<br />

u s e r g u i d e


Apply CP<br />

General Command Option<br />

Using the Apply CP Command<br />

To remove a change package from the Apply List, highlight the<br />

change package (or press CTRL and click to highlight multiple<br />

members), and then click Remove.<br />

8 To select the options you want Source Integrity to use when applying<br />

the change packages, click Next.<br />

The Options panel opens.<br />

9 Select the <strong>com</strong>mand options you want Source Integrity to use when<br />

carrying out the Apply CP operation:<br />

Function<br />

Confirm Actions Causes Source Integrity to confirm all operations with you before starting them.<br />

(This option is enabled by default.)<br />

Apply CP<br />

Advanced Command Options<br />

Function<br />

Verbose Provides additional information to track the status of the <strong>com</strong>mand.<br />

Other Project is Error Terminates the <strong>com</strong>mand if the member is not in the project you are applying to,<br />

or in its variant.<br />

Span Projects Applies the <strong>com</strong>mand to any member specified in the change package, even if<br />

this involves a different project than the one you initially targeted.<br />

Caution: This is the only <strong>com</strong>mand option that has the potential to affect other<br />

projects.<br />

403


Chapter 12: Advanced Change Package Operations<br />

Apply CP<br />

Advanced Command Options<br />

Ignore Cross-Branch Entries Causes Source Integrity to use the most recent revision when it encounters two<br />

revisions of the same member on different branches.<br />

Close Change Package Closes the change package when the operation is <strong>com</strong>plete.<br />

Already in Project is Error Causes Source Integrity to terminate the operation if the member being applied is<br />

already in the project.<br />

If this setting is negated, then the information is displayed as a warning.<br />

Ignore Server in Change<br />

Package<br />

404<br />

Function<br />

Causes Source Integrity to perform the Apply CP operation even if the change<br />

package members reside on different servers.<br />

Note: You must set the Other Project is Error option in order for the Ignore<br />

Server in Change Package option to work. This additional setting is required<br />

because projects are defined by their server and path.<br />

Create Variants Causes Source Integrity to create new variant subprojects within the variant<br />

project as required to apply the change package members. If the main project<br />

contains required files that reside in a subproject, the Create Variants option<br />

creates variant subprojects for these files to be placed into.<br />

Backfill Determines how Source Integrity treats historic revisions required by the<br />

specified change packages. For the Apply CP <strong>com</strong>mand, the backfill option is set<br />

to Entire Change Packages by default.<br />

You can select from the following options:<br />

Entire Change Packages chooses all historic revisions required by the specified<br />

change packages and applies them by updating member revisions, adding files,<br />

or dropping files. The user is not prompted to confirm the backfill list.<br />

Back Revisions Only processes only the specified change package(s) and<br />

chooses only directly-associated revisions. It does not process any change<br />

packages that are associated with intermediate revisions.<br />

Error terminates the operation if other change packages are required but are not<br />

specified.<br />

Skip Revisions causes Source Integrity to merge around specified backfill<br />

revisions. Because the Apply CP <strong>com</strong>mand does not perform merging, this is<br />

treated as an error.<br />

Ask to Specify allows you to select the specific change packages you want to<br />

include. For the Apply CP operation, a list of additional change packages is<br />

displayed. The presented list of change packages cannot be manipulated. You<br />

must either accept the entire list or the operation fails.<br />

Change Package Add the operation to a change package. From the Change Package list, select a<br />

change package. To create a change package, click Create. For more<br />

information, see “Creating a Change Package” on page 217.<br />

Ignore Update Revision Entries Ignores update revision entries in a change package. There is no user prompt.<br />

10 To apply the list of change packages to the project, click Finish.<br />

If additional change packages are required to apply the selected<br />

change package, the Confirm Project Backfill dialog box is displayed.<br />

u s e r g u i d e


Using the Apply CP Command<br />

11 To accept the backfill list and have the listed change packages also<br />

applied to the project, click Yes.<br />

You must accept the backfill list as presented or the Apply CP<br />

operation cannot be <strong>com</strong>pleted. If you do not want to accept the entire<br />

list, you must use the Resync CP <strong>com</strong>mand instead. For more<br />

information on resynchronizing change packages, see “Using the<br />

Resync CP Command” on page 406.<br />

The Confirm Change Package Application dialog box is displayed<br />

indicating the operations to be performed.<br />

12 To <strong>com</strong>plete the operation(s) and apply the selected change<br />

package(s), click Yes.<br />

Source Integrity <strong>com</strong>pletes the operation or returns information on<br />

errors and warnings if the operation cannot be successfully <strong>com</strong>pleted.<br />

405


Chapter 12: Advanced Change Package Operations<br />

406<br />

NOTE<br />

Using the Resync CP Command<br />

To see any change packages that have been applied between two revisions of a<br />

project, use View Project Differences and, under Preferences, select the option<br />

for Show Applied Change Packages. For more information on viewing project<br />

modifications, see “Viewing Project Differences” on page 275.<br />

While Apply CP works to either add, drop, or update member revisions,<br />

you must accept the entire list of backfill entries or the <strong>com</strong>mand fails. In<br />

the Resync CP operation, you are able to select the individual change<br />

packages you want to exclude from the backfill operation and then<br />

Source Integrity performs the required merges. Therefore, if you need to<br />

merge files to create your solution, you must use the Resync CP <strong>com</strong>mand.<br />

The Resync CP operation allows you to resynchronize revisions and carry<br />

out merges entirely within a sandbox. When you are prompted to backfill<br />

historical revisions (the Resync CP backfill list), you can select the change<br />

packages you want to include. Resync CP automatically performs merging<br />

and notifies you of unresolved conflicts that must be addressed manually<br />

after the <strong>com</strong>mand <strong>com</strong>pletes.<br />

How Does Resync CP Work?<br />

To perform the operation, Source Integrity checks out all the files listed in<br />

the selected change package(s) and places them in your sandbox. At the<br />

same time, Source Integrity displays information on any conflicts, as well<br />

as information on changes (or deltas).<br />

Once the dependencies are calculated, and you have performed the<br />

required merges, the operation <strong>com</strong>pletes and Source Integrity presents all<br />

the files required for the new feature or content in your sandbox.<br />

When Should I Use Resync CP?<br />

You should use the Resync CP <strong>com</strong>mand when the Apply CP operation<br />

has failed because there were conflicts to be resolved through merging.<br />

Resync CP is most useful for developing software features and for<br />

applying bug fixes during the software development process.<br />

u s e r g u i d e


Key Resync CP<br />

Concepts<br />

NOTE<br />

Using the Resync CP Command<br />

When working in your sandbox, you can also use the Resynchronize By CP<br />

<strong>com</strong>mand. When you select a member and use Resynchronize By CP,<br />

Source Integrity automatically searches the change package associated with the<br />

member and resynchronizes the selected member and all other member files<br />

contained in that change package. For more information, see “Using the Resync<br />

By CP Command” on page 436.<br />

If the issues you are looking at have numerous associated change<br />

packages, you can also use a single change package—a resolution change<br />

package— that contains all the associated change packages, to resolve it.<br />

The Resync CP <strong>com</strong>mand includes a process for creating resolution change<br />

packages that can be used for this purpose. For more information on<br />

resolution change packages, see “Working With a Resolution CP” on<br />

page 428.<br />

The next four sections describe how the Resync CP <strong>com</strong>mand works and<br />

on how you can use it in your development environment. The topics<br />

covered are:<br />

“Key Resync CP Concepts” on page 407<br />

“How Resync CP Works” on page 408<br />

“Resync CP Backfill List” on page 409<br />

Procedures for the graphical user interface<br />

The following outlines the key concepts associated with the Resync CP<br />

<strong>com</strong>mand:<br />

The Resync CP operation takes place in a sandbox rather than directly<br />

in the project. Resync CP does not drop members or update member<br />

revisions in the project, but works only in your sandbox. Resync CP<br />

also performs merges and adds required members to your sandbox.<br />

If you need to merge files to create your solution, you must use Resync<br />

CP rather than Apply CP. Resync CP performs three-way merging<br />

and can therefore only merge around a consecutive range of revisions.<br />

Resync CP allows you to work with open change packages.<br />

Resync CP provides additional options beyond those available for<br />

Apply CP, including options for Restore Revision Timestamp, Allow<br />

Open Change Packages, Keyword, and certain merge options.<br />

407


Chapter 12: Advanced Change Package Operations<br />

How Resync CP<br />

Works<br />

408<br />

Source Integrity allows you to run the Apply CP <strong>com</strong>mand first and<br />

then, if required, run the Resync CP <strong>com</strong>mand to perform any<br />

required merge operations.<br />

The Resync CP backfill list allows you to quickly select those change<br />

packages that you want to operate on. In the graphical user interface,<br />

you select the change packages you want to include in the resync<br />

operation. In the <strong>com</strong>mand line interface, you enter the numbers for<br />

the change packages you want to exclude from the resync operation.<br />

The Resync CP operation adds and drops files, and updates file revisions<br />

to include specific content in a sandbox. Fundamentally, the Resync CP<br />

works similarly to the Apply CP <strong>com</strong>mand, but rather than touching the<br />

project directly, makes the changes in a sandbox.<br />

For example, consider a simplified application in the main trunk of<br />

development for the Aurora project (Aurora_Project.pj). The project<br />

member, tool.c, includes a bug fix for Issue 24 and is associated with the<br />

file tool.c (revision 1.7) through change package (CP) 24:1.<br />

The developer wants to pick up the changes that address the bug fix and<br />

apply these in a sandbox. In the developer’s sandbox, tool.c is at revision<br />

1.2.<br />

To apply the bug fix in the sandbox, the developer uses the si resynccp<br />

<strong>com</strong>mand to apply CP 24:1 as follows:<br />

si resynccp -S c:/Aurora_Project/project.pj 24:1<br />

Applying change packages...<br />

24:1<br />

The following warnings have occurred:<br />

-------------------<br />

The change package(s)<br />

20:1 -- tool.c(1.3)<br />

21:1 -- tool.c(1.4)<br />

22:1 -- tool.c(1.5)<br />

23:1 -- tool.c(1.6)<br />

are required in order to apply this list of change<br />

packages. They will be automatically added to the list,<br />

since the backfill option is set to Entire Change<br />

Package(cp).<br />

--------------------<br />

u s e r g u i d e


Resync CP<br />

Backfill List<br />

Using the Resync CP Command<br />

*** The following set of operations will be performed:<br />

Project: f:/Aurora_Project/project.pj<br />

Sandbox: c:\Aurora_Sandbox\project.pj<br />

Member tool.c: resynchronize to Revision 1.7<br />

Are you sure you wish to proceed? [yn]: y<br />

In this case, Resync CP updates the working file revision for tool.c from<br />

1.2 to 1.7 in the sandbox. This is done by checking out tool.c at 1.7 into<br />

the sandbox. The changes made from revisions 1.3 through 1.6 are already<br />

included in this checked out file.<br />

The following provides an example of the backfill list and how it works in<br />

the Resync CP <strong>com</strong>mand. The main project, Aurora_Project.pj, now<br />

includes an additional bug fix for project member, tool.c. Issue 23<br />

addresses that bug fix and is associated with the file tool.c (revision 1.6)<br />

through CP 23:1.<br />

The developer wants to pick up the changes that address the bug fix and<br />

apply these in a sandbox. In the developer’s sandbox, tool.c is at revision<br />

1.2.<br />

409


Chapter 12: Advanced Change Package Operations<br />

410<br />

tool.c<br />

Aurora_Project<br />

1.6<br />

CP 23:1<br />

CP 23:1 addresses Issue 23 -<br />

“Add internationalization code to the tool.”<br />

Archive for tool.c<br />

1.6 CP 23:1<br />

1.5<br />

1.4<br />

1.2<br />

1.1<br />

CP 22:1<br />

CP 21:1<br />

1.3 CP 20:1<br />

CP 19:1<br />

CP 18:1<br />

tool.c<br />

Picking up a specific change using the Resync CP <strong>com</strong>mand<br />

u s e r g u i d e<br />

Aurora_Sandbox<br />

1.2


Using the Resync CP Command<br />

To pick up the bug fix, the developer uses the si resynccp <strong>com</strong>mand in a<br />

sandbox. The developer wants to decide on the specific change packages to<br />

include in the operation, so he or she sets the backfill option to Ask to<br />

Specify (--backfill=ask). The <strong>com</strong>mand runs as follows:<br />

si resynccp -S c:/Aurora_Sandbox/project.pj<br />

--backfill=ask 23:1<br />

Applying change packages...<br />

23:1<br />

*** The following list of change packages are used by<br />

revisions before the revision that you require. Each<br />

change package is given, along with the revisions which<br />

require them:<br />

20:1 -- tool.c(1.3)<br />

21:1 -- tool.c(1.4)<br />

22:1 -- tool.c(1.5)<br />

Reply with:<br />

y to pick up all these change packages, along with<br />

their associated changes,<br />

s to skip all these revisions and merge around them<br />

(default)<br />

c to cancel the <strong>com</strong>mand<br />

or a space separated list of change package identifiers<br />

from the list given to be *removed* from the list<br />

[y|s|c|#...] ?<br />

411


Chapter 12: Advanced Change Package Operations<br />

412<br />

The developer decides to merge around all the intermediate change<br />

packages and selects s (skip). The <strong>com</strong>mand continues as follows:<br />

The following warnings have occurred:<br />

-------------------<br />

The following members require a merge to be performed:<br />

tool.c<br />

You have not specified a resolution change package, so<br />

merged members will not be locked.<br />

--------------------<br />

*** The following set of operations will be performed:<br />

Project: f:/Aurora_Project/project.pj<br />

Sandbox: c:\Aurora_Sandbox\project.pj<br />

Member tool.c: merge around differences: picking<br />

up revisions 1.2 through 1.6, excluding<br />

revisions 1.3, 1.4, 1.5, by checking out<br />

Revision 1.2 into the working file, and merging<br />

in the differences between Revision 1.6 and<br />

Revision 1.2 with the differences between<br />

Revision 1.5 and Revision 1.3.<br />

Are you sure you wish to proceed? [yn](n): y<br />

In this case, Resync CP updates the working file revision for main.c by<br />

checking out revision 1.2 and then merging into the working file the<br />

differences between 1.5 and 1.6. The intermediate revisions are not added<br />

to the sandbox because the skip option was selected. Because the resync<br />

operation does not involve a resolution change package, the merged<br />

member is not locked.<br />

u s e r g u i d e


Working on a<br />

Variant<br />

Resync CP Backfill Options<br />

Backfill<br />

Option (GUI)<br />

Entire<br />

Change<br />

Packages<br />

Back<br />

Revisions<br />

Only<br />

Backfill<br />

Option (CLI)<br />

Function<br />

Using the Resync CP Command<br />

cp Selected by default for the Resync CP<br />

<strong>com</strong>mand. Recursively finds all historic<br />

revisions required by the specified change<br />

packages and applies them. It does not ask<br />

you to confirm the backfill list.<br />

revision Processes only the changes in the specified<br />

change package(s). Any change packages<br />

associated with intermediate revisions are not<br />

picked up.<br />

Note: Processing by revision may result in<br />

broken builds because indirectly associated<br />

files are not picked up.<br />

Error error Results in an error if other change packages<br />

are required but not specified.<br />

Skip<br />

Revisions<br />

Ask to<br />

Specify<br />

skip Causes Source Integrity to merge around<br />

specified backfill revisions.<br />

ask Displays the backfill list and asks you to<br />

specify how you want Source Integrity to treat<br />

the change packages.<br />

Working on a variant allows you to create a specific change, test it, and<br />

then bring that change back into the main trunk of development. Within<br />

reason, this can be done even when the main trunk includes further new<br />

development.<br />

For example, a patch created in a variant project is needed in the master<br />

project. The file—utility.c—has a head revision of 1.4 in the project. In<br />

the variant project, the file utility.c version 1.2 is checked out to<br />

revision 1.2.1.1 and the code is revised. The file utility.c is then checked<br />

in at 1.2.1.2 and associated with CP 5:1.<br />

413


Chapter 12: Advanced Change Package Operations<br />

414<br />

utility.c<br />

Master Project<br />

1.4<br />

Archive for utility.c<br />

1.4<br />

1.3<br />

1.2.1.2<br />

1.2.1.1<br />

1.2<br />

1.1<br />

CP 5:1<br />

utility.c<br />

Moving a patch from a variant project to a master project<br />

Moving the patch from the variant to the master requires a three-way<br />

merge operation using Resync CP. Apply CP would not be successful in<br />

this case because merging is required. Similarly, because the master project<br />

contains further new development, updating the head revision of<br />

utility.c from 1.4 to 1.2.1.2 would not be appropriate. Updating the<br />

head revision would cause the new development work in revisions 1.3 and<br />

1.4 to be lost.<br />

The Resync CP <strong>com</strong>mand should be used in this case. However, if the<br />

correct options are not selected, the default Resync CP operation checks<br />

out utility.c and overwrites revision 1.4 in your sandbox with<br />

utility.c revision 1.2.1.2 from the variant project.<br />

1.2<br />

u s e r g u i d e<br />

Variant Project<br />

1.2.1.2<br />

1.2.1.1


utility.c<br />

Master Project<br />

1.4<br />

utility.c<br />

Sandbox to Master<br />

1.4<br />

1.2.1.2<br />

The default Resync CP operation<br />

Using the Merge On Branch Option<br />

Using the Resync CP Command<br />

Variant Project<br />

1.2.1.2<br />

1.2 1.2.1.1<br />

utility.c<br />

In this situation, you must use the Merge On Branch option<br />

(--mergeOnBranch). This option essentially allows the changes on the<br />

branch to be merged into the head revision file. Selecting Merge On Branch<br />

allows Source Integrity to perform a differencing between revision 1.2 and<br />

1.2.1.2 and then merge the result into revision 1.4. Once the Resync CP<br />

operation <strong>com</strong>pletes, the file must then be checked in to finalize the<br />

changes in the project.<br />

415


Chapter 12: Advanced Change Package Operations<br />

416<br />

utility.c<br />

Master Project<br />

1.4<br />

utility.c<br />

Sandbox to Master<br />

1.4<br />

Archive for utility.c<br />

1.4<br />

1.3<br />

1.2.1.2<br />

1.2.1.1<br />

1.2<br />

1.1<br />

CP 5:1<br />

Using Resync CP with the Merge On Branch option<br />

Using the Ignore Branches Option<br />

utility.c<br />

Another situation that warrants special consideration is the case where two<br />

change packages must be applied. Unless the correct options are selected,<br />

Resync CP will fail because too many merges are required.<br />

For example, the master project contains the file patch.c at revision 1.4.<br />

The variant project used by the buildmaster contains a fix (patch.c,<br />

revision 1.2.1.2, CP 9:1) that is being rolled out for a product patch. The<br />

variant project for the Maintenance Development team also includes a bug<br />

fix for patch.c at revision 1.3.1.2, and this revision is associated with CP<br />

10:1. Both fixes are required for the master project. To pick up all the<br />

required changes, both CP 9:1 and CP 10:1 must be selected.<br />

u s e r g u i d e<br />

Variant Project<br />

1.2.1.2<br />

1.2 1.2.1.1<br />

Differences between 1.2 and<br />

1.2.1.2 merged into 1.4.<br />

Result placed in sandbox.<br />

To finalize changes in the<br />

project, file must be checked in.


Archive for patch.c<br />

Using the Resync CP Command<br />

Performing a Resync CP operation on two change packages using the<br />

Ignore Branches option<br />

Running the Resync CP for two change packages requires more than a<br />

three-way merge and therefore fails. Using the Ignore Branches option<br />

(--ignoreBranches) Resync CP can successfully <strong>com</strong>plete, but with a<br />

restriction. The restriction is that Source Integrity searches both change<br />

packages, takes the highest revision it finds, and uses this revision to<br />

overwrite the working file in your sandbox.<br />

In our example, the Resync CP operation would take patch.c at revision<br />

1.3.1.2 and check it out to the sandbox, overwriting revision 1.4.<br />

NOTE<br />

1.4<br />

1.3.1.2 CP 10:1<br />

1.3.1.1<br />

1.3<br />

1.2<br />

1.1<br />

1.2.1.2 CP 9:1<br />

1.2.1.1<br />

patch.c<br />

patch.c<br />

patch.c<br />

Project<br />

Variant Project 1<br />

1.3.1.2<br />

Rapid Development<br />

creates a bug fix<br />

Buildmaster is<br />

rolling out a fix<br />

for a patch<br />

There are only two ways to successfully <strong>com</strong>plete the preceding scenario<br />

without restrictions: address it manually, or perform Resync CP and Apply CP<br />

twice (once for each change package), checking in the merged changes at the<br />

head revision after each operation.<br />

The Ignore Branches option can also be used to ac<strong>com</strong>modate the case<br />

where one developer has created the same fixes for both the project and the<br />

variant, and associated with the same change package.<br />

1.4<br />

Variant Project 2<br />

1.2.1.2<br />

Product team needs<br />

all the changes for<br />

the master project<br />

417


Chapter 12: Advanced Change Package Operations<br />

Resync CP<br />

Procedures<br />

418<br />

CP 10:1<br />

Using Ignore Branches to apply two fixes in the same change package<br />

In this case, because the single change package applies to both the project<br />

and the variant, the highest revision is the only one the buildmaster needs.<br />

The Ignore Branches option therefore allows Source Integrity to apply the<br />

highest revision to the buildmaster’s variant project.<br />

Combining Options<br />

patch.c 1.5 Master Project<br />

patch.c 1.3.1.2 Variant Project<br />

Applying CP 10:1 and selecting the Ignore Branches<br />

option allows Source Integrity to choose the highest<br />

available revision, 1.5.<br />

Following the same example, you can also apply both the Merge On Branch<br />

and Ignore Branches options. Selecting both options allows<br />

Source Integrity to perform a differencing between revisions 1.3 and the<br />

highest revision found, revision 1.3.1.2, and merge the result into revision<br />

1.4.<br />

This section describes the step-by-step procedures required to perform the<br />

Resync CP <strong>com</strong>mand in both the graphical user interface and <strong>com</strong>mand<br />

line interface.<br />

To resynchronize a change package in the graphical user interface<br />

1 From a Sandbox view, select the project you want the Resync CP<br />

<strong>com</strong>mand to operate on.<br />

2 Select Change Package > Resynchronize Change Package.<br />

The Resynchronize Change Packages wizard opens, displaying the<br />

Apply List panel.<br />

u s e r g u i d e<br />

patch.c<br />

patch.c<br />

Master Project<br />

1.5 CP 10:1<br />

Variant Project<br />

1.3.1.2 CP 10:1


3 To add change packages to the Apply List, click Add.<br />

Using the Resync CP Command<br />

If you know the ID number of the change package(s) or issue(s) you<br />

want to add, you can also enter that number in the Change Package ID<br />

field and then click Insert. For multiple numbers, include a space<br />

between each change package ID.<br />

The Find Change Package Panel appears.<br />

4 Select filter criteria for the change package, or if Integrity Manager is<br />

enabled, select a query. For more information, see “Finding Change<br />

Packages” on page 222 and “Finding Change Packages Using a<br />

Query” on page 378.<br />

The Select Change Package(s) panel appears. The Change Packages<br />

tab is populated with the filter or query results.<br />

419


Chapter 12: Advanced Change Package Operations<br />

420<br />

NOTE<br />

Open change packages are allowed when resynchronizing change packages.<br />

The option for Allow Open Change Packages is enabled by default. You can<br />

disable this option by clearing the check box.<br />

Available information is displayed in the panel as follows:<br />

Tab Table Columns<br />

Change Packages C.P. ID is the identification number of the change package<br />

(in the form x:y, where x is the container ID (if the<br />

Integrity Manager integration is enabled, it is also the issue<br />

ID, and y is the change package index number).<br />

State is the state of the change package, whether open or<br />

closed.<br />

Summary is the summary description of the issue<br />

associated with the change package.<br />

Change Package<br />

Entries<br />

Type lists the type of operation that was used to<br />

manipulate the listed member. For more information, see<br />

“Change Package Entry Types” on page 220.<br />

Project lists the file path of the project.<br />

Member lists the name of the member file.<br />

Revision lists the revision number of the member file.<br />

Development Path lists the development path, or variant,<br />

that the change came from.<br />

Server is the name of the Integrity Server the project<br />

resides on.<br />

u s e r g u i d e


Tab Table Columns<br />

Using the Resync CP Command<br />

Member History Displays the following information for each revision in the<br />

member history:<br />

Revision is the revision number of the selected member.<br />

Author is the user ID of the individual who checked in the<br />

member revision.<br />

Date is the date the member revision was checked in.<br />

Labels are the labels, if any, assigned to the revision in the<br />

history.<br />

State is the workflow state of the member.<br />

C.P. ID is the change package identification number of the<br />

revision.<br />

5 To view the information for change package entries, select a change<br />

package under the Change Packages tab and then click the Change<br />

Package Entries tab. Detailed information is displayed for each entry<br />

in the change package. For more information, see “Change Package<br />

Entry Types” on page 220.<br />

Once you select a change package ID, the Change Package Entries tab<br />

is populated with information on the associated change package<br />

entries.<br />

To view the information for a member history, select a member under<br />

the Change Package Entries tab and then click the Member History tab.<br />

Once you select a member, the Member History tab is populated with<br />

information on the associated member history.<br />

NOTE<br />

Under the Member History tab, you can highlight a member revision, and use<br />

the shortcut menu to select View Revision or Revision Information. To perform<br />

differencing between revisions, use CTRL+click to select two revisions and<br />

then use the shortcut menu to select Differences.<br />

421


Chapter 12: Advanced Change Package Operations<br />

422<br />

6 To add the change packages to the Apply List and return to the Apply<br />

List panel, click OK.<br />

The list of change packages is displayed in the Apply List panel.<br />

To remove a change package from the Apply List, highlight the<br />

change package (or press CTRL and click to highlight multiple<br />

members) and then click Remove.<br />

u s e r g u i d e


Resync CP<br />

General Command Options<br />

Using the Resync CP Command<br />

7 To select the change packages or Issues you want Source Integrity to<br />

use during the Resync CP operation, click Next.<br />

The Options panel opens.<br />

8 Select the <strong>com</strong>mand options you want Source Integrity to use when<br />

carrying out the Resync CP operation:<br />

Function<br />

Use Master Causes Source Integrity to operate on the top-level sandbox. When the selected<br />

change package is associated with a member in a subsandbox, specifying Use<br />

Master causes the <strong>com</strong>mand to operate on the top-level sandbox for that<br />

subsandbox.<br />

Overwrite Working File if<br />

Changed<br />

Perform Merges Enables merging<br />

Overwrites the working file even if the file has changed since it was last checked<br />

in.<br />

Confirm Actions Causes Source Integrity to confirm all operations with you before starting them.<br />

(This option is enabled by default.)<br />

423


Chapter 12: Advanced Change Package Operations<br />

Resync CP<br />

Advanced Command Options<br />

424<br />

Function<br />

Verbose Provides additional information to track the status of the <strong>com</strong>mand.<br />

Already in Project is Error Causes Source Integrity to terminate the operation if the member being applied is<br />

already in the project.<br />

If this setting is negated, then the information is displayed as a warning.<br />

Ignore Server in Change<br />

Package<br />

Causes Source Integrity to perform the Resync CP operation even if the change<br />

package members reside on different servers.<br />

Span Projects Applies the <strong>com</strong>mand to any project specified in the change package, even if this<br />

involves a project that is not the one you initially targeted.<br />

In a Resync CP operation, this option allows Source Integrity to search across<br />

local sandboxes for all the entries contained in the selected change package(s).<br />

Ignore Cross-Branch Entries Causes Source Integrity to use the most recent revision when it encounters two<br />

revisions of the same member on different branches.<br />

Restore Revision Timestamp Sets the timestamp of the working file to the date and time of the revision in the<br />

history. If this option is not set, the working file’s timestamp is set to the current<br />

date and time.<br />

Other Project is Error Terminates the <strong>com</strong>mand if the member is not in the project you are applying to,<br />

or in its variant.<br />

Allow Open Change Packages Allows Source Integrity to work with open change packages. This facilitates the<br />

application of a resolution change package.<br />

Create Variants Causes Source Integrity to create new variant subprojects within the variant<br />

project as required to apply the change package members. If the main project<br />

contains required files that reside in a subproject, the Create Variants option<br />

creates variant subprojects for these files to be placed into.<br />

Merge On Branch Causes Source Integrity to perform a merge if the target revision is on a branch.<br />

Source Integrity differences the two file revisions and merges any changes into<br />

the working file without modifying its revision number. You must then check in the<br />

working file to advance the revision to the next available revision number.<br />

Keyword Allows you to select keyword expansion options that apply when a member is<br />

checked out.<br />

Expand replaces keywords in the revision with literal values in the working file.<br />

Unexpand takes literal values in the working file and unexpands them.<br />

Do Not Expand leaves the keywords unexpanded.<br />

u s e r g u i d e


Resync CP<br />

Advanced Command Options<br />

Function<br />

Using the Resync CP Command<br />

Backfill Determines how Source Integrity treats historic revisions required by the<br />

specified change packages. For the Resync CP <strong>com</strong>mand, the backfill option is<br />

set to Entire Change Packages by default.<br />

You can select from the following options:<br />

Entire Change Packages chooses all historic revisions required by the<br />

specified change packages and applies them by updating member revisions,<br />

adding files, or dropping files. The user is not prompted to confirm the backfill<br />

list.<br />

Back Revisions Only processes only the specified change package(s) and<br />

chooses only directly-associated revisions. It does not process any change<br />

packages that are associated with intermediate revisions.<br />

Error terminates the operation if other change packages are required but are<br />

not specified.<br />

Skip Revisions causes Source Integrity to merge around specified backfill<br />

revisions.<br />

Ask to Specify allows you to select the specific change packages you want<br />

to include.<br />

Ignore Update Revision Entries Ignores update revision entries in a change package. There is no user prompt.<br />

9 To run the Resync CP <strong>com</strong>mand with the selected options, click Finish.<br />

If you selected the Backfill option Ask to Specify, the Select Change<br />

Package(s) for Backfill dialog box is displayed.<br />

425


Chapter 12: Advanced Change Package Operations<br />

426<br />

10 Select the change package(s) you want to include in the resync<br />

operation and then click OK.<br />

NOTE<br />

At this time, the Resync CP <strong>com</strong>mand can only merge around a consecutive<br />

range of revisions.<br />

The Confirm Change Package Application dialog box is displayed.<br />

Under the Query tab, information is provided on the operations to be<br />

performed.<br />

u s e r g u i d e


Using the Resync CP Command<br />

Under the Warnings tab, information is provided on the change<br />

packages associated with intermediate revisions.<br />

427


Chapter 12: Advanced Change Package Operations<br />

428<br />

11 To <strong>com</strong>plete the Resync CP operation, click Yes.<br />

Source Integrity <strong>com</strong>pletes the Resync CP operation or returns<br />

information on errors and warnings if the <strong>com</strong>mand cannot be<br />

successfully <strong>com</strong>pleted.<br />

NOTE<br />

Working With a Resolution CP<br />

To see any change packages that have been applied between two revisions of a<br />

project, use View Project Differences. For more information on viewing project<br />

modifications, see “Viewing Project Differences” on page 275.<br />

There are instances when the Apply CP <strong>com</strong>mand does not work on a set<br />

of change packages because merging is required. When this happens, the<br />

Resync CP <strong>com</strong>mand must be used to automate the required merging.<br />

Once the Resync CP operation is <strong>com</strong>pleted, the modified files that result<br />

from those merges are transferred to your sandbox. To apply the changes,<br />

you must then check in those modified files.<br />

For a development team using the change package methodology, the check<br />

in of the modified files requires an associated issue and change package.<br />

Once the issue has been created, the files can then be checked into the<br />

associated change package and the development path updated with the<br />

merged files.<br />

If other developers want to apply the same set of change packages, how<br />

can they be certain that the changes made relate only to the target feature<br />

and that no other changes have been checked in? To be absolutely certain,<br />

they would have to repeat the original Resync CP operation—a significant<br />

duplication of effort. Otherwise, they would have to resynchronize using<br />

the original set of change packages and possibly accept additional,<br />

unwanted changes that were selected during the first Resync CP operation.<br />

To avoid this uncertainty and duplication of effort, there is a mechanism<br />

for recording all change packages that have been applied, including the<br />

merge conflicts that have been resolved. The resolution change package is<br />

the mechanism for recording these changes.<br />

A resolution change package is a specialized change package that records<br />

all applied change packages, resolved conflicts, checked in modified files,<br />

and conflicts resolved by merging. A resolution change package is applied<br />

u s e r g u i d e


Working With a Resolution CP<br />

when an Apply CP operation has failed due to unresolved conflicts that<br />

require merging. Resolution change packages are created through the<br />

Resync CP operation and cannot be manually created by the user.<br />

In addition, you can only apply one resolution change package during<br />

each Apply CP operation, and if you select a resolution change package,<br />

you cannot apply any other change packages during that operation.<br />

Therefore, the applied changes are strictly limited and defined. Anyone<br />

wanting a specific set of changes can then select the associated resolution<br />

change package, run the Apply CP <strong>com</strong>mand, and obtain the same results.<br />

What Is a Resolution Change Package?<br />

A resolution change package is similar to a normal change package except<br />

that it contains additional information on:<br />

change packages that are to be applied<br />

modified files that have been checked in<br />

conflicts that have been addressed by merging<br />

When Should I Use a Resolution Change Package?<br />

You need to use a resolution change package if an Apply CP operation has<br />

failed because merging is required and you want to record all merge<br />

operations required to address the issue. To record accurately the results of<br />

the required merge operations, you should use a resolution change<br />

package.<br />

Resolution change packages are particularly useful for assisting<br />

buildmasters to <strong>com</strong>plete their work. When an Apply CP operation has<br />

failed, developers can identify the dependencies and required merges, and<br />

include all the necessary changes in a single resolution change package.<br />

The buildmaster can then redo the Apply CP operation using that<br />

resolution change package. This reduces the amount of decision-making<br />

required of the buildmaster and allows developers to resolve the conflicts<br />

in their own files.<br />

How Is a Resolution Change Package Created?<br />

A resolution change package is created only through the Resync CP<br />

operation. Using the graphical user interface, you can select an existing<br />

change package—or create a new one—and then ask Source Integrity to<br />

use this as a resolution change package. The only requirement is that the<br />

change package must be in the Open state.<br />

The change package you ask Source Integrity to use may or may not<br />

contain entries (that is, files), but for the greatest level of control in isolating<br />

a feature or issue, it is preferable to start with an empty change package.<br />

429


Chapter 12: Advanced Change Package Operations<br />

Key Resolution<br />

CP Concepts<br />

430<br />

The process for creating a resolution change package is as follows:<br />

1 You create a normal change package and, during a Resync CP<br />

operation, you ask Source Integrity to use it as a resolution change<br />

package for recording all conflicts.<br />

Source Integrity takes the specified change package and adds a<br />

resolution list, thereby making it into a resolution change package.<br />

2 Once all the merge conflicts are addressed, you can do one of the<br />

following:<br />

You submit the resolution change package and Source Integrity<br />

applies the changes.<br />

You submit the resolution change package without updating<br />

member revisions; then the Buildmaster applies the resolution<br />

change package at the time the software is built.<br />

Submitting the resolution change package causes Source Integrity to<br />

apply the change package. If reviews are mandatory, the apply CP<br />

<strong>com</strong>mand records the applied changes in another change package that<br />

then follows the review process (see “Change Package Review<br />

Process” on page 240).<br />

Are There Any Limitations When Using a Resolution CP?<br />

To avoid the problem of overlaps and conflicts during the Apply CP<br />

operation, you can only apply one resolution change package per<br />

operation.<br />

The next three sections describe how to work with a resolution change<br />

package. The topics covered are:<br />

key concepts (see “Key Resolution CP Concepts” on page 430)<br />

an example (see “How Resolution CPs Work” on page 431)<br />

procedures for the graphical user interface (“To create a resolution<br />

change package in the graphical user interface” on page 434)<br />

The following lists the key concepts associated with resolution change<br />

packages:<br />

A resolution change package records all the required changes needed<br />

to address the conflicts (or required merging) found when the Apply<br />

CP <strong>com</strong>mand fails. All conflicts identified by Source Integrity are<br />

represented in the change package as deferred Update entries<br />

(representing a deferred check in).<br />

u s e r g u i d e


How Resolution<br />

CPs Work<br />

Working With a Resolution CP<br />

A resolution change package works by stating that entries in the<br />

resolution change package supersede corresponding entries found in<br />

change packages on the resolution list. Thus, if you perform a merge<br />

from a branch and check the result into a resolution change package,<br />

the resulting revision supersedes any entries in the listed change<br />

packages that might be on branches.<br />

A resolution change package is created through the Resync CP<br />

operation. There is no way to manually create a resolution change<br />

package.<br />

You can select an existing change package—or create a new one—and<br />

then ask Source Integrity to use it as a resolution change package. The<br />

only requirement is that the change package must be in the Open state.<br />

For the greatest level of control in isolating a feature or issue, it is<br />

preferable to start with an empty resolution change package. When<br />

the resolution change package contains no previous entries, the only<br />

additions will be those that specifically relate to the issue in question.<br />

If the resolution change package contains other change package<br />

entries, Source Integrity will also process those entries.<br />

To avoid the problem of overlaps and conflicts during the Apply CP<br />

operation, you can only apply one resolution change package per<br />

operation.<br />

The abcBusiness <strong>com</strong>pany has two development teams:<br />

a Product Team that develops new features and software for the main<br />

release cycle<br />

a Maintenance Development Team that maintains the released<br />

software and addresses bugs that are identified by customers<br />

The Product Team (PT) implements new features and designs on the main<br />

development path.<br />

The Maintenance Development Team (MDT) works on a variant<br />

development path for Release 2.0 and fixes any problems in the newlyreleased<br />

product. The main goal of this team is to produce bug fixes for<br />

Release 2.0a. The work process for the MDT is:<br />

A bug is reported by a customer.<br />

A change package for the bug is created, in this case it has the<br />

container ID 1204. If the Integrity Manager integration is enabled, an<br />

issue is created and then associated with a created change package.<br />

An MDT developer is assigned to fix the problem.<br />

431


Chapter 12: Advanced Change Package Operations<br />

Using a<br />

Resolution CP<br />

432<br />

The MDT developer creates a change package.<br />

The MDT developer makes the necessary changes and tests the code.<br />

The MDT developer checks the modified files back into the variant<br />

project, making sure to associate the files with change package 1204:1.<br />

In this case, all the work of the MDT developer is now checked into the<br />

variant development path and will be part of release 2.0a. However, what<br />

is the best method for transferring the MDT bug fix work back to the main<br />

development path so that it can be incorporated into the next product<br />

release? The Resync CP <strong>com</strong>mand is the best option for applying the new<br />

fix.<br />

A PT developer can now create a second change package, 1204:2 for the<br />

same issue. The second change package would include the summary<br />

“Applied fix to main development path”. The PT developer would start<br />

the Resync CP <strong>com</strong>mand, select the main development sandbox, and the<br />

first change package—1204:1—in this issue. The second change package—<br />

1204:2—would be used as a resolution change package.<br />

Once all merges have been resolved, the developer submits the resolution<br />

and Source Integrity applies the changes from the referenced change<br />

packages.<br />

The bug fix is now addressed in both the main and variant development<br />

paths, ensuring that the problem is fixed in the Release 2.0a and the next<br />

major product release.<br />

The basic process for resolving conflicts is to apply the target change<br />

package using the Apply CP <strong>com</strong>mand. If the Apply CP operation fails<br />

because of a merge conflict, you must then use the Resync CP <strong>com</strong>mand to<br />

create a resolution change package. That resolution change package is then<br />

submitted, and Source Integrity applies the changes to the project.<br />

The process involves the following key steps:<br />

Use the Apply CP <strong>com</strong>mand to apply a change package to the main<br />

trunk of development.<br />

If Apply CP fails due to a required merge, use the Resync CP<br />

<strong>com</strong>mand on the same change package and create a new resolution<br />

change package. Resync CP places the required files, locked, in your<br />

sandbox.<br />

Verify the merges to ensure they are correct.<br />

In your sandbox, check in the members, making sure to associate them<br />

with the newly created resolution change package.<br />

u s e r g u i d e


Working With a Resolution CP<br />

Submit that resolution change package, thereby applying the changes<br />

to the project.<br />

The Apply CP <strong>com</strong>mand works directly in the project, adding and<br />

dropping files, and updating file revisions as required to apply the<br />

resolution change package and update the project.<br />

It is important to note that while Resync CP can be used to apply a<br />

resolution change package, the results may not always be acceptable. For<br />

example, if your bug fix is in an existing project member, there would<br />

already be an archive for that member in the project. As a result, Resync CP<br />

would add the modified member on a branch. This additional branching<br />

might not be acceptable in your project.<br />

Resolving Binary Conflicts<br />

When a conflict between two revisions of a binary file is encountered,<br />

Source Integrity replaces the sandbox working file for that member with<br />

the destination revision and marks it as a conflict. The destination revision<br />

appears in the resolution change package as a deferred Check In entry<br />

(representing a deferred check in of the working file).<br />

For example, if revision 1.1 and 1.1.1.1 are both update revision entries of a<br />

binary member in a change package that require a merge with member<br />

revision 1.2, then the contents of revision 1.1.1.1 are used for the sandbox<br />

working file of member revision 1.2. Revision 1.2 appears as a deferred<br />

Check In entry in the resolution change package. No <strong>com</strong>parison of<br />

binary file content is provided. When the change package is submitted (or<br />

member checked in) the member revision is 1.3.<br />

You can resolve the conflict in one of the following ways:<br />

Use Target Revision<br />

Submit the changes in the resolution change package, thereby<br />

checking in the destination revision for the binary member (or<br />

manually submit the deferred check in of the destination revision).<br />

Perform Manual Binary Merge<br />

Using a third-party tool outside of Source Integrity, perform a binary<br />

merge on the affected member. Then submit the changes in the<br />

resolution change package (or manually submit the deferred check in<br />

of the destination revision).<br />

Use Original Revision<br />

Discard the deferred Check In entry corresponding to the conflict,<br />

effectively using the original revision instead of the destination<br />

revision. To resolve conflict, indicate the desired revision by using a<br />

433


Chapter 12: Advanced Change Package Operations<br />

Resolution CP<br />

Procedures<br />

434<br />

deferred Update Revision operation that specifies the desired<br />

revision.<br />

This section outlines the procedures required to work with resolution<br />

change packages in both the graphical user interface and <strong>com</strong>mand line<br />

interface.<br />

To create a resolution change package in the graphical user interface<br />

1 Create an empty change package. Ensure that the empty change<br />

package is in the Open state.<br />

If the Integrity Manager integration is enabled, you can create an issue<br />

that clearly identifies the feature, content, or bug fix you want to<br />

isolate, and then associate it with a created change package. For more<br />

information on creating an issue in Integrity Manager, see the<br />

Integrity Manager <strong>User</strong> <strong>Guide</strong>.<br />

2 Follow steps 1 through 6 of the procedure for resynchronizing a<br />

change package (“To resynchronize a change package in the graphical<br />

user interface” on page 418).<br />

3 To select the options you want Source Integrity to use during the<br />

Resync CP operation, click Next.<br />

The Options panel opens.<br />

u s e r g u i d e


Working With a Resolution CP<br />

4 Select the check box for Create Resolution Change Package option.<br />

5 From the Change Package list, select the change package you created<br />

in step 2.<br />

IMPORTANT<br />

The change package must be in the Open state to select it as a resolution change<br />

package. For the greatest level of control in isolating a feature or issue, it is<br />

re<strong>com</strong>mended that you start with an empty resolution change package. When<br />

the resolution change package contains no previous entries, the only additions<br />

will be those that specifically relate to the issue in question.<br />

6 Select the <strong>com</strong>mand options you want Source Integrity to use when<br />

carrying out the Resync CP operation. For more information on<br />

<strong>com</strong>mand options, refer to the <strong>com</strong>mand options tables (see “Resync<br />

CP General Command Options” on page 423).<br />

435


Chapter 12: Advanced Change Package Operations<br />

436<br />

7 To run the Resync CP <strong>com</strong>mand and create the resolution change<br />

package using the selected options, click Finish.<br />

Source Integrity <strong>com</strong>pletes the Resync CP operation or returns<br />

information on errors and warnings if the <strong>com</strong>mand cannot be<br />

successfully <strong>com</strong>pleted.<br />

Merged results are checked out and locked in your sandbox.<br />

8 Review the results, then defer check in of the files and associate them<br />

with the resolution change package ID. This resolution change<br />

package appears by default as the selected change package.<br />

9 Use the Submit Change Package <strong>com</strong>mand to submit your deferred<br />

changes in the resolution change package (see “Submitting Change<br />

Packages” on page 238).<br />

Source Integrity runs the Apply CP <strong>com</strong>mand on the resolution change<br />

package, reconciling and then applying the changes from both the<br />

specified change packages in the resolution change package and the<br />

new changes in the resolution change package to the project.<br />

NOTE<br />

If reviews are mandatory, Source Integrity runs the Apply CP <strong>com</strong>mand after<br />

the change package is accepted.<br />

Using the Resync By CP Command<br />

The Resync By CP <strong>com</strong>mand is primarily a tool for developers. When you<br />

want to resynchronize files in your sandbox, you usually do so by choosing<br />

individual files and then using the Resynchronize (si resync) <strong>com</strong>mand.<br />

However, if the files you are resynchronizing have changes that are linked<br />

to other files, the standard resync operation would not include those<br />

related files. To resynchronize all related files, you would have to<br />

manually search for all the changes associated with the change package on<br />

the member you are resynchronizing.<br />

The Resync By CP <strong>com</strong>mand automates this process by searching the<br />

change package specified on the member revision you are resynchronizing<br />

and then bringing the changes from the project to your sandbox.<br />

u s e r g u i d e


Using the Resync By CP Command<br />

While the Resync CP <strong>com</strong>mand searches all files related to a selected<br />

change package, and all the change packages that may be associated with<br />

the related files, the Resync By CP <strong>com</strong>mand only processes the change<br />

packages associated with the member you are resynchronizing.<br />

NOTE<br />

Do not use the Resync By CP <strong>com</strong>mand on a resolution change package<br />

containing deferred entries.<br />

How Does the Resync By CP Command Work?<br />

In a Resync By CP operation, the change package list is <strong>com</strong>puted based on<br />

the member you are resynchronizing (whereas in a Resync CP operation,<br />

you explicitly state the list of change packages).<br />

The functioning of Resync By CP is affected by the settings you choose for<br />

the Resync CP <strong>com</strong>mand under Tools > Preferences. This includes the way<br />

in which the backfill list operates. For example, if you specify ask, a backfill<br />

list is displayed. For more information on options for Resync CP, see<br />

“Using the Resync CP Command” on page 406.<br />

When Should I Use the Resync By CP Command?<br />

Developers should use Resync By CP when they want to ensure that they<br />

have all dependent changes associated with a member revision, even if<br />

these changes are contained in other files. For example, a developer needs<br />

to check out (locked) a file and modify it. The developer finds that other<br />

revisions have been checked in since the member was resynchronized in<br />

the sandbox. Because the sandbox is quite large and contains many<br />

unrelated changes, the developer does not want to perform a standard<br />

resynchronization. The Resync By CP option can be used in this situation.<br />

NOTE<br />

The functioning of Resync By CP is affected by the settings you choose for the<br />

Resync CP <strong>com</strong>mand under Tools > Preferences. The Resync By CP operation<br />

always sets the backfill list to Entire Change Packages (cp).<br />

Resync By CP Example<br />

Consider a case where a developer makes a change to a project member,<br />

main.c, and that change requires an additional file, main.h. A standard<br />

resync operation for main.c would not capture main.h.<br />

In the initial stage, sandboxes pointing to the project, include main.c at<br />

revision 1.1.<br />

437


Chapter 12: Advanced Change Package Operations<br />

438<br />

Sandbox - Developer 1<br />

main.c<br />

Project<br />

main.c<br />

Before using Resync By CP in a development environment<br />

Developer 1 then performs the following tasks:<br />

checks out and locks main.c, revision 1.1<br />

makes an update to main.c that requires the main.h file<br />

1.1<br />

CP 21:1<br />

1.1 CP 21:1 main.c<br />

checks in the changes to main.c and associates these changes with CP<br />

22:1<br />

also against CP 22:1, adds main.h as a member of the project<br />

u s e r g u i d e<br />

Sandbox - Developer 2<br />

1.1 CP 21:1


Sandbox - Developer 1<br />

main.c<br />

1.1 CP 21:1<br />

1.2 CP 22:1<br />

main.h 1.1 CP 22:1<br />

Project<br />

main.c 1.1 CP 21:1<br />

1.2 CP 22:1<br />

main.h 1.1 CP 22:1<br />

Using the Resync By CP Command<br />

Sandbox - Developer 2<br />

main.c<br />

1.1 CP 21:1<br />

CP 22:1<br />

main.h CP 22:1<br />

After using Resync By CP in your sandbox to capture all changes<br />

(including new files) contained in the associated change package<br />

When Developer 2 uses the Resync By CP <strong>com</strong>mand to resync main.c, his<br />

sandbox is updated to show that main.c is at 1.2 and that main.h has also<br />

been added to the project as part of CP22:1. To <strong>com</strong>plete the update,<br />

Developer 2 can check the files into his sandbox.<br />

IMPORTANT<br />

If the working file of the member you are resyncing is modified,<br />

Source Integrity asks you to confirm that you want to merge your<br />

modifications into the working file. For more information on merging on a<br />

resync, see “Automatic Merging on Resync” on page 352.<br />

To resynchronize by change package in the graphical user interface<br />

1 With a Sandbox view open, select one or more members that contain<br />

member deltas.<br />

439


Chapter 12: Advanced Change Package Operations<br />

440<br />

2 Select Member > Resynchronize By Change Package.<br />

If the working file is writable, you are asked to confirm overwriting it.<br />

3 To resynchronize the member, click Yes. For multiple members, click<br />

Yes to All.<br />

The selected member is updated.<br />

NOTE<br />

When using the Resync By CP <strong>com</strong>mand on a change package with entries that<br />

add members to a project, after the <strong>com</strong>mand <strong>com</strong>pletes you must resync each<br />

added member to obtain a working file.<br />

u s e r g u i d e


$ 3 3 ( 1 ' , ;<br />

Views<br />

Annotated<br />

Revision View<br />

A<br />

This appendix provides additional information about the views that are<br />

available in the Source Integrity graphical user interface and Web<br />

Interface.<br />

The Annotated Revision view displays the following information:<br />

Revision displays the revision number for each annotated block.<br />

Author displays the author of the revision.<br />

Date displays the date each member revision was created.<br />

Line displays the line number for each line of text in the revision.<br />

Revision Contents displays the text contained in each annotation<br />

block.<br />

To customize the fields displayed in the Annotated Revision view<br />

(graphical user interface only), see “View Preferences” on page 61.<br />

Select an annotation block, then from the History menu, select one of the<br />

following:<br />

Revision Information, see “Viewing and Editing Revision Information”<br />

on page 314.<br />

View Revision, see “Viewing a Member’s Working File or Revision” on<br />

page 322.<br />

View Member History, see “Viewing a Member History” on page 310.<br />

From the Change Package menu, select one of the following:<br />

View Change Package, see “Using Change Packages and Reviews” on<br />

page 213.<br />

View Issue, see “Viewing a Change Package’s Issue” on page 376.<br />

441


Appendix A: Views<br />

Archive<br />

Information<br />

View<br />

442<br />

The Archive Information displays information for a specified member<br />

archive.<br />

The General panel specifies general archive information options.<br />

Member Name is the path and name of the member that the archive is<br />

for.<br />

Project/Sandbox Name is the path and name of the member’s project<br />

or sandbox.<br />

Archive Name is the path and name of the displayed archive.<br />

Archive Type displays the type of data stored in the archive.<br />

Default Branch specifies the starting point of the default branch. To<br />

specify a default branch, enter a branch number in the Default Branch<br />

field, for example, 2.1.1.<br />

Strict Locking specifies if a strict locking policy is in effect for the<br />

archive. With strict locking on, a user must have a revision locked<br />

before checking in any changes. To enable strict locking, select the<br />

Strict Locking option.<br />

Compressed specifies if the archive is <strong>com</strong>pressed. To <strong>com</strong>press the<br />

archive, select the Compressed option.<br />

Store by Reference causes each revision to be saved to a separate file,<br />

instead of saving all revisions to one file. This feature improves<br />

performance for archives that contain large binary files. To store the<br />

archive by reference, select the Store by Reference option.<br />

u s e r g u i d e


Change<br />

Package View<br />

Change Package View<br />

Archive Description describes the archive. If necessary, enter or edit a<br />

description.<br />

The Labels panel displays a list of revision labels in the archive, for<br />

example, Draft1 1.1.<br />

The Locks panel displays a list of users who have locks on revisions in the<br />

archive, for example, sholmes 1.2.<br />

Source Integrity provides a way to view change package details and<br />

entries from one view in both the graphical user interface and Web<br />

interface.<br />

The Change Package view has the following three tabs:<br />

The Attributes panel displays the change package ID, summary, the<br />

current change package state, person who created the change package,<br />

date the change package was created, and description (if one was<br />

provided).<br />

By default, the Entries panel displays the following information for<br />

each change package entry:<br />

Type is the entry type of the change package entry. For<br />

information on possible entry types, see “Change Package Entry<br />

Types” on page 220.<br />

Member displays name of the member in the change package<br />

entry.<br />

When it is a Rename entry type, the member name is displayed<br />

with the form: newname(oldname).<br />

Revision displays the number of the revision in the change<br />

package entry.<br />

Sandbox displays the name of the sandbox where the deferred<br />

operation or check out took place.<br />

443


Appendix A: Views<br />

Change<br />

Packages View<br />

444<br />

Project displays the name and path of the project that the member<br />

belongs to. If the entry occurred from a shared subproject, it is the<br />

subproject name and path that are displayed.<br />

Variant displays the name of the variant development path (if a<br />

variant was used) the change package entry occurred on.<br />

Date Changed displays the date the entry was made.<br />

Server displays the host name of the server the entry was made<br />

on.<br />

In the GUI, additional columns are available in the client preferences.<br />

To change the displayed columns, see “View Preferences” on page 61.<br />

If reviews are mandatory, the Review Log panel displays review<br />

information. For more information, see “Viewing the CP Review Log”<br />

on page 250.<br />

The Change Packages view and Manage Change Packages window display<br />

information in the same way. The Manage Change Packages window only<br />

displays change your open change packages (see “Managing Change<br />

Packages” on page 220), whereas the Change Packages view displays all<br />

change packages queried (see “Finding Change Packages” on page 222).<br />

By default, the Change Packages view displays the following information:<br />

ID displays the change package ID.<br />

Issue displays the issue ID if Integrity Manager is enabled.<br />

Creator displays the username of the person who created the change<br />

package.<br />

State displays current state of the change package, which can be Open<br />

or Closed.<br />

Summary displays the summary statement for the change package.<br />

Additional columns are available in the client preferences. To change the<br />

displayed columns, see “View Preferences” on page 61.<br />

From the Change Packages view, you can perform the following tasks<br />

using the Change Package menu:<br />

View Change Package entries and information (see “Viewing Change<br />

Package Details and Entries” on page 226)<br />

View Issue that is associated with the change package (see “Viewing a<br />

Change Package’s Issue” on page 376)<br />

Submit the change package (see “Submitting Change Packages” on<br />

page 238)<br />

u s e r g u i d e


Graphical<br />

History View<br />

(GUI)<br />

Graphical History View (GUI)<br />

Close a Change Package (see “Closing a Change Package” on<br />

page 235)<br />

Edit an existing Change Package (see “Editing a Change Package” on<br />

page 233)<br />

Discard an existing change package (see “Discarding Change<br />

Packages” on page 236)<br />

Accept casts an accept vote on a change package that is under review<br />

(see “Accepting a Change Package” on page 245<br />

Reject rejects a change package that is under review (see “Rejecting a<br />

Change Package” on page 247).<br />

Create a new Change Package (see “Creating a Change Package” on<br />

page 217)<br />

Source Integrity’s Graphical History view provides a <strong>com</strong>prehensive<br />

picture of the evolution of a project or member from the Project History or<br />

Member History view. The view is designed to clearly display the path of<br />

development from revision to revision, including branches, variants, and<br />

merge lines.<br />

Like the List view, information such as author, state, date, description,<br />

locker, and change package (if one exists) is presented in the Graphical<br />

History view. These details display in a ToolTip when you place the mouse<br />

pointer on a specific revision. Labels appear to the right of the revision,<br />

while icons, like the locked icon, or the working file icon, appear to the left<br />

of the revision.<br />

445


Appendix A: Views<br />

446<br />

Examples of Project History and Member History in the Graphical<br />

History view<br />

Member Histories and Project Histories, whether displayed in the<br />

Graphical History view or List view, can be manipulated with the same<br />

operations, and with a new set of filters specific to the Member History and<br />

Project History views.<br />

For more information on Member History view filters, see “Member<br />

History Filters” on page 311, and on Project History view filters, see<br />

“Project History Filters” on page 264.<br />

u s e r g u i d e


Graphical History View (GUI)<br />

Selecting Revisions in the Graphical History View<br />

(GUI)<br />

Although revisions in the Graphical History view are presented as objects,<br />

you can select them in order to perform operations, just as you would in<br />

the List view.<br />

When you click a revision, a blue outline appears around the object to<br />

indicate that it is selected. You can use SHIFT+click or CTRL+click to select<br />

multiple revisions.<br />

The following tables outline operations available in the Member History<br />

and Project History views, including where you can find the<br />

corresponding procedures.<br />

Member History Operations<br />

For Operation ... See …<br />

Check Out “Checking Out a Member” on page 178<br />

Check In “Checking In a Member” on page 186<br />

Revert “Discarding Changes to a Member” on page 196<br />

View Revision “Viewing a Member’s Working File or Revision” on<br />

page 322<br />

View Annotated<br />

Revision<br />

“Viewing an Annotated Revision” on page 316<br />

Differences “Comparing Revisions” on page 331<br />

Lock “Locking a Member” on page 198<br />

Unlock “Unlocking a Member” on page 200<br />

Add Label “Adding Labels to Members” on page 297<br />

Delete Label “Deleting Member Labels” on page 298<br />

Promote “Promoting Members” on page 299<br />

Demote “Demoting Members” on page 300<br />

Set Member Revision “Setting the Member Revision” on page 330<br />

Archive Information “Viewing and Editing Archive Information” on<br />

page 312<br />

Revision Information “Viewing and Editing Revision Information” on<br />

page 314<br />

Delete Revision “Deleting Revisions” on page 331<br />

447


Appendix A: Views<br />

448<br />

For Operation ... See …<br />

Merge “Merging Revisions” on page 353<br />

View Change Package “Viewing Change Package Details and Entries” on<br />

page 226<br />

Merge Branch “Step Two: Merge Branch” on page 345<br />

Project History Operations<br />

For Operation ... See …<br />

Add Label “Adding Project Labels” on page 265<br />

Delete Label “Deleting Project Labels” on page 266<br />

Promote “Promoting a Project” on page 267<br />

Demote “Demoting a Project” on page 268<br />

View Project Differences “Viewing Project Differences” on page 275<br />

Open Build Project “Opening a Build Project” on page 265<br />

Create Development Path “Creating a Development Path” on page 147<br />

Remove Development Path “Removing a Development Path” on page 149<br />

Dragging in the Graphical History View (GUI)<br />

Dragging is a unique function of the graphical history view, available only<br />

through the Member History view.<br />

In the graphical history view of the Member History view, you can use the<br />

drag method to merge branched revisions. For more information on<br />

branching and merging, see “Step Two: Merge Branch” on page 345.<br />

View Options (GUI)<br />

You can alter the display of information in the graphical history view by<br />

modifying the view options. View options allow you to decide to show<br />

labels, show the legend, and adjust the zoom to suit your needs.<br />

The legend and labels display by default, and the default zoom is set at 100<br />

percent.<br />

To hide labels in the Graphical History view<br />

With a Member History or Project History view open, select View > Show<br />

Labels. The labels disappear from the Graphical History view.<br />

u s e r g u i d e


Graphical History View (GUI)<br />

A check mark next to Show Labels indicates that the Graphical History<br />

view is displaying labels. If a check mark does not appear next to Show<br />

Labels, then the labels are already hidden.<br />

To display the labels, select View > Show Labels. The labels reappear in the<br />

Graphical History view.<br />

To hide the legend in the Graphical History view<br />

With a Member History or Project History view open, select View > Show<br />

Legend. The legend disappears from the Graphical History view.<br />

A check mark next to Show Legend indicates that the Graphical History<br />

view is displaying the legend. If a check mark does not appear next to<br />

Show Legend, then the legend is already hidden.<br />

To display the legend, select View > Show Legend. The legend reappears in<br />

the Graphical History view.<br />

To adjust the zoom in the Graphical History view<br />

With a Member History or Project History view open, from the View menu,<br />

select one of the following:<br />

Zoom 100%<br />

Zoom 75%<br />

Zoom 50%<br />

Zoom to Fit<br />

A bullet next to the zoom indicates the current zoom setting.<br />

To show metadata in the Graphical History view<br />

With a Member History or Project History view open, select View > Show<br />

Metadata.<br />

A box containing truncated metadata appears beside each revision. Point<br />

to the box to display a tooltip that contains the full metadata for the<br />

revision.<br />

Changing Views (GUI)<br />

The Graphical History view is the default view in the Member History and<br />

Project History views. If you prefer to view information in these views in<br />

tabular form, you can toggle to the List view.<br />

If you prefer to always view a Member History or Project History in the<br />

List view first, you can change the default view setting in Preferences.<br />

449


Appendix A: Views<br />

Locks View<br />

450<br />

For information on setting the default view in the Member History or<br />

Project History views, see “View Preferences” on page 61.<br />

To view a Member History or Project History in List view<br />

With a Member History or Project History view open, select View > List.<br />

A bullet next to the view menu item (Graphical or List) indicates the<br />

current view.<br />

The Member History or Project History appears as a list.<br />

To view a Member History or Project History in the Graphical History<br />

view<br />

With a Member History or Project History view open, select View ><br />

Graphical.<br />

A bullet next to the View menu item (Graphical or List) indicates the<br />

current view.<br />

The Member History or Project History appears in the Graphical History<br />

view.<br />

The Locks view displays the following information:<br />

Project displays the name and path of the project where the member<br />

revision was locked from. If the member revision was locked from a<br />

shared subproject, it is the subproject name and path that are<br />

displayed.<br />

Member Name displays the member name for the locked revision.<br />

Revision displays the locked revision number.<br />

Time displays the time the revision was locked<br />

You can also display other columns such as Archive Name, Host, <strong>User</strong>, C.P.<br />

ID, Sandbox, Development Path. For more information, see “View<br />

Preferences” on page 61.<br />

You can perform the following tasks:<br />

To delete a lock or locks, select a list item and then select Locks ><br />

Unlock.<br />

The revision is unlocked.<br />

To refresh the list of locked revisions, select Locks > Refresh.<br />

The list is updated.<br />

u s e r g u i d e


Member History<br />

View<br />

Member History View<br />

To change the user (GUI only) whose locks are displayed, select Locks<br />

> Change <strong>User</strong>.<br />

The Retrieve All Locks for a <strong>User</strong> dialog box is displayed.<br />

From the Locker list, select the name of the user whose locks you want<br />

to view, then click OK.<br />

The user’s locks are displayed in the Locks for <strong>User</strong> window.<br />

NOTE<br />

From the Locks view, you cannot remove another user’s lock on a member that<br />

was locked from a shared subproject.<br />

Member History View (GUI)<br />

When you open a member history, Source Integrity displays its contents in<br />

a Member History view. The default view for the Member History view is<br />

the Graphical History view, but you can toggle to the List view as well. For<br />

more information on using the Graphical History view, see “Graphical<br />

History View (GUI)” on page 445.<br />

In the Member History view title bar, the name of the member you are<br />

viewing is listed. To see the project that the member belongs to, in the<br />

Graphical History view, point to the first revision. In the List view, point to<br />

the revision icon ( ). A ToolTip appears displaying the project name and<br />

path.<br />

You can apply filters in the Member History view to view and manipulate<br />

a subset of revisions. For information on applying filters in the Member<br />

History view, see “Member History Filters” on page 311.<br />

For information on toggling between the Graphical History view and the<br />

List view in the Member History view, see “Changing Views (GUI)” on<br />

page 449.<br />

The information in the List view of the Member History view displays in<br />

columns with headings and icons. For information on how to configure the<br />

column set, see “Configuring the Source Integrity Column Set” on page 80.<br />

Depending on your view preferences, your Member History view displays<br />

may be different than the default preferences described here. For more<br />

information on View Preferences, see “View Preferences” on page 61.<br />

The following outlines the default column set and what they display:<br />

451


Appendix A: Views<br />

452<br />

The member’s path and name, for example, c:\sandboxdemo\<br />

demoap.c, appears in the first row underneath the columns. If the<br />

working file can be edited, the entry is preceded by a document and<br />

pencil icon ( ). If the working file is read-only, the document and<br />

pencil icon is crossed out with a red line ( ).<br />

Revision displays the following information:<br />

the revision that the working file corresponds to, indicated by<br />

a white document icon<br />

the member’s revision, indicated by a blue striped document<br />

icon<br />

a list of the revisions in the member history, for example, 1.1,<br />

1.2, 1.3, and so on<br />

Author is the user who checked in the revision.<br />

Date is the date and timestamp of the revision. The date and<br />

timestamp can be either the check in time and date or the date and<br />

time the file was last modified, depending on how the user checks in<br />

the file.<br />

Locked displays a revision’s lock status with a padlock and the<br />

date and time the lock occurred and the name of the user who locked<br />

the revision.<br />

Labels are the labels attached to the revision, for example, Draft1.<br />

State is the revision’s state, for example, Beta.<br />

C.P. ID displays the revision’s associated change package ID, for<br />

example, 8230:3. For more information on change packages, see<br />

“Using Change Packages and Reviews” on page 213.<br />

When Track Locks are enabled, the C.P.ID column displays a lock<br />

change package ID assigned during any lock procedure. In all other<br />

cases, the C.P.ID column displays the member revision change<br />

package ID. For more information on Track Locks, see your<br />

administrator.<br />

Revision Description displays the <strong>com</strong>ments that were assigned to the<br />

revision when it was checked in.<br />

Select a revision by clicking it or moving the selector bar to it with the<br />

cursor keys.<br />

A box below the list of revisions displays the revision description for the<br />

currently selected revision. As you move the selector bar from one revision<br />

to another, the description changes to reflect the currently selected<br />

revision.<br />

u s e r g u i d e


Member History View<br />

The Member History view can be resized within the Source Integrity<br />

application window’s workspace or reduced to an icon in the application<br />

window.<br />

The Member History view also supports standard shortcut menus.<br />

Selecting and right clicking a revision in a Member History view displays a<br />

menu of actions you can perform on the selected revision.<br />

Member History View (Web)<br />

When you open a member history, Source Integrity displays its contents in<br />

a Member History view.<br />

To view the Member History view, do one of the following:<br />

select Member > View Member History<br />

click the member name link in the Project view<br />

The information in a Member History view displays in columns with the<br />

following headings and icons:<br />

The member’s path and name, for example:<br />

readme.txt in Project: c:/Libra_Program/project.pj<br />

Revision displays the following information:<br />

the member’s revision, indicated by a blue striped document<br />

icon<br />

a list of the revisions in the member history, for example, 1.1,<br />

1.2, 1.3, and so on<br />

Author is the user who checked in the revision.<br />

453


Appendix A: Views<br />

Member<br />

Information<br />

View<br />

454<br />

Date is the date and timestamp of the revision. The date and<br />

timestamp can be either the check in time and date or the date and<br />

time the file was last modified, depending on how the user checks in<br />

the file.<br />

Locked displays a revision’s lock status with a padlock and the<br />

date and time the lock occurred and the name of the user who locked<br />

the revision.<br />

Labels are the labels attached to the revision, for example, Draft1.<br />

State is the revision’s state, for example, Development.<br />

C.P. ID displays the revision’s associated change package ID, for<br />

example, 19:1. The change package ID is displayed as a hyperlink<br />

that opens the change package. For more information on change<br />

packages, see “Using Change Packages and Reviews” on page 213.<br />

Source Integrity displays a lock change package ID (a change package<br />

assigned during a checkout) in priority over the member revision<br />

change package ID (the change package assigned during a check in)<br />

when Track Locks are enabled. For more information on Track Locks,<br />

see your administrator.<br />

The Member Information view displays information about a specified<br />

member.<br />

The Member Information dialog box presents the following information on<br />

the General panel:<br />

Member Name is the path and name of the member.<br />

u s e r g u i d e


Non-Members<br />

View<br />

Non-Members View<br />

Project/Sandbox Name is the path and name of the member’s project<br />

or sandbox.<br />

NOTE<br />

As part of the Change Package review process, if the member has a pending<br />

operation against it or one of its revisions, the information appears in a note,<br />

for example, This member has a pending update to member<br />

revision 1.2 by devans.<br />

Member Revision is the displayed member revision. To select another<br />

member revision, choose a revision from the Member Revision list.<br />

Created By is the name of the user who created the revision and the<br />

date and time it was created.<br />

Locked By is the name of the user who locked the revision, and the<br />

date and time it was locked.<br />

Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />

where the lock on the revision was made.<br />

State is the state assigned to the revision. To change the state of the<br />

revision, choose a state from the State list. For more information on<br />

states, see “Promoting Members” on page 299.<br />

Revision Description is a brief description of the revision. You cannot<br />

change an existing revision description from this dialog box, but you<br />

can append additional <strong>com</strong>ments to it. To do so, enter any<br />

supplemental information in the Revision Description field below the<br />

present information (indicated by a line if an existing description is<br />

present).<br />

For information on the Attributes tab, see “To view or edit member<br />

attributes in the graphical user interface” on page 290. For information on<br />

the Labels tab, see “To view or edit member labels in the graphical user<br />

interface” on page 292. For information on the Change Package tab, see<br />

“To view a member’s change package information in the graphical user<br />

interface” on page 230.<br />

The Non-Members view displays the following information:<br />

Closest Project displays the project or subproject, with file path,<br />

corresponding to the sandbox that is closest to the directory<br />

containing the file.<br />

Closest Sandbox displays the sandbox or subsandbox, with file path,<br />

that is closest to the directory containing the file.<br />

455


Appendix A: Views<br />

456<br />

Member ID displays the default member name for the file as it would<br />

appear if it was added to the nearest project. In the case where the<br />

nearest project is subproject, the relative path is displayed with the<br />

member name.<br />

Absolute Path displays the absolute file path of the file.<br />

Size displays the size of the file in bytes.<br />

Last Modified displays the date that the file was last modified.<br />

You can modify which columns appear in the Non-Members view by<br />

changing the Non-Members view preferences. For more information, see<br />

“View Preferences” on page 61.<br />

From the Non-Members view, the following operations can be performed:<br />

To add non-member files to the project, select the member in the list,<br />

then do one of the following:<br />

Select Non-Member > Add.<br />

Click .<br />

<br />

For more information, see “Adding Members to a Project” on<br />

page 157.<br />

To delete non-member files from the sandbox directory, select the<br />

members in the list, then do one of the following:<br />

Select Non-Member > Delete.<br />

Click .<br />

To edit non-member files, select the members in the list, then do the<br />

following:<br />

Select Non-Member > Edit.<br />

Click .<br />

To change the filter criteria, do one of the following:<br />

Select View > Filters.<br />

Click .<br />

For more information, see “Filtering Non-Member Files” on page 156.<br />

To refresh the contents of the view, select View > Refresh.<br />

u s e r g u i d e


Project View Project Views (GUI)<br />

TIP<br />

Project View<br />

To add non-member files to a project or subproject, drag the files from the<br />

Non-Members view to the sandbox or subsandbox that corresponds to that<br />

project or subproject in a Sandbox view.<br />

When you open a project, Source Integrity displays its contents in a Project<br />

view.<br />

A project is any group of files that, taken together, forms a single body of<br />

work. Projects are presented in Project views, which list the members of the<br />

project and provide access to them.<br />

Source Integrity allows you to create large projects <strong>com</strong>posed of smaller<br />

<strong>com</strong>ponent projects known as subprojects. Subprojects behave in the same<br />

way as projects. Once you create a subproject, it is considered a member of<br />

the project.<br />

The Project view displays project members and subprojects in a tree<br />

structure. You can expand and collapse a project or subproject tree using<br />

one of the following options:<br />

Double click the project or subproject.<br />

Click the plus or minus icons in the directory list.<br />

Right click the project or subproject, then select Expand All.<br />

Select View > Expand All or View > Collapse All.<br />

Select a member by clicking it or by moving the selector bar to it with the<br />

cursor control keys. Use the up and down arrows to move through the<br />

project hierarchy. Use the right arrow to open a project, revealing its<br />

members. Use the left arrow to close a project.<br />

457


Appendix A: Views<br />

458<br />

A box below the list of members displays all delta information: working<br />

file deltas, new revision (member) deltas, and revision sync deltas. For<br />

example, if the working file has been updated but not checked in, a<br />

message tells you that the working file has been changed.<br />

The information in Project view displays in columns with headings and<br />

icons. For information on how to configure the column set, see<br />

“Configuring the Source Integrity Column Set” on page 80.<br />

Depending on your view preferences, the columns displayed may be<br />

different than the default preferences described here. For more information<br />

on View Preferences, see “View Preferences” on page 61.<br />

The following list outlines the default column set and what they display:<br />

Name displays the following information:<br />

project or subprojects, for example, project.pj<br />

project members, for example, demoapp.c<br />

pending members (or rename to)<br />

pending dropped members (or rename from)<br />

shared subprojects<br />

build configured subprojects<br />

variant configured subprojects<br />

<br />

The working revision number displays when the working file revision<br />

is different from the member revision number.<br />

Working Rev. displays the checked out revision number<br />

corresponding to the member’s working file, for example, 1.2.<br />

Member Rev. displays the member’s revision number, or in the case of<br />

a subproject, the subproject revision number (if any), for example,<br />

1.3.<br />

In the column, a delta symbol with a white document icon<br />

( )means your working file has changed. It also appears when no<br />

working file exists for the member. A description of the changes is<br />

shown at the bottom of the window.<br />

In the column, a delta symbol with a blue striped document<br />

icon indicates that the working revision does not match the member<br />

revision. A description of the changes is shown at the bottom of the<br />

window.<br />

In the column, a snowflake icon means the member is frozen.<br />

When the member is thawed, the snowflake icon disappears.<br />

u s e r g u i d e


Project View<br />

Locked displays a member’s lock status with a padlock and the<br />

date and time the lock occurred and the name of the user who locked<br />

the member.<br />

Labels displays any labels assigned to the member revision, for<br />

example, Draft1.<br />

State displays the state of the member revision, for example, Beta.<br />

Member CPID displays the member’s associated change package ID,<br />

for example, 8230:3. For more information on change packages, see<br />

“Using Change Packages and Reviews” on page 213.<br />

Project View (Web)<br />

When you open a project using the Source Integrity Web interface,<br />

Source Integrity displays its contents in a Project view.<br />

The Project view displays subprojects and project members. You can open<br />

a project or subproject using either of the following options:<br />

Click the project or subproject link.<br />

From the File menu, click Open Project. From the list, select the project<br />

you want to open, and click OK. The list displayed contains only<br />

master projects, subprojects are not accessible by this procedure.<br />

To return to the project, click the project link displayed in the title bar, for<br />

example, Project: c:/Aurora_Program/project.pj.<br />

The information in the Project view displays in columns with the following<br />

headings and icons by default:<br />

459


Appendix A: Views<br />

Project History<br />

View<br />

460<br />

Name displays the following information:<br />

project or subprojects, for example, project.pj<br />

project members, for example, demoapp.c<br />

pending members (or rename to)<br />

pending dropped members (or rename from)<br />

Member Rev. displays the member’s revision number, or in the case of<br />

a subproject, the subproject revision number (if any), for example,<br />

1.3.<br />

In the column, a snowflake icon means the member is frozen.<br />

<br />

When the member is thawed, the snowflake icon disappears.<br />

Locked displays a member’s lock status with a padlock and the<br />

date and time the lock occurred and the name of the user who locked<br />

the member.<br />

Labels displays any labels assigned to the member revision, for<br />

example, Draft1.<br />

State displays the state of the member revision, for example, Beta.<br />

C.P. ID displays the member’s associated change package ID, for<br />

example, 8230:3. The change package ID is displayed as a hyperlink<br />

that displays the change package. For more information on change<br />

packages, see “Using Change Packages and Reviews” on page 213.<br />

Source Integrity displays a lock change package ID (a change package<br />

assigned during a checkout) in priority over the member revision<br />

change package ID (the change package assigned during a check in)<br />

when Track Locks are enabled. For more information on Track Locks,<br />

see your administrator.<br />

Project History View (GUI)<br />

When you open a project history, Source Integrity displays its contents in a<br />

Project History view. The default view for the Project History view is the<br />

Graphical History view, but you can toggle to the List view as well.<br />

For more information on using the Graphical view, see “Graphical History<br />

View (GUI)” on page 445.<br />

You can apply filters in the Project History view to view and manipulate a<br />

subset of revisions. For information on applying filters in the Project<br />

History view, see “Project History Filters” on page 264.<br />

u s e r g u i d e


Project History View<br />

For information on toggling between the Graphical History view and the<br />

List view in the Project History view, see “Changing Views (GUI)” on<br />

page 449.<br />

The information in the List view of the Project History view displays in<br />

columns with headings. For information on how to configure the column<br />

set, see “Configuring the Source Integrity Column Set” on page 80.<br />

Depending on your view preferences, your Project History view displays<br />

may be different than the default preferences described here. For more<br />

information on View Preferences, see “View Preferences” on page 61.<br />

The following outlines the default column set and what they display:<br />

Revision is the revision number.<br />

Author is the user who made a checkpoint of the project revision.<br />

Date is the date and time the project revision was checkpointed.<br />

Labels are the labels attached to the revision, for example, Bug Fixes.<br />

State is the revision’s state, for example, Beta.<br />

Select a revision by clicking it or moving the selector bar to it with the<br />

cursor keys.<br />

A box below the list of revisions displays the revision description for the<br />

currently selected revision. As you move the selector bar from one revision<br />

to another, the description changes to reflect the currently selected<br />

revision.<br />

461


Appendix A: Views<br />

Project<br />

Differences<br />

View<br />

462<br />

The Project History view can be resized within the Source Integrity<br />

application window’s workspace or reduced to an icon in the application<br />

window.<br />

The Project History view also supports standard shortcut menus. Selecting<br />

and right clicking an archive revision in a Project History view displays a<br />

menu of actions you can perform on the selected item.<br />

Project History View (Web)<br />

When you open a project history, the Source Integrity Web interface<br />

displays its contents in a Project History view.<br />

The information in a Project History view displays in columns.<br />

The column headings are as follows:<br />

Revision is the revision number of the member.<br />

Author is the user who checkpointed the project revision.<br />

Date is the date and time the project revision was checkpointed.<br />

Labels are the labels attached to the revision, for example, Bug Fixes.<br />

State is the revision’s state, for example, Beta.<br />

The Project Differences view displays project differences between<br />

checkpoints of project. The changes to a project and its members are not<br />

tracked as they happen, but rather the View Project Differences <strong>com</strong>mand<br />

takes two checkpoints (or one checkpoint and the current version) of the<br />

project and then <strong>com</strong>pares them.<br />

u s e r g u i d e


Project Differences View<br />

The View Project Differences <strong>com</strong>mand can <strong>com</strong>pare the following:<br />

two specified revisions of the project<br />

the current revision of the project with a specified revision<br />

the current version of the project with the last checkpointed revision<br />

For more information, see “Viewing Project Differences” on page 275.<br />

By Member Panel<br />

The By Member panel displays the following information:<br />

Name displays name of the project, subproject, or member changed.<br />

Change displays the operation performed on the member or<br />

subproject, and the resulting revision number.<br />

Selecting a member entry displays the following information:<br />

Revision displays the member’s revision number.<br />

Author displays the author of the revision.<br />

Date displays the date each revision in the history was created.<br />

Labels displays revision labels.<br />

State displays the state of the member revision.<br />

C.P. ID displays the revision’s associated change package ID.<br />

NOTE<br />

Members that were checked in between the two checkpoints without updating<br />

the revision number do not appear in the Project Differences view, and do not<br />

display change package information in the By Change Package panel.<br />

463


Appendix A: Views<br />

Project<br />

Information<br />

View<br />

464<br />

By Change Package Panel<br />

Change package information displayed on the By Change Package panel is<br />

drawn from the modifications calculated from the checkpoint <strong>com</strong>parison.<br />

The By Change Package panel displays the following information:<br />

ID displays the change package ID for change packages that contain<br />

entries with member changes between project revisions<br />

Summary displays the change package summary for change packages<br />

that contain entries with member changes between project revisions.<br />

Modifications that are not associated with a change package (unresolved)<br />

are displayed in the bottom frame of the By Change Package panel. Where<br />

possible, the member or project name is displayed with full path<br />

information.<br />

The following are reasons why modifications can appear in the bottom<br />

frame:<br />

The change package entry is missing; either because one was not<br />

recorded for the member operation, or the entry was discarded.<br />

The operation that made the modification cannot use a change<br />

package, for example, adding a subproject.<br />

The project state captures <strong>com</strong>pared are from different development<br />

paths.<br />

Pending change package entries do not appear in the By Change Package<br />

panel.<br />

The Project Information view displays information for a specified project.<br />

u s e r g u i d e


Registered<br />

Projects View<br />

The General tab displays the following project information:<br />

Project Name is the path and name of the project.<br />

Registered Projects View<br />

Shared From appears only if the project you selected is a shared<br />

subproject and displays the path and name of the project where the<br />

shared subproject originated. For information on Shared Subprojects,<br />

see “Adding a Shared Subproject” on page 127.<br />

Server is the Integrity Server name and port number where the project<br />

resides.<br />

Development Path displays the development path name (if a variant<br />

project on a development path, or project contains a variant subproject<br />

on a development path).<br />

Revision is the project’s current revision number.<br />

Last Checkpointed is the last date and time the project was<br />

checkpointed.<br />

Members is the number of members in the project, not including<br />

subprojects.<br />

Subprojects is the number of subprojects in the project.<br />

Description is a free-form text description of the master project. Edit<br />

the existing description, or enter a new description.<br />

For information about the Attributes tab, see “Working With Project<br />

Attribute Information” on page 259. For information about the<br />

Development Paths tab, see “Working With Development Path<br />

Information” on page 261.<br />

Registered Projects View (GUI)<br />

From the Registered Projects view you can open, create, import, and drop<br />

projects.<br />

When you switch views from a Registered Projects view to another dialog<br />

box or window, the Registered Projects view is no longer visible, but it is<br />

still accessible from the taskbar.<br />

The Registered Projects view contains one tab, Regular, that displays<br />

projects used for regular development.<br />

465


Appendix A: Views<br />

466<br />

The Registered Projects view supports standard shortcut menus. To<br />

display the menu of actions you can perform, select a project or sandbox<br />

and right click. Source Integrity displays the applicable shortcut menu.<br />

Registered Projects View (Web)<br />

The Registered Projects view allows you to view the projects and project<br />

histories that are available on the Integrity Server.<br />

The Registered Projects view displays all regular projects used for<br />

development.<br />

To view the Registered Projects view, select Tools > Manage Projects or<br />

click .<br />

u s e r g u i d e


Registered<br />

Sandboxes<br />

View<br />

Registered Sandboxes View<br />

From the Registered Sandboxes view you can open, create, import, and<br />

drop sandboxes.<br />

When you switch views from a Registered Sandboxes view to another<br />

dialog box or window, the Registered Sandboxes view is no longer visible,<br />

but it is still accessible from the taskbar.<br />

The Registered Sandboxes view contains three tabs that display the<br />

following different types of sandboxes:<br />

Regular is a sandbox used for normal or main project development.<br />

Variant is a sandbox used for branching off the main development<br />

path of a project.<br />

Build is a sandbox based upon a specific revision of a project, typically<br />

used as a reference for building or testing the project. It is not suitable<br />

for further development due to limited project modification abilities.<br />

NOTE<br />

Sandboxes based on configured subprojects do not appear with a configuration<br />

icon in the Registered Sandboxes view. For more information on configured<br />

subprojects, see “Configuring a Subproject” on page 131.<br />

The Registered Sandboxes view supports standard shortcut menus. To<br />

display the menu of actions you can perform, select a project or sandbox<br />

and right click. Source Integrity displays the applicable shortcut menu.<br />

467


Appendix A: Views<br />

Revisions<br />

Information<br />

View<br />

468<br />

The Revision Information view displays information for a specified<br />

revision.<br />

The General tab displays the following information:<br />

Member Name is the path and name of the member.<br />

Project/Sandbox Name is the path and name of the member’s project<br />

or sandbox.<br />

Revision is the revision corresponding to the displayed information. If<br />

the revision is pending, then pending appears in parenthesis (see<br />

“Working With Pending Revisions” on page 335).<br />

Created By is the name of the user who created the revision, and the<br />

date and time it was created.<br />

Locked By is the name of the user who locked the revision, and the<br />

date and time it was locked.<br />

Locked In is the sandbox location and host name of the <strong>com</strong>puter<br />

where the lock on the revision was made.<br />

State is the state assigned to the member. To apply a different state to<br />

the member, choose a state from the State list.<br />

Revision Description is a brief description of the revision. You cannot<br />

change an existing revision description from this dialog box, but you<br />

can append additional <strong>com</strong>ments to it. To do so, enter any<br />

supplemental information in the Revision Description field below the<br />

present information (indicated by a line if an existing description is<br />

present).<br />

u s e r g u i d e


Sandbox View<br />

Sandbox View<br />

For information on the Labels tab, see “To view or edit member labels in<br />

the graphical user interface” on page 292. For information on the<br />

Change Package tab, see “To view a member’s change package<br />

information in the graphical user interface” on page 230.<br />

When you open a sandbox, Source Integrity displays its contents in a<br />

Sandbox view.<br />

Sandboxes can reside on the client machines and allow you to work locally<br />

in your own workspace, without interfering with the work of others. You<br />

can think of the sandbox as a local pointer to the project residing on the<br />

Integrity Server. A sandbox is a mirror image of a Source Integrity project.<br />

Although it looks and acts like the project it mirrors, it is actually a<br />

collection of pointers to its real-life counterparts in the master project.<br />

The Sandbox view displays project members, and subsandboxes in a tree<br />

structure. You can expand and collapse a project, sandbox, and<br />

subsandbox tree using one of the following options:<br />

Double click the sandbox or subsandbox.<br />

Click the plus or minus icons in the directory list.<br />

Right click the sandbox or subsandbox and select Expand All.<br />

Select View > Expand All or View > Collapse All.<br />

Select a member by clicking it or by moving the selector bar to it with the<br />

cursor control keys. Use the up and down arrows to move through the<br />

project or sandbox hierarchy. Use the right arrow to open a project or<br />

sandbox, revealing its members. Use the left arrow to close a project or<br />

sandbox.<br />

A box below the list of members displays all delta information: working<br />

file deltas, new revision (member) deltas, and revision sync deltas. For<br />

example, if the working file has been updated but not checked in, a<br />

message tells you that the working file has been changed.<br />

469


Appendix A: Views<br />

470<br />

The information in Sandbox views is displayed in columns with headings<br />

and icons. For information on how to configure the column set, see<br />

“Configuring the Source Integrity Column Set” on page 80.<br />

Depending on your view preferences, the columns displayed may be<br />

different than the default preferences described here. For more<br />

information, see “View Preferences” on page 61.<br />

The following list outlines the default column set and what they display:<br />

Name displays the following information:<br />

sandbox or subsandboxes, for example, project.pj<br />

sandbox members, for example, demoapp.c<br />

deferred members<br />

deferred dropped members<br />

pending members (or rename to)<br />

pending dropped members (or rename from)<br />

shared subprojects<br />

build configured subprojects<br />

variant configured subprojects<br />

<br />

The working revision number displays when the working file revision<br />

is different from the member revision number.<br />

Working Rev. displays the checked out revision number<br />

corresponding to the member’s working file, for example, 1.2. If it is a<br />

pending revision, pending appears in parenthesis, for example,<br />

1.2 (pending).<br />

Member Rev. displays the member’s revision number, or in the case of<br />

a subproject, the subproject revision number (if any), for example,<br />

1.3.<br />

In the column, a delta symbol with a white document icon<br />

( )means your working file has changed. It also appears when no<br />

working file exists for the member. A description of the changes is<br />

shown at the bottom of the window.<br />

In the column, a delta symbol with a blue striped document<br />

icon indicates that the working revision does not match the member<br />

revision. A description of the changes is shown at the bottom of the<br />

window.<br />

In the column, a snowflake icon means the member is frozen.<br />

When the member is thawed, the snowflake icon disappears.<br />

u s e r g u i d e


Sandbox<br />

Information<br />

View<br />

Sandbox Information View<br />

Locked displays a member’s lock status with a padlock and the<br />

date and time the lock occurred and the name of the user who locked<br />

the member.<br />

Labels displays any labels assigned to the member revision, for<br />

example, Draft1.<br />

State displays the state of the member revision, for example, Beta.<br />

Working CPID (sandbox only) displays the change package associated<br />

with a deferred or a lock operation performed by the current user<br />

from the current sandbox. A icon is displayed beside the change<br />

package ID.<br />

Member CPID displays the member’s associated change package ID,<br />

for example, 8230:3. For more information on change packages, see<br />

“Using Change Packages and Reviews” on page 213.<br />

The Sandbox Information dialog box is displayed.<br />

The General tab displays the following general sandbox information:<br />

Sandbox Name is the path and name of the sandbox.<br />

Project Name is the path and name of the master project.<br />

Server is the Integrity Server name and port number where the master<br />

project resides.<br />

Revision is the master project’s current revision number.<br />

Last Checkpointed is the last date and time the master project was<br />

checkpointed.<br />

471


Appendix A: Views<br />

472<br />

Members is the number of members in the sandbox.<br />

Subsandboxes is the number of subsandboxes in the sandbox.<br />

Sparse setting determines if the selected sandbox is a sparse sandbox.<br />

Shared setting determines if the selected sandbox is a shared sandbox.<br />

Line Terminator setting determines the type of ASCII character<br />

Source Integrity recognizes as the end of a line of text: Native (or<br />

automatic, the default setting), LF (or line feed, primarily for UNIX<br />

applications), or CR/LF.<br />

Project Description is a description of the master project.<br />

For information on the Project Attributes tab, see “Viewing Project<br />

Attributes From a Sandbox” on page 281. For information on the Sandbox<br />

Attributes tab, see “Viewing Sandbox Attributes” on page 282.<br />

u s e r g u i d e


$ 3 3 ( 1 ' , ;<br />

Glossary of Terms<br />

B<br />

A project is any group of files that, taken together, forms a single body of<br />

work. Projects are presented in Project views, which list the members of the<br />

project and provide access to them.<br />

Access Control List See ACL.<br />

ACL An Access Control List (ACL) is a collection of entries that permits<br />

or limits entry to the functionality of a software program or server. The<br />

Access Control List allows the administrator to manage user access by<br />

requiring authentication of the user’s identity or membership in a<br />

predefined group. Access is then granted according to the assigned<br />

permissions. See principals, permissions.<br />

administrator The administrator installs Source Integrity; defines and<br />

customizes projects and policies; and creates and manages user accounts,<br />

allowing users to access the program.<br />

annotated revision Source Integrity provides an annotated revision view<br />

for member revisions. Use it when you want to investigate the reason and<br />

circumstances a revision was introduced or changed. Rather than searching<br />

the content of revisions in the history one revision at a time, you can see the<br />

content and information for all of the revisions in an annotated list.<br />

archive description The archive description contains text that describes<br />

the purpose of an archive. Each time you create an archive, you can assign<br />

to it a description.<br />

archive information Just as it maintains information about each project<br />

member, Source Integrity also maintains historical information about each<br />

member archive called archive information. This information, includes<br />

revision labels, users who have locks on revisions in the archive, the starting<br />

point of the default branch revision, the data type (text or binary), whether<br />

the archive is <strong>com</strong>pressed, whether strict-locking applies to the archive, and<br />

a description of the archive.<br />

archive An archive is a file containing the history of a member (a record<br />

of all the changes made to it since it was put under revision control). From<br />

the information contained in the history, Source Integrity can reconstruct<br />

any previous version of the member. The archive is sometimes referred to<br />

as the RCS file, for historical reasons.<br />

473


Appendix B: Glossary of Terms<br />

474<br />

author name The author name is the name you associate with revisions<br />

upon check in. By default, your author name is your user name.<br />

binary file A binary file contains unprintable characters, or lines too long<br />

to be handled by text editors.<br />

branch A branch is a revision path that diverges from the main line of<br />

development (or trunk) in a member or project history. A branch is typically<br />

created by checking in a file to a revision other than the head revision. The<br />

most recent revision of a branch in a history is called the tip revision. When<br />

you branch a member the working revision number is appended to indicate<br />

the branch. For example, the member features.txt at revision 1.2 is<br />

branched and appears with the working revision number 1.2.1.1.<br />

build project A Build project is a static project based upon a specific<br />

revision of the master project. It is used for building or testing the project,<br />

but not for further development.<br />

change package review A change package review is a review of changes<br />

by specified reviewers before the changes are <strong>com</strong>mitted to the server<br />

repository.<br />

change package reviewer A change package reviewer is a user specified<br />

by your administrator to review change packages containing members<br />

associated with specific projects. The reviewer may be individually<br />

specified, or a member of a specified reviewer group. In the case of a<br />

reviewer group, any member of that group casts an accept or reject vote on<br />

behalf of the entire group.<br />

change package watcher A change package watcher is a user specified by<br />

your administrator who is notified when a reviewed change package is<br />

closed after being successfully <strong>com</strong>mitted to the repository. Change<br />

package watchers may be individually specified, or a member of a specified<br />

watcher group.<br />

change package A change package is a group of changes made by a single<br />

user which can be considered a logical unit of work. Only the creator of a<br />

change package may add entries to that change package. Change package<br />

entries take the form of operations, both deferred and <strong>com</strong>mitted. When<br />

reviews are mandatory, change package entries take the form of pending<br />

entries before they are <strong>com</strong>mitted.<br />

check in checking in a member creates a new revision of a member and<br />

adds it to the member history. When a member is checked in to a revision<br />

other than the head revision or a branch tip revision, a new branch is<br />

created.<br />

checkpointing Checkpointing a project creates a new revision of the<br />

project and adds it to the project history. When you checkpoint a project,<br />

you save all the information needed to recreate the project <strong>com</strong>pletely at<br />

any time in the future. The saved information includes the project structure<br />

and the list of members with their revision numbers.<br />

u s e r g u i d e


Glossary of Terms<br />

<strong>com</strong>mand line interface The <strong>com</strong>mand line interface, or CLI, is a program<br />

that allows a user to enter keywords as instructions to a <strong>com</strong>puter or device<br />

to perform specific tasks. (The MS-DOS® Command Prompt is an example<br />

of a CLI.) Results are typically outputted as simple text to the user’s<br />

terminal.<br />

default editor The default editor is the editor used to display a working<br />

file or revision, for example, Microsoft Windows Notepad or MKS Toolkit’s<br />

vi for Windows editor.<br />

deferred member A deferred member is a member that is associated with<br />

any deferred operation (add, drop, check in, rename). A deferred member<br />

appears in the sandbox, but the deferred operation is not shown in the<br />

project until the deferred operation is submitted.<br />

delta The set of differences (stored in a history) between one revision and<br />

its immediate ancestor, is known as a delta. Using deltas, the program can<br />

reconstruct the exact contents of any revision without having to store<br />

<strong>com</strong>plete copies. Known also as reverse delta storage, it is the standard RCS<br />

format for archives.<br />

demoting You can demote a revision by changing its promotion state<br />

setting from a higher level to a lower one.<br />

development path A development path is an identifier given to a new<br />

branch of software development. Changes made through the new<br />

development path are kept separate from the main development trunk<br />

unless you choose to merge them later.<br />

drop (a project or sandbox) To drop a project or sandbox means that the<br />

project or sandbox is no longer registered with the Integrity Server. Once a<br />

project or sandbox is dropped, it cannot be accessed with Source Integrity.<br />

However, if the project or sandbox is not deleted and you can import it<br />

again if you want it to be accessible in Source Integrity.<br />

Federated Server Architecture MKS Federated Server Architecture is an<br />

implementation of the Integrity Server structured to serve client requests<br />

through a proxy. The proxy provides access to project members residing on<br />

the Integrity Server by retrieving information from its local cache or, if<br />

changes are detected, directly from the server.<br />

former member A former member is one dropped from the project.<br />

Source Integrity retains the member history for former members as part of<br />

the project. Depending on the options you select when dropping the<br />

member, Source Integrity can also delete the member’s working file and<br />

close any associated change package.<br />

freezing (a member) Freezing a member places it in a state that prevents<br />

changes from being made to the member information that resides in the<br />

project file. For example, you cannot update the member revision or change<br />

the attributes of a frozen member. Freezing is the opposite of thawing a<br />

member.<br />

475


Appendix B: Glossary of Terms<br />

476<br />

graphical user interface (GUI) The graphical user interface, or GUI, is a<br />

program interface that uses a number of visual <strong>com</strong>ponents (such as icons,<br />

pointers, and pull-down menus) to execute <strong>com</strong>mands. Working in a GUI<br />

allows the user to give instructions to the <strong>com</strong>puter without having to learn<br />

a specific <strong>com</strong>mand language.<br />

Head revision The head revision is the tip revision on the default branch,<br />

or the trunk, if no default branch is defined.<br />

importing (a project, sandbox, or member) Importing a project, sandbox,<br />

or member registers it with the Integrity Server. Once a project, sandbox, or<br />

member is imported, Source Integrity <strong>com</strong>mands can be performed upon it.<br />

Integrated Development Environment (IDE) An Integrated<br />

Development Environment, or IDE, is a supported development<br />

application, such as Sybase PowerBuilder, that allows you to access<br />

Source Integrity functionality by installing the appropriate extension.<br />

issues Issues track changes in the software development cycle. For<br />

example, your administrator can configure Integrity Manager in a way that<br />

a problem issue may be associated with a solution issue for easy tracking<br />

and monitoring of both issues. Each issue has an audit trail, which may be<br />

used to evaluate internal processes for the effectiveness of the problem<br />

resolution process. In effect, issues track all aspects of any engineering<br />

endeavor.<br />

keyword expansion Keyword expansion is the process of automatically<br />

adding or updating information to a keyword reference when a revision is<br />

checked out or viewed.<br />

keyword A keyword is a placeholder that can be inserted into text-based<br />

working files. This placeholder is a special variable (for example, $Date$,<br />

$Author$, $State$) used to represent textual information in a working<br />

file. Keywords can be expanded (that is, replaced with their literal values)<br />

when a revision is checked out.<br />

locker The person who has a revision locked is referred to as the locker.<br />

locking Locking a member prevents more than one user from<br />

simultaneously making changes to the same revision. When a revision is<br />

locked, no one other than the locker can check in changes to that revision.<br />

metadata Metadata is <strong>com</strong>posed of all of the information about a revision<br />

or archive, as opposed to the information that is part of the object. For<br />

example, a revision’s Revision Description is metadata since it is<br />

information about the revision, while the contents of the revision is part of<br />

the revision itself and, hence, is not metadata.<br />

pending member A pending member, is a member that is associated with<br />

a pending operation that adds it to the project. The pending member is<br />

denoted by a pending icon displayed in the Name column of the Sandbox<br />

and Project views. The following are <strong>com</strong>mands that create pending<br />

members: Import, Add, Add From Archive, Rename To.<br />

u s e r g u i d e


Glossary of Terms<br />

pending operations Pending operations are operations whose proposed<br />

changes reside on the server, but have not been <strong>com</strong>mitted to the repository.<br />

pending revision Pending revisions are created by Source Integrity when<br />

a change package containing deferred operations is submitted. Pending<br />

revisions are also created when reviews are mandatory and an operation<br />

that creates a new revision is performed without deferral (see the<br />

documentation for the desired operation for more information).<br />

permissions Permissions are a collection of pre-defined functionality and<br />

operations that can be assigned to users, granting access to certain<br />

Source Integrity tasks. The set of assigned permissions determines each<br />

user’s access to the various functions of Source Integrity. If a user is not<br />

granted the permission, that user is not able to <strong>com</strong>plete the task. For<br />

example, checking out files in Source Integrity requires the<br />

FetchRevision and Lock permissions.<br />

Project History view The Project History view is a window that displays<br />

the revision history of a project, including details on the revision number,<br />

author, date, labels, and promotion state of the project.<br />

project member A project member is any file that is included in a project.<br />

Project members are displayed in the Project view.<br />

Project view The Project view displays the members and subprojects of a<br />

project.<br />

project A project is any group of files that, taken together, forms a single<br />

body of work. Projects are presented in Project views, which list the<br />

members of the project and provide access to them.<br />

promoting Promotion is the process of managing data as it moves<br />

through a structured development cycle. Any project (whether it is software<br />

development, document production, or any other type of data<br />

management) goes through recognizable phases: from inception, through<br />

development, testing, quality assurance, and <strong>com</strong>pletion.<br />

Promotion is the process of managing data as it moves through a structured<br />

development cycle. Each phase is represented by states that are defined by<br />

the administrator. Project members can also be demoted to a predefined<br />

lower state.<br />

Reports Reports are summaries of the data in your project. Reports are<br />

based on the standard and custom fields of issue types. Reports can be<br />

customized to include images, fonts, hyperlinks, and can be saved as HTML<br />

files for viewing on the Web.<br />

477


Appendix B: Glossary of Terms<br />

478<br />

Resolution change package A resolution change package is a specialized<br />

change package that records all applied change packages, resolved<br />

conflicts, checked in modified files, and conflicts resolved by merging. A<br />

resolution change package is applied when an Apply CP operation has<br />

failed due to unresolved conflicts that require merging. Resolution change<br />

packages are created through the Resync CP operation and cannot be<br />

manually created by the user.<br />

resynchronizing To update out of sync working files to the most current<br />

member revisions, you resynchronize the members.<br />

reverting Reverting a member discards any changes made to a member’s<br />

working file since it was checked out, and then unlocks it.<br />

revision description A revision description is text that be<strong>com</strong>es a<br />

permanent part of the archive’s metadata. It allows you to provide a record<br />

of the changes you made and why you made them. This can be of great<br />

value to you or other team members if it ever be<strong>com</strong>es necessary to revise<br />

or update the member.<br />

revision label A revision label is a textual name that describes and refers<br />

to revisions in a history. When a file is checked in, you are given the option<br />

of assigning it a revision label. Revisions in a history can be displayed and<br />

selected either by revision number or revision label.<br />

revision number Each revision is assigned a unique revision number<br />

used to identify a revision in a history. Revisions on the trunk are numbered<br />

as two-part decimals (such as, 1.1, 1.2, 1.3, 1.4, …). Revisions on a branch are<br />

numbered by adding two-part decimals to the number of the revision they<br />

branch from. For example, if a branch is started from revision 1.3, its<br />

revisions would be numbered 1.3.1.1, 1.3.1.2, 1.3.1.3, and so on.<br />

revision A revision is a version of a file and is contained in a history. A<br />

new revision is produced in the history each time a working file is checked<br />

in.<br />

Sandbox view The Sandbox view displays the members and<br />

subsandboxes of a single sandbox.<br />

sandbox Sandboxes can reside on the client machines and allow you to<br />

work locally in your own workspace, without interfering with the work of<br />

others. You can think of the sandbox as a local pointer to the project residing<br />

on the Integrity Server. A sandbox is a mirror image of a Source Integrity<br />

project. Although it looks and acts like the project it mirrors, it is actually a<br />

collection of pointers to its real-life counterparts in the master project.<br />

Sandboxes can reside on the client machines and allow you to work locally<br />

in your own workspace, without interfering with the work of others. You<br />

can think of the sandbox as a local pointer to the project residing on the<br />

Integrity Server. A sandbox is a mirror image of a Source Integrity project.<br />

Although it looks and acts like the project it mirrors, it is actually a<br />

collection of pointers to its real-life counterparts in the master project.<br />

u s e r g u i d e


Glossary of Terms<br />

shared sandbox Source Integrity provides a way to create a <strong>com</strong>mon<br />

build location using shared sandboxes. Shared sandboxes provide<br />

developers and buildmasters with a window into a single shared work<br />

location.<br />

shared subproject A shared subproject is a subproject that is a member of<br />

more than one project. Source Integrity allows you to share a subproject<br />

between two or more projects by referencing the original subproject. A<br />

shared subproject allows you to access <strong>com</strong>mon members across many<br />

projects. Shared subprojects are not required to be located within the same<br />

directory structure or project hierarchy.<br />

snapshot A snapshot is a capture of the current state of a sandbox, where<br />

each element in the sandbox can be identified with a pre-existing entity in<br />

the repository on the Integrity Server. The sandbox snapshot creates a<br />

standard project revision from which a build sandbox can be created and a<br />

development path assigned. The project revision number takes the form of<br />

a branched revision in the project history. For example, if the head revision<br />

of the project is 1.1, then the project revision created by the snapshot will be<br />

1.1.1.1.<br />

sparse sandbox A sandbox with no working files. A sparse sandbox does<br />

not retain working files even when a member is checked in, and continues<br />

to function this way throughout its use.<br />

state A state is free-form text used to classify the condition of a revision in<br />

a member history. For example, a document could initially have a state of<br />

“Draft”. As work progresses it might be changed to “Review” and<br />

eventually “Complete”. If no state is assigned to a revision, a default value<br />

of “Exp” (for Experimental) is used.<br />

strict locking Strict locking is a policy that enforces users to have a lock on<br />

a revision to perform a check in operation.<br />

subproject Source Integrity allows you to create large projects <strong>com</strong>posed<br />

of smaller <strong>com</strong>ponent projects. These smaller projects are known as<br />

subprojects. Subprojects behave in the same way as projects, and can be<br />

accessed with most project and sandbox <strong>com</strong>mands.<br />

subsandbox A subsandbox is a sandbox within a sandbox. Subsandboxes<br />

are typically smaller <strong>com</strong>ponents of a sandbox, such as documentation or<br />

graphic files.<br />

Super Reviewer A Super Reviewer is a user with permission to vote on<br />

change packages that the user is not a listed reviewer for. Voting as a super<br />

reviewer overrides all other votes, for example casting an accept vote as a<br />

super reviewer is sufficient for accepting the change package.<br />

thawing Thawing a member removes the restriction on changing member<br />

information in the project and makes previously checked in member<br />

information available to the project. Thawing a member is the opposite of<br />

freezing a member.<br />

479


Appendix B: Glossary of Terms<br />

480<br />

tip revision The tip revision is the most recent revision on a branch in a<br />

history.<br />

trunk The trunk is the primary line of a file’s change history in a history.<br />

The first member of the trunk is always the original file checked into the<br />

archive.<br />

type (project member) Project members may be one of following types of<br />

files: archived (files under Source Integrity revision control), or subproject<br />

(another Source Integrity project).<br />

updating a member revision Within the graphical user interface, you can<br />

use the Update Member Revision option when you are checking in a member<br />

to ensure the most recent revision of each member is added to the list of<br />

members in the project. If the option is not enabled, the project list might not<br />

reflect the most current revision of each member’s history.<br />

user A user is anyone who needs to work with Source Integrity projects.<br />

variant sandbox While a regular sandbox is based on the current state of<br />

the project, a variant sandbox is based on a previously checkpointed<br />

revision of the project. When you create a variant sandbox, you choose a<br />

checkpoint (snapshot) of your project and use it as the starting point for a<br />

new branch of development. Source Integrity allows you to do this by<br />

defining a new development path.<br />

Web interface The Web interface is a program interface that appears in a<br />

Web browser, such as Netscape Navigator and Microsoft Internet Explorer.<br />

Working in a Web interface offers the familiar functionality of a Web<br />

browser with no client installation required.<br />

working file A working file is a file that contains a working copy of a<br />

checked out revision. <strong>User</strong>s edit and change the working file, not the<br />

revision itself. Changes to the working file are added to the history (as a<br />

new revision) when the working file is checked in.<br />

u s e r g u i d e


Index<br />

A<br />

access control list<br />

described 31<br />

understanding ACLs 31<br />

access keys<br />

graphical user interface 79<br />

access permission 30<br />

ACL<br />

See access control list<br />

adding<br />

change package entries 219<br />

label<br />

to member 297<br />

to project 265<br />

to revision 320<br />

member<br />

deferred 158<br />

to project 157<br />

to project from archive 166<br />

subproject 125<br />

administrator<br />

described 1<br />

all members<br />

filter 87, 97<br />

annotated revision 316<br />

any member delta<br />

filter 87<br />

application window<br />

graphical user interface 76<br />

Web interface 95<br />

applying change package 381<br />

backfill list 391<br />

backfill option 394<br />

<strong>com</strong>mand option 403<br />

GUI <strong>com</strong>mand 398<br />

key concept 388<br />

overview 383<br />

process 389<br />

architecture<br />

server 13<br />

archive<br />

information<br />

editing 312<br />

viewing 312<br />

archive description<br />

described 160<br />

assigning<br />

revision description 187<br />

revision number 186<br />

attribute<br />

project 259<br />

Author keyword 210<br />

B<br />

backfill list<br />

Apply CP 391<br />

Apply CP option 394<br />

Resync CP 409<br />

Resync CP option 413<br />

before starting<br />

access control lists 31<br />

access permission 30<br />

Source Integrity 30<br />

binary file 18<br />

<strong>com</strong>paring 18<br />

described 18<br />

branch<br />

described 338<br />

ignore 416<br />

merge on 415<br />

merging 345<br />

by dragging 348<br />

on check in 343<br />

on check out 350<br />

on resync 352<br />

renaming member on branch 194<br />

starting during check in 186<br />

branching<br />

on check out 338<br />

browser requirements 24<br />

481


Index<br />

build project<br />

opening 265<br />

build sandbox<br />

creating 135<br />

described 150<br />

C<br />

canceling deferred operation 203<br />

change<br />

scanning sandbox for 185<br />

change package<br />

accepting 245<br />

adding entries 219<br />

to an issue 376<br />

Apply CP process 389<br />

applying 381<br />

<strong>com</strong>mand option 403<br />

GUI <strong>com</strong>mand 398<br />

key concept 388<br />

closing 235<br />

creating 217<br />

for an issue 375<br />

discarding 236<br />

editing 233<br />

entries<br />

differences 255<br />

discarding 254<br />

moving 252<br />

types 220<br />

explained 214<br />

finding 222<br />

using query 378<br />

managing 220<br />

methodology 382<br />

opening 249<br />

rejecting 247<br />

resolution<br />

creating 434<br />

GUI <strong>com</strong>mand 434<br />

key concepts 430<br />

process 431<br />

using 432<br />

Resync CP process 408<br />

resynchronizing 406<br />

by CP 436<br />

<strong>com</strong>mand option 423<br />

example 437<br />

GUI <strong>com</strong>mand 418<br />

key concept 407<br />

submitting 238<br />

482<br />

using to control development 216<br />

viewing 226<br />

associated issue 376<br />

viewing reviews 250<br />

why to use 215<br />

workflow 242<br />

check in 14, 18<br />

check out 14, 17<br />

checking in<br />

member 186<br />

merging on check in 343<br />

checking out<br />

automatic merging on check out 350<br />

branching 338<br />

member 178<br />

checkpointing 19<br />

project 19, 269<br />

CLI<br />

described 98<br />

using graphical user interface 98<br />

closing<br />

change package 235<br />

client 73<br />

client session 72<br />

columns<br />

configuring 80<br />

<strong>com</strong>mand<br />

ident 210<br />

option<br />

Apply CP 403<br />

Resync CP 423<br />

preferences 48<br />

syntax 99<br />

viewing 98<br />

<strong>com</strong>mand prompts<br />

described 99<br />

CompanyInfo keyword 210<br />

<strong>com</strong>paring<br />

project 20<br />

revision 331<br />

working file to member revision 205<br />

concept<br />

checkpointing project 19<br />

delta 18<br />

development path 21<br />

file and object history 15<br />

integrated development environment<br />

project 14<br />

project member 17<br />

sandbox 14<br />

Source Integrity 13<br />

variant 21<br />

u s e r g u i d e


configuration management 14<br />

configuration options 19<br />

configuring<br />

client environment variable 29<br />

graphical user interface<br />

main toolbar 82<br />

Source Integrity 40<br />

subproject 131<br />

conflict<br />

viewing in Visual Merge 361<br />

connecting<br />

preferences 43<br />

to multiple servers 39<br />

to server 36<br />

content<br />

reconstructing revision 18<br />

creating<br />

build sandbox 135<br />

change package 217<br />

for an issue 375<br />

development path 147<br />

project 116<br />

report 307<br />

sandbox 135<br />

shared subproject 127<br />

subproject 124<br />

variant sandbox 135<br />

customer support<br />

getting help 8<br />

D<br />

Date keyword 210<br />

deferred item<br />

filter 89<br />

deferred member<br />

described 201<br />

deferred operation 200<br />

adding member 157<br />

adding member from archive 168<br />

canceling 196, 203<br />

checking in member 186<br />

dropping member 172<br />

import 172<br />

renaming member 194<br />

resynchronizing 197, 203<br />

reverting 196, 203<br />

submitting 202<br />

updating a member’s revision 295<br />

deleting<br />

member label 298<br />

project label 266<br />

revision 331<br />

delta<br />

described 18<br />

storing 18<br />

demoting<br />

project 268<br />

revision 324<br />

development<br />

integrated environment 22<br />

object 17<br />

path 21<br />

creating 147<br />

described 146<br />

editing 261<br />

removing 149<br />

viewing 261<br />

difference<br />

project 20, 275<br />

differencing<br />

change package entries 255<br />

third party differencing tool 69<br />

tool preferences 69<br />

Visual Difference 100<br />

editing merge results 359<br />

merging 356<br />

mode 104<br />

panes 103<br />

preferences 105<br />

reverting merge results 359<br />

saving merge results 360<br />

working with 356<br />

discarding<br />

change to working file 196<br />

disconnecting<br />

from multiple servers 40<br />

from server 72<br />

documentation<br />

format<br />

man 4<br />

online help 4<br />

PDF 4<br />

print 4<br />

related 4<br />

dropping<br />

member 172<br />

project 119<br />

described 119<br />

sandbox 143<br />

described 143<br />

subproject 133<br />

Index<br />

483


Index<br />

E<br />

editing<br />

archive information 312<br />

change package 233<br />

development path information 261<br />

member 184<br />

attribute 290<br />

information 287<br />

label 291<br />

merge results in Visual Difference 359<br />

merge results in Visual Merge 363<br />

project<br />

attribute 259<br />

information 258<br />

revision<br />

information 314<br />

label 319<br />

environment variable 92<br />

UNIX client 29<br />

F<br />

file<br />

binary 18<br />

<strong>com</strong>paring 18<br />

history 15<br />

text 18<br />

working 17<br />

file and object history<br />

filter<br />

15<br />

all members 87, 97<br />

any member delta 87<br />

deferred item 89<br />

existing working files 87<br />

frozen member<br />

list<br />

88, 97<br />

graphical user interface 78<br />

Web interface 96<br />

locked member 88, 97<br />

member at label 88, 97<br />

member at state<br />

member history<br />

88, 97<br />

all revisions 311<br />

branched 311<br />

labeled 311<br />

locked 311<br />

member 311<br />

member locked by me 88, 97<br />

member on branch 88, 97<br />

member with attribute 88, 97<br />

member with label 88, 97<br />

484<br />

member with name 88<br />

missing working file 87<br />

modified working file 87<br />

new member 87<br />

new revision available 87<br />

non-members 156<br />

out of sync member 87<br />

pending item 88<br />

project history<br />

all revisions 264<br />

development path 264<br />

labeled 264<br />

regular expression 89<br />

Unresolved Merges 87<br />

using 86<br />

Web interface 97<br />

Work in Progress 88<br />

working file on branch 87<br />

working file size delta 87<br />

finding<br />

change package<br />

using query 378<br />

change packages 222<br />

former member<br />

described 172<br />

freezing<br />

member 301<br />

frozen member<br />

filter 88, 97<br />

G<br />

general<br />

preferences 42<br />

graph<br />

Reporter 304<br />

graphical history view 445<br />

changing views 449<br />

dragging and dropping 448<br />

member history view 445<br />

project history view 445<br />

selecting revision 447<br />

view options 448<br />

graphical user interface<br />

access keys 79<br />

application window 76<br />

columns<br />

configuring 80<br />

described 76<br />

environment variable 92<br />

filter list 78<br />

u s e r g u i d e


graphical history view 445<br />

member history view 451<br />

member information pane 78<br />

menu bar 76<br />

project history view 460<br />

project view 77, 457<br />

registered project 465<br />

registered sandboxes 467<br />

sandbox view 77, 469<br />

shortcut keys 80<br />

shortcut menu 77<br />

status bar 78<br />

title bar 76<br />

toolbar 77<br />

configuring 82<br />

using in CLI 98<br />

workspace 78<br />

groups<br />

viewing 34<br />

H<br />

Header keyword 210<br />

help<br />

customer support 8<br />

history<br />

file 15<br />

object 15<br />

I<br />

Id keyword 210<br />

IDE<br />

See integrated development environment<br />

ident <strong>com</strong>mand 210<br />

ignore branch 416<br />

importing<br />

a project 117<br />

member 169<br />

sandbox 138<br />

installing<br />

Integrity Client 24<br />

UNIX post-install 29<br />

integrated development environment 22<br />

integrations<br />

for Solution<br />

described 372<br />

Integrity Client<br />

installing 24<br />

post-installation on UNIX 29<br />

uninstalling 29<br />

Integrity Manager<br />

integration 372<br />

how works 372<br />

issue<br />

adding entries to a change<br />

package 376<br />

creating a change package for 375<br />

viewing 376<br />

using query 378<br />

Integrity Server<br />

registering project with 14<br />

interface 75<br />

K<br />

keyword<br />

Author 210<br />

CompanyInfo 210<br />

Date 210<br />

Header 210<br />

Id 210<br />

locating 210<br />

Locker 210<br />

Log 211<br />

Name 211<br />

ProjectName 211<br />

ProjectRevision 211<br />

ProjectSetting 211<br />

RCSfile 211<br />

Revision 211<br />

SandboxSetting 211<br />

Setting 211<br />

Source 211<br />

State 211<br />

using 207<br />

keywords<br />

table 210<br />

L<br />

label<br />

deleting from revision 321<br />

labeling<br />

member 297<br />

revision 320<br />

launching<br />

Source Integrity 34<br />

line terminator 136, 281, 472<br />

list, backfill<br />

Apply CP 391<br />

Apply CP option 394<br />

Index<br />

485


Index<br />

Resync CP 409<br />

Resync CP option 413<br />

locating keyword 210<br />

locked member<br />

filter 88, 97<br />

making locked member writable 340<br />

managing revision locks 328<br />

view sandbox that locked member 145<br />

Locker keyword 210<br />

locking<br />

member 198<br />

multiple revisions 327<br />

revision 324<br />

Log keyword 211<br />

logging in 36<br />

logging out 72<br />

M<br />

manage projects<br />

graphical user interface 465<br />

Web interface 466<br />

manage sandboxes<br />

graphical user interface 467<br />

managing change packages 220<br />

member<br />

adding label to 297<br />

adding to project 157<br />

attribute<br />

editing 290<br />

viewing 290<br />

checking in 186<br />

checking out 178<br />

deferring operation 200<br />

deleting label 298<br />

demoting 300<br />

dropping 172<br />

editing 184<br />

freezing 301<br />

history 17<br />

reference format 18<br />

viewing 310<br />

importing 169<br />

information<br />

editing 287<br />

viewing 287<br />

label<br />

editing 291<br />

viewing 291<br />

location 15<br />

locking 198<br />

486<br />

making locked member writable 340<br />

managing locks 328<br />

name 15<br />

permission 31<br />

project 17<br />

promoting 299<br />

removing from project 172<br />

renaming 194<br />

tip revision 194<br />

resynchronizing 197, 293<br />

reverting 196<br />

revision 17<br />

number 15<br />

setting 330<br />

updating 293<br />

selecting 176<br />

thawing 302<br />

type 15<br />

unlocking 200<br />

updating 197<br />

viewing 184<br />

member at label<br />

filter 88, 97<br />

member at state<br />

filter 88, 97<br />

member history view<br />

filter 311<br />

graphical history view 445<br />

graphical user interface 451<br />

Web interface 453<br />

member information pane<br />

graphical user interface 78<br />

member locked by me<br />

filter 88, 97<br />

member name argument<br />

described 99<br />

member on branch<br />

filter 88, 97<br />

member with attribute<br />

filter 88, 97<br />

member with label<br />

filter 88, 97<br />

member with name<br />

filter 88<br />

menu bar<br />

graphical user interface 76<br />

Web interface 95<br />

merge<br />

automatic merging on check out 350<br />

automatic merging on resync 352<br />

on branch 415<br />

merge results<br />

u s e r g u i d e


editing in Visual Merge 363<br />

reverting in Visual Merge 364<br />

saving in Visual Merge 364<br />

merging<br />

branch 345<br />

by dragging 348<br />

in Visual Difference 356<br />

on check in 343<br />

resolving merges 367<br />

revision 353<br />

automatically 354<br />

in Visual Merge 362<br />

revision in CLI 366<br />

revision in Visual Difference 356<br />

revision in Visual Merge 361<br />

suspending in Visual Merge 365<br />

metadata 15<br />

methodology<br />

change package 382<br />

missing working file<br />

filter 87<br />

MKS Visual Difference<br />

See Visual Difference<br />

MKS Visual Merge<br />

See Visual Merge<br />

modified working file<br />

filter 87<br />

N<br />

Name keyword 211<br />

new member<br />

filter 87<br />

new revision available<br />

filter 87<br />

non-members<br />

displaying 154<br />

filtering 156<br />

O<br />

object<br />

control 17<br />

history 15<br />

opening<br />

member history 310<br />

project 121<br />

sandbox 144<br />

option<br />

configuration 19<br />

out of sync member<br />

filter 87<br />

P<br />

pending item<br />

filter 88<br />

pending member 200<br />

permission 31<br />

preferences<br />

<strong>com</strong>mand 48<br />

connection 43<br />

difference tool 69<br />

general 42<br />

setting 40<br />

view 61<br />

printing lists and views 78<br />

process<br />

Apply CP <strong>com</strong>mand 389<br />

resolution change package 431<br />

Resync CP <strong>com</strong>mand 408<br />

project 14, 17<br />

adding member 157<br />

attribute 259<br />

editing 259<br />

viewing 259, 281<br />

checkpointing 19, 269<br />

<strong>com</strong>paring 20<br />

content 15<br />

creating 116<br />

deleting label 266<br />

demoting 268<br />

difference 20, 275<br />

<strong>com</strong>paring current to last<br />

checkpointed 279<br />

<strong>com</strong>paring current to specified<br />

revision 278<br />

<strong>com</strong>paring two specified<br />

revisions 276<br />

dropping 119<br />

history<br />

viewing 263<br />

importing 117<br />

information<br />

editing 258<br />

viewing 258<br />

member 17<br />

metadata 15<br />

modification<br />

viewing 276<br />

opening 121<br />

Index<br />

487


Index<br />

permission 31<br />

promoting 267<br />

registering with Integrity Server 14<br />

removing member 172<br />

restoring 271<br />

in GUI 272<br />

viewing 121<br />

differences 275<br />

project history view<br />

filter 264<br />

graphical history view 445<br />

graphical user interface 460<br />

Web interface 462<br />

project view<br />

graphical user interface 77, 457<br />

Web interface 96, 459<br />

ProjectName keyword 211<br />

ProjectRevision keyword 211<br />

ProjectSetting keyword 211<br />

project-specific configuration 15<br />

promoting<br />

a project 267<br />

member 299<br />

revision 323<br />

proxy<br />

configuring 45<br />

Q<br />

quick access keys<br />

access keys 79<br />

graphical user interface shortcut keys 80<br />

quitting<br />

session 72<br />

R<br />

RCSfile keyword 211<br />

reconstructing revision 18<br />

reference format<br />

member history 18<br />

registered projects<br />

graphical user interface 465<br />

Web interface 466<br />

registered sandboxes<br />

graphical user interface 467<br />

regular expression<br />

filter 89<br />

related documentation 4<br />

488<br />

removing<br />

development path 149<br />

member 172<br />

renaming<br />

member 194<br />

on a branch 194<br />

tip revision 194<br />

report<br />

creating 307<br />

information 303<br />

type 304<br />

by author 304<br />

by author (summary) 305<br />

member revision to label 305<br />

member revision to revision 306<br />

newer revision 305<br />

project member history 307<br />

revision locked 306<br />

revision with label 306<br />

revision with state 306<br />

Reporter<br />

described 303<br />

graph 304<br />

resolution change package<br />

creating 434<br />

GUI <strong>com</strong>mand 434<br />

key concepts 430<br />

process 431<br />

using 432<br />

restoring project 271<br />

in GUI 272<br />

resynchronizing<br />

automatic merging on resync 352<br />

by CP 197, 436<br />

example 437<br />

deferred operation 197, 203<br />

member 197, 293<br />

resynchronizing change package 406<br />

backfill list 409<br />

backfill option 413<br />

binary conflicts 433<br />

<strong>com</strong>mand option 423<br />

GUI <strong>com</strong>mand 418<br />

ignore branch option 416<br />

key concept 407<br />

merge on branch option 415<br />

overview 383<br />

process 408<br />

reverting<br />

deferred operation 196, 203<br />

member 196<br />

u s e r g u i d e


merge results in Visual Difference 359<br />

merge results in Visual Merge 364<br />

revision 15<br />

adding label to 320<br />

annotated 316<br />

<strong>com</strong>paring 331<br />

deleting 331<br />

deleting label 321<br />

demoting 324<br />

description<br />

assigning 187<br />

in member history 18<br />

information<br />

editing 314<br />

viewing 314<br />

label<br />

editing 319<br />

viewing 319<br />

locking 324<br />

locking multiple revisions 327<br />

merging 353<br />

automatically 354<br />

in CLI 366<br />

in Visual Difference 356<br />

in Visual Merge 361, 362<br />

number 15<br />

assigning 186<br />

valid 186<br />

promoting 323<br />

reconstructing 18<br />

unlocking 326<br />

viewing 322<br />

viewing locks 328<br />

Revision keyword 211<br />

S<br />

sandbox 14<br />

build 150<br />

creating 135<br />

described 14<br />

dropping 143<br />

importing 138<br />

information<br />

general 280<br />

project attribute 281<br />

viewing 280<br />

opening 144<br />

scanning for change 185<br />

sharing 139<br />

snapshot 283<br />

type 137<br />

variant 21<br />

view sandbox that locked member 145<br />

viewing 144<br />

sandbox view<br />

graphical user interface 77, 469<br />

SandboxSetting keyword 211<br />

saving<br />

merge results in Visual Difference 360<br />

merge results in Visual Merge 364<br />

scanning sandbox<br />

for change 185<br />

selecting<br />

member 176<br />

server<br />

configuring multiple servers 46<br />

connecting 36<br />

disconnecting 72<br />

session<br />

closing client 73<br />

quitting 72<br />

shutting down client 74<br />

setting<br />

member revision 330<br />

preferences 40<br />

Setting keyword 211<br />

shared subproject<br />

creating 127<br />

sharing a sandbox 139<br />

shortcut keys<br />

graphical user interface 80<br />

shortcut menu<br />

graphical user interface 77<br />

shutting down<br />

client 74<br />

snapshot a sandbox 283<br />

Solution integration 372<br />

Source Integrity<br />

before starting 30<br />

concept 13<br />

configuring 40<br />

graphical history view 445<br />

graphical user interface 76<br />

integration with Integrity Manager 372<br />

rules 372<br />

viewing associated issue 376<br />

starting 34<br />

understanding 13<br />

Web interface 94<br />

Source Integrity interfaces 75<br />

Source keyword 211<br />

Index<br />

489


Index<br />

starting<br />

a session 36<br />

branch during check in 186<br />

Source Integrity 34<br />

State keyword 211<br />

status bar<br />

graphical user interface 78<br />

Web interface 96<br />

storing delta 18<br />

submit 202<br />

change packages 238<br />

deferred operation 202<br />

subproject<br />

adding 125<br />

configuring 131<br />

creating 124<br />

creating shared subproject 127<br />

dropping 133<br />

suspending<br />

merges in Visual Merge 365<br />

system requirements<br />

Web browser 24<br />

T<br />

table<br />

keyword 210<br />

text file 18<br />

thawing<br />

member 302<br />

third party difference tool 69<br />

tip revision<br />

renaming 194<br />

title bar<br />

graphical user interface 76<br />

Web interface 95<br />

toolbar buttons<br />

graphical user interface 77<br />

Web interface 96<br />

type<br />

report 304<br />

sandbox 137<br />

U<br />

uninstalling<br />

Integrity Client 29<br />

UNIX<br />

client environment variable 29<br />

490<br />

unlocking<br />

member 200<br />

revision 326<br />

Unresolved Merges<br />

filter 87<br />

updating<br />

member 197<br />

member revision 293<br />

user<br />

described 1<br />

using<br />

filter 86<br />

keyword 207<br />

V<br />

variant sandbox 21<br />

creating 135<br />

described 146<br />

viewing<br />

archive information 312<br />

change package<br />

associated issue 376<br />

details and entries 226<br />

entry member differences 255<br />

multiple 220<br />

<strong>com</strong>mand 98<br />

conflict in Visual Merge 361<br />

development path information 261<br />

general sandbox information 280<br />

group membership 34<br />

member 184<br />

member attribute 290<br />

member difference 255<br />

member history 310<br />

member information 287<br />

member label 291<br />

preferences 61<br />

project 121<br />

information 258<br />

project attribute 259, 281<br />

project attribute information 281<br />

project differences 275<br />

project history<br />

opening 263<br />

revision 322<br />

revision information 314<br />

revision label 319<br />

sandbox 144<br />

sandbox information 280<br />

working file 322<br />

u s e r g u i d e


Visual Difference 100<br />

editing merge results 359<br />

merging 356<br />

mode 104<br />

panes 103<br />

preferences 105<br />

reverting merge results 359<br />

saving merge results 360<br />

working with 356<br />

Visual Merge 107<br />

editing merge results 363<br />

merging revision 362<br />

panes 110<br />

preferences 111<br />

reverting merge results 364<br />

saving merge results 364<br />

suspending merges 365<br />

viewing conflict 361<br />

working with 361<br />

W<br />

Web browser<br />

system requirements 24<br />

Web interface 94<br />

application window 95<br />

filter 97<br />

filter list 96<br />

member history view<br />

described 453<br />

menu bar 95<br />

project history view<br />

described 462<br />

project view 96<br />

described 459<br />

registered project 466<br />

status bar 96<br />

title bar 95<br />

toolbar buttons<br />

described 96<br />

Work in Progress<br />

filter 88<br />

working file 17<br />

<strong>com</strong>paring to member revision 205<br />

discarding change 196<br />

viewing 322<br />

working file on branch<br />

filter 87<br />

working file size delta<br />

filter 87<br />

working file, existing<br />

filter 87<br />

working with project 14<br />

workspace<br />

graphical user interface 78<br />

writable<br />

making locked member writable 340<br />

Index<br />

491


Index<br />

492<br />

u s e r g u i d e

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

Saved successfully!

Ooh no, something went wrong!