MKS Source User Guide

June 6, 2018 | Author: soul_killer | Category: Graphical User Interfaces, Version Control, World Wide Web, Technology, Filename


Comments



Description

®Integrity M KS Source 2007 User Guide MKS Source 2007 User Guide Copyright © 2001–2007 MKS Software Inc.; in Canada copyright owned by MKS Inc. All rights reserved. MKS makes no warranty of any kind with regard to this material, including, but not limited to the implied warranties of merchant ability, performance, or fitness for a particular purpose. MKS shall not be liable for errors contained herein, or for any direct, indirect, incidental, or consequential damages resulting from the use of this material. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language in any form by any means, without written permission from MKS. MKS, MKS Source Integrity, MKS Integrity Manager, Implementer, MKS Toolkit, Sandbox, NuTCRACKER, MKS Integrity Solution, AlertCentre, MKS Integrity Suite, and MKS Federated Server are trademarks or registered trademarks of MKS Inc. All other trademarks or registered trademarks are the property of their respective holders. Co r p o r at e He ad q u ar t ers W o r ld w id e O f fi ce s: 410 Albert Street Waterloo, ON N2L 3V3 Canada 1815 South Meyers Rd. Suite 220 Oakbrook Terrace, IL USA 60181 tel: 630 827 4900 fax: 630 629 9167 sales (toll free): 800 633 1235 tel: 519 884 2251 fax: 519 884 8861 sales (toll free): 800 265 2797 www.mks.com 12701 Fair Lakes Circle Suite 350 Fairfax, VA USA 22033 tel: 1 703 803 3343 fax: 1 703 803 3344 sales (toll free): 1 800 637 8034 Martinstraße 42-44 73728 Esslingen Germany tel: +49 711 351775 0 fax: +49 711 351775 7555 This document is uncontrolled when printed or copied. Third Floor, Duke’s Court Duke Street, Woking Surrey GU21 5BH United Kingdom tel: +44 (0)1483 733900 fax: +44 (0)1483 733901 sales: +44 (0)1483 733919 3 Killiney Road #07-05 Winsland House 1 Singapore 239519 tel: +65-6732-8768 fax: +65-6732-0768 Ebisu Garden Place Tower 18F Ebisu 4-20-3 Shibuya-ku, Tokyo, Japan 150-6018 tel: 03-5789-5862 fax: 03-5789-5757 Table of Contents Chapters 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 About This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Assumptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Where To Go From Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Basic Project Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Importing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Dropping a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Adding a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Opening a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Working With Subprojects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Creating a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Adding a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Adding a Shared Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuring a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Moving a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Dropping a Subproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Project Histories and Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Checkpointing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Project History View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Restoring a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Adding Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Deleting Project Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Viewing Project Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Project Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Branching Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Release Based Branching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Project Based Branching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Creating a Development Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Removing a Development Path . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Locating Where an MKS Source Object Is Used . . . . . . . . . . . . . . . . . 30 Generating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Changes Grouped by Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Changes Grouped by Author (Summary) . . . . . . . . . . . . . . . . . . 33 Revisions Newer Than Member Revision . . . . . . . . . . . . . . . . . . 33 Changes From Member Revision to Label . . . . . . . . . . . . . . . . . . 34 i . . . . . . . . . . . . . . . . . Using Build Sandboxes . Project Member History . . . . . . . . 49 Managing Project Members . . . . . . . . . . . . . . . . . . . . . . 37 Types of Sandboxes . . . . . . . . . . . . . . . . Importing Members. . . . . . . Removing or Downgrading Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing and Editing Member Content . . . . . . . . . . . Importing a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Making the Working File Writable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Discarding Changes to a Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Checking In a Member . . . Moving Members. . . . . . . . . . . . . . . . . Resyncing Members . . . . . Dropping a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . 3 Sandboxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Identifying Members to Add to Projects . Dropping Members From a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecting Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Checking Out a Member. . . . . . . . . . . . . . . . . . . . ii 34 34 35 35 35 35 50 50 51 53 55 57 60 62 62 63 65 66 69 70 71 72 73 73 74 75 . . . . . . . . . . . . . . . . . . . . . . . Configuring a Sandbox as Shared . . . . . . . . . . . Adding Members to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List Revisions Associated With States . Renaming a Member . . . . . . . . . . . . . . . Viewing Member Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Taking Sandbox Snapshots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Members From Archive to a Project. . . . . . . . . . . . . . . . Locking a Member . . . . . . . . . . . . . . . . . . . . . . . . . Promoting and Demoting Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Sandbox Snapshots in a Development Environment . . . . . . . . . Retargeting a Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Keywords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents Changes From Member Revision to Revision . . . . . . . Using Sandbox Snapshots in a Build Environment . . . . . . . . . . . . . . . . . . . . . . . . Using Variant Sandboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removing Sharing From a Sandbox . List Revisions Associated With Labels . Opening a Sandbox . . . . . Sharing Sandboxes. . . . . . . . . . . . . . . . . . . . Creating a Sandbox . . . . . . . . . Member Operations. . . . . . . . . . . . . . . . . . . . . Importing a Shared Sandbox . . . . . . . . . . . . . . . . . . . . List Locked Revisions . . . . . . . 4 38 38 38 40 40 41 42 43 43 43 44 45 45 47 47 Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Viewing a Member History . . . . . . . . Discarding CP Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Canceling Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Freezing Members . . . . . . . . . . . . . . . . . . . Creating a Change Package . . . . . . . . . . . . . . . . . . . 80 Thawing Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Demoting Members . . . 113 Change Package Overview. . . . . . . . . . . . . . . 110 Promoting and Demoting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Locating Where a Member Is Used . . 92 Working With Pending Revisions . . . . . . . . . . . . . . . 111 Promoting Members . . . . Working With Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Specifying a Change Package for an Operation . . . . . . . . . . . . . . . . . . . . . . Why Use Change Packages? . . . . . . 78 Deleting Member Labels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing CP Entry Member Differences . . . . . . . . . . . . . Change Package Entry Types. . . . . . . . . . . . . . . . . . . . . . . . 85 Updating a Member Revision . . . . . . . . . . . . . . . . . Finding Change Packages. . . . . . . . Viewing Change Package Details and Entries. . . . . Integrating With MKS Integrity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Change Packages to Control Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5 Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Working With MKS Visual Difference . . 84 Resyncing Members With Deferred Operations . . . . . . . . . . . . . 98 Branching and Merging Members Overview . . . . . . . . . . . . . . . . . . . 109 Generating Member Reports . . . . . . . 98 Merging Modified Working Files . . . . . . . 81 Deferring Member Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Deleting a Revision . . . . . . . . . . . . . . . . . Editing a Change Package . . . . . . 94 Comparing Differences .Table of Contents Adding Labels to Members . . . . . . . . . . . . . . . . . . . . . . . . 114 115 116 116 117 117 118 118 119 120 121 122 122 124 125 iii . . . . . 84 Working with Member Histories and Revisions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Working With MKS Visual Merge . . . . . . . . . . . . . . . . . . . . . . . . . 95 Branching and Merging Members. . . 100 Merging Two Revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Moving CP Entries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Setting a Member Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working With Change Package Entries . . . . . . . . . . 105 Resolving Merges. . 91 Viewing an Annotated Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Submitting Deferred Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Resync By CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 iv . . . . . . . . . . . . . . . Rejecting a CP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Apply CP in Your Development Environment . . CP Review Benefits . . . . . . . . . . . . . . . . . . . . . . . Accepting a CP . . . . . . . . . . . . . Using the Resync CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Apply CP Backfill List. . . . . . Apply CP Procedure . . . . . . . . . Resolving Binary Conflicts . . . . . . . . . . . . . Applying Changes From a Variant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resync CP Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working With Subprojects . . . . . . . . . . . . . Apply CP and Resync CP Overview. . . . . . . . . . . . . . . . . . . . . Resolving Conflicts . . . . . . . . . Change Package Reviews Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Applying a Change Package With No Dependencies . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents Submitting Change Packages. . . . . . . . . . . . . . . . . . . . . . . CP Review Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Applying Change Packages From Two Variants . . . . . . . . . . 167 Index . . . . . . Reopening a CP . . . . . . . . . . . . . . . . . . . . . Discarding Change Packages . . Reviewing Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . Using a Propagation Change Package with Apply CP . . . . . . . . . . . . . . . . . . . . Closing a Change Package . . . . Using a Propagation Change Package with Resync CP. . . . . . . . . . . . . . . Using Resync CP in Your Development Environment . . . . . . . . . . . . . . . Using the Resync CP Backfill List . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Apply CP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pending Operations in CPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Product Notices . . How CP Review Works . . . . . . . . . . . . . . . . CP Entry Categories . . . . . . . . . . Appendix A 125 126 127 128 128 129 130 130 133 134 134 135 136 136 138 138 139 141 142 145 146 146 151 151 152 155 157 157 160 160 164 MKS Source Terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . and creates and manages user accounts. allowing users to access the program. There are two main roles when using MKS Source: the administrator and the user.CHAPTER ONE Introduction 1 Understanding and Using This Guide MKS Source provides comprehensive. A user is anyone who needs to work with MKS Source projects. defines and customizes projects and policies. This chapter contains the following: „ “About This Guide” on page 2 „ “Assumptions” on page 3 „ “Where To Go From Here” on page 3 1 . cross-platform software configuration management (SCM). The administrator installs MKS Source. distributed development organizations with complex development environments. It is the ideal SCM solution for large. however. The following is a list of the guide’s other chapters. refer to descriptive tooltips and menu items in the interface. For detailed information on wizards. This chapter also includes information on checkpointing projects. MKS provides a single location for you to access the information. and branching and merging member revisions. working with project histories. and dialog box options. This chapter also includes information on working with pending member revisions. and shortcut keys exist for most procedures. see the online help. with a brief description of the topics covered by each chapter: „ Chapter 2: “Projects” on page 5 Describes how to create and work with MKS Source projects and subprojects. and work with members and member histories. See the MKS Integrity Client 2007 Getting Started Guide for information on the following topics: „ a complete list of related documentation „ descriptions of the typographical conventions used in this guide „ getting help from MKS Customer Care „ consulting MKS Professional Services „ how to provide feedback on this documentation „ detailed descriptions for base concepts used in MKS Integrity and MKS Source „ installing and configuring the MKS Integrity Client „ an overview of the interfaces available for the MKS Integrity Client Most procedures in this guide are documented using menu-based commands. and branching projects. shortcut menus. views. „ Chapter 3: “Sandboxes” on page 37 Describes how to create and work with Sandboxes®.Chapter 1: Introduction About This Guide For content that is essential and applicable to all guides. For more information. including sharing Sandboxes and retargeting Sandboxes to a different project configuration. comparing differences between member revisions. toolbar buttons. „ Chapter 4: “Members” on page 49 Describes how to manage members in projects. This chapter introduces you to the MKS Source 2007 User Guide and its contents. 2 . Assumptions „ Chapter 5: “Change Packages” on page 113 Describes how to use change packages to track and review changes, including the Apply CP and Resync CP commands used to move specific changes between different project configurations. „ “MKS Source Terms” on page 167 Provides a glossary of common terms and definitions for MKS Source. Assumptions Before using MKS Source, MKS assumes the following about your knowledge and experience: „ You fully understand the hardware platforms and operating systems you are installing MKS Source on, that is, Windows, Solaris, Linux, IBM AIX, and HP-UX. „ You fully understand your chosen Integrated Development Environment (IDE), for example, Sybase PowerBuilder (if you are using the integrations with MKS Source). Where To Go From Here To Do This … See … Learn basic MKS Source concepts MKS Integrity Client 2007 Getting Started Guide Install the MKS Integrity Client. MKS Integrity Client 2007 Getting Started Guide Log in to MKS Source. MKS Integrity Client 2007 Getting Started Guide Set MKS Source preferences. MKS Integrity Client 2007 Getting Started Guide Create a project. “Creating a Project” on page 6 Create a sandbox. “Creating a Sandbox” on page 40 Add members to an MKS Source project. “Adding Members to a Project” on page 51 Check out a member. “Checking Out a Member” on page 63 Check in a member. “Checking In a Member” on page 66 Create a change package. “Creating a Change Package” on page 117 View a project history. “Project History View” on page 19 View a member history. “Viewing a Member History” on page 85 Learn MKS Source terms. “MKS Source Terms” on page 167 3 Chapter 1: Introduction 4 C H A P T E R TW O Projects 2 Managing Projects An MKS Source project is any group of files under version control that, taken together, forms a single body of work. For example, in a development environment, a project might include source code files required to build a program element. MKS Source allows you to create large projects composed of smaller component projects known as subprojects. Subprojects behave in the same way as projects. Once you create a subproject, it is considered a member of the project. This chapter describes the following MKS Source project related operations: „ “Basic Project Operations” on page 6 „ “Working With Subprojects” on page 10 „ “Project Histories and Checkpoints” on page 17 „ “Project Metrics” on page 26 „ “Branching Projects” on page 27 „ “Locating Where an MKS Source Object Is Used” on page 30 „ “Generating Reports” on page 32 „ “Promoting and Demoting Projects” on page 35 5 „ For suggested best practices on creating projects. select Project > Create. see “Creating a Sandbox” on page 40. . you must create a Sandbox on your client machine that points to the project and then add the project members through that Sandbox. you only create the project container. Keep the following points in mind when creating a project: 6 „ When you specify the name of the new project. If you specify a .pj.pj in C:/Aurora_Program. or a different project name. If you specify a file extension other than . For more information on adding project members.pj file extension. To add files.pj file extension. to the project. This results in an error and MKS Source asks you to specify a different path and file name. „ For case-insensitive repositories. if project. To create a project. see “Adding Members to a Project” on page 51.pj file extension to the file name. MKS Source appends the . For more information on creating Sandboxes.Chapter 2: Projects Basic Project Operations When you are ready to place a group of development files under version control using MKS Source. „ A single project name can be used only once in the same location. For example. For backwards compatibility.pj already exists in C:/ Aurora_Program. This section provides the procedures for: „ “Creating a Project” on page 6 „ “Importing a Project” on page 7 „ “Dropping a Project” on page 8 „ “Adding a Project” on page 8 „ “Opening a Project” on page 9 Creating a Project When creating a project.pj file extension in uppercase or mixed case. MKS Source does not distinguish between project names differing only in case. see the MKS Integrity Server 2007 Administration Guide. MKS Source replaces that file extension with the correct lowercase . Projects can also be imported from older versions of MKS Source.pj file extension. or added back after being dropped. MKS Source automatically assigns the . you can import projects and subprojects that do not have the . the first step is to create a project on the MKS Integrity Server. or members. you cannot create PROJECT. the file browser does not show any files or directories. A project member or subproject is considered out of tree when it does not reside in the project directory. once a project has been imported you may not perform commands on it using an older version of MKS Source. MKS Source commands can be performed upon it. 7 . The project must be re-imported before it can be used again with this version of MKS Source. the import process automatically creates histories for any nonarchived members and checkpoints any non-archived projects. click Project > Import. Importing From Earlier Versions If you are importing a project from an earlier version of MKS Source. you must first decrypt the archives before importing and registering the project with the MKS Integrity Server. If your existing project has encrypted archives. Once a project is imported. When importing projects. If for some reason you need to use an earlier version of MKS Source on a project. Before you import a project. CAUTION MKS Source does not support encrypted archives. see the MKS Integrity Server 2007 Administration Guide. see the Database Repository Migrator document. If you are importing an existing Source Integrity Standard project that includes out-of-tree members or subprojects. first drop the project using the Drop Project command. NOTE The Import Project command is not supported for database repositories. To import a project. For more information on reclaiming a project. the project files must already reside in the server repository. MKS Source automatically detects these and imports them into the newly registered project. For information on how to import projects for database repositories. the project must first be reclaimed by your administrator. Key Considerations „ If your connection to the MKS Integrity Server is disconnected while you are browsing for a file. „ You cannot import a project that is already registered.Basic Project Operations Importing a Project You import projects if you need to do the following: „ restore projects that were dropped in earlier versions of MKS Source (Source Integrity) „ migrate projects from Source Integrity Standard (an earlier version of MKS Source) Importing a project registers it with the MKS Integrity Server. If you are importing a dropped project to its former repository location. pj into C:/Aurora_Program. MKS Source does not distinguish between project names that differ only in case. Dropping a project unregisters it from the MKS Integrity Server. such as checkpointing. you cannot import PROJECT. if project. This results in an error and MKS Source does not import the project. For more information. then any project location given must be under that directory. CAUTION If a project is dropped and any Sandboxes or variants are associated with it. see “Importing a Project” on page 7.properties file on the MKS Integrity Server. select a project in the Projects view. To drop a project. 8 . Adding a Project You can add the following: „ a dropped project that still resides on the server (in the repository) „ an existing subproject as a top-level project To add a project. „ The administrator may restrict the path names of projects being imported on the server.Chapter 2: Projects „ For case insensitive repositories. and click Project > Drop. If this is set. see the MKS Integrity Server 2007 Installation Guide. For example. This is done through the si.serverRoot property in the si.pj is already registered in C:/ Aurora_Program. you can remove it. use the Import Project command. since it traverses all subprojects in the imported project and may perform various operations on them. If you need to restore a project from a backup or a dropped project from an older version of MKS Source. Dropped projects can be added back into MKS Source. „ The processing of this command may take some time. but it does not delete the project. click Project > Add. Dropping a Project When a project has outlived its usefulness or just does not belong on the MKS Integrity Server anymore. Dropped projects can still be accessed as read only from the Change Package and Locks views until the project is purged or reclaimed by your administrator. For details. those Sandboxes or variants no longer function. To drop a project means that the projectis no longer registered with the MKS Integrity Server. When specifying the subproject. but not for further development. see the MKS Integrity Client 2007 Getting Started Guide. see the MKS Integrity Client 2007 Getting Started Guide. To create a development path. NOTE The Variant option is unavailable if there are no available development paths. Operation Procedure To open a project in the GUI Select Project > Open Project. Specifying the Project to Open You can type in or select the project to open. If you are opening a variant or build subproject. you cannot open the project. For detailed information about entering project paths. 9 . see “Creating a Development Path” on page 28. there are rules that control what project configuration you can jump to. „ Build opens a static project based on a specific checkpoint of the master project that is used for building or testing the project. then select a project from the list. You can specify the checkpoint through its checkpoint number or label. For detailed information about selecting projects. To open a project in the Web interface Select File > Open Project or Select File > Open Variant Project or Select File > Open Build Project To open a recently used project Select Project > Recent.Basic Project Operations Opening a Project Opening a project in the GUI allows you to view the project and perform certain commands with its members. You specify the subproject later in the procedure. see the MKS Integrity Client 2007 Getting Started Guide. „ Variant opens a project based on a specific development path. For more information. If your selection breaks any of the rules. Selecting a Project Type When opening a project you can open the following types: „ Normal opens the working project based on the mainline. initially only enter the path and name of the root project. you can use the active links in the title bar to navigate within a project. you would create a new subproject in the toolkit project to contain the calculator application source code. you can open it by typing the following URL in a browser: http://<server>:<port>/si/viewproject?projectName=<(sub)projectname> for example http://xyzBusiness:7001/si/viewproject?projectName= c:/master_projects/SourceCode/project. Working With Subprojects This section discusses the procedures for: „ “Creating a Subproject” on page 10 „ “Adding a Subproject” on page 11 „ “Adding a Shared Subproject” on page 12 „ “Configuring a Subproject” on page 13 „ “Moving a Subproject” on page 15 „ “Dropping a Subproject” on page 17 Creating a Subproject You create a new subproject. To navigate to a subproject. „ In the Web interface.Chapter 2: Projects Alternate Methods of Opening a Project „ In the Web interface.pj. To create a subproject in the GUI. click the applicable portion of the link. You can open a build project from the Project History view by selecting a checkpoint and clicking Project > View Project. 10 . you can also open a variant project from a Project view by selecting Project > Open Variant Project. NOTE In the Web interface. if you had a financial toolkit application that you wanted to add a new calculator application to. select the project or Sandbox to create a subproject in. then add members and configure the subproject as necessary. and select Project > Subproject > Create. For example. if you know the location of a project. you can open a project from the Projects view by selecting the project and clicking Project > View Project. „ In the GUI. Specifying the Subproject to Add You can type in or select the subproject to add. the subproject’s historical information remains. Selecting a Subproject Type When adding a subproject you can specify one of the following types: „ Normal adds a working subproject based on the mainline „ Variant adds a subproject based on a specific development path. „ Build adds a static subroject based on a specific checkpoint of the master project that is used for building or testing the project. „ Default adds a subproject as the same type as the parent project. see the online help. NOTE If you do not select a subproject type. Using Change Packages For information on the Change Package field. see “Specifying a Change Package for an Operation” on page 118. NOTE The Variant option is unavailable if there are no available development paths. see “Creating a Change Package” on page 117. select Project > Subproject > Add. see “Creating a Development Path” on page 28. To add a dropped subproject to a project in the GUI. Adding a Subproject When a subproject is dropped from a project. see “Specifying a Change Package for an Operation” on page 118. You can add the subproject back. For information on creating a change package. see the MKS Integrity Client 2007 Getting Started Guide. For information on creating a change package. but not for further development. see the MKS Integrity Client 2007 Getting Started Guide.Working With Subprojects For information on the Change Package field. For detailed information on the Create Subproject options. To create a development path. You can specify the checkpoint through its checkpoint number or label. For detailed information about selecting projects. For detailed information about entering project paths. 11 . see “Creating a Change Package” on page 117. the subproject is added as the same type as the parent project. but is referenced by the other project and shown as a shared subproject. Shared Project Behavior A shared subproject functions the same as an unshared subproject and is accessible by the same commands. Shared subprojects are not required to be located within the same directory structure or project hierarchy. select the project or Sandbox you want to add the shared subproject to. but they contain different content. NOTE The Variant option is unavailable if there are no available development paths. To create a development path. The shared subproject continues to reside within its original master project. Ryan adds the images to a subproject and shares it between the two projects. A shared subproject allows you to access common members across many projects. Shared Projects From Source Integrity Standard Shared subprojects (out-of-tree subprojects) that were created in Source Integrity Standard (an earlier version of MKS Source) are detected as they are accessed by MKS Source without disrupting the operation. Both Web sites are under version control and use the same images. and select Project > Subproject > Add Shared. When working with shared subprojects. see “Creating a Development Path” on page 28. event triggers. You cannot import members into a shared subproject from its shared location. 12 . To avoid duplication and ensure both Web sites contain the same images. This enhances the portability of change packages across different projects. Example Ryan maintains the North American and German Web sites for ABC Financial. The format of these subprojects is retained until you change or update it to the new format by reconfiguring it. MKS Source allows you to share a subproject between two or more projects by referencing the original subproject. Selecting a Subproject Type When adding a subproject you can specify one of the following types: „ Normal adds a subproject based on the working subproject on the mainline „ Variant adds a subproject based on a specific development path of the master project.Chapter 2: Projects Adding a Shared Subproject A shared subproject is a subproject that is a member of more than one project. MKS Source uses the actual name of the subproject in the repository rather than its relative name in the project hierarchy for the purposes of resolving ACLs. policy statements. To add a shared subproject. and change package entries. you can modify the type to suit your needs. or you can change a variant subproject to a normal subproject to continue development on the main trunk. For information on creating a change package. For example.2 of amortization/ project. 13 . see the MKS Integrity Client 2007 Getting Started Guide. Web Select Project > Configure Subproject. but not for further development. Specifying a Destination Directory When you type the subdirectory for the shared subproject. Interface Procedure GUI Select Project > Subproject > Configure. Example Jen wants the ABC Tools development team to work with revision 1. the subproject is added as the same type as the parent project.pj subproject to be a build subproject. you can change a normal subproject to a build subproject to suspend development. see “Creating a Change Package” on page 117. Configuring a Subproject Once you create or add a subproject.Working With Subprojects „ Build adds a static subroject based on a specific checkpoint of the master project that is used for building or testing the project. see the MKS Integrity Client 2007 Getting Started Guide. so she configures the amortization/project. Specifying the Shared Subproject You can type in or select the subproject for sharing. „ Default adds a subproject as the same type as the parent project. the subproject name must reside in the project directory. For detailed information about selecting projects. NOTE If you do not select a subproject type. You can specify the checkpoint through its checkpoint number or label. For detailed information about entering project paths. see “Specifying a Change Package for an Operation” on page 118. Jen does not want the general development team to do any further development on this release. Using Change Packages For information on the Change Package field.pj. the last known stable version of the code. 14 . Selecting a Subproject Configuration Type When configuring a subproject you can specify one of the following types: „ Normal configures a subproject to the working subproject on the mainline. but do exist in the configured subproject. Aurora/project. display as former members. display a delta to indicate that the Sandbox does not have a working file for the new member. The format of these subprojects is retained until you change or update it to the new format by reconfiguring it. the reconfiguration does not change all instances of that subproject. but do not exist in the configured subproject.pj is shared in the two projects. To create a development path.pj and Libra/project. „ Subprojects that existed as members in the original version of the subproject. To resolve the differences. „ Variant configures a subproject to a specific development path. Source Integrity Standard Subprojects Configured subprojects or frozen subprojects created in Source Integrity Standard (an earlier version of MKS Source) are detected as they are accessed by MKS Source without disrupting the operation. if the subproject tools/ project. This means that when you configure a shared subproject. see “Creating a Development Path” on page 28. Deltas reflecting these changes appear in the Project or Sandbox view. a change to the configuration of Aurora/tools/project. remember that each shared subproject is configured independently. Some differences you may see include: „ Members existing in the original version and configured version of the subproject display a delta if the working revision in the Sandbox is different from the new member revision. For example. Configuring Shared Subprojects When configuring shared subprojects. resynchronize the subSandbox.pj.pj. „ Members that did not exist in the original version of the subproject. „ Members that existed in the original version of the subproject.Chapter 2: Projects Changes Between Configurations Any changes you make when configuring a subproject affects the project as a whole and any shared subprojects within it.pj does not affect the configuration of Libra/tools/project. NOTE The Variant option is unavailable if there are no available development paths. display as former subprojects. but do not exist in the configured subproject. variant. 15 . When a subproject is moved. summarizing the details of the move. it behaves like a shared subproject. subproject. For information on creating a change package. To reduce the size of the toolkit installer. Moving a Subproject To meet the needs of changing project configurations. event triggers. Example of Moving a Subproject The size of the documentation set for the ABC Financial toolkit has increased significantly since the last release. build). any common directory prefix shared by the subprojects is automatically removed during the move. Any external references (ACL names. The moved subproject also retains its configuration type (normal. Key Considerations „ Moving subprojects between projects on different servers is not supported. If you are moving multiple subprojects. see “Specifying a Change Package for an Operation” on page 118. and/or directories in a single project. Sandbox. You can also moved a subproject by dragging it onto a project. or variants of the same project on the same MKS Integrity Server. For more information on the Move Subproject Wizard. but not for further development. and the path and name of the subproject file in the repository remains the same.pj project to the cd_browser. The drag and drop action initiates the Move Subproject Wizard.pj subproject from the toolkit. see the online help . sub Sandbox. or directory node in the active Project or Sandbox view. see “Creating a Change Package” on page 117. a subproject that is moved into a new project hierarchy continues to inherit ACLs from its original hierarchy and not from the new parent project. however. You can specify the checkpoint through its checkpoint number or label. Michelle moves the documentation. Using Change Packages For information on the Change Package field.pj project. policy statements) to the moved subproject continue to work because they are based on the subproject’s original name. you can move one or more subprojects and all of its members and sub-subprojects between projects. The subproject in the new location continues to be backed by the underlying subproject in the old location. product management wants the documentation available from the CD browser only. You can move a subproject through a Project or Sandbox view using the Project > Subproject > Move command. or onto an adjacent open Project or Sandbox view.Working With Subprojects „ Build configures a static subproject to a specific checkpoint of the project that is used for building or testing the project. initially only enter the path and name of the root project. perform an Add Shared Subproject operation (for more information. If your selection breaks any of the rules. Selecting a Project Type You can move the subproject(s) to a normal project based on the working project on the mainline or a variant project based on a specific development path (as long as there are available development paths). Selecting a Destination Project/Sandbox If you are selecting a destination project or sandbox instead of using the default. For more information.Chapter 2: Projects „ The moved subproject inherits the project or directory ACLs from its original location. the create subproject operation exits without providing you with the option of creating a subproject with a different path and name. „ Move subprojects do not display as shared in a Sandbox or Project view unless the subproject was shared before the move. If you want to co-locate an existing subproject with another subproject. If you are moving the subproject to a variant or build subproject. and the DropSubproject permission is required on the source project. you cannot co-locate subprojects in the same directory. see “Adding a Shared Subproject” on page 12) on the subproject you want to move. „ The AddSubproject permission is required on the target project. see the MKS Integrity Client 2007 Getting Started Guide. the items no longer display on the Associated Items tab for the project. you cannot move the subproject. You must open the MKS Integrity items and associate them with the subprojects in their new locations. The ConfigureSubproject permission is required for moving heterogeneous subprojects. „ Deferred subproject moves are not supported. see the MKS Integrity Client 2007 Getting Started Guide. see the MKS Integrity Client 2007 Getting Started Guide. you are prompted to add the existing subproject. „ If you move a subproject that is associated with any MKS Integrity items. You cannot apply the ACLs from the new location to the subproject. When specifying the subproject. For detailed information about entering project paths. you can type in or select your destination project or sandbox. „ You can move one or more subprojects across directories within a single project. You specify the subproject later in the procedure. 16 . „ When you move one or more subprojects. For detailed information about selecting projects. If you attempt to create a new subproject using the moved subproject’s original path and name in the repository. „ The path and name of the subproject file in the repository is permanently reserved. there are rules that control what project configuration you can jump to. followed by a Drop Subproject operation (“Dropping a Subproject” on page 17). If you answer no. it is no longer listed as part of the Sandbox or master project. This section provides procedures for: „ “Checkpointing a Project” on page 18 „ “Project History View” on page 19 „ “Restoring a Project” on page 22 „ “Adding Project Labels” on page 24 „ “Deleting Project Labels” on page 25 „ “Viewing Project Differences” on page 25 17 . you cannot specify the destination project’s directory or the destination Sandbox’s directory if this would result in a co-located project scenario. When you checkpoint a project in MKS Source. and compare differences between checkpoints. Project Histories and Checkpoints You can track the changes made to a project throughout it’s evolution by preserving the project information as of a particular point in time. you also remove all members within that subproject. but the subproject’s history remains in the project record. For information on the Change Package field. you can remove it at any time. You can view the history of a project. see “Creating a Change Package” on page 117. Dropping a Subproject If a subproject has outlived its usefulness or just does not belong in a project anymore. restore a project to an earlier checkpoint. it creates a revision of a project in the project history.Project Histories and Checkpoints Selecting a Destination Directory When specifying a destination directory for the subproject(s). see “Specifying a Change Package for an Operation” on page 118. select one or more subprojects to remove and select Project > Subproject > Drop. After you remove a subproject from a project. in case you need to recreate an earlier version of the project. For information on creating a change package. IMPORTANT When you remove a subproject. To drop a subproject. To preserve the project structure. It does not include anything added to the project or its subprojects after the checkpoint starts. Steve checkpoints the amortization project. your administrator must enable change package reviews. you can perform member and subproject operations on the project. For more information on variant or build Sandbox. you save all the information needed to recreate the project completely as it existed when you checkpointed it. This means that a checkpoint records the structure and contents of the project at the time the checkpoint starts. When you checkpoint a project. If you want to create a variant or build Sandbox. such as checkins or submitted change packages. The saved information includes the project structure and the list of members with their revision numbers. While the checkpoint is in progress. For more information on change package reviews. You cannot perform the following operations: „ Checkpoint the project on another development path „ Restore the project to a previous checkpoint „ Delete the project from the database „ Add or delete project labels „ Create or remove development paths For more information on deleting projects. see “Change Package Reviews Overview” on page 128. 18 . all checkpoints are transactional. you must first checkpoint the project.Chapter 2: Projects Checkpointing a Project Checkpointing a project creates a new revision of the project and adds it to the project history. but you cannot perform any operations that affect project checkpoints. NOTE To ensure that only complete change packages are included in your project checkpoints. or labels. Checkpointing With a Database Repository If you are using a database type repository. see “Using Variant Sandboxes” on page 38 and “Using Build Sandboxes” on page 38. see the MKS Integrity Server 2007 Administration Guide.0 of the ABC Financial Toolkit is approaching and work on the amortization project has been completed and passed to Quality Assurance. development paths. Interface Procedure GUI Select a project or Sandbox and select Project > Checkpoint Web interface Select a project and select Project > Checkpoint Project Example of Checkpointing a Project Release 3. square brackets ([ ]). Release 6. use a label to identify significant project development milestones when you checkpoint a project. Key Considerations „ Checkpointing a project affects the project only. For example. the label from the earlier checkpoint is moved to the new checkpoint. contact your administrator. For more information on permissions.2). Project History View The Project History view is a window that displays the history of a project. NOTE If you specify a label that is the same as one used for another checkpoint in the history and have the MoveProjectLabel permission. but to simplify postrelease maintenance. including the checkpoint number and description. Additionally they cannot have the same format as a valid revision number. it does not check in every member of the project.Project Histories and Checkpoints Using Project Labels You can use the project’s revision number to keep track of your projects. author. if you checkpoint a project and label it with a release identifier (for example. Interface Procedure GUI Select Project > Views > View History Web Select Project > View Project History 19 . For more information on configuring subprojects. „ A checkpoint label is a unique text string assigned by you to identify a new project checkpoint. date. Do not select these options unless there is a definite need to label or set the state of all members individually. configure them as build subprojects first. Beta. or leading spaces. If you do not want to checkpoint subprojects. Labels cannot contain colons (:). see “Configuring a Subproject” on page 13. labels. „ If you are working in a regular Sandbox. „ Using the Apply Label to All Members or Apply State to All Members options when checkpointing a project slows down the checkpoint operation considerably. and promotion state of the project. „ Checkpointing a project checkpoints all its subprojects. for example. issuing a checkpoint command checkpoints the Sandbox’s master project. you can find and recreate that particular development state more easily. In order for information to display in the details panel. including branches and merge lines. If summary information is not displayed in the view. You can change the information that displays for each checkpoint by selecting View > Show beside each node. you can toggle between a graphical view and a list view by clicking View > List or View > Graphical. Graphical Project History view The information in the graphical view shows the path of development from checkpoint to checkpoint.Chapter 2: Projects Working With the Project History View By default. 20 . you must select a checkpoint in the GUI or click a revision number in the Revision column in the Web interface. the project history view displays two panels: a panel showing the path of development. In the GUI. and a panel showing details for a selected checkpoint. it displays in a tooltip when you place your mouse pointer on a specific checkpoint. Field Description Checkpoint Checkpoint number of the project Author User who checkpointed the project Date Date the checkpoint was was created Labels Label for checkpoint. 21 . If you have configured the Project History view to be dynamic. see the MKS Deploy 2007 Administration Guide. see the MKS Integrity Client 2007 Getting Started Guide . If you are using MKS Deploy. clicking on a cell in this column changes it to a drop down list. The following information can display in the project history details. and the Staging Systems view. State State of the project Checkpoint Description Description for checkpoint Development Path Development path of checkpoint Development Path(s) Branched From Here Any development paths that branch directly from the checkpoint. Stage view. it is automatically updated to reflect changes in the Projects view and the Project view. You can turn the display of this panel on or off using the View > Show Details option. this view is also automatically updated to reflect changes in the Staging System view. For more information on MKS Deploy. For more information on configuring dynamic views.Project Histories and Checkpoints List Project History view The information in the list view is displayed in columns. and there are multiple MKS Integrity item associated with the checkpoint. The details panel in the graphical or list view displays additional details for a selected checkpoint. If the Associated Items column is displayed. a maximum of 200 checkpoints display. branched checkpoints are not included in the count. The Restore Project command can be applied to both normal and variant projects. The number of checkpoints displayed is calculated based on the number of visible mainline checkpoints. You would invert a filter if. a banner displays at the top of the view indicating the number of checkpoints displayed. select whether the criteria should be combined using a Logical AND or a Logical OR. 22 . You can apply filters to a project history in either the graphical history view or the list view. even if they are not currently a member of the project. the number of checkpoints displayed can be too large to work with. Restoring a project is useful when development must revert back to an earlier version and there are no plans to proceed from the current version of the project. You can change the filter by selecting View > Change Filter. NOTE The Restore Project command can potentially restore and checkpoint dropped subprojects that existed at the target revision. for example. Checkpoints selected with this command can be manipulated as a group by other MKS Source commands. „ If you limit the number of checkpoints to display in the Project History view and the maximum has been reached. Any further development then proceeds from the restored project revision. click the filter a second time and the ! symbol displays. the linked nodes may not represent consecutive checkpoints. By default. You can change the maximum by selecting View > Maximum trunk revisions. Key Considerations „ To invert a filter. If the graphical history view is filtered. This allows you to display a specific group of checkpoints for a project that might have hundreds or thousands of checkpoints. you wanted to exclude checkpoints created by a particular author.Chapter 2: Projects Filtering a Project History in the GUI You can use the project history filter in the GUI to display any checkpoints of the current project that meet specified selection criteria. „ If you choose more than one selection criteria. Restoring a Project The Restore Project command allows you to restore a project to a previously checkpointed revision. Even with filtering. The nodes are connected by solid lines if they represent consecutive checkpoints and dotted lines for non consecutive revisions. 4 and you decide to restore it to revision 1.5pre-checkpoint You would then continue your project development work from revision 1. Therefore. if no default is specified) „ Trunk Tip. select the project that you want to restore in either a Project or Sandbox view.2. the following project revisions are generated: 1. select one of the following: „ Head revision.6final checkpoint 1. For example. two revisions are generated. How Restore Project Command Works MKS Source performs the Restore Project command as follows: „ A checkpoint is performed on the current project revision. you can select the revision based on a checkpoint number or label by clicking the appropriate tab.Project Histories and Checkpoints To restore a project through the GUI. if the head revision of the project is 1. Selecting Checkpoint to Restore You can select the checkpoint to restore by selecting a Pre-Defined Revision or a Specific Revision. The default revision is the most recent checkpoint. For new development paths. all restored members return to the initial state. you should instead create a development path (see “Creating a Development Path” on page 28).6. 23 . for each project you restore. IMPORTANT Do not use the Restore Project command to create a new development branch from a previously checkpointed project. „ The project is restored to the target revision. and select Project > Restore. Key Considerations „ When a project is restored. If you want to restore a specific revision. If you want to restore a pre-defined revision. NOTE When you work through a Sandbox or sub Sandbox. „ A final checkpoint of the restored revision is made. which represents the latest checkpoint on the default branch of development (or on the mainline. which represents the latest checkpoint on the mainline independent of the default branch settings. the corresponding master project is referenced. „ You cannot restore a build project using the Project > Restore command. 24 . see the MKS Deploy 2007 Administration Guide. Labels are unique text that describe the product stage or release. Labels cannot contain colons (:).Chapter 2: Projects „ The Project > Restore command can be applied to both normal and variant projects. Numbers that contain spaces are acceptable. see “Checkpointing a Project” on page 18. Project labels can also be added as part of the checkpoint process. „ You cannot retore a project if a checkpoint is in progress on that project. „ To restore a variant project to a specific project revision. In the GUI. „ You cannot restore a project that is associated with a deploy stage. For more information on creating a development path. square brackets ([ ]). 2432 1234. Project labels can be based on any information that would be useful in identifying that particular checkpoint of the project. numbers in the same format as a valid revision number (1. to move an existing label to another checkpoint. „ You can effectively undo the Project > Restore command by restoring the project to the pre-checkpointed revision. the labels display in alphabetical order. then select the Move Existing Label option. leading spaces. For more information. for example. for example. If there is more than one label on a project. For more information on deploy stages. or the content of the project. or numbers without any spaces (14325). Adding Project Labels You can add labels to project checkpoints.23). the development path must exist in all subprojects referenced by the project revision. Operation Procedure To add a project label in the GUI Select a checkpoint in the Project History view and select Project > Properties > Add Label To add a project label in the Web interface Select a checkpoint in the Project History view and click History > Properties > Add Label or Select a project in the Project view and select Project > Add Label NOTE You cannot add a label to a project if a checkpoint is in progress on that project. see “Branching Projects” on page 27. a code freeeze. click Options. „ Project attributes may be added or deleted. For more information on the Project Differences view. the content of the project file changes: „ The revision number of the project is updated each time you checkpoint that project. Information is provided on any change packages that have been applied between two checkpoints of the project.Project Histories and Checkpoints Deleting Project Labels You can delete project labels. see “Checkpointing a Project” on page 18. „ Project members may be added or deleted. select a label to delete from the Label list. their revision numbers change. To delete a project label in the Web interface Select a project and select Project > Delete Label or History > Delete Label. see the online help 25 . Operation Procedure To delete a project label in the GUI Select a project or Sandbox and select Project > Properties > Delete Label. Deleting project labels may be appropriate in situations where a label is no longer relevant or where an incorrect label is applied. The View Project Differences command can compare the following: „ two specified checkpoints of the project „ working project with a specified checkpoint „ working project with the last checkpoint For more information on checkpointing. NOTE You cannot delete a label from a project if a checkpoint is in progress on that project. select a label to delete from the Label list. „ As you check in individual project members. Viewing Project Differences As you work with the project and its members. In the Delete Label dialog box. This information is extremely useful for confirming the specific content of a project. In the Delete Label dialog box. click the check boxes of the checkpoints you want to compare. you can view the calculated metrics for a specific project checkpoint. select the two checkpoints of the project you want to compare. then click Project > Views > View Differences Web From the Project History view. then select Project > Views > View Differences. see the MKS Integrity Server 2007 Administration Guide. for variant projects. this is the last checkpoint on the trunk. 26 Operation Procedure To view project metrics for a build project in the GUI View Metrics To view project metrics for a normal or variant project in the GUI Select a revision in the Project History view and click Views > View Metrics To view project metrics for a build project in the Web interface Project Metrics To view project metrics for a normal or variant project in the Web interface Select a revision in the Project History view and click History > View Project Metrics Open a build project and click Project > View > Open a build project and click Project > View . this is the last checkpoint on the variant’s branch. MKS Source compares the contents of the build project checkpoint with the last checkpoint on the build project’s branch. For information on setting up metrics for MKS Source projects. then select History > View Project Difference Viewing Differences Between the Working Project and a Specified Checkpoint To compare the contents of the working project (or the last checkpoint of a build project’s branch) with a specified checkpoint. you can perform the same type of comparison by selecting Project > Views > View Differences. MKS Source compares the contents of the working project (for normal or variant projects) with the last checkpoint. Project Metrics If metrics are being tracked for MKS Source projects.Chapter 2: Projects Viewing Differences Between Two Specified Checkpoints of the Project Interface Procedure GUI From the Project History View. from the Project History view select a checkpoint. For build projects. This comparison shows all of the changes to the project since it was created or since the last time it was checkpointed. Using a Project view in the Web interface. For normal projects. Viewing Differences Between the Working Project and the Last Checkpoint When no specific checkpoint of the project is selected. Branching Projects Branching projects is useful for: „ extracting and building from previous versions of a project „ building customized versions of a product „ performing branch development work „ performing post-release maintenance „ fixing defects in previous versions of the product „ testing new features outside of the main development path „ experimenting with research that does not affect regular development You create a project branch by creating a new development path. NOTE Metrics are calculated automatically by event triggers. see “Creating a Development Path” on page 28. There are main models to follow when branching projects: „ release based branching „ project based branching 27 .Branching Projects The Metrics view displays the calculated value for each metric. For more information. and the average value of the metric across all files used in the metric calculation. You can calculate metrics manually in the Project History view of the GUI by selecting a project checkpoint and clicking Project > Calculate Project Metrics. the number of files used in the metric calculation. Project Based Branching In a project based branching model. When using this model. and defects) until the last minute. enhancements. the content of the project (features. and tends to have updates to production as frequently as every week. see “Using the Apply CP Command” on page 138. enhancements. In a project based branching model. For more information on resynchronizing change packages. For more information on Apply Change Package. This forces all active project branches to synchronize with the latest production release. The project is released in increments into production. enhancement. Once you have created a development path. and defects) tends to be static and well defined. it is recommended that you only create branches for concurrent or parallel development projects. Changes made through the new development path are kept separate from the main development trunk unless you choose to merge them later. the complete project goes through the stages of development. see “Using the Resync CP Command” on page 151. Typically. enhancements. Bug fixes and stabilization development work continues on the main trunk of the project and are migrated to the release candidate branch using Apply Change Package. and defects) tends to be dynamic. Changes made on project branches are merged into an integration branch using the resynchronize change package command and tested on that branch before being merged into the main trunk. and release. with constant additions and removals of subprojects (comprised of features. This type of branching model is suited for development environments where full versions are released into production. it is recommended to limit the number of branches to avoid the need for mass merges at a later point. All development is performed on project branches created from the latest production checkpoint. After newly introduced integration code has been released on the main trunk. Release candidates are identified as checkpoints and finalized on a project branch. Usually. all active project branches are dropped and re-created from the latest main trunk (production) checkpoint. 28 . you can open and work in a variant project by opening a variant Sandbox. For more information.Chapter 2: Projects Release Based Branching In a release based branching model. the content of the project (features. All development activity is performed on the main trunk of the project. see “Opening a Sandbox” on page 44. defect or task level is not recommended. this type of development does not release the entire project after the initial rollout. testing. Creating a Development Path A development path is an identifier given to a new branch of software development. Creating branches at the feature. 29 . He must use version 1. If you want to create a development path from a specific checkpoint. In the variant Sandbox. Example A user group at ABC Financial requests a version of the Stock Calculator that has the commission fields removed and a special commissions legal message added. he creates a development path and a variant Sandbox off of the checkpointed 1. if no default is specified) „ the Trunk Tip. which represents the latest checkpoint on the mainline independent of the default branch settings.0 version. plus any development paths branched from a checkpoint. Interface Procedure GUI Select a project or Sandbox and select Project > Development Path > Create. The default checkpoint is the most recent checkpoint. which represents the latest checkpoint on the default branch of development (or on the mainline. you can see the current state of the project along the development path and the changes made by other developers using it. you can select the checkpoint based on a checkpoint number or label by clicking the appropriate tab. You can view the development path of a checkpoint. you can select one of the following: „ the Head revision. NOTE You cannot create a development path for a project if a checkpoint is in progress on that project. by selecting the checkpoint in the Project History view and viewing the details panel.Branching Projects MKS Source allows multiple developers to point to the same development path. each using their own variant Sandbox.0 of the stock project that did not contain the commission fields and then add the new legal message to that version. Selecting the Checkpoint to Create a Development Path From You can select the checkpoint to create a development path from by selecting a Pre-Defined Revision or a Specific Revision. When a development path is created for a project. To do this. Web Select a project and select Project > Create Development Path or History > Create Development Path. it is also created for all subprojects. reserving the assigned name as a unique identifier and ensuring no two paths can share the same name. If you want to create a development path from a pre-defined checkpoint. The task is assigned to Chad. it becomes important to understand what areas of a project might be affected by parallel development. Active projects are projects that are currently under development. Interface Procedure GUI Select a project or Sandbox and select Project > Development Path > Remove. Locating Where an MKS Source Object Is Used As projects grow in complexity. select a development path to remove from the Development Path list. or registered top-level project is shared with. it can be difficult to determine the relationships that MKS Source objects—projects. such as viewing members. you can locate where a specific MKS Source object is used in your source code repository. Deleting a development path is permanent. any changes you checked in through the development path remain in your repository. „ determine what development paths a selected member or subproject belongs to „ determine if a selected member revision is part of a checkpoint „ confirm all existing checkpoints for a selected revision before you delete it „ display the development path that a corresponding member revision belongs to . CAUTION If you remove a development path that is referenced by a variant Sandbox. For example. Web Select a project and select Project > Remove Development Path or History > Remove Development Path In the Remove Development Path dialog box. The search results appear in a Locate view. that allows you to refine and sort the results. view each located object in greater detail. and members—have with one another.Chapter 2: Projects Removing a Development Path Once a development path is no longer needed or useful. you can remove it at any time. In the Remove Development Path dialog box. however. Using the Locate command. subprojects. you might need to: 30 „ determine what active projects a selected member. you cannot open that variant Sandbox. When working with multiple development paths and shared subprojects or shared member archives. NOTE You cannot remove a development path from a project if a checkpoint is in progress on that project. and perform basic operations on them. subproject. select a development path to remove from the Development Path list. It displays only the projects and development paths containing the object you are searching. Key Considerations „ The Locate command can only be used in the database repository. The number of results displayed is also controlled by the server limit. You can specify the maximum number of results to display. MKS Source displays the following message at the bottom of the Locate view: Showing <set limit> of <total number of objects>. 31 . then select Project > Subproject > Locate To locate where a member is used by searching by member name Select a member. Maximum Results Displayed If you are searching for a member or subproject by name. checking he Limit Search to Active Paths option only searches projects referenced by top level projects currently registered on the server. If the number of objects that match the search criteria exceeds the set limit. or only registered toplevel project names. which is set at 5000 by default. Administrators can change the default limit. then select Project > Subproject > Locate To locate where a member is used Select a member. Running the command from the file system repository returns an error message. „ List mode displays detailed information about all occurrences of the object in the projects and development paths containing the object. Any projects where the subproject was added as shared are not displayed. then select Member > Revision > Locate To locate where a subproject is used by searching by subproject name Select a project. If a subproject is shared by two or more projects. then select Project > Locate To locate where a subproject is used Select a project. then select Member > Locate To locate where a revision is used Select a revision. Projects to Search On the Advanced tab. only development path names. you can specify the level of detail displayed in the Locate view: „ Distinct mode provides a high-level view of the information. You can select whether to display only project names. only the original project is displayed. then select Member > Locate By Name By Name Details Displayed On the Advanced tab.Locating Where an MKS Source Object Is Used „ display which master projects a selected subproject belongs to Operation Procedure To locate where a project is used Select a project. To generate a report. projectspecific identification. Reporter calculates a summary of the changes to a project or archive. select a project or Sandbox. If you installed MS Access after installing the MKS Integrity Client. To use Reporter. and which team members made them. then select Project > Run Report. „ Archive locations do not display in the Locate view. and you must have selected Microsoft Access™ as your reporting application when you installed the MKS Integrity Client. For more information. When the Locate view displays. or individual archives. you can define how you want it to look to suit your preferences or for quick. MKS Source Reporter analyzes projects. contact your system administrator to enable MKS Source reporting. You can save Reporter’s data files (containing the results of its project or archive analysis) as text files that most database applications can read. see the MKS Integrity 2007 User Guide. You can also create customized reports using MS Access. Generating Reports In the GUI. NOTE If you are integrated with MKS Integrity and your administrator has set up MKS Integrity items to collect MKS Source project information. for some reports.Chapter 2: Projects „ You require the OpenProject permission for the project you are running the Locate command from. If you display a report as a graph. you must have a default printer installed. and allows you to generate a variety of reports and graphs based on its findings. Types of Reports Reporter generates the following summaries: 32 „ changes introduced by individual authors „ changes between the member revision and a revision with a particular label „ changes between the member revision and any other revision „ a list of locked members and the names of users who locked them „ a list of revisions with a particular label or state . then displays or prints the summary as text or. you can use the expanded reporting capabilities provided by MKS Integrity. For example. you could create a report to show the changes that have been made to a source file. „ Objects in development paths that have been removed do not display in the Locate view. their members. optionally as a graph. MKS Source informs you if there are additional projects that you do not have permission to view. Select a report type from the list of reports. 4. Changes Grouped by Author (Summary) This type of report shows a brief summary of changes made by each user. including: „ name of the member „ revision numbers of newer revisions in the archive 33 . The information summarized includes: „ name of the member „ total number of revisions changed by each person „ total number of lines (or bytes for binary files) that were added or deleted by each person This report type offers two additional options: „ The report can be on a single. and 1. „ It can be restricted to changes made before or after a specified date. if a member revision is revision number 1. or all authors. „ It can be restricted to changes made before or after a specified date.Generating Reports „ project member history (including revision descriptions) by file Changes Grouped by Author This type of report lists changes to members or revisions grouped by the person who made them. if both John and Sue made changes to several members.6. Each section of the report shows: „ name of the member „ revision number of changed revisions „ date the change was made „ number of lines (or bytes for binary files) that were added or deleted This type of report offers two additional options: „ The report can be on a single. Each type of project member (Text. this report lists the newer available revisions and information about each. subdivided according to the person who made the changes. Binary. For example.5.3. specified author. 1. the report would include two sections. For example. Revisions Newer Than Member Revision This report tells you which members have more recent revisions available. specified author. Auto-Detect) displays in a separate section of the report. one for John and one for Sue. or all authors. but the archive contains revisions numbered 1. the report lists: 34 „ name of the member „ revision number „ person who has it locked . the report shows: „ name of the member „ revision numbers of all the revisions between the member revision and the selected revision number „ author of each revision „ date of each revision „ revision description for each revision List Locked Revisions This report lists all locked revisions in a project or archive. This report can be generated for a single member or for all project members. This report can be generated for a single member or for all project members. For each locked revision.Chapter 2: Projects „ date of the newer revisions „ revision description for each newer revision Changes From Member Revision to Label This report lists all revisions in a member’s archive between the member revision and another revision with a specified label. For each member. the report shows: „ name of the member „ revision numbers of all the revisions between the member and the labeled revision „ author of each revision „ date of each revision „ revision description for each revision Changes From Member Revision to Revision This report lists all revisions in the member archive between the member revision and another revision with a specified revision number. For each member. a project could go through states such as: development. 35 . MKS recommends using MKS Integrity. For each state setting it finds.Promoting and Demoting Projects List Revisions Associated With Labels This report scans the archives of all project members and extracts any labels they contain. the report lists: „ name of the label „ name of the member archive „ revision number the label is associated with List Revisions Associated With States This report scans the archives of all project members and extracts any state settings they contain. NOTE Promoting and demoting projects is for historical purposes only. For example. it shows: „ revision number „ revision date „ revision description When you choose the member to report on. the report lists: „ state setting „ name of the member archive „ most recent revision the state is associated with Project Member History This report displays all the revisions of a specified project member. you can specify that the information should be sorted according to revision number or revision date in either ascending or descending order. and release. For each label it finds. testing. For each revision. production. Promoting and Demoting Projects Administrators can define promotion states that control how development objects move through a structured development cycle. or demote it to return it to the previous state. You promote a project to move it to the next state in the cycle. To control project workflow more effectively. In the Demote Project dialog box. NOTE When you promote a project. To promote a member. TIP In the MKS Source Web interface. your administrator must have defined promotion states. Interface Procedure To demote a project in the GUI Select a checkpoint from the Project History view and select Project > Properties > Demote. you can also demote a project from the Project view by selecting Project > Demote. but you can do so at any time. you demote a project (or set its state) when you checkpoint it. select a new state from the Demote to State list. TIP In the MKS Source Web interface.pj) file is affected. To more effectively control project workflow. MKS recommends using MKS Integrity. you can also promote a project from the Project view by selecting Project > Promote. only the project file (. In the Promote Project dialog box. Demoting a Project Typically. only the project (. Web Select a checkpoint from the Project History view and click History > Promote. your administrator must have defined promotion states. In the Promote Project dialog box. To demote a member. To demote a project in the Web interface Select a checkpoint from the Project History view and select History > Demote. Individual members of the project are not changed. Individual members of the project are not changed. select a new state from the Promote to State list.Chapter 2: Projects Promoting a Project Typically. select a new state from the Demote to State list. but you can do so at any time. When you demote a project. In the Demote Project dialog box. 36 . NOTE Demoting projects is for historical purposes only.pj) is affected. Interface Procedure GUI Select a checkpoint from the Project History view and select Project > Properties > Promote. you promote a project (or set its state) when you checkpoint it. select a new state from the Promote to State list. CHAPTER THREE Sandboxes 3 Managing Your Personal Workspace A Sandbox is a private workspace that resides on the client machine and mirrors the content of a project on the server. This chapter provides details on the following: „ “Types of Sandboxes” on page 38 „ “Creating a Sandbox” on page 40 „ “Importing a Sandbox” on page 40 „ “Sharing Sandboxes” on page 41 „ “Dropping a Sandbox” on page 43 „ “Opening a Sandbox” on page 44 „ “Retargeting a Sandbox” on page 45 „ “Taking Sandbox Snapshots” on page 45 37 . a Sandbox is actually a collection of pointers to its real-life counterparts in the master project. without interfering with the work of others. Sandboxes allow you to work locally in your own workspace. Although it looks and acts like the project it mirrors. In the variant Sandbox. When a variant Sandbox is created for the first time. you choose the development path to use. one developer could be working in a regular Sandbox that includes utility. version 1. „ Build Sandboxes are useful for testing a specific revision of the project. For example.dll. you might want to recreate a static version of an entire project as it existed at some point in the past. To prevent potential conflicts. „ Normal Sandboxes are useful for the sequential development of a project over the long or short term. you can see the current state of the project along that development path and the changes made by other developers using it.dll. see “Opening a Project” on page 9. but not to begin further work along a new development path.Chapter 3: Sandboxes Types of Sandboxes Different types of Sandboxes are available for different types of development. You create a build Sandbox to build or test the project. For information on creating variant Sandboxes. 38 .4 and another developer could be working in a variant Sandbox that contains utility. For more information on branching members. Using Variant Sandboxes A variant Sandbox is based on a specific development path of a project. „ Variant Sandboxes are useful for branching off the main development path. Build Sandboxes could be used for quality assurance or production to distribute files in a fixed configuration. Branching the member history gives each development path its own copy of the revision. reserving the assigned name as a unique identifier and ensuring no two paths can share the same name. For information on creating development paths. see “Branching and Merging Members” on page 98. it is also created for all subprojects. see “Creating a Sandbox” on page 40. For information on viewing a variant project.3. version 1. Conflicts can occur when developers working on different paths need to work on the same revision of a file. you are prompted to branch the member history. When you create a variant Sandbox. see “Creating a Development Path” on page 28. Using Build Sandboxes After major milestones. Both versions are stored in the same member history. the first time you check in a member from a variant Sandbox. such as product releases. For information on viewing a build project. and creates a build Sandbox on the CD burning system.Types of Sandboxes A build Sandbox is a Sandbox associated with a particular project checkpoint and has no development path (since it is static and not meant for further development). you can: „ change labels and states „ resynchronize your Sandbox „ compare a member revision in the build Sandbox to another revision „ merge a member revision in the build Sandbox with another revision (of course. or check in members „ add or remove members „ set the development path „ freeze or thaw members „ checkpoint the master project „ modify project or member attributes „ revert members „ set the member revision Each of these represents further development. lock. No further development can be carried out in a build Sandbox. Example Steve. with a build Sandbox. such as changes to a project since it was last checkpointed When you create a build Sandbox. you choose the project checkpoint to base the build Sandbox on. needs to burn a CD of a special build of the savings calculator for an ABC Financial executive who does not like the bottom part of the calculator. Within a build Sandbox. Steve uses an earlier checkpoint of the savings calculator that did not include the bottom part. It does not suit his corporate audience. For information on creating a build Sandbox. which requires a normal or variant Sandbox. see “Opening a Project” on page 9. you cannot: „ check out. you cannot check a merged file back into the build Sandbox) „ check for differences between checkpoints. 39 . the build manager. see “Creating a Sandbox” on page 40. However. NOTE The Variant option is unavailable if there are no available development paths. If you are creating a variant or build Sandbox in the GUI. „ Variant creates a Sandbox based on a project on a specific development path. NOTE While it is possible to create more than one Sandbox in a single directory. Importing a Sandbox Use the Import Sandbox command when: „ 40 you need to use a dropped Sandbox again . For more information on variant Sandboxes. see “Removing a Development Path” on page 30. When specifying the subproject. The project is then updated to reflect the addition of new project members. If your selection breaks any of the rules. To create a Sandbox in the GUI. For detailed information about entering project paths. see the MKS Integrity Client 2007 Getting Started Guide. Specifying the Project to Base the Sandbox On You can type in or select the project to base the Sandbox on. You specify the subproject later in the procedure. For detailed information about selecting projects. You can specify the checkpoint through its checkpoint number or label. Selecting a Sandbox Type When creating a sandbox you can create the following types: „ Normal creates a Sandbox based on the working project on the mainline.Chapter 3: Sandboxes Creating a Sandbox Once a Sandbox is created. there are rules that control what project configuration you can jump to. To create a development path. you cannot create the Sandbox. see “Using Variant Sandboxes” on page 38. select Sandbox > Create and follow the instructions in the Create Sandbox Wizard. it is not recommended. see the MKS Integrity Client 2007 Getting Started Guide. initially only enter the path and name of the root project. you can add files or members to that Sandbox. For more information on build Sandboxes. „ Build creates a Sandbox based on a specific checkpoint of the master project. see the MKS Integrity Client 2007 Getting Started Guide. For more information. see “Using Build Sandboxes” on page 38. Sandbox sharing is intended when: „ There is a common build location that contains files that developers need to access to build their source before checking it into the build „ Users share the Sandbox by importing it through the network or a mapped drive.6 or later. all clients connecting to the shared Sandbox must be MKS Source 8. select Sandbox > Import and browse to the Sandbox file on your local drive. The imported Sandbox is by reference. 41 . so no working files are stored on the users’ machines. To import a Sandbox in the GUI. during a client machine upgrade) „ you need to change the project or server used by your Sandbox NOTE The master project of the Sandbox must also be registered with the MKS Integrity Server before the Sandbox is imported. Shared Sandboxes provide developers and buildmasters with a window into a single shared work location. „ Users who imported the shared Sandbox now have access to the working files in the shared Sandbox and use those files to create test builds on their machines without requiring those files to be stored locally.Sharing Sandboxes „ you are sharing a Sandbox with another user „ your client registry was lost (for example. Sharing Sandboxes MKS Source provides a way to create a common build location using shared Sandboxes. MKS recommends that all clients connecting to the shared Sandbox be the same version of MKS Source. NOTE To share Sandboxes. as well as for the files in that location „ cannot submit deferred operations in the Sandbox made by other users using the Submit Change Package command (their deferred and lock entries do not appear in your Change Package view) „ only top level Sandboxes can be shared (Shared. Sparse. When a top-level Sandbox is configured to be shared.Chapter 3: Sandboxes Shared Sandbox Common location with working files Imported Sandbox 1 Imported Sandbox 2 Imported Sandbox 3 References Working Files References Working Files References Working Files Sandbox shared with multiple users CAUTION MKS does not support using shared Sandboxes for collaborative development with multiple developers. 42 . and Line Terminator options in the Sandbox Information view are disabled for sub Sandboxes) Configuring a Sandbox as Shared For users to share a Sandbox. all sub Sandboxes are shared as well. Shared Sandboxes may become unstable in this scenario. Users sharing Sandboxes: „ must select View > Refresh for the project to update their Sandbox view to see the true state of the Sandbox (top level project updates recursively) „ should all be in same time zone „ must have read and write permission for the shared location where the shared Sandbox resides. Sub Sandboxes cannot be individually configured to be shared or not shared. only the creator of the Sandbox can configure the Sandbox as shared. To remove sharing from a Sandbox in the GUI. For more information on importing Sandboxes. users sharing that Sandbox no longer have access to it. Only import another user’s Sandbox through the network if that Sandbox has sharing enabled. To drop a Sandbox means that the Sandbox is no longer registered with the MKS Integrity Client. Removing Sharing From a Sandbox When there is no longer a need for a common location. When you share another user’s Sandbox. For more information. IMPORTANT If clients on different platforms are sharing a Sandbox. the creator of the Sandbox can remove the sharing from the Sandbox. Dropping a Sandbox When a Sandbox has outlived its usefulness or just does not belong anymore. and check the Shared option on the General panel. However.Dropping a Sandbox To share a Sandbox in the GUI. Users sharing the Sandbox each receive an error message stating the change in sharing configuration the next time they attempt to access the Sandbox or perform an operation on its contents. see “Configuring a Sandbox as Shared” on page 42. Only top-level Sandboxes can be imported as shared. open the Sandbox Information view and clear the Shared option on the General panel. you can import it again if you want it to be accessible in MKS Source. you may need to modify the line terminator setting to ensure compatibility with file editors. Only the creator of the shared Sandbox can remove sharing (or edit Sandbox information). open the Sandbox Information view for a top-level Sandbox created by you (Sandbox > Views > View Information). Importing a Shared Sandbox You access another user’s shared Sandbox using the Import command. Once a Sandbox is dropped. and browsing through the network to the user’s shared Sandbox directory. see “Importing a Sandbox” on page 40. if you do not delete the Sandbox. you can remove it at any time. 43 . it cannot be accessed with MKS Source. When Sandbox sharing is removed. no working files are stored on your local machine. TIP You can view which Sandbox locked a member from the Member History view. NOTE The Variant option is unavailable if there are no available development paths. select one from the list. For more information on variant Sandboxes. select Sandbox > Recent. . „ 44 Build opens a Sandbox based on a specific checkpoint of the master project. You can specify the checkpoint through its checkpoint number or label. and Sandbox view by setting the view preferences to display the information. „ Variant opens a Sandbox based on a project on a specific development path. To open a Sandbox in the GUI. CAUTION If you select the Entire Sandbox Directory option. select Sandbox > Open Sandbox and select the type of Sandbox to open: „ Normal opens a Sandbox based on the working project on the mainline. To create a development path. To open a Sandbox. MKS Source deletes all files in the Sandbox directory and all files in subdirectories. Project view. Locks view. if any exist. This includes files not created by MKS Source. see “Using Build Sandboxes” on page 38. NOTE To see a list of recently used Sandboxes. see “Using Variant Sandboxes” on page 38. For more information on setting view preferences. For more information on build Sandboxes. „ Select Sandbox Members Only to delete the Sandbox members on your local drive but leave any other files.Chapter 3: Sandboxes You can select what files you want to delete when you drop your Sandbox: „ Select Nothing to not delete any files from the Sandbox directory on your local drive. see “Creating a Development Path” on page 28. see the MKS Integrity Client 2007 Getting Started Guide. „ Select Entire Sandbox Directory to delete the Sandbox directory on your local drive and all of its contents. The Sandbox view displays the members and sub Sandboxes of a single Sandbox. Opening a Sandbox Opening a Sandbox in the GUI allows you to view and work with the Sandbox and its members. for example. a developer can change a variant Sandbox to point to a different variant project. select a Sandbox. you can specify a state or a label for the snapshot. Taking Sandbox Snapshots A snapshot captures the current state of a Sandbox. For example. A label is a unique text string assigned by you to identify the project checkpoint created by the snapshot. you must drop the Sandbox and then import it. or leading spaces. then select the project configuration that you want to point the Sandbox to.1. „ You can only retarget top level Sandboxes. where each element in the Sandbox can be identified with a pre-existing entity in the repository on the MKS Integrity Server. You can also change the type of project that the Sandbox points to. Labels cannot contain colons (:). You do not use the Retarget Sandbox command to change the project or server for a Sandbox or the location of a Sandbox on the client. „ You cannot retarget a shared Sandbox. To perform these operations.1. Additionally. For example. When you take a sandbox snapshot. select a top-level Sandbox and click Sandbox > Retarget. or a buildmaster can change a build Sandbox to point to a different build. To take a sandbox snapshot. they cannot have the same format as a valid checkpoint number. The revision number of a checkpoint created by a snapshot includes the revision number of the last checkpoint.Retargeting a Sandbox Retargeting a Sandbox If you need to change the project configuration that a Sandbox points to. you can change a normal Sandbox to point to a variant project. Key Considerations „ You cannot retarget a Sandbox containing deferred member operations or locks.1. and apply it to all Sandbox members. To retarget a Sandbox. if the last checkpoint of the project has a revision number of 1. and then select Sandbox > Snapshot. „ You can only retarget to another type of the same project that the Sandbox is currently pointing to. you can retarget the Sandbox. then the revision number of the checkpoint created by the snapshot is 1. square brackets ([ ]). The Sandbox snapshot creates a project checkpoint that you can create a build Sandbox or development path from.1. 45 . provide the working files (by resynchronizing the corresponding members). Steve adds the readme file to his Sandbox using the change package and then takes a snapshot of his Sandbox to save the configuration. „ If the working file revision differs from the member revision. „ Former members that still have working files in the Sandbox directory appear as members in the snapshot. Contents of a Sandbox Snapshot The set of Sandbox elements captured in a snapshot includes the following: „ Sandbox members identified with an archive and working revisions the archive was created from „ former members that were dropped but are still present in your Sandbox „ sub Sandboxes identified by project name and type „ former sub Sandboxes that were dropped but are still present in your Sandbox Example Steve has been assigned to create a build of the savings calculator. He uses a build Sandbox to perform the build. NOTE If working files are missing from the Sandbox. „ MKS Source always uses the actual name of the member working file for the snapshot. If you want to include those working files in the snapshot. you cannot have working file changes in the Sandbox. . Jen has added the readme file in a change package. and then perform the snapshot. „ Former subprojects that are still in the Sandbox view appear as subprojects in the snapshot. „ The Snapshot Sandbox command is performed on the entire Sandbox independently of the filter used to display the contents of a Sandbox. „ Members without working files are not included in the snapshot. He discovers a readme file is missing from the checkpoint his build Sandbox is based on.Chapter 3: Sandboxes The Sandbox snapshot displays as a branched project checkpoint in the Project History view. it is the working file revision that is included in the snapshot. a warning displays listing the missing working files that will not appear in the snapshot. „ You cannot take a snapshot of a sparse Sandbox. cancel the operation. Key Considerations 46 „ To be included in the snapshot. For more information. Member revisions are unaffected. see the MKS Source 2007 CLI Reference Guide.Taking Sandbox Snapshots „ You can compare differences between a project checkpoint created by a snapshot and another project checkpoint (including checkpoints created by a snapshot) in the project history. 4 Create a development path from the project checkpoint that corresponds to the snapshot (see “Creating a Development Path” on page 28). Using Sandbox Snapshots in a Development Environment The recommended scenario for when to take a Sandbox snapshot in a development environment is as follows: 1 You are in a situation where you are working in a regular Sandbox. and then continue work on that development path. When you take a snapshot of a Sandbox recursively that contains sub Sandboxes. Using Sandbox Snapshots in a Build Environment The recommended scenario for when to take a Sandbox snapshot in a build environment is as follows: 1 Checkpoint the project. see the MKS Source 2007 CLI Reference Guide. check in (or merge in) your changes on a branch. „ To specify an existing development path when taking a Sandbox snapshot. but should be working in a variant Sandbox. 3 Take a snapshot of the Sandbox. the snapshot creates a checkpoint for the sub Sandboxes based on the last checkpoint of the master project (if one exists). 47 . 2 Instead of checking in your changes to the main development path. but you cannot compare differences with the Sandbox contents. All subproject elements become the same type and shared subprojects of different types become shared subprojects of the same type. you can specify an existing development path at the time you take the snapshot. you must use the CLI. not on the current subproject in your Sandbox. „ Members of a Sandbox need to be associated with a corresponding archive on the MKS Integrity Server. TIP From the CLI. the snapshot represents exactly the same directory structure and files of your Sandbox. 5 Create a variant Sandbox from the development path you created. „ When recursing into sub Sandboxes. For more information. instead of using the original project checkpoint. some of the required members are at later revisions than the last checkpoint. 4 Resynchronize the required revisions to fix the build (you can use Resync CP). but since development has continued. 5 Take a snapshot of the Sandbox. 3 The build fails. and use the project checkpoint created by the snapshot to recreate the build in the future using a build Sandbox. 48 .Chapter 3: Sandboxes 2 Create a build Sandbox for the build. CHAPTER FOUR Members 4 Managing Source Files and Objects The files under version control in a project are known as members. A member’s content is stored in an archive. This chapter provides details on the following: „ “Managing Project Members” on page 50 „ “Member Operations” on page 62 „ “Deferring Member Operations” on page 82 „ “Working with Member Histories and Revisions” on page 85 „ “Comparing Differences” on page 95 „ “Branching and Merging Members” on page 98 „ “Locating Where a Member Is Used” on page 109 „ “Generating Member Reports” on page 110 „ “Promoting and Demoting Members” on page 111 49 . This chapter describes the activities that can be performed on MKS Source members. MKS Source creates a history file for each project member where its history of changes is stored. Each submitted update is recorded in a member’s history as a revision and given a sequential number for reference. This section describes how to add members to projects and manage them within the context of projects. Once the project is created. the nonmembers for the nearest project or subproject are displayed. you can view non-member files (files that have not been placed under version control) residing in your Sandbox directory. The Non-Members view does not display files that are: 50 „ deferred imported members „ deferred add members from archive „ pending members (add. To view non-members. select Sandbox > Views > View Non-Members. For example. taken together. The project or subproject name used by the Non-Members view displays in the title bar. from a Sandbox view. For information on how to perform operations on members after they have been added to a project. For more information on how to create a project. NOTE „ If a member is selected when you display the Non-Members view. This section provides information on the following procedures: „ “Identifying Members to Add to Projects” on page 50 „ “Adding Members to a Project” on page 51 „ “Adding Members From Archive to a Project” on page 53 „ “Importing Members” on page 55 „ “Moving Members” on page 57 „ “Dropping Members From a Project” on page 60 Identifying Members to Add to Projects From MKS Source. „ You cannot display multiple Non-Members views for the same Sandbox. see “Creating a Project” on page 6. add from archive. you can add members to it. see “Member Operations” on page 62. in a development environment.Chapter 4: Members Managing Project Members A project is any group of files under version control that. The Non-Members view is useful when used recursively to identify all of the files that may need to be placed under source control. forms a single body of work. import) „ working files from members that are renamed but not resynchronized . When you are ready to place a group of files under version control. the first step is to create a project. a project might include source code files required to build a program element. *. all file types not specified are excluded. or delete or edit a non-member by selecting one or more files and selecting the appropriate option on the View menu. making them members of that project. use the wildcard (*). To filter the view. By specifying file types to include. For detailed information on the Non-Members view columns. NOTE Files excluded by name are not excluded once the Non-Members view is closed. former members (members that were dropped from your Sandbox) are not displayed in the Non-Members view. do one of the following: „ Select one or more files and select View > Exclude with Name or View > Exclude with Extension. NOTE If filters are specified in the Non-Members view preferences. Once you add members to your project. and then check them in to preserve your changes. or directories to include or exclude. those filter settings appear in the Non-Members Filter dialog box. Adding Members to a Project Once you create a project. file types. see the MKS Integrity Client 2007 Getting Started Guide. You can add a non-member to a project. Filtering Non-Members You can filter the content of the Non-Members view by specifying files. TIP To specify all files with a specific file extension. see the online help. for example. You can also filter the contents of the Non-Members view. use the Import Member command (see “Importing Members” on page 55). To add server-side files to a project. „ Select View > Filters and specify any combination of files or directories to include or exclude. see the MKS Integrity Client 2007 Getting Started Guide. For information on how to modify the default view settings. 51 .java.Managing Project Members By default. you can check them out for editing. For information on setting view preferences. you can add files to it. Adding Multiple Members If you select multiple files to add in the GUI. Using Change Packages You can record the add member or create subproject operation in a change package. the maximum size for members is 2 GB.Chapter 4: Members In the GUI. Archives and Subprojects Project members may be one of following types of files: archived (files under MKS Source revision control) or subproject (another MKS Source project). For information on creating a change package. For example. you can add members through the Sandbox. see “Creating a Change Package” on page 117. NOTE If you choose to create subprojects. Web Select Project > Add Member and enter the name of the new member. and 1 GB for DB2. because Sandboxes do not exist. NOTE If you are using a file system repository. the maximum size is 2 GB for Oracle or SQL Server. For information on the Change Package field. you can add members through the project only. Subdirectories that do not correspond to subprojects are not maintained. Adding a large number of members or a directory with a large number of members to a MKS Source Sandbox may cause the client to stall if the MKS Integrity Server does not have the recommended system configuration. TIP To add selected non-member files to a project or subproject by dragging and dropping. When adding members in the GUI. see your administrator. if you are using a database repository. 52 . see “Specifying a Change Package for an Operation” on page 118. Follow the instructions on the Add Member Wizard. features. including the file extension. In the Web interface. with a Sandbox view open drag the files from the Non-Members view to the Sandbox or sub Sandbox that corresponds to that project or subproject you want to add the project to. To find out the type of repository used on your server. you have the option of adding members recursively to the project or creating subprojects. the specified change package is used to record the Create Subproject operation.gif. Consult your administrator for more information. Interface Procedure GUI Select Member > Add. they will be added to the project that they are closest to (top-level project or subproject). The Add From Archive command: „ can be deferred when performed from a Sandbox. NOTE If there is a deferred add operation associated with a member. You can also use this command to share the history of another member. To add members from archive in the GUI 1 Select the project. For more information on deferred operations. Adding Members to Deploy Projects If the member is being added to a deploy project. where the source member can be located in another project from the added member. an archive already exists for the member. see “Deferring Member Operations” on page 82. see the MKS Deploy 2007 Administration Guide. For more information. Re-adding a Dropped Member If you are re-adding a dropped member.Managing Project Members Deferring Adding Members You can add a member to the project on a deferred basis. Adding Members From Archive to a Project Use the Add From Archive command to add a dropped member from an archive located on the server. see “Change Package Reviews Overview” on page 128. „ may be part of change package review (displayed as pending members in the project). subproject. and you must specify whether you want MKS Source to associate the member with the existing archive or generate a new one. „ supports multiple selection of archives using the wizard. Deferring the addition of a member allows you to work with the member in your Sandbox without causing any changes in the project. The Deploy Type field only displays if you are licensed to use MKS Deploy. 53 . you cannot view the member history for that member because it has not yet been added to the actual project. 2 Select Member > Add From Archive. Sandbox or sub Sandbox you want to add members to. you can specify the deploy type for the member when entering the archive description in the Create Archive dialog box. The Add Members From Archive Wizard displays. For more information on change package reviews. If you are using a file system repository. The default archive location is the project selected in step 1. click Remove. „ Archive Location displays the absolute path of the archive and the archive file name. Do one of the following: „ Click Select Archives to browse the repository for an archive. To remove an entry from the list. by default the files are located in the subdirectory named rcs. Repeat to add additional entries. To add the selection as an entry in the list. To add the entry to the list.Chapter 4: Members 3 Members are added by specifying a member name with an archive location. click Add. together they define an entry that represents the destined member. Repeat to remove additional entries. type the name that represents the member being added. Select the archives corresponding to the members you want to add to the project. „ In the first field. The Locate the Member Archive(s) dialog box displays. Then type the archive location in the subsequent field (requires a valid location to an existing archive). Added entries appear as follows: „ Member Name displays the name of the member (may differ from the archive file name). 54 . click OK. Archives are identified by the icon. Instead. Key Considerations „ The project must be registered with the MKS Integrity Server before the member is imported. Do not use the Import Member command to add members that are dropped from a project. To create a change package. click Create. click Options. Importing Members When you add a member. For detailed information on the Add Member From Archive options. 9 When you are finished. „ Before you begin the import operation. For detailed information on the Add Member From Archive options. the specified change package is used to record the Create Subproject operation. NOTE The Import Member command is not supported for database repositories. or click Locate Archive to select it. see “Creating a Change Package” on page 117. from the Change Package list select a change package. For information on creating a change package. members added with Source Integrity Standard (an earlier version of MKS Source) or server resident files must be imported to register them with the MKS Integrity Server. To change the location. see “Specifying a Change Package for an Operation” on page 118. see the online help. 55 . 8 To modify the Add Member From Archive options. click Options. To add all subsequent members specified in the Add Members From Archive Wizard. use the Add From Archive command (see “Adding Members From Archive to a Project” on page 53).Managing Project Members 4 To add the operation to a change package. however. it is automatically registered with the MKS Integrity Server. The member is added to the project. click Finish. 6 When you are finished specifying entries to add. click OK to add the member to the project. see the online help. NOTE If you choose to create subprojects. 7 The archive location displays in the Archive Location field. The Add Member From Archive dialog box displays. type a new location in the field. For information on the Change Package field. the files to be imported must first reside on the MKS Integrity Server. click OK to All. 5 To modify the Add Members From Archive Wizard options. 4 To add the operation to a change package. click Add File. 7 Click Finish to import files without specifying options. the specified change package is used to record the Create/Add Subproject operation. 2 To import a list of files to the project. see the MKS Deploy 2007 Administration Guide. then click Remove. The files are added to the members list. If the working file does not exist. specify the deploy type for the member in the Deploy Type field. the file browser does not show any files or directories. click Create. The Import Member dialog box displays. 56 . 9 To modify the Import Member options. For detailed information on the Import Member options. click Add Directory. see the online help. For more information on shared subprojects. „ You cannot import members into a shared subproject. select the files. select Member > Import. click Options. The Select One or More Members to Import to the Project dialog box displays. navigating to the desired directory if necessary. from the Change Package list select a change package. For information on the Change Package field. To create a change package. 6 To modify the Import Member options. click Options. 5 Click OK. 8 If the member is being imported to a deploy project. To import a member in the GUI 1 From a Project or Sandbox view. For detailed information on the Import Members Wizard options. When selecting a file to import. To import a directory and its contents. select the project directory and enter the file name. 3 Select one or more files from the displayed list. For information on creating a change package. select the working file in the project directory. This field only displays if you are licensed to use MKS Deploy. see “Specifying a Change Package for an Operation” on page 118. NOTE If you choose to create subprojects. NOTE If your connection to the MKS Integrity Server is disconnected while you are browsing for a file. see “Creating a Change Package” on page 117. To remove files. see the online help. The Import Members Wizard displays. For more information. see “Adding a Shared Subproject” on page 12.Chapter 4: Members „ Archives cannot be imported. Key Considerations „ Moving members between projects on different servers is not supported. For more information. If any ACLs are found. if there is no common root). Moving a member performs a drop in the source project and an add in the target project. The members appear in the Project or Sandbox view. the target project. MKS Source warns you so you can manually make any required adjustments to the ACLs after the move is complete. see the MKS Integrity Server 2007 Administration Guide. or directories in a project. If the move is performed with a change package. if you are re-designing and expanding your company web site. it may become necessary to move one or more members between projects. Moving Members As software designs and project structures change. 57 . use the Project > Subproject > Move command. For more information on ACLs. „ To move a member. The member’s archive remains in its original location in the repository so that change packages. To move a member in the GUI 1 Select one or more members to move.Managing Project Members 10 To complete the operation. If you are moving multiple members. member histories. and the common root between them (or the global ACL. you require the DropMember permission on the project you are moving the member from and the AddMember permission on the project you are moving the member to. see “Moving a Subproject” on page 15. To move one or more subprojects. and project histories continue to work. You can move one or more members between projects or directories in a Project or Sandbox view using the menu command or by dragging and dropping. the member is added as a single Move entry in the change package. creating a new revision in the existing archive. For example. variants of the same project. click OK. you can organize the site more efficiently by moving some of the files to new and existing directories and subprojects. any common directory prefix shared by the members is automatically removed by default during the move. „ The move members command does not work recursively on subprojects. „ MKS Source detects whether any ACLs exist in the tree defined by the source project. „ You can perform deferred member moves only if both the source and target locations are Sandboxes. 7 Select the type of project you want to move the member(s) to by clicking a project type option. click Sandbox. 4 Click Project. or click Select to choose a project from the list. then click Select. NOTE Depending on the view you performed the move from. proceed to step 4. then click Select to choose a Sandbox from the list. 3 Specify the destination project or Sandbox for the member(s): „ To move the member(s) to a specific project. The Move Members Wizard displays. 5 Enter the path and name of the project and proceed to step 10. only enter the path and name of the root project in this field. „ Variant moves the member(s) to a project based upon a specific development path. proceed to step 7. NOTE If you specify a Sandbox. NOTE The Variant option is unavailable if there are no available development paths. For detailed information about selecting projects. Click Finish and proceed to step 10. select a development path name. Aurora_Beta_Variant. The available types are: „ Normal moves the member (s) to a project based upon the current state of the project. 6 Click OK. NOTE If you are moving the member(s) to a variant or build subproject. If you are performing the move operation from a Project view. the Project or Sandbox option is selected and the name of the project or Sandbox displays. If you are performing the move operation from a Sandbox view. see “Creating a Development Path” on page 28. For detailed information about entering project paths. The second panel of the Specify the target project for the move wizard displays. the move occurs in the corresponding master project. From the Development Path Name list. see the MKS Integrity Client 2007 Getting Started Guide.Chapter 4: Members 2 Select Member > Move. 58 . „ To move the member(s) to a specific Sandbox. Proceed to step 8. To create a development path. for example. the first panel of the Specify the target project for the move wizard displays. You specify the subproject later in the procedure. see the MKS Integrity Client 2007 Getting Started Guide. For information on the Change Package field. bin/etc. click Destination Project Directory. click Next to select a subproject. click Options. The second panel of the Move Members Wizard displays. The third panel of the Specify the target project for the move wizard displays. NOTE If you choose to create subprojects.Managing Project Members 8 If you are moving the member(s) to a variant or build project. If your selection breaks any of the rules. summarizing the details of the move. For detailed information on the Move Members options. „ To move the member(s) to the destination Sandbox’s directory. 13 Specify the destination directory for the member(s): „ To move the member(s) to the destination project’s directory. or create a change package to link to. click Subdirectory of Destination Sandbox Directory. click Subdirectory of Destination Project Directory. The third panel of the Move Members Wizard displays. 14 Click Next. 11 To modify the Move Members options. for example. NOTE There are rules that control what project configuration you can jump to. For information on creating a change package. NOTE The options that appear depend on whether you selected a destination project or destination Sandbox. see the online help. For more information. 9 Expand the project to select the specific subproject that you want to move the member(s) to. see the MKS Integrity Client 2007 Getting Started Guide. 10 Under Change Package. then type the subdirectory. bin/etc. 12 Click Next. Click Finish. see “Specifying a Change Package for an Operation” on page 118. the specified change package is used to record the Create Subproject operation. then type the subdirectory. „ To move the member(s) to a subdirectory in the destination project’s directory. if applicable. you cannot move the member. click Destination Sandbox Directory. for example. see “Creating a Change Package” on page 117. „ To move the member(s) to a subdirectory in the destination Sandbox’s directory. 59 . 15 Review the settings you selected and make changes if necessary. select a change package. The member(s) appear in the new location. subproject. but the member’s history remains in the project record. If any subprojects or sub Sandboxes are encountered. For more information on the Move Subproject Wizard. In the GUI. MKS Source retains the member history for former members as part of the project. The drag-and-drop action initiates the Move Member wizard. In the Web interface. Depending on the options you select when dropping the member. MKS Source prompts you to confirm the move. prompting you to confirm the move. You can drag a member onto a project. because Sandboxes do not exist. you can remove a member through a Sandbox view or through a Project view. see “Moving Members” on page 57. „ A directory node. you can remove it at any time. Sandbox. prompting you to confirm the operation. prompting you to confirm the move. Dropping Members From a Project If a member has outlived its usefulness or does not belong in a project anymore. click OK to All). (for multiple members. If you enabled the Confirm Move option. MKS Source can also delete the member’s working file and close any associated change package. To move a member by dragging in the GUI You can move one or more members by left-clicking and dragging one of the following: „ One or more member nodes. After you remove a member from a project. A former member is one that is dropped from the project. For more information. This automatically moves all members in the directory and subdirectories. this initiates the Move Subproject Wizard. in case you need to recreate an earlier version of the project. This initiates the Move Subproject Wizard. „ A subproject or sub Sandbox node. but still has a working file in the Sandbox. or an adjacent open Project or Sandbox view. sub Sandbox. see “Moving a Subproject” on page 15. click OK. you can remove members through the Project view only. 60 . see “Moving a Subproject” on page 15. or directory node in the active Project or Sandbox view. For more information on the Move Subproject Wizard.Chapter 4: Members 16 To move the selected member. click Finish. the member is no longer listed as part of the Sandbox or master project. NOTE You cannot check in a member that is associated with a deferred drop operation. 17 To confirm moving the member. 6 To drop the selected member(s). click Yes. the Associate Change Package with dropped member dialog box displays. the Associate Change Package with dropped member dialog box displays. or create a change package to link to. the Confirm Drop dialog box displays. 2 Select Member > Drop. see the online help. select the member(s) you want to drop from the project by clicking the corresponding check box(es). If you selected the Confirm Drop option. 5 To drop the selected member. To drop a member in the Web interface 1 From a Project view. the Confirm Drop dialog box displays. The Drop Member dialog box displays. IMPORTANT If change packages are enabled. click OK to All. Once a member is dropped from a project. and the member is removed from the project. 5 To drop the selected member(s). If you selected the Confirm Drop option in step 3. 3 Modify the Drop Member options as necessary. The Drop Member dialog box displays. see the online help. select a change package. click Options. click OK to All. the change is not immediately reflected in other Sandboxes. see “Resyncing Members” on page 71. see “Specifying a Change Package for an Operation” on page 118. 2 Select Project > Drop Members. click Yes. 3 Under Change Package. see “Creating a Change Package” on page 117. The member is dropped from the project. 4 To modify the Drop Member options. For information on creating a change package. IMPORTANT If change packages are enabled. For more information on resynchronizing. For detailed information on the Drop Member options. To drop multiple members. The project or Sandbox is updated to reflect the removed member. 4 To drop the selected member. For information on the Change Package field. click OK. Other users must resynchronize their Sandboxes. For information on the Change Package field. For detailed information on the Drop Member options. if applicable. see “Specifying a Change Package for an Operation” on page 118. 61 . To drop multiple members. The project is updated to reflect the dropped member. click OK.Managing Project Members To drop a member in the GUI 1 Select one or more members to remove. and check them in to preserve those changes as a new revision in the member’s history. This command allows you to instantly select a specific group of members in a project that might contain hundreds or thousands of members. renaming members. You can also perform actions such as resynchronizing members in your Sandbox with the latest checked in member revision. 62 .Chapter 4: Members Member Operations Once members have been added to a project. This section describes the basic operations you perform on members. during development. Members selected with this command can be manipulated as a group by other MKS Source commands. you can check them out to make changes. see “Working with Member Histories and Revisions” on page 85 This section contains the procedures for: „ “Selecting Members” on page 62 „ “Checking Out a Member” on page 63 „ “Viewing and Editing Member Content” on page 65 „ “Checking In a Member” on page 66 „ “Renaming a Member” on page 69 „ “Discarding Changes to a Member” on page 70 „ “Resyncing Members” on page 71 „ “Locking a Member” on page 72 „ “Removing or Downgrading Locks” on page 73 „ “Making the Working File Writable” on page 73 „ “Viewing Member Locks” on page 74 „ “Using Keywords” on page 75 „ “Adding Labels to Members” on page 78 „ “Deleting Member Labels” on page 79 „ “Freezing Members” on page 80 „ “Thawing Members” on page 81 Selecting Members The Select command allows you to highlight any members of the current Sandbox or project that meet specified selection criteria. For information on working with revisions in a member history. or adding labels to members. click the filter a second time and the ! symbol displays. and you have not made any changes to the member. If two or more criteria are selected. 3 Click the desired tab. To check out all selected members. 2 Select Member > Check Out. then modify the checkout options. When you check out a revision. click Options. if applicable. For detailed information on the checkout options. it is downloaded to a working file for editing. select members that are not frozen. If you want to retain your changes in the working file. Checking Out a Member Before you can make changes to a member. The Check Out dialog box displays. You can check out any revision by specifying either its revision number or label. For information on the Change Package field. the Confirm Overwrite Working File dialog box displays. the original checkout stands. For information on creating a change package. or create a change package to link to. This occurs because Sandboxes do not exist in the Web interface. you must first check it out. and then attempt to check out the member. 4 Under Change Package. To check out a member in the GUI 1 From a Sandbox view. Checking out a member extracts the contents of a revision in a member history and copies it to the working file. select View > Select. they can be joined using the Logical AND or Logical OR option. If you have made changes to your working file. For additional checkout options. While the checkout dialog box does appear. For detailed information on the Select Members options. MKS Source does not perform the checkout a second time. For example. You choose selection criteria by selecting a check box. click No (No to All for multiple members). see the online help. If you want 63 . To invert a filter. If you already have a member checked out. select a change package. see the online help. see “Specifying a Change Package for an Operation” on page 118. In the MKS Source Web interface. select one or more members to check out. 5 To check out a single selected member. from a Project or Sandbox view.Member Operations To select specific members. click OK to All. when you check out a revision. click OK. it is copied to a working file where you can view or modify its contents. see “Creating a Change Package” on page 117. From the Member History view. select Member > Check Out. if you cancelled the file download. If your working file is based on a different revision. you can check out only one member per operation. The padlock icon indicates the type of lock and any potential conflicts with other lockers. NOTE In the Web interface. click Differences. The Check Out dialog box displays. The File Download dialog box displays. To unlock the member. see the MKS Integrity Client 2007 Getting Started Guide . select a member to check out by clicking the corresponding check box. Multiple member selections for checkout cause an error. and the date and time of the lock. see the online help. The file is automatically sent to a temporary directory on your system. see “Merging Modified Working Files” on page 100. To check out a member in the Web interface 1 From a Project or Member History view. select the member by clicking the corresponding check box and then select Member > Unlock. click Yes to All). select Open this file from its current location and click OK. For more information.Chapter 4: Members to compare your working file with the revision you are checking out. For detailed information on the CheckOut options. NOTE Once you reach the file download stage of the checkout operation. 2 From the Project view. This occurs because the member is checked out and saved to a temporary location pending your download options. If the member you are checking out is a program or application (executable format) the File Download dialog box reappears with the following options: 64 . click OK. the locker’s name. The member is checked out for editing. NOTE The Change Package options appear only if change packages are enabled. For a description of the padlock icons. indicated by a padlock icon. 4 To check out the member. if you cancel the file download the member appears locked in the project. 3 Click the desired tab. then modify the Check Out options. you can merge it with the revision you are checking out. select one of the following options: „ To open the member in its associated program immediately. 5 To download the member. select History > Check Out. To proceed with the check out operation for a member. click Yes (for multiple members. Specify a location for the program and click Save. The padlock icon indicates the type of lock and any potential conflicts with other lockers. the locker’s name. TIP If you know the location of a revision. or you can edit the working file for the member. the working file member is opened in a second browser window. MKS Source copies it to a read-only temporary file and opens it for you. in the GUI. select Save this Program to disk and click OK. You must have a member locked in your name to be able to check it in. If you make changes to the file and want to save it. select Member > View Member. see the MKS Integrity Client 2007 Getting Started Guide. You can view the contents of a member . When you view the contents of a member.Member Operations „ To run the program immediately. whether you can edit or just view the contents of the member depends upon whether you have read-only or read-write access to the member. Specify a location for the member and click Save. select Run this program from its current location and click OK. select Member > Edit Working File or in the Web.pj&revision= 1. To save the member to a specified location on your local drive. the actual revision is not modified. To view the contents of a member. select Save this file to disk and click OK. The Save As dialog box displays.ksh 65 . In the Web interface. Viewing and Editing Member Content You can open a member in your default editor or in the editor associated with the file’s extension. The temporary file is not the revision. you can view it by typing the following URL in a browser: http://<server>:<port>/si/viewrevision?projectName= <(sub)projectname>&revision=<revisionnumber>&selection= <membername> for example http://xyzBusiness:7001/si/viewproject?projectName= c:/master_projects/SourceCode/frameworkproject. and the date and time of the lock. select Member > Revision > View Contents or in the Web. in the GUI. indicated by a padlock icon. The member is checked out for editing.4&selection=setup. „ „ To save the program to a specified location on your local drive. When you edit a working file. To edit the contents of a member’s working file. select History > View Revision. see the MKS Integrity Client 2007 Getting Started Guide . For a description of the padlock icons. The Save As dialog box displays. To configure your default editor. Web From a Project or Member History view. select a member to check in by clicking the corresponding check box. From the Project view. Note: In the Web interface. you can click the Differences button on the Check In dialog box to view the differences between your working file and the revision you checked out. You can also use the Scan for Changes feature to display changes if the client is offline from the MKS Integrity Server or if you need to see changes to working file information on your local drive. To find out the type of repository used on your server. you should check in the member to preserve those changes as a new revision in the member’s history. Interface Procedure GUI From a Sandbox view. a new branch is created. or a message informing you there are newer revisions available in the member history (indicated by member deltas). and then select Member > Check In. select View > Refresh. For detailed information on the Check In options. select History > Check In. Checking In a Member When you are satisfied with the changes you made to a member. the maximum size for members is 2 GB. 66 . When a member is checked in to a revision other than the head revision or a branch tip revision. see your administrator. select one or more members to check in. To scan a Sandbox for changes in the GUI. Multiple member selections for check in cause an error. the maximum size is 2 GB for Oracle or SQL Server. The Sandbox view displays members whose working file has changed (indicated by working file deltas). Checking in a member creates a new revision of a member and adds it to the member history. from a Sandbox view. From the Member History view. In the GUI. see the online help. NOTE If you are using a file system repository.Chapter 4: Members Scanning for Changes Changes to member information are automatically displayed in the GUI in the Sandbox view. Members should be checked in on a regular basis. you can check in only one member per operation. select Member > Check In. and 1 GB for DB2. if you are using a database repository. Assigning Revision Descriptions A revision description is text that becomes a permanent part of the archive’s metadata. but is not recommended. This can be of great value to you or other team members if it ever becomes necessary to revise or update the member. you can update the member to the new revision. Assigning Revision Numbers By default.Member Operations Resychronizing Before Checking In If you use a non-exclusive locking policy. For more information. For example. they get the next sequential revision on the current branch (if the revision is the tip of the current branch). contact your administrator. You can. when you check in a member. its revision description cannot be changed. When you try to check in your changes. but a newer revision 2. 67 . if the previous revision is 1. If your administrator has set the feature for enforced revision descriptions. It allows you to provide a record of the changes you made and why you made them. For example. For more information on your locks policy.3. If the option is not enabled. MKS recommends letting MKS Source generate revision numbers for you—do not use revision numbers to record milestones (use labels or checkpoints). Using Change Packages For information on the Change Package field. It does this by incrementing the current revision number by one.8 has been added to the member’s history. however. you are prompted to resync and merge the previously committed changes into your working file before you can complete the check in. If change package reviews are mandatory. if the current project member is revision 2. you must enter a revision description. a pending revision is created when the change package is submitted. For information on creating a change package. MKS Source automatically assigns a unique revision number to the new revision.7 of an archived file. Once a new revision is checked in. If another user checks in their changes first. The ability to specify a specific revision number is supported for legacy purposes. see “Specifying a Change Package for an Operation” on page 118. other users besides yourself may have the same revision checked out. see “Working With Pending Revisions” on page 94.4. append new information to a revision description. the new revision is assigned number 1. see “Creating a Change Package” on page 117. Updating the Member Revision You can use the Update Member Revision option when you are checking in a member to ensure the most recent revision of each member is added to the list of members in the project. the project list might not reflect the most current revision of each member’s history. For best practices. when you do not want your work to be checked into the trunk.8 „ 1. you cannot check in a member.0 „ 1. however.1 (if it starts a new branch) „ 1.7.3 previously (MKS Source branches the archive and assigns 1. so long as your revision number: „ is greater than the last revision number (you cannot use previously “skipped” revision numbers) „ has no leading zeros (zeros as complete revision numbers are acceptable) „ starts a new branch based on an existing revision (optional) If you check in a revision using an already existing revision number. If that revision already exists. MKS Source assigns it 1.1 is considered the same as 2. Divergent lines of development in the same archive are managed through the use of branches.3 even if there was no revision 1. MKS Source attempts to add one to the revision number and check it in as that revision.x.1 (leading zero in branch number) Starting a Branch When Checking In a Member MKS Source usually places a new revision at the top of the main trunk.1.10 (greater than head revision) „ 1. if you are checking in a new revision to an archive where the head revision is 1. which already exists. For example. There are times. For information on branching.1.7. For example. or you may be doing post-release maintenance while development for the next release continues on the trunk. where x is the first available branch number) „ 1.7.8 (greater than head revision)—if you check in a revision as 1. Deferring a Check In In some situations. see “Branching and Merging Members” on page 98.72 (none of the numbers between 7 and 72 may be used afterwards) „ 2.3. You may be pursuing a line of development that will not be included in the finished product.Chapter 4: Members You can choose the revision number of the changes you are checking in.7. you cannot check in a member if: „ 68 there are revision conflicts on the member that you don’t yet want to resynchronize . MKS Source then chooses the next available branch number and creates a new branch. the following numbers are valid: „ 1.0.1 (leading zero as the branch number) The following numbers are invalid: „ 1.08 (leading 0 in last portion) „ 02. To move a member into a new directory. For more information. which is checked in as the new revision. you specify a source file (working file) for the member. Click Yes if you want to check in a source file different from the member. 69 . you can rename the member while working from a Project or Sandbox view. and project histories continue to work. because Sandboxes do not exist. NOTE „ Because renaming a member affects other users on the same development path. then copies the attributes from the old member name to the new member name. the member you want to rename must not be locked by any other user. a deferred check in is created automatically. and then select Member > Rename. „ The new name must be in the same directory as the existing old name. If the name of the source file you specify is different than the member name. the title of a user guide. see “Moving Members” on page 57. the revision description). „ The member is checked in. for example. The member’s archive remains the same and points to the old member name so that change packages.Member Operations „ there is an exclusive lock held by another user on the member revision and you don’t want to force the creation of a new branch „ the member revision is frozen When you cannot check in a member. and an add of the new member name and creates a new revision in the archive. „ MKS Source cancels the checkin operation because the file names do not match. In other situations. you can select the Defer Check In option. When a revision conflict occurs on a check in. Specifying a Source File in the Web Interface In the MKS Source Web interface. select the member you want to rename. To rename a member in the GUI. member histories. one of the following occurs: „ MKS Source confirms if you want to proceed. use the Move Members command. you can defer the check in. depending on how you have the Different Member/Source File Name option set. but still want to record information about the check in (for example. Renaming a member performs a drop of the old member name. Renaming a Member When you need to change the name of a file in your project. Chapter 4: Members For information on the Change Package field. This is useful if you—accidentally or purposefully— save changes that you do not want to keep. a revision along the branch. MKS Source locks revision 1. see “Creating a Change Package” on page 117. if you rename an unlocked member (1. and then unlocks the revision.4 with the new member name.3). After the revert operation.4 unlocked. see “Specifying a Change Package for an Operation” on page 118. because it was never added to the project. When you rename an unlocked member. MKS Source places a lock on that member and creates a new. If you rename a locked member. that is. For example. Discarding Changes to a Member If you are sure you do not want to check in a member’s modified working file. MKS Source performs the rename by checking in a duplicate file for 1. you can revert it to its state before it was checked out. Reverting a member discards any changes made to the working file since it was checked out. 70 . unlocked revision at the tip.4 and then moves your lock to revision 1. MKS Source performs the rename operation and retains your lock.3). For information on creating a change package. For example.3 and checks in a duplicate file for revision 1. the file becomes a non-member. Renaming Members on a Branch If you rename a member that is not the tip revision. For detailed information on the Rename Member options. If you rename a member in a variant project while you also have the member locked in the master project. MKS Source retains the working file in your Sandbox. see the online help. if you rename a locked revision (1. MKS Source creates a duplicate of that revision along a new branch and updates the member revision to that branch.4. When you revert a deferred add operation. MKS Source performs the rename operation but moves your lock to the variant member. leaving 1. NOTE If the revision you have locked is not the revision the working file is based on. Renaming a Member That Is the Tip Revision The tip revision is the most recent revision on a branch in a history. then the lock is retained. rather than a former member. while you still have revision 1.2 in your Sandbox. The member is reverted to its original state prior to checkout. To proceed with the revert operation for a member. it is common for the members in an individual Sandbox to become out of sync with the member revisions in the project. the Confirm Overwrite Working File dialog box displays. click Differences.5. you resynchronize the members. click Yes (for multiple members. If the revision that your working file is based on is locked by you. unless the revision that it is based on is locked by you. Be certain of your response to any prompts indicating that the files will be overwritten—once replaced. signaling its status. and another user already has an exclusive lock on the member revision. If you want to retain your changes in the working file. 2 Select Member > Revert. you are prompted to downgrade your lock to non-exclusive. you cannot get back your changes. MKS Source automatically searches the change package associated with the member you are 71 . select one or more members that are checked out in your name or are modified. Resyncing Members When many users are working from Sandboxes based on the same master project. If you have made changes to your working file. When working in your Sandbox. click Yes to All).Member Operations To discard changes to a member’s working file in the GUI 1 From a Sandbox view. CAUTION Resynchronizing members can overwrite files. For example. your lock is automatically moved to the member revision before the resync proceeds. you can also use the Resynchronize By Change Package command. a member delta symbol ( ) displays next to the member in the Sandbox view. If you are working in a sparse Sandbox. click No (No to All for multiple members). resynchronizing deletes them. even ones that you have locked and that have changed since you last checked them out. If files have been dropped from a project. If you had an exclusive lock on the working revision. When this happens. To update out of sync working files to the most current member revisions. If you want to compare your working file with the revision you are reverting it to. see “Resyncing Members With Deferred Operations” on page 84. When you select a member and use Resynchronize By Change Package. For information on resyncing members with deferred operations. resynching deletes your working file. the member revision of a particular file may be at 1. The person who has a revision locked is referred to as the locker. If you have made changes to your working file (without a lock).Chapter 4: Members resynchronizing and then brings all of the changes recorded in the change package from the project to your Sandbox. it requires the revision being updated to be locked. For information on the Change Package field. select one or more members that contain member deltas( ). To upgrade your lock from a non-exclusive lock to an exclusive lock. 2 Select Member > Resynchronize. you may have made changes to a working file that was not checked out in your name first. click No (No to All for multiple members). click Differences. click Yes to All). see “Merging Modified Working Files” on page 100. To resynchronize the member by overwriting the working file. Locking a Member A lock is a feature of MKS Source that controls how changes are made to revisions. 72 . For information on your locks policy. If you want to compare your working file with the revision you are resynchronizing it with. For information on creating a change package. You can also merge your working file with the revision you are resynchronizing it with. To resynchronize a member in the GUI 1 From a Sandbox view. see “Viewing Member Locks” on page 74. see “Creating a Change Package” on page 117. The selected member is updated. For detailed information on the Lock Revision options. see “Specifying a Change Package for an Operation” on page 118. Sometimes. and then attempt to resynchronize the member. then select Member > Locks > Lock. If you want to retain your changes in the working file. Normally you lock a member during a checkout. however. the Confirm Overwrite Working File dialog box displays. see “Using the Resync By CP Command” on page 164. contact your administrator. select the member or revision in the GUI. For more information on resynchronizing by change package. click Yes (for multiple members. you can set a lock without overriding your changes. see the online help. in order to prevent more than one user from simultaneously checking in changes to the same revision. To lock a member. In this case. When a change is checked in. For more information. In views where there is no Sandbox context for the member you are unlocking. contact your administrator. you can unlock it. you can make your working file writable during the checkout process. For information on permissions and on your locks policy. and you have no intention of checking the files back in. In the Web interface. Operation Procedure To unlock a member in a Sandbox in the GUI Select Member > Revert To unlock a member in the GUI interface when there is no Sandbox context Select Member > Locks > Remove My Lock To unlock a member in the Web interface Select Member > Remove My Lock To downgrade an exclusive lock on a member in the GUI Select Member > Downgrade Lock To downgrade an exclusive lock on a member in the GUI when there is no Sandbox context Select Member > Locks > Downgrade To downgrade an exclusive lock on a member in the Web interface Select Member > Downgrade Exclusive Lock Making the Working File Writable If you want to edit a file locked by someone else. 73 . To remove locks for another user. in order to be able to give yourself an exclusive lock. You can downgrade your exclusive lock to a non-exclusive lock. in which case you can use the Revert command (see “Discarding Changes to a Member” on page 70). you can use the Remove My Lock command. you can make your working file writable during the checkout process or from a Sandbox view. see “Viewing Member Locks” on page 74. Select a member or revision in the Sandbox view and select Member > Make Working File Writable. you can make the working file writable. In the GUI. The main reason to unlock a member is to abandon work on the member. Depending on the permissions your administrator has defined. you may also be able to downgrade another user’s exclusive lock to a non-exclusive lock.Member Operations Removing or Downgrading Locks When you no longer need the exclusive ability to change a member. in order to enable another user to get the exclusive lock. see the online help. Operation Procedure To view member locks in the GUI Select Member > Locks > View. To remove another user’s lock in the Web interface Select an item in the Locks view. select View > Change User. Member > Locks > Remove Lock. For details on how to select users. see the MKS Integrity Client 2007 Getting Started Guide. Locks > Remove Lock. To view member locks in the Web interface Select Tools > Manage My Locks. For detailed information on the Locks view columns. or upgrade non-exclusive lock to exclusive locks. To upgrade a non-exclusive lock to an exclusive lock in the GUI Select an item in the Locks view. You can also view a list of all the members that another user has locked. You can always view your locks for any project regardless of project permissions. You can then remove unused locks. 74 . and then select Member > Locks > Upgrade My Lock. For details on how to select users. and then select To change the user whose locks are displayed in the Locks view (GUI only) From the Locks view. see the MKS Integrity Client 2007 Getting Started Guide. To find another user’s locks (GUI only) Select Member > Find > Locks. you may be able to downgrade or remove locks for another user. NOTE You may only view other users’ locks that are in projects you have permission to view. The Locks view displays. Depending on the permissions defined by your administrator. downgrade exclusive locks to non-exclusive locks. The Locks view displays. You cannot remove another user’s lock on a member that was locked from a shared subproject. This is useful if you want to know what files a specific user is working on.Chapter 4: Members Viewing Member Locks You can view a list of all of the members you have locked across all projects. as long as they are in projects that you have permission to view. Locks > Upgrade My Lock. and then select To upgrade a non-exclusive lock to an exclusive lock in the Web Select an item in the Locks view. even projects that you no longer have permissions to access. and then select To remove another user’s lock in the GUI Select an item in the Locks view. For example. checking out main. NOTE Your administrator may define custom keywords for your use. MKS Source scans it for keywords and replaces them with the appropriate information. Keyword expansion is the process of automatically adding or updating information to a keyword reference when a revision is checked out or viewed.c and issuing the command: ident main. $Date$) and check the file back into its archive.c returns main. This placeholder is a special variable (for example. surrounded by dollar signs (for example. To use a keyword. simply include it in a working file. if keyword expansion is turned on. if the $Date$ keyword is encountered.c has the keywords $Author$ and $State$ embedded within it. $Date$. When expanded. if the member main.c: $author: paula_t $ $state: Exp $ The following MKS Source commands contain keyword expansion options: „ Add Members „ Check Out „ Check In „ Resynchronize „ Revert Member 75 . For information about these keywords. the date and time of the revision (assigned at check in) is added to the working file as part of the keyword. $State$) used to represent textual information in a working file. Keywords can be expanded (that is. The next time you check out the revision. the entry would look something like $Date: 2005/06/12 10:25:32$ This method of adding or updating information in a keyword is called keyword expansion.Member Operations Using Keywords A keyword is a placeholder that can be inserted into text-based working files. see your administrator or the MKS Integrity Server 2007 Administration Guide. $Author$. For example. replaced with their literal values) when a revision is checked out. 76 . and within comments. If keyword expansion is enabled and you are checking out a text file that contains the string $Revision$ MKS Source. It is possible that MKS Source may not encounter another $ until the file is checked out again. MKS Source continues to replace until it encounters another $. as above. Including this information in a comment makes the information available to anyone looking at the member. automatically adds the value of the keyword $Revision$ in the format $Revision: value $ where value is the appropriate value of the keyword (in this case. If you use a keyword in the format $<keyword>. the revision number). NOTE The keyword format of $<keyword>$ causes MKS Source to replace between the first $ and the next $. in a C source file creates a character string named revnum containing the file’s revision number.Chapter 4: Members Keyword expansion is configured using the Preferences dialog box in the GUI. automatically presenting the current revision of the program’s source file. Text before and after the keyword is preserved. making it suitable for use within expressions. The dialog boxes in the GUI can override the default settings. The program can then be configured to display this string when it starts up. when it encounters this string. For example. Using the $Revision$ keyword to obtain the revision number of a file is one of the common applications of keywords. seethe MKS Integrity Client 2007 Getting Started Guide. NOTE Keyword expansion applies to text files only. The $Log$ keyword provides a complete list of changes that are made to the member over time. including the statement char revnum[] = "$Revision$". „ The $Log$ keyword supplies the same sort of information as $Header$ plus the revision description. For information on setting command preferences. It is disabled for binary files. This type of keyword use returns results that are similar to logging. Other common applications include: „ The $Header$ keyword provides a one-line summary of useful information associated with a revision. The following table describes default keywords and what each expands to. see the MKS Integrity Server 2007 Administration Guide. This provides an easy way to extract identification information from source files. and the date and time that it was locked (empty if no exclusive lock). Keyword Expands To $Author$ The name of the user who checked in the revision. $Date$ The checkin date and time of the revision (as assigned at checkin). You must enter a keyword policy for the company information that you want displayed. $Header$ The file name of the archive. author. state.Member Operations Example Chad wants to see information about the member he is editing as a comment in the file. as well as compiled object files. Chad sets his preferences to enable keyword expansion on checking out a member. see the MKS Source 2007 CLI Reference Guide or the online man pages. For information on setting keyword policies. as well as the revision number. not the full path. Table of Keywords MKS Source maintains several keywords that can be used in working files. E-mail and phone numbers. He decides to use the $Log$ keyword. but must be in ISO-646. The time is shown in Greenwich Mean Time (GMT/ or Coordinated Universal Time). Chad can do this through keywords. as well as the keywords themselves. He then places the keyword in a member. For more information about the ident command. Keywords are case-sensitive. except that only the file name of the archive is displayed. Your administrator may create custom keywords. Strings may contain standard escapes like “\n” for new lines. $CompanyInfo$ The name of the company and/or other company info including address. This command displays the name of each member that contains keywords. date and time. $Id$ The same as $Header$. Locating Keywords You can use the ident command in the command line interface to locate and display keywords (expanded or unexpanded) in one or more members. 77 . $Locker$ The user ID of the user who has an exclusive lock on the revision. For information on using custom keywords contact your administrator. and the user who has an exclusive lock (if any). $ProjectName$ The fully qualified name of the project of which the archive is a member. For use in build Sandboxes only. $ProjectLabel$ The label (or labels) associated with the checkpoint of the build project the Sandbox is based on. you are given the option of assigning it a revision label. 78 . For example. For example. Note: this keyword does not unexpand. or any other sort of information that would be useful in identifying that particular revision. on the content of the revision.Chapter 4: Members Keyword Expands To $Log$ The revision description supplied during checkin. States are defined by your administrator. $State$ The state setting of the revision. author. Adding Labels to Members A revision label is a textual name that describes and refers to a revision. If there are multiple labels associated with the selected build project checkpoint. if the Sandbox contains set OS=unix. the keyword $Setting OS$ is expanded to $Setting OS: unix$ $Setting attribute$ The current value of the attribute defined in MKS Source. The archive’s unqualified name. the keyword $Setting OS$ is expanded to $Setting: nt$. Repeated checkout operations append revision descriptions. $SandboxSetting attribute$ The current value of the attribute defined in MKS Source. Labels can be based on the product release the revision was included in. if the member contains set OS=nt. the $ProjectLabel$ keyword uses a spaceseparated list of labels in alphabetical order. For example. Revisions in a history can be displayed and selected either by revision number or revision label. on changes made to the revision. the keyword $Setting OS$ is expanded to $Setting OS: unix$ $RCSfile$ The archive’s unqualified member name. $ProjectSetting attribute$ The current value of the attribute defined in MKS Source. revision number. $ProjectRevision$ The revision number of the project that the archive is related. $Source$ The same as $RCSfile$. $Revision$ The revision number. When a member is checked in. The $ProjectLabel$ keyword can only be used when the Sandbox corresponds to a build project that has a label. $Name$ The revision label (or labels) attached to a revision. and revision date. if the project contains set OS=unix. preceded by the archive’s member name. rather than replacing existing ones. MKS Source displays up to three member labels in the Labels column of the Project view. Deleting Member Labels Sometimes you may want to delete a member label. click Options. you might want to remove them all with one command. 2432 1234. Interface Procedure GUI Select Member > Properties > Add Label Web Select Member > Add Label If the label you are adding already exists on another revision. you may decide the label no longer accurately reflects that particular revision. In addition. or numbers without any spaces (14325). there may be times when you want to add an additional label or change the label assigned to a revision. In the Delete Label dialog box.Member Operations Labels cannot contain colons (:). For instance. and select the Move Existing Label option. select a label to delete from the Label list. Web Select Member > Delete Label. In the Delete Label dialog box. For example. If a member has more than three labels. for example. TIP You can also add labels to the member in the Member Information dialog box or Revision Information dialog box. 79 . TIP You can also delete a member’s labels in the Member Information or Revision Information dialog box. Numbers that contain spaces are acceptable. select a label to delete from the Label list. numbers in the same format as a valid revision number (1. leading spaces. square brackets ([ ]). Although you generally add a label to a new revision upon check in. Interface Procedure GUI Select Member > Properties > Delete Label. if you have assigned the same label to a number of members.23). you might want to label each member in a project when you checkpoint the project. Labels appear in alphabetical order in selection lists. MKS Source displays a link ( ) that you can click to view all the member labels. NOTE In the Web interface. For example. Freezing restricts member information from being updated. you can thaw them (see “Thawing Members” on page 81). you can freeze individual members within a project or Sandbox. but not their attributes. but does not affect the member file itself. Freezing a member places it in a state that prevents changes from being made to the member information that resides in the project file. When you want to allow project members to be changed. You can change the label or state of frozen members. Freezing is the opposite of thawing a member. but none of the changes are included as part of the member information in the project. preventing these members from being changed by accident. Web Select Member > Freeze. modified. Freezing is useful for facilitating: „ project checkpointing „ member promotion „ software distribution Freezing prevents changes to member information in the project. you cannot update the member revision or change the attributes of a frozen member. MKS Source reports the availability of new revisions when anyone checks them into the archive. For example.Chapter 4: Members Freezing Members When your development team has largely finished a portion of a project and some project members are in a stable state. Revisions can still be checked out. so an appropriate person must make the decision to thaw the member and update the project as a whole. MKS Source does not update the project to the latest revision. development work can still continue in the member file itself. and checked in. 80 Interface Procedure GUI Select Member > Properties > Freeze. if new revisions are checked into the member’s archive. Freezing can be used immediately before a checkpoint operation to ensure no one changes the project or its members before the checkpoint is complete. If a member is frozen. MKS Source does not update the member revision for the project. However. . pj project.3 becomes the head revision for the project member utility.pj Project view. the release engineer freezes the file utility. Example A sample thawing sequence is as follows: „ As part of the development cycle of the Apex. Thawing Members When you decide to allow project members to evolve again. revision 1.) „ A developer checks out utility. „ A developer checks out utility. Thawing a member is the opposite of freezing a member.pj project until revision 1. Web Select Member > Thaw. „ The release engineer thaws utility.3) is available to the project.dll (that is.2. the release engineer incorporates the modifications by choosing Member > Properties > Update Revision in the GUI or Member > Update Revision in the Web interface.dll. (The snowflake symbol displays only in the context of the project. Interface Procedure GUI Select Member > Properties > Thaw.dll. MKS Source updates Apex.2.dll at revision 1. revision 1. „ The new version of utility.dll (version 1.2 in the Apex. The new version of utility. MKS Source notifies that a newer revision of utility. you can thaw any frozen ones.dll makes the changes available to the Apex. modifies it. Thawing a member removes the restriction on changing member information in the project and makes previously checked in member information available to the project.pj project. a release engineer freezes project member utility.pj project.dll.Member Operations Example A sample freezing sequence is as follows: „ Working with the Apex.2 is thawed.pj project until revision 1. version 1.2.dll. „ The snowflake symbol displays beside utility.dll.dll is not accessible to the Apex. Thawing revision 1.2. modifies it. and checks it back in. and checks it back in. revision 1.dll.3) is not accessible to the Apex.2. revision 1.pj to include the modifications previously checked in by the developer.2 of utility. revision 1. „ Revision 1. „ Once the developer’s modifications are reviewed and accepted. 81 .2 is thawed. update revision). but the deferred operations do not appear on the MKS Integrity Server until they are submitted to the project. add from archive. With the exception of deferred rename. move. 82 . you can defer the completion of the command until a later time. MKS Source reports an error. The defer option allows you to see the effect of the operation in your Sandbox without affecting the project. and checkin operations. MKS Source does not allow any further operations that would cause that member to be modified. see the MKS Integrity Client 2007 Getting Started Guide. move.Chapter 4: Members Deferring Member Operations For certain operations in MKS Source. checkin. A deferred member is a member that is associated with any deferred operation (add. see “Submitting Change Packages” on page 125. A deferred member displays in the Sandbox. You can apply the defer option to the following operations: „ “Adding Members to a Project” on page 51 „ “Adding Members From Archive to a Project” on page 53 „ “Moving Members” on page 57 „ “Dropping Members From a Project” on page 60 „ “Checking In a Member” on page 66 „ “Renaming a Member” on page 69 „ “Importing Members” on page 55 „ “Viewing an Annotated Revision” on page 92 TIP You can apply the Deferred Items filter to display any members that are associated with deferred operations. NOTE Once you have specified a deferred operation on a member. If you try to perform multiple deferred operations on a single member. The deferral of operations is provided as a selectable option in two ways: through the GUI and in the command line interface as the --defer option. For more information on using the Deferred Items filter. rename. drop. It is important to note that deferred operations can be added to a change package and then submitted as a group of changes. MKS Source supports only single deferred operations on a member. import. For more information. but the deferred operation is not shown in the project until the deferred operation is submitted. Deferred operations are visible only from the client-side Sandbox and are seen in the project only when they are submitted. a deferred operation. Submitting the operation completes the command and makes it visible in the associated project. move and/or checkin operations on a single member. Example Chad is assigned to change the current savings calculator menu image to match the other menu images. then the move operation. For more information. see the online help. or complete. He can now submit his deferred drop and add of the image files. see “Submitting Change Packages” on page 125 and “Change Package Reviews Overview” on page 128. you do not need to submit deferred operations prior to submitting the change package. IMPORTANT If exclusive locking is enabled. For more information on exclusive locking.Deferring Member Operations You can simultaneously defer rename. When these deferred operations are submitted. see “Change Package Reviews Overview” on page 128. For more information. you use the Member > Submit Deferred command. or MKS Source creates pending entries (and if necessary pending revisions) at the time the command operation is completed rather than when the associated change package is submitted. The sequence for performing these operations is set by default and is not configurable. If change package reviews are mandatory. ensure that the deferred option is enabled in command dialog boxes. 83 . If change package reviews are mandatory. To do this. By default. For detailed information on the deferred submit options. MKS Source first performs the checkin operation followed by the rename operation. he needs to drop the current image and add a new one. You must check out or lock the member before submitting the deferred check in operation. Example Chad completed his unit testing of the savings calculator with the new image. Chad uses a deferred add and drop because he does not want to commit his changes until he finishes unit testing his modifications. click Options and enable Override the change package to a specified value. see the MKS Integrity Server 2007 Installation Guide. the change package that was specified during the deferred operation is used for the Submit Deferred command To select a different change package or create a change package. Submitting Deferred Operations To submit. you cannot submit a member with a deferred check in operation if you do not have a lock on the member. MKS Source informs you that there is a deferred operation on the member and asks you if you want to proceed. If the new working file is missing. MKS Source asks you if you want to overwrite the existing working file. see “Discarding Changes to a Member” on page 70. MKS Source then resynchronizes the working file to the version in the project and in the new location. „ Deferred Move When resynchronizing a member associated with a deferred move. When you revert a deferred add operation. 84 . MKS Source does not make any changes to the working file. The working file with the old name is then deleted from the Sandbox. The deferred indicator remains after the resync completes. MKS Source asks you if you want to overwrite the existing working file. Resyncing Members With Deferred Operations When you resynchronize a member associated with a deferred operation. MKS Source resynchronizes it. After the revert operation. „ Deferred Checkin When resynchronizing a member associated with a deferred checkin. you must use the Member > Revert command to cancel the defer operation. where the working file is modified. For more information on the revert command. „ Deferred Update Revision When resynchronizing a member associated with a deferred update revision. MKS Source asks you if you want to overwrite the existing working file to correspond to the member revision. MKS Source asks you if you want to overwrite the existing working file. „ Deferred Rename When resynchronizing a member associated with a deferred rename.Chapter 4: Members Canceling Deferred Operations Once you defer an operation. the file becomes a non-member. MKS Source retains the working file for the deferred member. rather than a former member. MKS Source performs the following deferred operations: „ Deferred Add When resynchronizing a member associated with a deferred add. „ Deferred Drop When resynchronizing a member associated with a deferred drop. because it was never added to the project. 1. This section describes how to view member histories and work with revisions. Working with Member Histories and Revisions When you make changes to a member and check it back in. Interface Procedure GUI Select Member > Views > View History Web Select Member > View Member History You can also view and modify revision information through the Revision Information view.3. revision information displays in the Member History view. its revisions would be numbered 1.1.Working with Member Histories and Revisions „ Deferred Import When resynchronizing a member associated with a deferred import.3. 85 . Each revision is assigned a unique revision number used to identify a revision in a history. 1.3. 1. For additional information on resyncing members. MKS Source asks you if you want to delete the existing working file. A new revision is produced in the history each time a working file is checked in. see “Resyncing Members” on page 71.2.4.1. your changes are automatically added to the member history as a revision.1.3. In the GUI. For example.2. and so on. Revisions on a branch are numbered by adding two-part decimals to the number of the revision they branch from. This section provides information on the following procedures: „ “Viewing a Member History” on page 85 „ “Updating a Member Revision” on page 90 „ “Setting a Member Rule” on page 91 „ “Deleting a Revision” on page 91 „ “Viewing an Annotated Revision” on page 92 „ “Working With Pending Revisions” on page 94 Viewing a Member History MKS Source maintains detailed information about each revision in the member history. …). 1. A revision is a version of a file and is contained in a history. 1.1.3. if a branch is started from revision 1.1. Revisions on the mainline are numbered as two-part decimals (such as.3. 1. whether the archive is compressed. MKS Source maintains historical information called archive information. 86 . the starting point of the default branch revision. the data type (text or binary). users who have locks on revisions in the archive. You can view and modify archive information through the Archive Information view. In the GUI. see the online help.Chapter 4: Members MKS Source maintains an archive of all the changes made to a member since it was put under revision control. An archive is a file containing the history of a member (a record of all the changes made to it since it was put under revision control). From the information contained in the history. In order for information to display in the details panel. For more information on this view. MKS Source can reconstruct any previous version of the member. and a description of the archive. you can toggle between a graphical view and a list view by by clicking View > List or View > Graphical. the member history view displays two panels: a panel showing the path of development. Working With the Member History View By default. and a panel showing details for a selected revision. This information includes revision labels. you must select a checkpoint in the GUI or click a checkpoint number in the Revision column in the Web interface. whether exclusive locking applies to the archive. Working with Member Histories and Revisions Graphical Member History view The information in the graphical view shows the path of development from revision to revision. including branches and merge lines. If summary information is not displayed in the view. 87 . You can change the information that displays for each revision by selecting View > Show beside each node. it displays in a tooltip when you place your mouse pointer on a specific revision. Date Date the revision was created. see the online help. The following information can display in the member history details. Revision Description Brief description of the revision. States are defined by your administrator. The details panel in the graphical or list view displays additional details for a selected revision. . Change Package Change package associated with the revision. Author User who checked in the revision.Chapter 4: Members List Member History view The information in the list view is displayed in columns. You can turn the display of this panel on or off using the View > Show Details option. For more information on the default columns. 88 Field Description Revision Revision number of the member. State State of the revision. Note: Member revision information is not supported for an RCS type repository. followed by all other locks. sorted by timestamp (newest first). You can apply filters to a member history in either the graphical history view or the list view. If the number of projects exceeds the set limit. You can change the maximum by selecting View > Maximum trunk revisions. including information for each lock. Only projects that you have the OpenProject permission for display. The maximum number of projects displayed is controlled by the server limit. By default. see the online help. MKS Source displays a message indicating that there are too many results to display in the view. For detailed information on the Filter Revisions options. Any projects where the subproject was added as shared are not displayed. Note: If a revision is member revision in a shared subproject. Selecting Filter Criteria You choose the selection criteria you want to use by selecting one or more check boxes in the Filter Revisions dialog box. Filtering a Member History in the GUI You can use the revision filter in the GUI to display any revisions of the selected member that meet specified selection criteria. only the original project path is displayed. a maximum of 200 trunk revisions are displayed (the revisions branched from these trunk revisions are also displayed). 89 . Note: The list of locks includes any that exist outside the project and development path context of the selected revision. Revisions selected with this command can be manipulated as a group by other MKS Source commands. specifying filter values where required. This allows you to display a specific group of revisions for a member that might have hundreds or thousands of revisions. Member Revision The project and development path that the revision is the member revision in. Each lock is listed separately. branched revisions are not included in the count. Administrators can change the default limit.Working with Member Histories and Revisions Field Description Locked By All locks on the selected revision. You can change the filter by selecting View > Change Filter. the number of revisions displayed can be too large to work with. Even with filtering. which is set at 5000 by default. The number of revisions displayed is calculated based on the number of visible mainline revisions. with the exclusive lock (if any) listed first. For example. Example Code freeze has been reached on the stock calculator. if demoapp. select whether the criteria should be combined using a Logical AND or a Logical OR. see “Thawing Members” on page 81. Updating a Member Revision You can update a member revision without checking in a member by using the Update Revision command. trunk tip.Chapter 4: Members To invert a filter. Interface Procedure GUI Select Member > Update Member Revision. and Steve has frozen all of the members in that project. property (state. For detailed information on the Set Member Revision dialog box. see “Creating a Change Package” on page 117. Web Select Member > Update Revision. for example. NOTE You cannot update a frozen member revision. and freezing it again. or timestamp). When all the project members are frozen. You must first thaw the member revision and then update it.c 1. click the filter a second time and the ! symbol displays. setting 1. Steve must now incorporate the fix into the project by thawing the member revision. or member branch tip). 90 . For information on thawing members. they have found a bug in the stock calculator. Quality Assurance tests the code. You can update the member revision to a pre-selected or pre-defined revision. current project configuration. You would invert a filter if you wanted to display. updating it to the head revision. If you choose more than one selection criteria. For information on creating a change package. head revision. see the online help .2 as the member revision makes it the default revision in all Sandboxes. or external project configuration.1 is the member revision. This is useful when you want the member revisions in a project to reflect revisions based on a symbolic location in the development path (working file. For information on the Change Package field. label. revisions that are not locked. The member revision is the default revision that users work with in all other Sandboxes. see “Specifying a Change Package for an Operation” on page 118. In this case. Deleting a Revision If you know you will never use a revision again. or if change packages are mandatory. In the GUI. select Member > Properties > Set Member Rule. To update the corresponding member in the variant according to the member rule. Using a Rule to Update a Member Revision in Another Project Configuration By design. or timestamp). provided it is not a pending revision associated with a change package in a state other than Closed or Discarded. you require the ModifyMemberRule permission. For more information. current project configuration. head revision. only the Check Out and Update Member Revision commands allow you to specify a revision based on the rule defined for the member. if the member revision for member_1 is updated in project_A. or member branch tip).js sample event trigger script that enables dynamic updating of linked member revisions under certain conditions. For example. you can also view and edit the rule in the Member Information view.Working with Member Histories and Revisions Setting a Member Rule A member rule is a revision—typically a symbolic revision—attached to a member. trunk tip. After you create a rule for a member. or external project configuration. see “Working With Pending Revisions” on page 94 and “Change Package Reviews Overview” on page 128. Then. You can use it with any command that allows you to specify a revision based on the member rule. you can delete it. the corresponding member revision in a variant of project_A with the rule configured to link to project_A is not updated with the same member revision. or your administrator can configure the ClientLink. 91 . you can use the Update Member Revision command with the member rule. you could apply a member rule to members in project B that links them to the corresponding members in project A. To set a member rule. see the online help. contact your administrator. if you wanted to share members in project A with project B without using shared subprojects. NOTE To create a rule. For detailed information on the Set Member Rule dialog box. For example. label. property (state. You can set a member rule to specify a revision based on a symbolic location in the development path (working file. applying a rule to update a member revision does not dynamically update the corresponding member revision in another project configuration. For more information. you would update the members in project B by using the Update Member Revision command with the member rule. but not deleted content NOTE The Annotated Revision view can only be displayed for members of text format. author. line number. Any historical checkpoints based on a particular revision become invalid if that revision is deleted. Once you delete a revision. it cannot be retrieved. CAUTION If you are using a database type repository. Use it when you want to find out which revision introduced a particular change. To delete a revision in the GUI. each line of the revision displays with information about the last modification made to each line of the revision’s contents. If the revision is used in other projects. A revision cannot be deleted if it is the starting point (root) of a branch. the annotated revision list includes the revision number.Chapter 4: Members CAUTION Only delete a revision when you are certain you will never need it again. and revision contents. When using the Annotated Revision view: „ you can only view an annotation for one member at a time „ you must close and then reopen the view to see subsequent updates to the member „ only content that was added or changed on a per revision basis displays. MKS Source warns you that deleting the selected revision will break the listed items. select a revision from a Member History view and select Member > Revision > Delete. By default. Rather than searching the content of revisions in the history one revision at a time. 92 . by default MKS Source determines if the revision exists in other locations. In annotation blocks. NOTE Any existing locks on revisions are removed when those revisions are deleted. You should never delete the head revision of an archive. Viewing an Annotated Revision MKS Source provides an annotated revision view for revisions. date. you can see the content and information for all of the changes to the member in an annotated list. enter the number for the line. The Annotated Revision view displays. To go to a specific line. 93 . see the online help.Working with Member Histories and Revisions Example Mary needs to know what changes were made to custom. For details on the Annotated Revision view columns. Select View to perform the following tasks: „ Find searches for the first instance of a text string in the revision contents column and highlights the text. „ Find Previous applies the last search for the text string to the revision contents column in reverse order. the revision information for the specified revision displays in the bottom frame. She could use the Member History view. The line of code displays in the center of the pane if it exists in a scrolling region. including by whom and when. select History > View Annotated Revision. Annotated Revision View In the GUI. Go to Line displays a specific line of text. but that would take too long.css. 33. She could also view the differences between each revision one at a time. The Annotated Revision view displays all this information in one window. select Member > Views > View Annotated. In the Web interface. „ Find Next applies the last search to the remaining revision contents column and highlights the next instance the text displays. for example. but that would not show her what lines of code were changed or added. or in the Web. „ Pending revisions: „ cannot be set as the member revision by a user „ cannot be the basis for another revision. Key Considerations 94 „ Except where noted below. „ View the working file for the pending change package entry from the Change Package view by selecting Member > Revision > View Contents (see “Viewing Change Package Details and Entries” on page 124). you only see pending revisions if a deferred operation that would have created a new revision fails to commit to the repository. thereby preventing other users from specifying the same archive name in any future add member operations. unless that revision is also a pending revision created by the same user in the same change package „ can only be locked by their respective creators „ can only be deleted by discarding the corresponding pending entry from the change package „ are not recorded in a project checkpoint or Sandbox snapshot. When reviews are not mandatory. and similarly do not appear in project restore „ cannot be imported into a project .Chapter 4: Members Working With Pending Revisions Pending revisions are created by MKS Source when a change package is submitted. all commands that involve revisions can be performed on pending revisions. for example 1. Reviewing a Pending Revision To review a pending revision created by the action of another user. do one of the following: „ Obtain a working file for the revision by checking out the revision by its number (you cannot obtain a lock on the pending revision). In the case of a pending add member operation. If change package reviews are mandatory. Pending revisions are denoted with pending in parenthesis in all views that display revision numbers. the revision remains pending until the change package is accepted and is committed to the repository. NOTE Resyncing a pending revision from your Sandbox replaces the working file (corresponding to the pending revision) with the member revision. the archive name for the pending revision is reserved on the server.2 (pending). 95 . This enables you to decide whether your changes should be checked in or discarded. For information on setting up third party differencing tools. the pending revision is selected by default in the GUI and Web interface if the change package containing the pending operation is open. Visual Difference launches and displays the two revisions or the working file and revision side-by-side. a tool that compares and merges members and revisions. For information on using MKS Visual Difference. or a revision and the working file. Comparing Differences With MKS Source you can compare: „ Any two text-based revisions in a history „ A text-based revision and its associated working file in a Sandbox (GUI only) „ Any two text files Your can also compare your checked out working file and the locked revision as part of the check in procedure. highlighting the differences between them. You can specify a third party difference tool in your preferences. MKS Source allows you to use a third party differencing tool in the GUI if you do not want to use MKS Visual Difference. Select a working file that has been modified or which has a new revision available. 2 Select Member > Views > View Differences. see “Working With MKS Visual Difference” on page 102. see the MKS Integrity Client 2007 Getting Started Guide. The commands discussed in this section for the GUI use MKS Visual Difference. To compare two members in the GUI 1 Select two revisions. For details on viewing differences through the Check In dialog.Comparing Differences „ When checking out a member that has a pending revision that was created by you. see “Checking In a Member” on page 66. Both revisions and a summary of the differences between them are shown in the Differences window.Chapter 4: Members To compare two revisions in the Web interface 1 Select two revisions. 2 Select History > Differences. 96 . Enter the number of characters at which you want the text to wrap within the pane. and ignores the splitting of a word „ Ignore case ignores the type case when comparing the revisions „ Diffs only displays only the difference blocks in the revisions „ Wrap causes the text in the revisions to wrap at a specified character count. click OK.Comparing Differences You can also select from the following rules when viewing the comparison: „ Ignore blanks ignores tabs and white space throughout lines in the revisions. The Compare Files dialog box displays. NOTE The dialog box keeps track of the last 10 files specified in both fields. 3 To exit the Differences window. or MKS Source informs you there are no differences between the files. but does not ignore the splitting of a word „ Ignore whitespace ignores tabs and white space within a line. 3 Click OK. 2 Using the Browse buttons for each field. Wrap is enabled by default. highlighting the differences between them. Visual Difference launches and displays the two files side-by-side. 97 . To compare two text files in the GUI 1 Select File > Compare Files. select the files you want to compare. 1. 1. These revisions can then be merged with the member revision on the mainline. When you want to combine the development occurring on different branches. members can be branched when: 98 „ you check in a revision using an already existing revision number „ you check in a revision when working in a variant Sandbox . or vice versa. Branching Members You can branch members while performing a check in operation in the GUI or Web interface by selecting the Force Creation of New Branch option.Chapter 4: Members Branching and Merging Members As your projects evolve. This section explains the branching and merging tasks and the different ways you can complete them. MKS Source allows you to merge two revisions and the corresponding working file into a single merged revision with the MKS Visual Merge tool. usually the head revision. Merging combines changes into a new revision. In addition. A branch can start from the mainline or another branch. you can merge the revisions. for example.2 is branched into 1.1. Specific topics covered in this chapter include: „ “Branching and Merging Members Overview” on page 98 „ “Merging Modified Working Files” on page 100 „ “Merging Two Revisions” on page 101 „ “Working With MKS Visual Difference” on page 102 „ “Working With MKS Visual Merge” on page 105 „ “Resolving Merges” on page 109 Branching and Merging Members Overview Branching diverges from the mainline within an individual member’s history and creates a new revision path. you may need to branch members to facilitate development in multiple directions. Revision numbers contain the complete number of the revision that started the branch.2. You may also want to merge revisions that are part of the same member history to incorporate earlier development into the current development of the member. Depending on the operation. Any subsequent Merge Branch operations merge only changes since the previous merge operation. 3 Specify the Target revision that the branch revision is merged into (typically the member revision on the trunk). Therefore. MKS recommends that you examine and test the merged results before checking them into the repository. Merging operations are available only in the GUI and CLI. there can still be inconsistencies in the merge results that can only be detected by someone with an understanding of the context of the change. MKS Source also supports third-party merging and differencing tools such as Araxis and Beyond Compare. specify a particular revision from the Revision list. 2 Select Member > Merge > Merge Branch. Analyzing Merge Results A merge conflict occurs if the revisions being merged both have changes in a common segment of lines. Even if a no conflict is reported as a result of a merge operation. To merge branched members in the GUI 1 Select the revisions you want to merge. You can specify a revision by name from the Symbolic list. merging can launch the MKS Visual Difference tool and the MKS Visual Merge tool to automatically highlight conflicts for resolution. or specify a revision by label from the Label list. An error occurs if the working file is modified and not checked in. The Merge Branch command merges the entire contents of a branch into a single revision. and the original member revision in the project remains unchanged.Branching and Merging Members When performing a branch on check in. IMPORTANT Revisions must be checked in prior to merging. Merging Branched Members When you want to combine the development occurring on different branches. The working revision number increments accordingly. 99 . the member is checked in but is not updated to the member revision. MKS Source keeps track of the changes that have been merged so that later revisions on the branch are not re-merged when the next Merge Branch operation occurs. anytime a merge is performed. MKS Source provides visual two. The Merge Branch dialog box displays. you can use the Merge Branch command.or three-way differencing and merging tools. then checked back into the trunk. see “Creating a Change Package” on page 117. All of the unmerged changes made on the branch prior to the specified revision are merged with the target revision. You can specify a revision by name from the Symbolic list. To merge revisions of more than one member. You can merge your working file automatically when you perform a Check Out or Resync operation on the member by selecting the Merge Working File If Changed option. This allows you to have the most complete working file available. You now have working files in your Sandbox that correspond to the results of the Merge Branch operation. 6 Under Change Package. click OK to All. „ MKS Source cancels the operation. . see “Resolving Merges” on page 109. see the online help. click OK. select a change package to associate with the merged file from the Change Package list. they still need to be tested. For information on resolving merges. TIP You can also merge branched members in the graphical Member History view by dragging the revision at the tip of the branch you want to merge onto the revision that you want to merge into. other users cannot see or use them. Depending on your Check Out options or the preferences you have set for the Resync command. see “Specifying a Change Package for an Operation” on page 118. For information on the Change Package field. MKS Source merges all the changes to the working file on the branch (from the point of branching up to the point of check in) into the member revision for the project. or specify a revision by label from the Label list. You specify the branch by specifying a revision on that branch. For information on creating a change package. Until the changes are checked in. or click Create to create a new change package for the file. For detailed information on the Merge Branch options. MKS Source takes one of the following actions when a conflict occurs: 100 „ MKS Source asks you to confirm the action to be taken. and marks the working file with an unresolved merge icon. you can merge your working file changes with the member revision. 5 To modify the Merge Branch options. „ MKS Source exits the merge operation. click Options. Merging Modified Working Files If you modify your working file without having a lock. 7 To merge the branch into the specified revision. however.Chapter 4: Members 4 Specify the Branch you want to merge with the Target revision. specify a particular revision from the Revision list. Any revisions between the root and the target are included in the merge. but he also wants to merge the changes he made to the working file into the checked out member revision. The Merge dialog box displays. see “Working With MKS Visual Merge” on page 105.5.c is 1. Todd uses the Automatic Merging on Checkout option.1. 3 Specify the revisions you want to merge. with maintenance occurring on the 1. To merge two revisions in the GUI 1 Select the revisions you want to merge. specify a particular revision from the Revision list.1 branch. Merging Two Revisions When you want to combine individual revisions or a range of revisions (but not an entire branch). The tip of the branch is revision 1.3 to 1.5. Example The member revision of demoapp. any changes to the working file are merged and the member is checked out for editing.5. You specify the root revision (the revision that you want to merge from) and the target revision (the revision that you want to merge to).3. When merging on resync.1. For information on the MKS Visual Merge tool. The Merge dialog box displays. 4 Click OK to continue.3 (the root revision) and 1. Todd has revision 1. 2 Select Member > Merge > Merge. or specify a revision by label from the Label list. 101 .1.3 in his Sandbox and has made changes to the working file.Branching and Merging Members „ MKS Source automatically launches the MKS Visual Merge tool. He merges the differences between 1. the mainline member revision is 1.3. you can use the Merge command. He wants to check out the member revision.3.4.5 into his working revision.5 in his Sandbox. Todd wants to get the changes from 1.3. Example Development has branched from revision 1.1. When merging on checkout. and Todd has revision 1.3. the selected member is updated and merged. You can specify a revision by name from the Symbolic list. „ MKS Source completes the merge automatically and highlights any conflicts in the working file.3. For information on resolving merges. „ MKS Source completes the merge automatically and highlights any conflicts in the working file. MKS Visual Difference operates in two modes. MKS Source provides a message indicating why the merge was canceled. The GUI and CLI allow you to merge differences between two revisions. Depending. on the preferences you have set for the checkout command. Merging Two Revisions You can use MKS Visual Difference to merge differences between two revisions selected from a member history or a revision and a working file. The revisions are merged. It offers two-way differencing of revisions where differences are highlighted for you. see “Resolving Merges” on page 109. „ MKS Source automatically launches the MKS Visual Merge tool. „ MKS Source cancels the operation. 102 . 8 Examine and test the merged results before checking them into the repository. 7 Check in the merged revision. see “Working With MKS Visual Merge” on page 105. 2 In Visual Difference.Chapter 4: Members 5 Select Automatically and click OK. difference mode and merge mode. „ MKS Source exits the merge operation and marks the working file with an unresolved merge icon. and click OK. For information on the MKS Visual Merge tool. select File > Merge. MKS Source takes one of the following actions when a conflict occurs: „ MKS Source asks you to confirm the action to be taken. To merge two revisions in the GUI 1 Compare two revisions whose differences you want to merge (see “Comparing Differences” on page 95). IMPORTANT Members must be checked out before you can merge them. Working With MKS Visual Difference The MKS Visual Difference tool is a graphical application that allows you to compare revisions. The Reassign Merge Roles dialog box displays. 6 Select an option. You must be in merge mode to merge revisions in MKS Visual Difference. 5 Complete the required changes by doing one of the following: „ merging blocks (see “Merging Blocks” on page 104) „ editing merge results (see “Editing Merge Results” on page 107) 6 To save the Merge Result.Branching and Merging Members 3 Select from the list the revisions you want as the Merge From revision and the Merge To revision. MKS Visual Difference switches to the merge mode split layout. For information on the MKS Visual Difference layouts. select File > Save As (or File > Save if you have already specified a file name for the merge result). The Save merge result dialog box displays. 4 Click OK to continue to Merge mode. see the MKS Integrity Client 2007 Getting Started Guide. 103 . select Cut. Merge Block Above inserts the selected block above the adjacent block in the merge result file. You can select the blocks you want to merge by this method. „ Merge Block Below inserts the selected block below the adjacent block in the merge result file. By default. click the Cut. „ From the toolbar. MKS Visual Difference highlights the edited text and displays the edit icon ( ) next to the line number. Paste. For information on saving merge results. select Cut. MKS Source selects the file name corresponding to the member name. . Copy. The merging by blocks functions are accessible from the Edit menu and the shortcut menu. or Paste buttons. Paste. Copy. Copy. You can also perform these operations in the following ways: „ Double click a block in the Merge From or Merge To panes to replace the adjacent block in the Merge Result. „ From the shortcut menu. Editing Merge Results Once you are working in merge mode in MKS Visual Difference. and paste text in the merge result. replacing the corresponding block in the Merge Result. copy. You must save the merge result file to complete the merging operation. „ Drag blocks from the Merge From and Merge To panes to the Merge Result pane. see “Saving Merge Results” on page 105.Chapter 4: Members 7 Type the file name you want to save your merge result as. You can access editing functions in the following ways: 104 „ From the Edit menu. or Select All. The block you select to merge is inserted. or Select All. or changes. The following outlines the operations you can use: „ „ Merge Block replaces a block in the Merge Result. you can directly edit the merge result if necessary. In MKS Visual Difference you can cut. 8 Click Save to save the Merge Result. Merging Blocks Difference blocks are highlighted within each revision and may be insertions. deletions. By default. Open MKS Visual Merge by selecting Manually from the Merge dialog box (see “Merging Two Revisions” on page 101). Saving Merge Results Once you have edited or merged blocks into the merge result file. It offers three-way differencing of revisions where conflicts are highlighted for you. If you do not save the merge result file as the member. Once you have selected a file name and saved the merge result file. you can revert the merge result file to its last saved state or revert a particular block. Operation Procedure To revert merge results in the GUI Select Edit > Revert Merge Result File. select File > Save As. if the working file is involved in the comparison. you must save the file. MKS Visual Difference automatically recalculates the differences when it is saved. Working With MKS Visual Merge The MKS Visual Merge tool is a graphical application that allows you to compare. and click Save to save the merge result file. as you continue to make changes you can select File > Save to save it. 105 . To revert merge results by block in the GUI Select the block you want to revert in the merge result file and select Edit > Revert Block. MKS Source does not recognize any changes to the member.Branching and Merging Members „ Use the following shortcut keys: „ Cut = CTRL+X „ Copy = CTRL+C „ Paste = CTRL+V „ Select All = CTRL+A You can also add and delete text by selecting a line within the merge result and type or delete as required. type the file name in the Save merge result dialog box. MKS Source selects the file name corresponding to the member name. To save merge results in the GUI. You can save the file as the member and check it in to continue development or you can choose a file name of your choice. and merge revisions. Reverting Merge Results If you have made changes to the merge result file that you want to discard. NOTE If you save the merge result to your working file. edit. are highlighted and appear with a red flag next to the line number in the view panes. You can use the Next Conflict Block ( ) and Previous Conflict Block ( through the revisions and view all the conflicts. if they exist. select Edit > Merge All Nonconflicting Blocks. To merge all nonconflicting blocks in MKS Visual Merge. MKS Visual Merge incorporates all difference blocks (except conflict blocks) from the Merge From revision into the merge result file. All nonconflicting difference blocks are applied to the merge result file. 106 . and use the merging and editing utilities to revise the merge result. You can decide which of the conflicting blocks you want to incorporate into the merge result.Chapter 4: Members Viewing Conflicts Conflicts. Conflicts are also listed in the Difference Blocks list. ) buttons to navigate Merging Nonconflicting Blocks Merging nonconflicting blocks allows you to merge without including any areas of conflict. In addition to these commands. changes. select Cut. The following outlines the commands you can use: „ Merge Block inserts the selected block or line into the merge result file in the same location as it displays in the revision it originated from. see “Saving Merge Results” on page 108. You must save the merge result file to complete the merging operation. Paste. select Cut. but can be used in other situations as well. copy. „ Use the following shortcut keys: „ Cut = CTRL+X „ Copy = CTRL+C „ Paste = CTRL+V „ Select All = CTRL+A 107 . MKS Visual Merge highlights the edited text and displays the edit icon ( ) next to the line number. Merging Individual Blocks If you do not want to merge entire revisions you can merge individual difference blocks or lines. In MKS Visual Merge you can cut. deletions. The merging blocks functions are accessible from the Edit menu and the shortcut menu. „ Merge Block Below inserts the selected block or line below the adjacent block in the merge result file. you can directly edit the merge result if necessary. „ From the toolbar. This is typically required for resolving merge conflicts.Branching and Merging Members Save the merge result file to retain the changes as described in “Saving Merge Results” on page 108. „ Merge Block Above inserts the selected block or line above the adjacent block in the merge result file. You can access editing functions in the following ways: „ From the Edit menu. Paste. or conflicts. Copy. Copy. Difference blocks are highlighted within each revision and may be insertions. in MKS Visual Merge you can simply select a block and double click it or drag it into the merge result file. Editing Merge Results While you are working in MKS Visual Merge. and paste text in the merge result. For information on saving merge results. or Select All. „ From the shortcut menu. click the Cut. Copy. or Select All. or Paste buttons. To revert merge results by block in MKS Visual Merge. The block or line is removed from the merge result file. and click Save. MKS Source does not recognize any changes to the member. you can revert the merge result file to its original state or revert a particular block or line. Reverting Merge Results If you have made changes to the merge result file that you want to discard.Chapter 4: Members You can also add and delete text by selecting a line within the merge result and type or delete as required. In your Sandbox view. Suspending merges allows you to mark the working file to indicate that merging is required. and in the member information pane MKS Source indicates that resolution is required. This provides time you may need to investigate conflicts or difference blocks before finishing the merge. then click Yes to mark the working file for merging at a later time. type the file name in the Save merge result dialog box. To revert merge results to the original state in MKS Visual Merge. You can save the file as the member and check it in to continue development. Saving Merge Results Once you have edited or merged blocks into the merge result file. select the block or line you want to revert in the merge result file. MKS Visual Merge automatically recalculates the differences when it is saved. as you continue to make changes you can select File > Save to save it. To suspend a merge. Suspending Merges Once you have initiated a merge. If you do not save the merge result file as the member. You can only suspend a merge operation if there are changes since the last time you saved the merge result. you can suspend it and then resolve it at a later time. The merge result file reverts to its last saved state. click the Close button on the status bar. the member is marked with an unresolved merge symbol ( ). Once you have selected a file name and saved the merge result file. and select Edit > Revert Block. select File > Save As. To save merge results in MKS Visual Merge. NOTE If you save the merge result to your working file. 108 . you must save the file. in MKS Visual Merge. or you can choose a file name of your choice. select Edit > Revert Merge Result File. you can locate where a specific MKS Source object is used in your source code repository. To resolve a merge in the GUI 1 Select a member with an unresolved merge symbol ( ). a delta displays indicating that the merge is complete. view each located object in greater detail. then click OK: „ Automatically completes the merge process without launching the MKS Visual Merge tool. 2 Select Member > Merge > Resolve Merge. 109 . subprojects. 3 Select one of the following options for how you want to complete the merge. The merge tool appears in a new window displaying the revisions you want to merge. then save the merge results and close the tool. the revisions may be marked for merging later. it can be difficult to determine the relationships that MKS Source objects—projects. depending on your preferences (see the online help) the operation may be canceled. see the MKS Integrity Client 2007 Getting Started Guide. such as viewing members. Using the Locate command. NOTE You cannot suspend a merge operation and mark the working files for merging at a later time when using a third party merge tool. The Merge dialog box displays. If you have begun the merging process but decided to use the Mark for Later Merge option to postpone the completion of the merge process. when you are ready to merge the selected revisions you can use the Resolve Merge command to do so. Perform merging and editing as required. the output file may be highlighted. The search results appear in a Locate view. and “Working With MKS Visual Merge” on page 105. and perform basic operations on them. and members—have with one another. „ Manually allows you to complete the merge operation through MKS Visual Merge or a third party merge tool. based on your preferences. In your Sandbox view. Working files that are marked for merging appear with an unresolved merge symbol ( ) in the delta column in the Sandbox view. that allows you to refine and sort the results. Locating Where a Member Is Used As projects grow in complexity.Locating Where a Member Is Used Resolving Merges During the process of merging revisions you may decide to suspend the operation and mark the working files for merging at a later time. For information on using the MKS Visual Merge tool. or the MKS Visual Merge tool may be launched. If MKS Source encounters a conflict. then select Project > Run Report. If you installed MS Access after installing the MKS Integrity Client. select a project or Sandbox. you must have a default printer installed. For more information. You can save Reporter’s data files (containing the results of its project or archive analysis) as text files that most database applications can read. To generate a report. NOTE If you are integrated with MKS Integrity and your administrator has set up MKS Integrity items to collect MKS Source project information. project. If you display a report as a graph. or subproject. then displays or prints the summary as text or. you can define how you want it to look to suit your preferences or for quick. see “Locating Where an MKS Source Object Is Used” on page 30. contact your system administrator to enable MKS Source reporting. Reporter calculates a summary of the changes to a project or archive. You can also create customized reports using MS Access. optionally as a graph. Select a report type from the list of reports. To use Reporter. or individual archives. MKS Source Reporter analyzes projects.Chapter 4: Members For more information on locating a member. see “Generating Reports” on page 32. Generating Member Reports In the GUI. see the MKS Integrity 2007 User Guide. and allows you to generate a variety of reports and graphs based on its findings. you can use the expanded reporting capabilities provided by MKS Integrity. and which team members made them. 110 . for some reports. Types of Reports Reporter generates the following summaries: „ changes introduced by individual authors „ changes between the member revision and a revision with a particular label „ changes between the member revision and any other revision „ a list of locked members and the names of users who locked them „ a list of revisions with a particular label or state „ project member history (including revision descriptions) by file For more information on reports. For example. and you must have selected Microsoft Access™ as your reporting application when you installed the MKS Integrity Client. projectspecific identification. you could create a report to show the changes that have been made to a source file. their members. NOTE Promoting members is for historical purposes only. At particular milestones. As work progresses it might be changed to “Review” and eventually “Complete”. In the Promote Member dialog box. a default value of Exp (Experimental) is assigned to all revisions. He promotes the project and members to Testing and notifies Quality Assurance that they can begin final testing of the toolkit. In the Promote Member dialog box. 111 . Web Select Member > Promote. MKS recommends you use MKS Integrity with MKS Source. For example. MKS recommends you use MKS Integrity. a document could initially have a state of “Draft”.Promoting and Demoting Members Promoting and Demoting Members When MKS Source is used on its own. project members are ready to move to the next stage of their development cycle (for example. Interface Procedure GUI Select Member > Properties > Promote. your administrator can define states that members move through as part of the development process. Project members can also be demoted to a predefined lower state. A state is free-form text used to classify the condition of a revision in a member history. If no state is assigned to a revision. If no state system is defined. select a new state from the Promote to State list. To control member workflow more effectively. Example Patrick the project manager is notified that the ABC Financial Toolkit has reached code freeze. select a new state from the Promote to State list. Each phase is represented by states that are defined by the administrator. a default value of “Exp” (for Experimental) is used. To control member workflow more effectively. from Development to Test). This section provides information on the following procedures: „ “Promoting Members” on page 111 „ “Demoting Members” on page 112 Promoting Members Promotion is the process of managing data as it moves through a structured development cycle. In the Demote Member dialog box. select a new state from the Demote to State list. select a new state from the Demote to State list.Chapter 4: Members Demoting Members Project members can also be demoted to a predefined lower state of development. . Web Select Member > Demote. To control member workflow more effectively. MKS recommends using MKS Integrity. NOTE Demoting members is for historical purposes only. 112 Interface Procedure GUI Select Member > Properties > Demote. In the Demote Member dialog box. This chapter provides details on the following: „ “Change Package Overview” on page 114 „ “Creating a Change Package” on page 117 „ “Working With Change Package Entries” on page 117 „ “Working With Change Packages” on page 122 „ “Change Package Reviews Overview” on page 128 „ “Reviewing Change Packages” on page 134 „ “Apply CP and Resync CP Overview” on page 136 „ “Using the Apply CP Command” on page 138 „ “Using the Resync CP Command” on page 151 „ “Using the Resync By CP Command” on page 164 113 . MKS Source provides change packages to group all of the necessary changes together.CHAPTER FIVE Change Packages 5 Controlling and Monitoring Project Development When performing development work. Change packages provide an essential tool for controlling and monitoring development. you may need to change several members. even by a change package administrator. Change package entries are added when you specify a change package while performing member operations. Only the creator of a change package can add entries to that change package. If a change package has been propagated through Apply CP or Resync CP. The following rules apply when using change packages: „ Each change package has a unique change package ID (CP ID). it can only be re-opened by a change package administrator. „ Only the creator of a change package or a change package administrator can close a change package. it cannot be reopened. You can expand the capabilities of MKS Source change packages by associating them with MKS Integrity items to take advantage of MKS Integrity’s workflow and process management. „ Once a change package is closed. When reviews are mandatory. A change package acts as a log of both the changes to members and subprojects that have already been committed to the repository (server).Chapter 5: Change Packages Change Package Overview A change package is a group of changes made by a single user that can be considered a logical unit of work. A change package is open until you close it. This section provides information on the following: 114 „ “Integrating With MKS Integrity” on page 115 „ “Why Use Change Packages?” on page 116 „ “Using Change Packages to Control Development” on page 116 . The CP ID is a colon separated identifier of the form: <container ID>:<relative change package number> NOTE If the MKS Integrity integration is enabled. and the changes that are only visible to the user on the desktop and not committed to the repository (deferred). When change package reviews are mandatory. the item ID is used as the container ID. a change package has additional states before it is closed. which signifies that work on the change is completed. a change package acts as a control placed on changes to the repository by making them pending before they are committed. 115 . the change package ID is a colonseparated identifier of the form: <item number>:<relative change package number> For detailed information on MKS Integrity operations. MKS Integrity instructs you to first close the item’s change package. see the MKS Integrity 2007 User Guide. When attempting to advance to a state that does not allow open change packages.Change Package Overview Integrating With MKS Integrity As part of the integration with MKS Integrity. Each item has an audit trail. „ Typically. This also allows multiple users to work on the same item. Note the following rules that apply when using items and change packages: „ Multiple change packages can be created for a single item. you can associate change packages with MKS Integrity items. Administrators define what item types can use change packages and configure MKS Source to integrate with MKS Integrity. Each change package in an item can be created by a different user for team development of an item. known as the software development cycle. Integrating with MKS Integrity allows you to specify groups of developers who are affected by an item. items track all aspects of any engineering project. For example. „ Only item states specified by your administrator allow open change packages. which may be used to evaluate internal processes for the effectiveness of the problem resolution process. Items provide more detailed information on the action that is required and control the workflow of development and testing. If the resolution of an item requires more than one set of changes. you cannot create and associate new change packages with that item. your administrator can configure MKS Integrity in a way that a problem item may be associated with a solution item for easy tracking and monitoring of both items. Check with your administrator to find out which item types allow open change packages. an item cannot advance to the final state in an MKS Integrity workflow until all change packages are closed. who can then be notified using e-mail notification rules. „ When the MKS Integrity integration is enabled. MKS Integrity items track changes in the software development cycle. See your administrator for more information. Change packages can be grouped together using an item to create a larger logical grouping of changes. In effect. a new change package can be created for each new set of changes. „ If an item type does not allow open change packages. For more information. If you are integrated with MKS Integrity. The operations are listed in the Change Package view. You can see the change package listed in the Change Packages view. If reviews are mandatory. You can combine this example with the review process to control what changes become a permanent part of the repository (see “Change Package Reviews Overview” on page 128). 116 . submit the change package (see “Submitting Change Packages” on page 125). Any locked members are converted to deferred checkin operations. Specify the change package when performing operations on the affected members (see “Specifying a Change Package for an Operation” on page 118). submit an item that needs to be addressed. changes are reviewed before they are committed to the server repository. users are able to resync the changes required to address a specific item without resyncing the entire project. Using Change Packages to Control Development The following is an example of a way to use change packages to control development. All of the deferred operations are submitted. identify the members that are affected by the item. 3 MKS Source assigns the change package an ID and leaves the change package in an open state. then checked in. see the MKS Integrity 2007 User Guide. which prevents users from partially submitting related work in progress. 2 Create a change package (see “Creating a Change Package” on page 117) for the group of tasks you need to perform to address an item. 1 If you are integrated with MKS Integrity. „ Change packages provide a way to apply related changes to a project or Sandbox in one operation.Chapter 5: Change Packages Why Use Change Packages? Change packages provide the following advantages: „ Change packages allow related changes to be grouped as a logical unit. 5 When all of the development to address the item is completed. 4 As part of your development process. „ Change packages allow work in progress to be submitted to the repository (server) all at once (using submit change package). „ Using change packages. when creating the change package associate it with the item you created. „ Groups of changes can be reviewed as a unit. The process is repeated until the item is sufficiently addressed. „ When performing a member operation. when creating a change package you can choose an MKS Integrity item to associate with the change package. you can add entries to that change package by selecting it in the Change Package portion of the dialog box or wizard when performing member and subproject operations. 117 . For more information on items. Your ability to create a change package associated with an item is based on the change package creation policy for the item type. see “Finding Change Packages” on page 122). see “Checking Out a Member” on page 63. To add change package entries to a change package. advance the item through the workflow. Creating a Change Package You can create a change package in MKS Source in one of the following ways: „ Select Change Package > Create. For more information. the user moves the item to an earlier state in the workflow. the MKS Integrity Client must be connected to the server the change package resides on. see the MKS Integrity 2007 User Guide. If it is determined that more work needs to be performed to address the item. click Create. then you (or another developer) create an additional change package. At this point.Creating a Change Package 6 Close the change package when the work to address the item is completed. see the MKS Integrity 2007 User Guide. For more information. Working With Change Package Entries Once a change package is created. To find the change package and view its entries. The change package is moved to the Closed state. and the change package disappears from the Change Packages view. in the Change Package portion of the dialog box that displays. The Check Out dialog box displays with the change package selected. TIP You can also add an entry to a change package by dragging the member from a Sandbox view to a Change Package view (or change package in the Change Packages view). the verification phase begins. If the MKS Integrity integration is enabled. 7 If you are integrated with MKS Integrity. Change Package Entry Types The following table displays change package entry types and the operation that creates them. the entry is added to the change package. 118 NonExclusiveLock Lock Member. a icon displays beside the change package ID in the Working CPID column of the Sandbox view.Chapter 5: Change Packages After the operation is completed. For information on setting the default columns through view preferences. Depending on the operation. see the MKS Integrity Client 2007 Getting Started Guide. Not all CPID columns appear by default. „ If change packages are not mandatory. Change Package Entry Types Operation Add Add Member AddFromArchive Add Member From Archive AddSubproject Add Subproject AddSharedSubproject Add Shared Subproject ConfigureSubproject Configure Subproject CreateSubproject Create Subproject Drop Drop Member DropSubproject Drop Subproject Import Import Member Lock Lock Member. and if no change package is applicable. keep the following in mind: „ A change package can only be specified if your administrator has enabled the use of change packages. Check Out MoveMember Move Member . the change package’s ID displays in one of the member’s CPID (change package ID) columns in the Project or Sandbox view. Specifying a Change Package for an Operation When performing an operation that can add entries to a change package. „ You must specify a change package if your administrator has made change packages mandatory. Check Out Note: This entry is used for exclusive locks. If the change package contains deferred operations or lock entries. you can select <none> in the Change Package field. P. see “Creating a Change Package” on page 117. Key Considerations „ Only the change package creator can move entries from one change package to another. „ Only a change package administrator can move entries from one closed change package to another open change package. For example. click OK. 4 If you want to create a new change package for the entries. „ Both the originating and the target change packages must be open. The Move Change Package Entry Settings dialog box displays. thereby ensuring auditing accuracy. select the change package you want to move the entries to. you can move that change package entry to the correct change package. „ Moving a change package entry for a subproject operation moves any nested entries (member or subproject) at the same time. The Confirm Move Change Package dialog box displays. Select the option to make change packages that you did not create available in the Target Change Package list. For more information. click Create. A change package administrator can also move entries from one open change package to another open change package.Working With Change Package Entries Change Package Entry Types Operation MoveSubproject Move Subproject Rename Rename Member Update Check In (with updating member revision) UpdateRevision Update Member Revision UpdateArchive Check In (without updating member revision) Moving CP Entries You can move change package entries from one change package to another. 119 . 2 Select Change Package > Entry > Move. if you checked in a member with the incorrect change package. The change packages are listed with the C. the Show all open Change Packages option is available. To move change package entries in the GUI 1 From the Entries panel on the Change Package view. select the change package entries you want to move. 3 From the Target Change Package list. 6 When you are finished. 5 If you are a change package administrator. and only if the closed change package is not one that was reviewed. ID and the summary. From the Change Package view. 2 Click the Entries tab. Only a change package administrator can discard entries from closed change packages and only if reviews are not mandatory. To discard entries. click OK. click Yes. On the Entries panel. 8 To move the entry. 120 . 10:1 help dialog broken. click Yes to All. for example. To move all entries without viewing individual prompts. For more information. click Create. The Move Change Package Entry dialog box displays. ID and the summary. 3 Select the change package entries you want to move. The Change Package view displays. The change package entries are moved to the selected change package. The change package entries are moved to the selected change package. Repeat for additional entries. select the change package you want to move the entries to. The Confirm Move Change Package dialog box displays. 7 When you are finished. select the entries you want to discard and select Actions > Discard Change Package Entry. Web From a Project or Member History view. the change package must be in an Open or Rejected state. 4 Select Actions > Move Change Package Entry. 5 From the Target Change Package list. TIP You can move change package entries by dragging them from one Change Package view to another.Chapter 5: Change Packages 7 To move each entry presented. The Entries panel displays. click the change package ID. To move change package entries in the Web interface 1 From a Project or Member History view. click Yes.P. Select Change Package > Entry > Discard. see “Creating a Change Package” on page 117. The change packages are listed with the C. select the change package entries you want to discard. click the change package ID. Interface Procedure GUI From the Entries panel on the Change Package view. click the Entries tab. 6 If you want to create a new change package for the entries. Discarding CP Entries You can remove entries from a change package by discarding them. From the Change Package view. MKS Source compares revisions 1. click the number link for the change package. „ If change packages are mandatory. Keep the following points in mind when discarding change package entries: „ Only the creator of the change package or a change package administrator can discard entries. For example. committed entries cannot be discarded (contact your administrator for more information).P. Select Member > Views > View Difference. „ Locks on members corresponding to lock entries are released. displaying them in the Differences window For lock entries in the GUI.txt at revision 1. MKS Source compares the working file with the locked revision.2. select the change package entry you want to difference and select Actions > View Member Differences. Under the C. You cannot difference a lock entry that does not have an associated Sandbox. you can view the member differences of any change package entry. the following happens if applicable: „ Deferred operations corresponding to deferred entries are reverted. Interface Procedure GUI From the Entries panel on the Change Package view. „ Pending revisions corresponding to pending entries are deleted. Web From a Project view. and discarded entries are created (to preserve the review history). if you want to view the differences for the member readme. „ Any nested operations in a pending subproject are discarded at the same time as the subproject. select the change package entry you want to difference.3. 121 . For updates.3 and 1. Viewing CP Entry Member Differences From the Change Package view. „ Pending operations corresponding to pending entries are reverted. MKS Source compares the most recent revision checked into the change package with its immediately preceding revision.ID column. „ Archives created for pending members associated with entries in the change package are deleted from the server (pre-existing archives that were shared to create a pending member are not deleted). select a member that has a change package associated with it.Working With Change Package Entries When a change package entry is discarded. click the filter a second time and the ! symbol displays. select Change Package > Find. For example. if change package reviews are mandatory. Searching By ID You can search for change packages using the change package ID on the the By ID tab. This section provides information on the following: „ “Finding Change Packages” on page 122 „ “Viewing Change Package Details and Entries” on page 124 „ “Editing a Change Package” on page 125 „ “Submitting Change Packages” on page 125 „ “Closing a Change Package” on page 126 „ “Discarding Change Packages” on page 127 „ “Reopening a CP” on page 128 Finding Change Packages MKS Source provides you with a way to search through all of the change packages created by anyone. or MKS Source informs you that there are no differences. Working With Change Packages You can search for change packages and view change package details. you can close a change package or. To find change packages. Once all changes are complete. see the online help. You can edit change packages or discard them. including closed change packages. select the desired filters. then select Logical AND or Logical OR to specify their relationship. You can specify the following types of ID: 122 . For detailed information on the change package filters. To combine filters. To invert a filter.Chapter 5: Change Packages The Differences window displays the two revisions side-by-side. see “Comparing Differences” on page 95. you can search for change packages that are not associated with a specified project. For more information. Searching By Filter You can search for change packages using various filters on the By Filter tab. submit it for review. highlighting the differences between them. finds all changes packages with that container ID. „ The full change package ID. For more information on creating queries. 123 . for example 12. If the MKS Integrity integration is enabled. for example 12:1. Searching By Query If the MKS Integrity integration is enabled. you search for change packages by query on the By Query tab. your query results may be different than if you ran the same query in MKS Integrity. You can serach by as many IDs as you want. NOTE If you use a query that contains a symbolic date (for example. This enables you to find change packages based on complex criteria. This is because MKS Integrity uses the client’s timezone while MKS Source uses the server’s timezone. finds the single change package. see the MKS Integrity 2007 User Guide. the container ID is the same as the item ID. today).Working With Change Packages „ A container ID. add member from archive. there can be multiple locks on the member revision. 124 . you can use MKS Source to view the change package information for the member or subproject. and then select Change Change Package Package > View Change Package Details Tip: You can also click the change package ID in the Project or Member History view to view the change package. and then select Change Package > View Change Package Details To view information for a change package associated with a member operation in the GUI Select the member in a Project or Sandbox view. and then select Project > Subproject To view information for a change package in the Web interface Select a member or revision in the Project or Member History view. If you use a non-exclusive locking policy. If there are multiple locks.Chapter 5: Change Packages Viewing Change Package Details and Entries Once you add entries to a change package. Operation Procedure To view information for a change package in the GUI Select a change package in the Change Packages view. When viewing information for change packages associated with a member operation. the change package associated with an exclusive lock displays. you can select one of the following: „ View Working displays the change package associated with a deferred or lock operation performed by the current user from the current Sandbox (available only through a Sandbox context). „ View Locker displays the change package associated with the non-exclusive lock on the member revision. „ View Member displays the change package associated with the operation that set the member revision. If the current user does not have a lock associated with a change package. and then select Change Package > View Change Package Details To view information for a change package associated with a subproject operation in the GUI Select the subproject in a Project or Sandbox view. If there is no exclusive lock associated with a change package. or set member revision operation. and then select Member > Change Package To view information for a change package associated with an annotated member revision in the GUI From the Annotated Revision view. the current user’s lock takes priority. the first non-exclusive lock on the member revision displays. This revision may be different from the member change package ID if you used an import. select the annotation block corresponding to the change package you want to view. „ View Creation displays the change package that created the revision that is currently the member revision. To submit a change package in the GUI. change packages in state CommitFailed. submitting a change package begins a review process that must be completed before the changes are committed to the repository (see “Change Package Reviews Overview” on page 128). pending. Interface Procedure GUI Select the change package you want to edit and select Change Package > Edit. see “Change Package Reviews Overview” on page 128. and committed entries.Working With Change Packages „ View Pending displays the change package associated with a pending operation. Web From a Project view. Under the C. For more information. and description of a change package when necessary. When viewing information for change packages associated with a subproject operation. You can submit change packages containing any combination of deferred. Editing a Change Package You can update the summary. you can select one of the following: „ View Member displays the change package associated with the current subproject configuration. „ View Pending displays the change package associated with a pending subproject operation. 125 . and select Change Package > Submit. select the change package. Rejected.ID column. When reviews are mandatory.P. state. select the member that is associated with the change package you want to edit. NOTE You can only edit a change package that you created. Submitting Change Packages You submit a change package in order to commit the associated changes to the repository. click the number link for the change package. or Discarded can be moved to the Open state as part of the state workflow. unless you have administrator permissions. If reviews are mandatory. you are prompted to commit those pending entries. „ You cannot successfully submit a change package if the revision being updated is frozen. „ You cannot succssfully submit a change package that contains deferred Rename or deferred Move entries if another user has a lock on the member. Closing a Change Package Once the necessary changes are made to the members and subprojects. To set this option as a default using command preferences. closing a change package allows the item to move forward in the MKS Integrity workflow. you can close a change package in the GUI by selecting the Close Change Package option when performing member or subproject operations (see “Creating a Change Package” on page 117). For more information. see “Change Package Reviews Overview” on page 128. For more information. you can close the change package by selecting Change Package > Close. If reviews are mandatory. you can still proceed with the Submit CP operation by selecting the Force Creation of New Branch option. „ Locked change package entries must be converted to deferred check in entries in order for the Submit CP operation to complete. If the Check In operation results in a revision conflict (the revision being checked in is not the member revision) or a lock conflict (another user has an exclusive lock on the member). NOTE You can only close a change package that you have created unless you have administrator permissions. The Check In dialog box displays when a locked entry is encountered. see “Integrating With MKS Integrity” on page 115. If the MKS Integrity integration is enabled. see the MKS Integrity Client 2007 Getting Started Guide.Chapter 5: Change Packages Key Considerations „ If exclusive locking is enabled. you cannot close a change package. In addition to this procedure. It must follow the review process and be closed by the MKS Integrity Server. and they are committed to the repository. You must check out the member before submitting the change package. „ If a change package is submitted only containing pending entries. even if there are no deferred or lock entries. 126 . you cannot successfully submit a change package that contains a deferred check in if you do not have a lock on the member. „ Discarded change packages have a state of Discarded and can still be viewed using the Committed or Pending filter (see “Finding Change Packages” on page 122). the review log persists. TIP If you need to remove only specific entries from a change package. the following happens where applicable: „ All uncommitted entries are removed from the change package. Web Display the change package you want to discard in the Change Package view. Key Considerations „ The change package ID for the discarded change package can never be used for any future change packages that are created. „ All pending operations corresponding to pending entries are reverted and appear as discarded entries in the review log (to preserve the review history). „ If the change package has undergone a review. 127 . However. „ All pending revisions that correspond to pending entries are deleted. „ All deferred operations corresponding to deferred entries are reverted. „ You can open and reuse discarded change packages (see “Reopening a CP” on page 128). To discard a change package. Change packages can only be discarded if they are in the Open or Rejected states. Select Actions > Discard Change Package. „ Locks on members corresponding to lock entries are released. When a change package is discarded. see “Change Package Reviews Overview” on page 128. a change package administrator may discard a change package created by another user. that change package must be both created by you and not contain any committed entries. „ Any archives created for pending members associated with pending entries in the change package are deleted from the server (pre-existing archives that were shared to create a pending member are not deleted). Interface Procedure GUI Select the change package you want to edit and select Change Package > Discard.Working With Change Packages Discarding Change Packages MKS Source provides a way to remove change packages from active use by discarding them when they are not needed. A change package reviewer is a user specified by your administrator to review change packages containing members associated with specific projects. All other change packages function as non-review change packages. If change package reviews are mandatory globally. Interface GUI Procedure Select the change package you want to reopen.Chapter 5: Change Packages Reopening a CP The Open state is the only state you can add new entries to a change package. If change package reviews are mandatory at the project level only. 128 . Change packages follow the review process before the changes are successfully committed to the server repository. select Actions > Reopen. then a change package only progresses through the review process if it contains at least one entry associated with a member in a project that requires a review. A change package watcher is a user specified by your administrator who is notified when a reviewed change package is closed after being successfully committed to the repository. Change Package Reviews Overview A change package review is a review of changes by specified reviewers before the changes are committed to the server repository. and Discarded. Rejected. CAUTION „ Only a change package administrator can reopen a change package in the Closed state. Change package watchers may be individually specified or a member of a specified watcher group. change packages in the following states can be reopened: CommitFailed. Web From a Project or Member History view. „ A change package cannot be reopened if it has been propagated to another development path. and select Change Package > Reopen. As part of the review workflow. In the case of a reviewer group. The reviewer may be individually specified or a member of a specified reviewer group. then all change packages must progress through the change package review process. see “Using the Apply CP Command” on page 138. For more information. any member of that group casts an accept or reject vote on behalf of the entire group. From the Change Package view. click the change package ID. Modifying closed change package contents can compromise the integrity of the server repository. Subproject operations are always created as pending entries in a change package when reviews are mandatory. 129 . You can then submit the change package containing the pending entries for review. This section contains information on the following: „ “How CP Review Works” on page 129 „ “CP Review Benefits” on page 130 „ “CP Review Workflow” on page 130 „ “CP Entry Categories” on page 133 „ “Pending Operations in CPs” on page 134 How CP Review Works The following summarizes how the change package review process works: 1 The review starts when a developer (change package creator) submits a change package containing deferred and member lock entries and subproject entries (or any combination of deferred. where necessary.Change Package Reviews Overview A super reviewer is a user with permission to vote on change packages. 3 Change package reviewers (possibly a mentor or a senior developer) accept or reject the change package. For example. and. Voting as a super reviewer overrides all other votes. pending revisions. but who is not required to be a listed reviewer for the change package. or committed entries). if deferred operations are not mandatory you can create pending entries at the time the operation is completed by clearing the deferred option. 2 MKS Source creates a pending change package entry for each deferred and member lock entry. or the developer opens the change package and continues development (rejected case) NOTE Although the review process describes submitting change packages with deferred entries thereby creating pending entries. 4 The change package entries are either committed to the database (accepted case). pending. casting an accept vote as a super reviewer is sufficient for accepting the change package. which are stored only client side. This can be useful near the end of a release cycle as a pre-commit review of changes before they are included in a release build.Chapter 5: Change Packages Submit Change Package Developer Open and Work Pending Entries and Revisions Developer Reject Accept or Reject Reviewers Accept Committed Repository Change Package review process CP Review Benefits The benefits of using reviews are: „ Reviews provide a formal and enforceable review process. CP Review Workflow A change package under review progresses through states in a workflow. 130 . pending operations are stored server side and so are visible to all users. they remain in the member history and can be checked out (without a lock) by users (other than the creator) for review. reviews can remove the need for using a variant project to review changes manually. „ If the project is one that users will be building from. „ Reviews provide an alternative to manual post-commit review while recording all of the review information. however. Unlike deferred operations. „ Reviews force changes to be reviewed before they are committed to the repository thereby providing control over what changes are accepted into a project by making operations pending. „ Pending revisions are not a part of the current state of the project until they have been reviewed (not at member revision). The following is the change package progression through the workflow: 1 A change package is created and in the Open state. CommitFailed State signifying that the pending changes could not be committed to the repository. some are only used in the review workflow: Change Package State Details Open Only state where work can be performed using a change package (new entries created). The developer adds entries to the change package. and then closes the change package. MKS Source then commits the changes to the repository. Discarded change packages can be opened at a later date if needed. and MKS Source moves the change package to the Submitted state. either accept the change package or reject it. The following can then happen: „ If all individual reviewers and at least one reviewer from a reviewer group (if any exist) accept the change package. Discarded Empty change packages or change packages with changes that do not need to be committed to the repository are moved by the creator to the Discarded state. Submitted State the change package is in while it is being reviewed. The e-mail contains both change package and review information. it moves the 131 .Change Package Reviews Overview The following table provides details on change package states. Closed End state for the change package when pending changes are successfully committed to the repository. MKS Source sends each reviewer and the creator an e-mail notification that the change package is accepted. All operations are pending. 3 The reviewer or reviewers. When all reviewers have voted to accept the change package. An e-mail automatically notifies the reviewers of the change package submission (if the server is configured to send e-mail notifications). MKS Source automates the state change from Accepted to Closed if the changes are successfully committed to the repository. For each vote cast by a reviewer. Where specified. Creator must manually move the change package to Open to continue development. it is moved to the Accepted state. Accepted Intermediate state denoting that the change package is accepted by all of the reviewers. If MKS Source fails to commit the changes to the repository. Rejected State denoting that the change package is rejected by a reviewer. 2 The developer submits the change package to begin the change package review process (see “Submitting Change Packages” on page 125). MKS Source sends the reviewers an e-mail notification of the accept vote. and then submits the change package again. the creator can also move the change package back to Open. „ If a reviewer (either an individual or a group member) rejects the change package. continues development. the creator can submit the change package again. If an accepted change package is successfully committed to the repository. the change package moves to the Closed state without requiring passage through the review process an additional time. From the CommitFailed state. 132 . NOTE The creator of the change package continues development on pending revisions by checking them out. Change packages in the Closed state cannot be opened. and then submit it for review again. Since the review is already completed. continue development. Change packages in the Discarded state can be moved back to the Open state if they are needed again. The user can also discard the change package if it is no longer needed for development (thereby discarding entries contained in the change package). see “Working With Pending Revisions” on page 94. The creator of the change package then moves the change package to the Open state (by editing the change package and changing the state). For more information. once the commit failure reason is remedied. or any additional e-mail notifications to be sent. From the CommitFailed state. MKS Source moves it to the Rejected state and an e-mail notification is sent to each reviewer and the creator.Chapter 5: Change Packages change package to the CommitFailed state and an e-mail notification is sent to the creator stating the commit failure and the error associated with that failure. MKS Source then closes the change package and an e-mail notification is sent to the change package watchers. see “Change Package Reviews Overview” on page 128. „ pending entries can appear when a change package is in the Open. see “Change Package Entry Types” on page 118. For more information on reviewing a change package review log. 133 . deferred entries become pending entries (see “Submitting Change Packages” on page 125 and “Submitting Deferred Operations” on page 83). see “Pending Operations in CPs” on page 134. When the change package is submitted for review. „ discarded entries can only be viewed from the review log. discarded. They are denoted simply by the change package entry type name. for example. For more information on pending entries. you cannot submit a change package that contains deferred check in entries that do not have corresponding locks. Submitted.Change Package Reviews Overview Open Commit Failed Submitted Discarded Accepted Rejected Closed Change Package State Workflow CP Entry Categories There are four categories of change package entries: deferred. Accepted. The following are change package entry type categories and their descriptions: „ deferred entries appear only when the change package is in the Open state (see “Deferring Member Operations” on page 82). and committed. „ committed entries are entries that are committed to the repository. If exclusive locking is enabled. Update. For a complete list of change package entry types. Rejected. and CommitFailed states. pending. You can open the change package and then submit it again. see “Working With Pending Revisions” on page 94.Chapter 5: Change Packages NOTE For change packages that are not under review. 134 . members. is a member or subproject that is associated with a pending operation that adds it to the project. but must be discarded from the associated change package. For more information. For information on when e-mails are sent. You can view all the change packages waiting for your review by selecting Change Package > View My Reviews in the GUI. NOTE Pending revisions are not currently created for subproject operations. watchers. Pending operations cannot be reverted. A pending member / subproject. pending entries are created when the changes are not successfully committed to the repository. When reviews are not mandatory. or continue development and submit it later. Pending operations can create pending revisions. only the deferred and committed entry types are available for use in MKS Source. The changes are committed to the repository once the change package is accepted upon review (see “Change Package Reviews Overview” on page 128). Pending Operations in CPs Pending operations are operations whose proposed changes reside on the server. and subprojects. see “CP Review Workflow” on page 130. e-mails are sent to change package reviewers. Reviewing Change Packages If you administrator has set up e-mail notifications for change package reviews. see “Change Package Reviews Overview” on page 128. The My Change Package Reviews <user> view displays. Contact your administrator for more information. MKS Source moves the change package to the CommitFailed state. but have not been committed to the repository. and the change package creator at points throughout the change package review process. For more information on working with pending revisions. The pending member or subproject is denoted by a pending icon in the Name column of the Sandbox and Project views. NOTE It is possible for you to be a reviewer of a change package you created. If there are reviewers in addition to yourself. For more information. The Change Package view displays. For detailed information on the Accept Change Package dialog box.Reviewing Change Packages You can use the Resync CP command to create working files in your Sandbox for all of the changes in the change package you intend to review. Once your review is complete. click the change package ID. Once the change package is accepted. click OK. To accept a change package in the GUI and Web interface 1 From the GUI. Select Actions > Accept Change Package. with a Project or Member History view open. the MKS Integrity Client must be connected to the server on which the change package resides. 2 To accept the change package. each individual reviewer and one member of each reviewer group (if specified) in the reviewer list must accept the change package before it can be committed to the repository and then closed. NOTE To accept a change package. MKS Source provides review logs as part of a complete review audit process. an e-mail is sent to notify the reviewers and the creator that the change package is accepted. To view the change package review log in the GUI and Web. Each time the change package is submitted for review. an e-mail is sent to notify those reviewers that you have cast an accept vote for the change package. The Accept Change Package dialog box displays. it is committed to the server repository. see “Using the Resync CP Command” on page 151. see the online help. or in the Web interface. A log consists of individual records for each reviewer. you can accept or reject the change package. it then moves to a state of 135 . The accept vote is cast and recorded in the review log. select the change package you want to accept and select Change Package > Accept. When all of the individual reviewers and at least one reviewer from each reviewer group have accepted the change package. To see a list of reviewers for a change package. view the change package review log. If the change package is successfully committed to the repository. from the Change Package view click the Review Log tab. The Review Log panel displays. Accepting a CP After a change package is submitted. a new log is created. the change package can be discarded or reopened. see “CP Review Workflow” on page 130. The creator of the change package can reject it without being listed as a reviewer. the reviewer can reject the change package. select the change package you want to reject and select Change Package > Reject. The change package moves to a state of Rejected and the vote is recorded in the review log. Rejecting a CP If a reviewer of a change package determines that invalid changes were made or additional development must be completed to resolve an item. The Reject Change Package dialog box displays. with a Project or Member History view open. 2 To reject the change package. Select Actions > Reject Change Package. For more information on change package states. In an environment where development is constantly evolving to include bug fixes or new features. click the change package ID. 136 . or from a variant to another variant. To reject a change package in the GUI and Web interface 1 From the GUI. All e-mail notifications contain change package and review information. Apply CP and Resync CP Overview Apply Change Package (Apply CP) and Resynchronize Change Package (Resync CP) represent two of the most powerful MKS Source features. or in the Web interface. For detailed information on the Reject Change Package dialog box. Apply CP and Resync CP allow you to identify and incorporate only the specific bug fixes or content that you want to include in a new project. A single reviewer rejection is enough to reject a change package. An e-mail notification of the change package’s rejection is sent to the reviewers and creator. an e-mail notification of the Closed state is sent to the change package watchers. view the change package review log. The functionality allows you to move specific changes—whether from the master project to a variant. The Change Package view displays. For more information on change package states. If the change package under review is closed.Chapter 5: Change Packages Closed. click OK. see “CP Review Workflow” on page 130. To view the list of reviewers and reviewer groups. see the online help. from a variant to the master project. From the Rejected state. even if there are multiple reviewers. Resync CP is appropriate for situations where you want to select individual changes. rename. this could mean searching hundreds of files to determine which ones are related to a specific item. manual task. see “Change Package Overview” on page 114. Apply CP is appropriate in a staging environment. drop. If merging is required. NOTE For brevity. and merge out any unwanted changes. If a development team does not use the change package methodology. To build the project. merge around unwanted revisions. merge in required changes. For more information on creating development paths. Variant projects are identified through development paths. and move files. see “Creating a Development Path” on page 28. If a development team uses change packages consistently. see the MKS Source 2007 CLI Reference Guide. In a large code project. Apply CP and Resync CP rely on the use of change packages to track individual changes that modify project content or create new content. isolating specific content becomes a complex.Apply CP and Resync CP Overview Variant projects are projects that branch from the main trunk of development. For information on using Apply CP (si applycp) and Resync CP (si resynccp) in the command line interface. The effectiveness of Apply CP and Resync CP relies on a change package methodology that includes the following practices: „ accurate and consistent use of change packages for logging items „ associating related changes into a single change package that addresses the item in question Practices to avoid include the following: „ including changes made on multiple variants in the same change package „ including unrelated changes in a change package Apply CP and Resync CP are most useful for code and other text files where differencing can be performed. and build and test the changes in your Sandbox before propagating them. some of the Apply CP and Resync CP examples use the command line interface to illustrate how a command works. Apply CP performs the operations required to propagate the desired changes. you can use the Resync CP command. where you know all changes have been tested and can be propagated to the next stage as a group. MKS Source can isolate all changes related to a specific item because this information is recorded as part of the change package. update file revisions. For more information on change packages. 137 . The operations are not recommended for binary files because of the difficulties encountered in differencing and merging binaries. Once the dependencies are calculated. it would then be necessary to add. Resync CP allows you to either merge in desired changes or merge around unwanted changes. 0. This function of the command is an automated process of the member and subproject commands. The Apply CP command is most useful for building software. dropped. Apply CP only operates on closed change packages and cannot perform merging. If you run the Apply CP command from a Sandbox. This function of the command is an automated process of the Update Revision command. 138 . The abcBusiness software company has released their Aurora software. that isolates the feature from other features. All the changes associated with the timestamp function are recorded in a set of change packages. For more information on resolving merge conflicts. The development team is now working on a new set of features for the next release. The topics covered are: „ “Using Apply CP in Your Development Environment” on page 138 „ “Working With Subprojects” on page 139 „ “Applying a Change Package With No Dependencies” on page 141 „ “Using the Apply CP Backfill List” on page 142 „ “Using a Propagation Change Package with Apply CP” on page 145 „ “Resolving Conflicts” on page 146 „ “Apply CP Procedure” on page 146 Using Apply CP in Your Development Environment This section provides an example to show how Apply CP can be used in your environment. If you are applying a change package that contains moved members or subproject between two projects. or set of items. the project was checkpointed. The Apply CP operation occurs in the project (whereas the Resync CP operation occurs only in the Sandbox). MKS Source automatically updates both projects. the buildmaster brings a feature from the main trunk of project development and applies it to an earlier release. A new feature for this release is a timestamp function. The Apply CP operation reads the entries in a change package and updates the project to the revisions listed in that change package. In this example.0. renamed. 4. version 3.Chapter 5: Change Packages Using the Apply CP Command You use the Apply CP command to propagate changes recorded in change packages from one project or development path to another. see “Using the Resync CP Command” on page 151. the Sandbox acts as a redirector to the project. The next sections describe how the Apply CP command works and how you can use it in your development environment. or moved. The Apply CP operation may also require that files or subprojects be added. When the release was completed. This enables you to propagate only the changes that you want to. How can abcBusiness provide the timestamp feature without affecting the current release? Because the code for this feature is isolated within a set of change packages. and move files and subprojects. If the Apply CP command fails because merging is required.0. If you decline the list. or dropped through the Apply CP command as a result of subproject operations included in a change package. Working With Subprojects Subprojects are created. For more information. merge around unwanted revisions. Subproject operations are applied with the following restrictions: „ Add subproject operations are ignored if the subproject already exists in the target project and is configured the same way as is specified in the change package. drop. „ Use Apply CP to apply the change packages to the variant project. 139 . Resync CP works in your Sandbox and allows you to make selections from the backfill list. That executable can then be tested by Quality Assurance and shipped to the customer. drop. Apply CP is essentially adding the feature to the variant of Aurora 3. moved. you can run the Resync CP command. „ Create an executable of the software. The buildmaster at abcBusiness would: „ Create a variant project off the checkpoint for version 3. see “Using the Resync CP Command” on page 151.0 is not stable enough for release and too many resources would be required to accelerate the release schedule.0 but also needs the new timestamp feature for its global operations. the Apply CP operation works directly in the project to add. rename.Using the Apply CP Command Now abcBusiness receives a request from a customer who has Release 3. without the functionality of Apply CP. The buildmaster would then have to add. stable release. Using the functionality of Apply CP. In MKS Source. This variant project is isolated from the rest of the development team so that unwanted changes are not added to the main trunk of the development path. the buildmaster at abcBusiness would have to search the required change package(s) manually and individually review all of the associated files to isolate the changes related to the feature. and merge out any unwanted changes. The change packages contain all the files that were changed or added to produce the timestamp feature. and move files manually. merge in required changes. The code in development for Aurora 4. MKS Source presents you with a list—the backfill list—including all change packages required to capture the changes. However. you must either accept or decline the entire list—you cannot make selections. update file revisions. MKS Source then merges around unwanted changes and uses differencing to merge files.0. the Apply CP command propagates the changes directly to the project. added. If you accept the list. this complicated process becomes largely automated. the Apply CP command cannot complete. rename. and update file revisions as required to create the desired change. the Apply CP command can be used to propagate the feature to the earlier. In the Apply CP operation. Apply CP does not detect or add any missing shared subprojects. When added to a variant. the subproject changes remain in the target environment. you have the option of applying subproject operations that are implied by member operations included in a change package. the subproject is added as a variant subproject on the same development path as the parent project it is being added to.Chapter 5: Change Packages „ You cannot apply configure subproject operations or operations that result in a reconfiguration of a subproject. NOTE „ Earlier versions of MKS Source (Source Integrity) always used implicit propagation of subproject operations. if a change package used to create a subproject was also used to add a member to the subproject. and you do not include this change package. you will get an incomplete subproject. If you decide to cancel the operation when you are asked to confirm the changes to be applied. 140 . This is known as implicitly propagating subprojects. for example. How Subproject Changes Are Applied Implicitly If a member operation implies the creation or addition of a subproject. The creation or addition of subprojects takes place early in the Apply CP process. Using implicit subproject propagation enables you to propagate subproject changes without needing to actually apply the change packages containing those subproject operations. „ Move subproject operations are ignored if the subproject already exists in the target location. and is controlled by an option of the Apply CP command. adding a subproject that already exists on on a different development path. MKS Source tries to re-create the source environment’s project tree in the target environment. If part of the source environment’s tree has been dropped. even if they are present in the source project. For example. A subproject is added only if it is located under the project location for the target project environment and is configured the same way as the parent project. If you cannot include all change packages with subproject operations in the Apply CP command. „ Drop subproject operations are ignored if the subproject does not exist in the target location. „ Using implicit subproject propagation can result in unsatisfactory results. MKS Source attempts to re-create it based on the nearest appropriate subproject. . The buildmaster wants to pick up the changes that address the bug fix and apply these to a variant project.c from 1.1.. the buildmaster uses the si applycp command to apply CP 21:1: si applycp -P f:/Aurora_Project/project. Item 21 addresses the bug fix and is associated with the file main.pj).2 in the variant project 141 .c 1. Aurora_Project main.2 Are you sure you wish to proceed? [yn]<n>: y Because CP 21:1 included only an updating of main.1 1. includes a bug fix that allows the printing of version information.pj --devPath Aurora_Variant_1_0 21:1 The command runs as follows: Applying change packages.Using the Apply CP Command Applying a Change Package With No Dependencies This example illustrates a simplified application of the Apply CP command in the main trunk of development for the Aurora project (f:/Aurora_Project/project. main.c from revision 1.1 to revision 1.2 CP 21:1 Aurora_Variant_1 main.c: update member revision to Revision 1.2) through change package (CP) 21:1. The project member.pj[Aurora_Variant_1_0] Member main.c 1. main.c is at revision 1. Aurora_Variant_1_0. 21:1 ***The following set of operations will be performed: Project: f:/Aurora_Project/project.c (revision 1.2.pj). Apply CP updates the revision for main.1 to 1.c. In the variant project.1 CP 20:1 Before applying a change package (simple case) To get the bug fix for the variant project (f:/Aurora_Variant_1_0/project. c is at revision 1. You must explicitly specify all change packages containing subproject operations that you wish to apply or select Implicitly for the Subproject Propagation option.c (revision 1. the Apply CP command presents you with a backfill list that includes all of the required change packages. 142 . In the variant project. Aurora_Project main. The following examples illustrate how the backfill list works in the Apply CP command. In the Apply CP operation. the main project.c (revision 1. NOTE The backfill list is not used when applying subproject operations. Using the Backfill List to Include Required Previous Revisions In this example. The buildmaster wants to pick up the changes that address the second bug fix and apply these to a variant project. If you do not want to accept the entire backfill list.2) through change package (CP) 21.pj includes two bug fixes.1.c 1. Item 21 addresses the first bug fix and is associated with the file main. main.c 1.1. you must instead perform a Resync CP operation.1 CP 20:1 After applying a change package (simple case) Using the Apply CP Backfill List If the change packages you are applying are dependent on other change packages. The Resync CP command allows you to merge around unwanted revisions in your Sandbox. Aurora_Variant_1_0. f:/Aurora_Project/project. see “Using the Resync CP Command” on page 151.3) through CP 22:1.Chapter 5: Change Packages . Item 22 addresses the second bug fix and is associated with the file main. you must accept the entire backfill list or the operation fails.2 CP 21:1 Aurora_Variant_1 main. For more information on resynchronizing change packages.2 1. 2 is automatically added to the variant project because it was accepted as part of the backfill list (CP 21:1).pj[Aurora_Variant_1_0] Member main. the buildmaster uses the si applycp command to apply CP 22:1.c(1. since the backfill option is set to Entire Change Package(cp).c 1. you receive a notification listing the updates that have been processed.2) are required in order to apply this list of change packages. the backfill option is set to Entire Change Packages (-backfill=cp).2 CP 21:1 1. -------------------*** The following set of operations will be performed: Project: f:/Aurora_Project/project. and any updates that were not processed. 143 . 22:1 The following warnings have occurred: ------------------The change package(s) 21:1 -.3 Are you sure you wish to proceed? [yn](n): y If you choose to proceed. Revision 1.Using the Apply CP Command Aurora_Project main.1 1.main.. Apply CP updates the revision for main.c: update member revision to Revision 1.3 in the variant project.1 to 1.pj --devPath Aurora_Variant_1_0 22:1 The command runs as follows: Applying change packages. They will be automatically added to the list. By default. The buildmaster enters the command: si applycp -P f:/Aurora_Project/project.c from 1.c 1.1 CP 20:1 Before applying a change package that requires backfilling To pick up the bug fix for the variant project.3 CP 22:1 Aurora_Variant_1 main.. Chapter 5: Change Packages Aurora_Project main.c 1.3 CP 22:1 Aurora_Variant_1 main.c 1.3 1.2 CP 21:1 1.1 CP 20:1 After applying a change package that requires backfilling Using the Backfill List to Include a New File This example illustrates how Apply CP handles a more complex change package—one that contains code modifications that are dependent on a new file. In this example, main.c is revised to call a value defined in a new file, main.h. The developer working on the code has checked in all these changes and associated both files with CP 22:1. Development work then continues to include a further revision to main.c which is checked in at revision 1.3 and associated with CP 23:1. The main project therefore contains main.c at revision 1.3 and main.h at revision 1.1. Aurora_Project main.c 1.3 CP 23:1 Aurora_Variant_1 main.c 1.1 1.2 CP 22:1 1.1 CP 21:1 main.h 1.1 CP 22:1 Before applying a change package that contains an associated file The buildmaster now wants to incorporate the changes into the variant project. The buildmaster therefore uses the Apply CP command to apply CP 23:1 to Aurora_Variant_1_0. This updates main.c to revision 1.3 and adds main.h revision 1.1. 144 Using the Apply CP Command Aurora_Project main.c 1.3 CP 23:1 Aurora_Variant_1 main.c 1.3 main.h 1.1 1.2 CP 22:1 1.1 CP 21:1 main.h 1.1 CP 22:1 After applying a change package that contains an associated file Applying Back Revisions Only The default backfill option for Apply CP is to propagate all entries required by the specified change package, including all entries in any change packages in the backfill list. However, there is a special case where you might want to backfill by Back Revisions Only. This option only updates the target environment based on the directly associated revisions. It does not process any change packages that are associated with intermediate revisions. For example, if you chose the Back Revisions Only option in the previous example (“Using the Backfill List to Include a New File” on page 144) main.c would still be updated to 1.3, but but main.h would not be propagated since it is an entry in a backfill change package. This option is useful where you are propagating a file that collects information and therefore tends to be affected by all changes. In this case, you are only interested in the latest revision, not the underlying changes that occurred as a result of all the changes to related files. Using a Propagation Change Package with Apply CP You can use another change package to record all the member and subproject changes made by an Apply CP operation. A change package used for this purpose is called a propagation change package. NOTE If your administrator has set up change packages to be mandatory, you must specify a propagation change package. Using a propagation change package makes it easier to track what changes have been propagated and to propagate the same changes to multiple variants. Any change packages that the applied change package is dependent on which have already been applied to the project by a previous Apply CP operation do not appear in the backfill list. You receive a warning message about the change packages that have already been applied. 145 Chapter 5: Change Packages You do not create a propagation change package—you create a normal change package and propagation information is recorded in the change package when you specify it during an Apply CP operation. For the greatest level of control in isolating changes, it is recommended that you start with an empty propagation change package. When the propagation change package contains no previous entries, the only additions will be those that specifically relate to the changes in question. If reviews are mandatory, the changes made by an Apply CP operation are recorded as pending entries in the propagation change package. The change package must then be submitted, which starts the review process (see “Change Package Reviews Overview” on page 128). Once a propagation change package has been applied, you can see the list of change packages that it propagated in the Change Package view. For example, if you created propagation change package 10.6 to record changes made by an Apply CP operation, you would see the propagated change packages in the Change Packages that this Change Package propagated field on the Propagation tab of the Change Package view for 10.6. If you then applied propagation change package 10.6 to a different variant, and created propagation change package 10.8 to record the changes, you would see change package 10.8 listed in the Change Packages that this Change Package was propagated by field for 10.6. Resolving Conflicts The Apply CP command detects as potential conflicts: „ files that have been dropped or moved, but would be re-added by Apply CP due to a revision update on that file in the set of change packages processed „ file additions due to a revision update in the set of change packages processed, where an alternate member using the same backing archive already exists File additions due to an explicit request to add them from the set of change packages processed are not considered conflicts. If merging is required, the Apply CP operation fails. You need to use the Resync CP command to merge files and resolve merge conflicts, tracking the changes and resolved conflicts in a propagation change package. For more information, see “Using the Resync CP Command” on page 151. Apply CP Procedure This section describes the step-by-step procedures required to perform the Apply CP command in the GUI. 146 4 Enter a project name and proceed to step 6. For more information on checkpointing. 5 Click Next.Using the Apply CP Command CAUTION You cannot undo an Apply CP operation. To apply a change package in the GUI 1 Select Change Package > Apply. For more information. see “Using the Resync CP Command” on page 151. For more information on restoring a project. 2 If you have a project selected. For detailed information about entering project paths. You specify the subproject later in the procedure. even if no merges are required. you can then use the Apply CP command and work directly in the project. this step ensures that the results will build and work. NOTE If you are applying the change package(s) to a variant or build subproject. The second panel of the Specify the mainline or variant project wizard displays. „ Variant applies the CP(s) to a project based on a specific development path. or click Select to choose a project from the list. NOTE A helpful practice prior to using Apply CP. displaying the Specify the Project panel. proceed to step 10. only enter the path and name of the root project in this field. is to start with a Resync CP operation in a Sandbox. Click OK. The first panel of the Specify the mainline or variant project wizard displays. Therefore. see “Restoring a Project” on page 22. and then build and test the results. 6 Select the type of project you want to apply the CP(s) to by clicking a project type option. For detailed information about selecting projects. You can then use the Restore Project command to revert to the earlier version of the project. see “Checkpointing a Project” on page 18. Once you are certain of the results. you should checkpoint your project. see the MKS Integrity Client 2007 Getting Started Guide. 147 . see the MKS Integrity Client 2007 Getting Started Guide. before applying any change packages. Because the operation may be creating a combination of source code that has never existed before. If you do not have a project selected. The available types are: „ Normal applies the CP (s) to a project based upon the current state of the project. Click Finish and proceed to step 10. the Apply Change Packages wizard opens. 3 Click Select. Chapter 5: Change Packages From the Development Path Name list, select a development path name, for example, Aurora_Beta_Variant. NOTE The Variant option is unavailable if there are no available development paths. To create a development path, see “Creating a Development Path” on page 28. 7 If you are applying the CP(s) to a subproject, click Next to select a subproject. The third panel of the Specify the mainline or variant project displays. 8 Expand the project to select the specific subproject that you want to apply the CP(s) to. Click Finish. NOTE There are rules that control what project configuration you can jump to. For more information, see the MKS Integrity Client 2007 Getting Started Guide. If your selection breaks any of the rules, you cannot apply the change package(s). 9 Click Next. The Apply List panel of the Apply Change Packages wizard displays. 10 To add change packages to the Apply List, click Find. The Find Change Package dialog box displays. If you know the ID number of the change package(s) or item(s) you want to add, you can also enter that number in the Add to List field and then click Add. For multiple numbers, include a space between each change package ID. 11 Select filter criteria for the change package, or if the MKS Integrity integration is enabled, select a query. For more information, see “Finding Change Packages” on page 122. 148 Using the Apply CP Command 12 After you specify the filter criteria or query, click OK. The Select Change Package(s) dialog displays, populated with the filter or query results. NOTE When using the Apply CP command, you can only apply closed change packages. Because you cannot apply an open change package to a project, the option for Allow Open Change Packages is disabled by default. If you need to work with an open change package, you must use the Resync CP command. For more information on resynchronizing change packages, see “Using the Resync CP Command” on page 151. For detailed information on the Select Change Packages dialog, see the online help. 13 To review details of a change package before applying it, right click the change package and select View Change Package Details. The Change Package view displays for the selected change package. 14 To add the change packages selected, click OK. The added change packages are displayed in the Apply List. To remove a change package from the Apply List, highlight the change package (or press CTRL and click to highlight multiple members), and then click Remove. 149 Chapter 5: Change Packages 15 To select the command options you want MKS Source to use when carrying out the Apply CP operation, click Options. For detailed information on the Apply CP options, see the online help. 16 To record changes to members as a result of the Apply CP operation in a propagation change package, select a change package in the Change Package field or create a new one. Only open change packages are available for selection. For more information, see “Using a Propagation Change Package with Apply CP” on page 145. For information on the Change Package field, see “Specifying a Change Package for an Operation” on page 118. For information on creating a change package, see “Creating a Change Package” on page 117. 17 To apply the list of change packages to the project, click Finish. If additional change packages are required to apply the selected change package, the Confirm Project Backfill dialog box displays. NOTE Any change packages that the applied change package is dependent on which have already been applied to the project by a previous Apply CP operation do not appear in the backfill list. For operations involving a large number of change packages, it may take several seconds for these calculations to be performed and the backfill dialog box to display. You receive a warning message about the change packages that have already been applied. 18 To accept the backfill list and have the listed change packages also applied to the project, click Yes. You must accept the backfill list as presented or the Apply CP operation cannot be completed. If you do not want to accept the entire list, you must use the Resync CP command instead. For more information on resynchronizing change packages, see “Using the Resync CP Command” on page 151. The Confirm Change Package Application dialog box displays indicating the operations to be performed. 19 To complete the operation(s) and apply the selected change package(s), click Yes. The Change Package Processing Complete dialog displays, listing the updates that have been processed, and any updates that were not processed. Click Save to save the contents of the dialog in an external text file. NOTE To see any change packages that have been applied between two revisions of a project, use the View Project Differences command and, under Preferences, select the option for Show Applied Change Packages. For more information on viewing project modifications, see “Viewing Project Differences” on page 25. 150 resolving conflicts. or a feature added. The example also illustrates how Resync By CP can be used in a developer’s Sandbox. if required. Resync CP provides additional options beyond those available for Apply CP. The development of a new release typically involves working on hundreds of files that span many MKS Source projects. and continuing the resync operation when errors are encountered. For more information. run the Resync CP command to perform any required merge operations. MKS Source instructs you to manually re-add the member. Whenever a fix is made. it may require the manipulation of a single file. The topics covered are: „ “Using Resync CP in Your Development Environment” on page 151 „ “Using the Resync CP Backfill List” on page 152 „ “Applying Changes From a Variant” on page 155 „ “Applying Change Packages From Two Variants” on page 157 „ “Using a Propagation Change Package with Resync CP” on page 157 „ “Resolving Binary Conflicts” on page 160 „ “Resync CP Procedure” on page 160 Using Resync CP in Your Development Environment This section provides an example to show how Resync CP can be used in your environment. including options for allowing open change packages. or many different files across multiple projects. While working in your Sandbox.Using the Resync CP Command Using the Resync CP Command You use the Resync CP command to preview the changes listed in change packages in the context of a Sandbox before propagating them to the project. see “Using the Resync By CP Command” on page 164. A fix or new feature may also include new dependencies within the source code. NOTE If you attempt to perform a Resync CP command on a member that was previously dropped from a project. which only processes the change packages associated with the member you are resynchronizing. The Resync CP command searches all files related to a selected change package. The following sections describe how the Resync CP command works and how you can use the Resync CP command in your development environment. Resync CP is most useful for incorporating new software features or bug fixes during the software development process. merging. you can also use the Resync By CP command. 151 . and all the change packages that may be associated with the related files. MKS Source allows you to run the Apply CP command first and then. The following examples illustrate how the backfill list works in the Resync CP command. Resync CP allows developers to specify a change package and have all changes associated with that change package resynchronized into their Sandboxes.c includes a bug fix for item 24 and is associated with the file tool. the Resync CP command presents you with a backfill list that includes all of the required change packages.c (revision 1. their builds may break because of new dependencies in the code.pj 24:1 Applying change packages. the developer uses the si resynccp command to apply CP 24:1 as follows: si resynccp -S c:/Aurora_Project/project.Chapter 5: Change Packages If developers resynchronize only a single file into their Sandboxes. Resync CP also merges new information into a file. NOTE The backfill list is not used when resyncing subproject operations. The commands save development time because they: „ automatically search for the required files „ determine what other change packages the selection is dependant on (this is known as the backfill list) and also resynchronize those change packages into the Sandbox If the developer is working on a file conflict. The merge operation ensures that the Sandbox is up-to-date and that no changes are lost.c is at revision 1.2. Such broken builds cause delays and prevent the team from completing their work on time. The project member tool. The developer wants to pick up the changes that address the bug fix and apply these in a Sandbox..pj). Using the Resync CP Backfill List If the change packages you are applying are dependent on other change packages. Using the Backfill List to Include Required Previous Revisions The following example illustrates a simplified application of the Resync CP command in the main trunk of development for the Aurora project (Aurora_Project. To apply the bug fix in the Sandbox. it is possible to avoid this lost time by using the Resync CP command. You must explicitly specify all change packages containing subproject operations that you wish to resync or select Implicitly for the Subproject Propagation option. However.. The Resync CP command also allows a developer to remove a bug fix or feature that is incomplete or not working.7) through change package (CP) 24:1. tool. 24:1 The following warnings have occurred: 152 . In the developer’s Sandbox. c. The main project. tool.c(1. the Resync CP command updates the working file revision for tool.c (revision 1.6) through CP 23:1. The changes made from revisions 1.5) tool.pj Member tool. This is done by checking out tool.c at 1. Item 23 addresses that bug fix and is associated with the file tool.pj Sandbox: c:\Aurora_Sandbox\project.c(1.3 through 1.2 1.7 Are you sure you wish to proceed? [yn]<n>: y In this case.3 CP 20:1 1.2.3) tool.5 CP 22:1 1.7 in the Sandbox. Aurora_Project tool.6 are already included in this checked out file.c is at revision 1.Using the Resync CP Command ------------------The change package(s) 20:1 21:1 22:1 23:1 ----- tool. Using the Backfill List to Merge Around Previous Revisions You can merge around some or all of the required change packages that are presented to you in the backfill list. The developer wants to pick up the changes that address the bug fix and apply these in a Sandbox.1 CP 18:1 Picking up a specific change using the Resync CP command 153 .2 to 1. Aurora_Project. They will be automatically added to the list. In the developer’s Sandbox. -------------------*** The following set of operations will be performed: Project: f:/Aurora_Project/project.c from 1.4 CP 21:1 1.pj. now includes an additional bug fix for project member.c(1. tool.2 CP 19:1 1.c 1.7 into the Sandbox. since the backfill option is set to Entire Change Package(cp).c(1.6) are required in order to apply this list of change packages.4) tool.c: resynchronize to Revision 1.6 CP 23:1 Aurora_Sandbox tool.c 1. .tool. s to skip all these revisions and merge around them (default) c to cancel the command or a space separated list of change package identifiers from the list given to be *removed* from the list [y|s|c|#.tool. Each change package is given..c(1.tool. you select the change packages you want to include in the resync operation. in the GUI. -------------------*** The following set of operations will be performed: Project: f:/Aurora_Project/project. The command continues as follows: The following warnings have occurred: ------------------The following members require a merge to be performed: tool.4) 22:1 -. The developer decides to merge around all the intermediate change packages and selects s (skip).c(1.5) Reply with: y to pick up all these change packages...Chapter 5: Change Packages To pick up the bug fix.c(1.]? NOTE When selecting the change packages from the backfill list in the command line interface.pj Sandbox: c:\Aurora_Sandbox\project. The developer wants to decide on the specific change packages to include in the operation. the developer uses the si resynccp command in a Sandbox.c You have not specified a change package.pj --backfill=ask 23:1 Applying change packages. so he or she sets the backfill option to Ask to Specify (--backfill=ask). The command runs as follows: si resynccp -S c:/Aurora_Sandbox/project. so merged members will not be locked.3) 21:1 -. along with the revisions which require them: 20:1 -. 23:1 *** The following list of change packages are used by revisions before the revision that you require. you enter the numbers for the change packages you want to exclude from the resync operation.pj 154 . along with their associated changes. The file utility.1. test it. a patch created in a variant project is needed in the master project.5 and Revision 1. the file utility.1 Moving a patch from a variant project to a master project Moving the patch from the variant to the master requires a three-way merge operation using Resync CP.2 into the working file.2. Because the master project contains further new development.c from 1.Using the Resync CP Command Member tool. Are you sure you wish to proceed? [yn](n): y If you choose to proceed. and merging in the differences between Revision 1.3 and 1.1.4 1.4 to 1. Applying Changes From a Variant Working on a variant allows you to create a specific change. Resync CP updates the working file revision for main. 1.c 1.6. excluding revisions 1. Within reason.2 1.1.2 1. the merged member is not locked.2 with the differences between Revision 1. The intermediate revisions are not added to the Sandbox because the skip option was selected.2.c version 1.2 and then merging into the working file the differences between 1.4.2.2 1.c by checking out revision 1.1 and the code is revised. you receive a notification listing the updates that have been processed.1. Because the resync operation does not use a propagation change package to record the changes.c—has a head revision of 1.2 through 1. 1.2 would cause the new development work in revisions 1.2 and 1.1. 155 . and any updates that were not processed.3. The file— utility.2.2.6 and Revision 1. In the variant project. For example.2 is checked out to revision 1.4 in the project.c: merge around differences: picking up revisions 1. Variant Project Master Project utility.5.2 and associated with CP 5:1.6.4 to be lost.3 1.c 1. this can be done even when the main trunk includes further new development.1 utility.c is then checked in at 1. and then bring that change back into the main trunk of development.3. by checking out Revision 1. updating the head revision of utility. 2 1.4 Variant Project Master Sandbox utility.2 1.3 1. which have already been merged into the variant.2 and 1.2.c 1. In this case.1 utility.4. This option essentially allows the changes on the branch to be merged into the head revision file.4 1. This option can be used to accommodate the situation where you need to propagate changes from a variant that has temporary branches which were created in order to bypass locks.2 1.1.1 The default Resync CP operation In this situation.2 1. you must use the Merge On Branch option (--mergeOnBranch).2.c 1.2 and then merge the result into revision 1.c 1.1. Once the Resync CP operation completes. Master Project Master Sandbox Variant Project resync utility.1 1.1.1.2 1.1.1 Using Resync CP with the Merge On Branch option Cross-Branch Changes The Ignore Cross-Branch Entries option allows you to use the most recent revision when there are revisions of the same member on two different branches.Chapter 5: Change Packages Master Project utility.3 1.2.4 1.c 1.2. Selecting Merge On Branch allows MKS Source to perform a differencing between revision 1. the file must then be checked in to finalize the changes in the project. 156 .1.2 utility.c 1.2.4 merge utility.2.c 1. you do not want to include the changes on the branches.2 differences 1. Using the Resync CP Command Applying Change Packages From Two Variants Another situation that warrants special consideration is the case where two change packages must be applied from different variants. Unless the correct procedure is used, Resync CP will fail because too many merges are required. For example, the master project contains the file patch.c at revision 1.4. The variant project used by the buildmaster contains a fix (patch.c, revision 1.2.1.2, CP 9:1) that is being rolled out for a product patch. The variant project for the Maintenance Development team also includes a bug fix for patch.c at revision 1.3.1.2, and this revision is associated with CP 10:1. Both fixes are required for the master project. Variant Project 1 Master Project Variant Project 2 CP 10:1 CP 9:1 1.3.1.2 patch.c 1.3 1.3.1.1 patch.c 1.2.1.2 1.4 1.3 1.2 1.1 1.2 patch.c 1.2.1.1 Performing a Resync CP operation on two change packages from different variants There are only two ways to successfully complete the preceding scenario without restrictions: address it manually, or perform Resync CP and Apply CP twice (once for each change package), checking in the merged changes at the head revision after each operation. Using a Propagation Change Package with Resync CP You can use another change package to record all the member changes made by a Resync CP operation. A change package used for this purpose is called a propagation change package. NOTE Even if your administrator has set up change packages to be mandatory, you do not need to specify a propagation change package for a Resync CP operation. You do not create a propagation change package—you create a normal change package and propagation information is recorded in the change package when you specify it during a Resync CP operation. For the greatest level of control in isolating changes, it is recommended that you start with an empty propagation change package. When the propagation change package contains no previous entries, the only additions will be those that specifically relate to the changes in question. The propagation change package is populated with all the member and subproject changes performed and the change packages propagated as a result of the resynchronization. You can discard undesirable member changes and add resolved merge conflicts to the propagation 157 Chapter 5: Change Packages change package. You can also add entries to the propagation change package as required using MKS Source commands, for example, Check Out, Move, Rename, Update Member Revision, or Create Subproject. Once all changes are completed, the propagation change package can then be submitted to update the project. NOTE You can also submit the propagation change package without updating member revisions; then the Buildmaster applies the propagation change package at the time the software is built. Entries in the propagation change package supersede corresponding entries in the resynchronized change packages. Thus, if you perform a merge from a branch and check the result into a propagation change package, the resulting revision supersedes any entries in the listed change packages that might be on branches. Advantages of Using a Propagation Change Package Using a propagation change package ensures that other developers can apply the same set of change packages without duplicating the effort of running the Resync CP command and resolving any errors or merge conflicts. Propagation change packages are also useful for assisting buildmasters to complete their work. When an Apply CP operation has failed, developers can use the Resync CP command on the same change package, identify the dependencies and required merges, and include all the necessary changes in a single propagation package. Propagation change packages allow you to incrementally propagate changes between development paths by repeatedly using the Resync CP command to collect project changes, rather than performing one large Resync CP operation that can take a long time. If you use a propagation change package, any change packages that the applied change package is dependent on that have already been applied to the project through a previous Resync CP operation do not appear in the backfill list. You receive a warning message about the change packages that have already been applied. It is important to note that while Resync CP can be used to apply a propagation change package, the results may not always be acceptable. For example, if your bug fix is in an existing project member, there would already be an archive for that member in the project. As a result, Resync CP would add the modified member on a branch. This additional branching might not be acceptable in your project. 158 Using the Resync CP Command Example of Using a Propagation Change Package The abcBusiness company has two development teams: „ a Product Team that develops new features and software for the main release cycle „ a Maintenance Development Team that maintains the released software and addresses bugs that are identified by customers The Product Team (PT) implements new features and designs on the main development path. The Maintenance Development Team (MDT) works on a variant development path for Release 2.0 and fixes any problems in the newly-released product. The main goal of this team is to produce bug fixes for Release 2.0a. The work process for the MDT is: „ A bug is reported by a customer. „ A change package for the bug is created, in this case it has the container ID 1204. The MKS Integrity integration is enabled, so an item is created and then associated with a created change package. „ An MDT developer is assigned to fix the problem. „ The MDT developer creates a change package. „ The MDT developer makes the necessary changes and tests the code. „ The MDT developer checks the modified files back into the variant project, making sure to associate the files with change package 1204:1. In this case, all the work of the MDT developer is now checked into the variant development path and will be part of release 2.0a. However, the MDT bug fix work needs to be transferred back to the main development path so that it can be incorporated into the next product release. A PT developer needs to pick up the changes that address the bug fix and apply them in a Sandbox. The Resync CP command is the best option for applying the new fix. The PT developer creates a second change package, 1204:2 for the same item. The second change package includes the summary “Applied fix to main development path”. The PT developer starts the Resync CP command, selects the main development Sandbox, and the first change package—1204:1—in this item. The second change package—1204:2—is used as a propagation change package. Once all merge conflicts have been resolved, the developer submits the propagation change package and MKS Source applies the changes from the referenced change packages. The bug fix is now addressed in both the main and variant development paths, ensuring that the problem is fixed in the Release 2.0a and the next major product release. 159 No comparison of binary file content is provided. indicate the desired revision by using a Deferred Update Revision operation that specifies the desired revision. MKS Source replaces the Sandbox working file for that member with the destination revision and marks it as a conflict.1. effectively using the original revision instead of the destination revision. „ Perform Manual Binary Merge Using a third-party tool outside of MKS Source. When the change package is submitted (or member checked in) the member revision is 1. „ Use Original Revision Discard the Deferred Check In entry corresponding to the conflict.1 are both update revision entries of a binary member in a change package that require a merge with member revision 1. Then submit the changes in the propagation change package (or manually submit the deferred checkin of the destination revision). Before performing the Resync CP command: „ Make sure all working files are in synch with the server „ Close all change packages you want to use for merging into the target environment To resynchronize a change package in the GUI 1 Select Change Package > Resynchronize.2 displays as a Deferred Check In entry in the propagation change package. For example. then the contents of revision 1. You can resolve the conflict in one of the following ways: „ Use Target Revision Submit the changes in the propagation change package. Revision 1. 2 Select the Sandbox you want the Resync CP command to operate on.2.Chapter 5: Change Packages Resolving Binary Conflicts When a conflict between two revisions of a binary file is encountered.1 are used for the Sandbox working file of member revision 1.2. perform a binary merge on the affected member.3.1. The destination revision displays in the propagation change package as a Deferred Check In entry (representing a deferred checkin of the working file). To resolve conflict. Resync CP Procedure This section describes the step-by-step procedure required to perform the Resync CP command in the GUI.1 and 1. 160 .1. The Select a Sandbox dialog box displays. thereby checking in the destination revision for the binary member (or manually submit the deferred checkin of the destination revision).1. if revision 1. The Resynchronize Change Packages wizard opens. select a query. For more information. displaying the Apply List panel. populated with the filter or query results. For multiple numbers. For detailed information on the Select Change Package(s) dialog box. 4 To add change packages to the Apply List.Using the Resync CP Command 3 Click OK. The Find Change Package Panel displays. 161 . see the online help. However. The option for Allow Open Change Packages is enabled by default. see “Finding Change Packages” on page 122. The Select Change Package(s) dialog box displays. include a space between each change package ID. If you know the ID number of the change package(s) or item(s) you want to add. you cannot resynchronize open change packages if you are recording changes in a propagation change package. or if MKS Integrity is enabled. 5 Select filter criteria for the change package. NOTE Open change packages are allowed when resynchronizing change packages. click Find. you can also enter that number in the Apply to List field and then click Add. 8 To record changes to members as a result of the Resync CP operation in a propagation change package. The Change Package view displays for the selected change package. 9 To select the command options you want MKS Source to use when carrying out the Resync CP operation click Options.Chapter 5: Change Packages 6 To review details of a change package before including it in the resync operation. 162 . click OK. For more information. Only open change packages can be selected. see the online help. For information on the Change Package field. right click the change package and select View Change Package Details. For information on creating a change package. see “Specifying a Change Package for an Operation” on page 118. 7 To add the change packages to the Apply List and return to the Apply List panel. select a change package in the Change Package field or create a new one. see “Creating a Change Package” on page 117. highlight the change package(s) and click Remove. The list of change packages displays in the Apply List panel. To remove a change package from the Apply List. For detailed information on the Resync CP options. see “Using a Propagation Change Package with Resync CP” on page 157. the Resynchronize command preferences also determines the type of merge used and the actions MKS Source takes in the event of a merge conflict. and any warnings. NOTE To see any change packages that have been applied between two revisions of a project.Using the Resync CP Command 10 To run the Resync CP command with the selected options. click Save. click Finish. 14 MKS Source completes the Resync CP operation and the Change Package Processing Complete dialog displays. The Change Package view displays for the selected change package. You receive a warning message about the change packages that have already been applied. 13 To complete the Resync CP operation. To save the contents of the dialog to an external text file. you may be prompted to confirm overwriting your working files for the members being updated. For more information on viewing project modifications. 11 To review details of a change package before including it in the resync operation. The Confirm Change Package Application dialog box displays. 163 . If you selected the Backfill option Ask to Specify. under Preferences. 12 Select the change package(s) you want to include in the resync operation and click OK. see “Viewing Project Differences” on page 25. right click the change package and select View Change Package Details. NOTE If you specified a propagation CP. click Yes. Depending on the preferences you have set for the Resynchronize command (see the MKS Integrity Client 2007 Getting Started Guide). the Select Change Package(s) for Backfill dialog box displays. listing the updates that have been processed. use the View Project Differences command and. If a merge is required. and any updates that were not processed. providing information on the operations to be performed. select the option for Show Applied Change Packages. any change packages that the applied change package is dependent on which have already been applied to the project by a previous Resync CP operation do not appear in the backfill list. see “Using the Resync CP Command” on page 151. you would have to manually search for all the changes associated with the change package on the member you are resynchronizing. Depending on the preferences you have set for the Resynchronize command (see the MKS Integrity Client 2007 Getting Started Guide). If you want to retain your changes in the working file. If you want to compare your working file with the revision you are resynchronizing it with. click No (No to All for multiple members). While the Resync CP command searches all files related to a selected change package. if you specify ask. the Confirm Overwrite Working File dialog box displays. the Resync By CP command only processes the change packages associated with the member you are resynchronizing. The Resync By CP command automates this process by searching the change package specified on the member revision you are resynchronizing and then bringing the changes from the project to your Sandbox. This includes the way the backfill list operates. even if these changes are contained in other files. However. click Yes (for multiple members. For more information on options for Resync CP. When Should I Use the Resync By CP Command? Developers should use Resync By CP when they want to ensure that they have all dependent changes associated with a member revision. click Yes to All). and select Member > Resynchronize By Change Package. How Does the Resync By CP Command Work? In a Resync By CP operation. if the files you are resynchronizing have changes that are linked to other files. when you Resync By CP. The developer finds that other revisions have been checked in since the member was resynchronized in the 164 . select one or more members that contain member deltas. To resynchronize all related files. you explicitly state the list of change packages). To merge and resynchronize the member. When you want to resynchronize files in your Sandbox. the standard resync operation would not include those related files. from a Sandbox view. and all the change packages that may be associated with the related files. click Differences. The functioning of Resync By CP is affected by the settings you choose for the Resync CP command under File > Edit Preferences. you usually do so by choosing individual files and then using the Resynchronize (si resync) command. To Resync By CP. a developer needs to check out (locked) a file and modify it. the change package list is computed based on the member you are resynchronizing (whereas in a Resync CP operation. For example. a backfill list displays. For example.Chapter 5: Change Packages Using the Resync By CP Command The Resync By CP command is primarily a tool for developers. c at revision 1.h.c 1.1.c. and that change requires an additional file. Example of Resync By CP Consider a case where a developer makes a change to project member main.h file „ checks in the changes to main.c and associates these changes with CP 22:1 „ also against CP 22:1. Because the Sandbox is quite large and contains many unrelated changes.c would not capture main. adds main.1 CP 21:1 Developer 2 Sandbox main.1 „ makes an update to main.c that requires the main.1 CP 21:1 1. Sandboxes pointing to the project include main.c 1. the developer does not want to perform a standard resynchronization.Using the Resync By CP Command Sandbox. The Resync By CP operation always sets the backfill list to Entire Change Packages (cp). revision 1. NOTE The functioning of Resync By CP is affected by the settings you choose for the Resync CP command under File > Edit Preferences.h as a member of the project 165 .1 CP 21:1 Before using Resync By CP in a development environment Developer 1 then performs the following tasks: „ checks out and locks main. main. A standard resync operation for main.h. The Resync By CP option can be used in this situation. Project main.c Developer 1 Sandbox main. In the initial stage.c. see “Merging Modified Working Files” on page 100.c 1. MKS Source asks you to confirm that you want to merge your modifications into the working file.1 CP 22:1 main.h Developer 1 Sandbox 1.2 CP 22:1 main.h has also been added to the project as part of CP22:1. For more information on merging on a resync.h 1.c main.1 CP 21:1 CP 22:1 After using Resync By CP in your Sandbox to capture all changes (including new files) contained in the associated change package When Developer 2 uses the Resync By CP command to resync main.c 1.c. IMPORTANT If the working file of the member you are resyncing is modified.c is at 1.Chapter 5: Change Packages Project main.h 1.1 CP 22:1 Developer 2 Sandbox main.2 and that main.1 CP 21:1 1.2 CP 22:1 main. his Sandbox is updated to show that main.1 CP 21:1 1. 166 . branch A propagation change package is a change package that. and creates and manages user accounts. change package review change package reviewer A change package reviewer is a user specified by your administrator to review change packages containing members associated with specific projects. The reviewer may be individually specified or a member of a specified reviewer group. defines and customizes projects and policies. A change package watcher is a user specified by your administrator who is notified when a reviewed change package is closed after being successfully committed to the repository. also records the change packages(s) that it propagated to a project. you can assign a description to it. Change package entries are added when you specify a change package while performing member operations. change package (propagation) A change package review is a review of changes by specified reviewers before the changes are committed to the server repository.APPENDIX MKS Source Terms A Definitions of Common MKS Source Terms The administrator installs MKS Source. administrator archive description The archive description contains text that describes the purpose of an archive. In the case of a reviewer group. archive A branch is a revision path that diverges from the main line of development (or trunk) in a member or project history. Each time you create an archive. allowing users to access the program. any member of that group casts an accept or reject vote on behalf of the entire group. MKS Source can reconstruct any previous version of the member. change package 167 . Change package watchers may be individually specified or a member of a specified watcher group. in addition to recording a group of changes. change package watcher A change package is a group of changes made by a single user that can be considered a logical unit of work. An archive is a file containing the history of a member (a record of all the changes made to it since it was put under revision control). Only the creator of a change package can add entries to that change package. From the information contained in the history. a new branch is created. A keyword is a placeholder that can be inserted into text-based working files. $State$) used to represent textual information in a working file. Dropped projects can still be accessed as read-only from the Change Package and Locks views until the project is purged or reclaimed by your administrator. lock A deferred member is a member that is associated with any deferred operation (add. When you checkpoint a project. move. replaced with their literal values) when a revision is checked out. $Author$. freezing Freezing a member places it in a state that prevents changes from being made to the member information that resides in the project file. rename. Checkpointing a project creates a new revision of the project and adds it to the project history. add from archive. When a change is checked in. you save all the information needed to recreate the project completely as it existed when you checkpointed it. checkin. it requires the revision being updated to be locked. in order to prevent more than one user from simultaneously checking in changes to the same revision. importing (a project or member) Importing a project or member registers it with the MKS Integrity Server. development path drop (a project) To drop a project means that the project is no longer registered with the MKS Integrity Server. keyword A lock is a feature of MKS Source that controls how changes are made to revisions.Appendix : MKS Source Terms Checking in a member creates a new revision of a member and adds it to the member history. $Date$. Keywords can be expanded (that is. keyword expansion Keyword expansion is the process of automatically adding or updating information to a keyword reference when a revision is checked out or viewed. member (deferred) 168 . For example. but the deferred operation is not shown in the project until the deferred operation is submitted. update revision). The saved information includes the project structure and the list of members with their revision numbers. Changes made through the new development path are kept separate from the main development trunk unless you choose to merge them later. import. This placeholder is a special variable (for example. you cannot update the member revision or change the attributes of a frozen member. MKS Source commands can be performed upon it. check in check out Checking out a member extracts the contents of a revision in a member history and copies it to the working file. When a member is checked in to a revision other than the head revision or a branch tip revision. A deferred member displays in the Sandbox. drop. Freezing is the opposite of thawing a member. Once a project or member is imported. checkpointing A development path is an identifier given to a new branch of software development. You can check out any revision by specifying either its revision number or label. project (MKS Source) Promotion is the process of managing development objects as they move through a structured development cycle.2 as the member revision makes it the default revision in all Sandboxes.member (former) A former member is one that is dropped from the project. member revision member The files under version control in a project are known as members. MKS Source can also delete the member’s working file and close any associated change package.c 1. if demoapp. taken together.8 has been added to the member’s history. Pending operations are operations whose proposed changes reside on the server. pending operations An MKS Source project is any group of files under version control that. the project list might not reflect the most current revision of each member’s history. you can see the content and information for all of the changes to the member in an annotated list. Use it when you want to find out which revision introduced a particular change. The member revision is the default revision that users work with in all other Sandboxes. reverting Reverting a member discards any changes made to a member’s working file since it was checked out. For example. but a newer revision 2. The pending member or subproject is denoted by a pending icon in the Name column of the Sandbox and Project views. If the option is not enabled. pending member / subproject A pending member / subproject. but still has a working file in the Sandbox. forms a single body of work. if the current project member is revision 2. you resynchronize the members. if no default branch is defined. Rather than searching the content of revisions in the history one revision at a time. is a member or subproject that is associated with a pending operation that adds it to the project. MKS Source retains the member history for former members as part of the project. revision (Head) 169 . you can update the member to the new revision. setting 1. For example.7 of an archived file. member revision (updating) You can use the Update Member Revision option when you are checking in a member to ensure the most recent revision of each member is added to the list of members in the project.1 is the member revision. Depending on the options you select when dropping the member. but have not been committed to the repository. promoting resynchronizing To update out of sync working files to the most current member revisions. revision (annotated) MKS Source provides an annotated revision view for revisions. The head revision is the tip revision on the default branch or the trunk. and then unlocks it. or any other sort of information that would be useful in identifying that particular revision. and continues to function this way throughout its use. you are given the option of assigning it a revision label. When reviews are not mandatory. No further development can be carried out in a build Sandbox.1. Shared Sandboxes provide developers and buildmasters with a window into a single shared work location.3. on the content of the revision. 1. Sandbox (shared) A Sandbox with no working files. if a branch is started from revision 1. A sparse Sandbox does not retain working files when a member is checked in. once created. For example. you choose the development path to use.2. When a member is checked in. MKS Source provides a way to create a common build location using shared Sandboxes.1. Labels can be based on the product release the revision was included in. the revision remains pending until the change package is accepted and is committed to the repository.1.3.Appendix : MKS Source Terms Pending revisions are created by MKS Source when a change package is submitted. you can see the current state of the project along that development path and the changes made by other developers using it. Each revision is assigned a unique revision number used to identify a revision in a history. A new revision is produced in the history each time a working file is checked in. 170 .3.1. 1.3. 1.4. its revisions would be numbered 1. …). When you create a variant Sandbox. This can be of great value to you or other team members if it ever becomes necessary to revise or update the member. It allows you to provide a record of the changes you made and why you made them. A revision description is text that becomes a permanent part of the archive’s metadata. Revisions on the mainline are numbered as two-part decimals (such as. you only see pending revisions if a deferred operation that would have created a new revision fails to commit to the repository. Revisions in a history can be displayed and selected either by revision number or revision label. Sandbox directories and sub Sandboxes remain in the Sandbox.3. 1. revision Sandbox (build) A build Sandbox is a Sandbox associated with a particular project checkpoint and has no development path (since it is static and not meant for further development). revision description revision label A revision label is a textual name that describes and refers to a revision.1. Revisions on a branch are numbered by adding two-part decimals to the number of the revision they branch from.2. on changes made to the revision. 1. and so on. Sandbox (sparse) Sandbox (variant) A variant Sandbox is based on a specific development path of a project. In the variant Sandbox. If change package reviews are mandatory.3. 1. revision (pending) revision (tip) The tip revision is the most recent revision on a branch in a history. revision number A revision is a version of a file and is contained in a history. however. Sandboxes allow you to work locally in your own workspace. For example. type (project member) 171 . then the revision number of the checkpoint created by the snapshot is 1. As work progresses it might be changed to “Review” and eventually “Complete”.1. The revision number of a checkpoint created by a snapshot includes the revision number of the last checkpoint. For example. state (revision) A super reviewer is a user with permission to vote on change packages.1. Voting as a super reviewer overrides all other votes. A state is free-form text used to classify the condition of a revision in a member history. Thawing a member is the opposite of freezing a member. If no state is assigned to a revision. Although it looks and acts like the project it mirrors. a Sandbox is actually a collection of pointers to its real-life counterparts in the master project. a default value of “Exp” (for Experimental) is used. a document could initially have a state of “Draft”. super reviewer Thawing a member removes the restriction on changing member information in the project and makes previously checked in member information available to the project. Sandbox snapshot A snapshot captures the current state of a Sandbox. thawing Project members may be one of following types of files: archived (files under MKS Source revision control) or subproject (another MKS Source project).1. The Sandbox snapshot creates a project checkpoint that you can create a build Sandbox or development path from.A Sandbox is a private workspace that resides on the client machine and mirrors the content of a project on the server. but is not required to be a listed reviewer for the change package. without interfering with the work of others. For example. casting an accept vote as a super reviewer is sufficient for accepting the change package. if the last checkpoint of the project has a revision number of 1. where each element in the Sandbox can be identified with a pre-existing entity in the repository on the MKS Integrity Server.1. Appendix : MKS Source Terms 172 . Index A C administrator. using with resync cp 157 resynchronize example 151 overview 136 procedure 160 using 151 using the backfill list 152 resynchronize by example 165 how it works 164 using 164 review 134 accepting change packages 135 benefits of 130 entry categories 133 B backfill list using with Apply CP 142 using with Resync CP 152 before using MKS Source 3 blocks merging individual 107 nonconflicting 106 using Visual Difference 104 branch member. overview of 98 merge branched member 99 branched members 99 by dragging 100 on check out 100 on resync 100 renaming member on branch 70 starting during check in 68 build sandbox creating 40 using 39 173 . described 1 annotated revision 92 apply change package 146 concepts 139 example 138 overview 136 procedure 146 using 138 using a propagation CP 145 using the backfill list 142 with no dependencies 141 archive described 86 assumptions 3 Author keyword 77 change package adding entries 117 advantages of using 116 apply concepts 139 example 138 overview 136 procedure 146 resolving conflicts 146 using 138 using a propagation CP 145 using the backfill list 142 with no dependencies 141 closing 126 creating 117 described 114 discarding 127 editing 125 entries differences 121 discarding 120 moving 119 finding 122 integrating with MKS Integrity using 115 overview 114 pending operations in 134 propagation. Index overview 128 rejecting change packages 136 reopening change packages 128 steps 129 workflow 130 specifying for an operation 118 submitting 125 using to control development 116 viewing details and entries 124 check in member 66 check out automatic merging on check out 100 member 63 checkpoint project 18 command. described 8 E encrypted archives 7 F filter member history 89 project history 22 H Header keyword 77 I Id keyword 77 ident command 77 import member 55 project 7 sandbox 40 shared 43 K keyword Author 77 CompanyInfo 77 Date 77 Header 77 Id 77 locating 77 Locker 77 Log 78 Name 78 ProjectLabel 78 ProjectName 78 ProjectRevision 78 ProjectSetting 78 RCSfile 78 Revision 78 SandboxSetting 78 Setting 78 Source 78 State 78 table of 77 using 75 . ident 77 CompanyInfo keyword 77 compare member differences 95 two text files 97 working file to member revision 95 D Date keyword 77 deferred member. described 82 deferred operation 82 canceling 84 resynchronizing 84 submitting 83 demote member 112 project 36 development path creating 28 described 28 removing 30 difference change package entries 121 comparing current to last checkpoint 26 comparing current to specified checkpoint 26 comparing for members 95 comparing two specified checkpoints 26 two text files 97 Visual Difference editing merge results 104 merging 102 reverting merge results 105 saving merge results 105 working with 102 working file and member revision 95 174 drop project. Index L label adding to member 78 to project 24 deleting from member 79 from project 25 lock 44 described 72 downgrading 73 member 72 removing 73 viewing 74 Locker keyword 77 Log keyword 78 M member adding from archive 53 adding label to 78 adding to project 51 branch. described 60 freezing 80 history. project 26 MKS Integrity integration with MKS Source 115 using change packages with 115 MKS Visual Difference See Visual Difference N Name keyword 78 non-member. merging 99 branch. overview of 98 checking in 66 checking out 63 deleting label 79 demoting 112 dropping 60 editing 65 former. updating 90 rule. displaying 50 P pending operations 134 revision reviewing 94 working with 94 project 175 . setting 91 selecting 62 thawing 81 unlocking 73 updating 71 view sandbox that locked member 44 viewing content of 65 viewing locked 74 merge automatic merging on check out 100 automatic merging on resync 100 blocks using Visual Difference 104 by dragging 100 in Visual Difference 102 member branched 99 overview of 98 resolving 109 results editing in Visual Merge 107 reverting in Visual Merge 108 saving in Visual Merge 108 revision in Visual Difference 102 in Visual Merge 105 suspending in Visual Merge 108 two member revisions 101 metrics. filtering 89 importing 55 locating where used 30 locking 72 making working file writable 73 managing 50 merging overview of 98 two revisions 101 moving from project 57 via dragging 60 operations deferring 82 pending 134 performing 62 submitting deferred 83 promoting 111 removing from project 60 renaming 69 resynchronizing 71 reverting 70 revision. assigning 67 pending reviewing 94 . described 32 resolving conflicts 146 resynchronize automatic merging on resync 100 by change package example 165 how it works 164 using 164 change package applying change packages from two variants 157 applying changes from a variant 155 binary conflicts 160 example 151 overview 136 procedure 160 using 151 using the backfill list 152 member 71 members with deferred operations 84 revert member 70 merge results in Visual Difference 105 merge results in Visual Merge 108 review change package benefits of 130 entry categories 133 overview of 128 steps 129 workflow 130 pending revision 94 revision annotated 92 assigning descriptions 67 described 85 merging in Visual Difference 102 in Visual Merge 105 number.Index adding 8 adding member 51 adding members from archive 53 basic operations 6 branching 27 checkpointing 18 configuration for sandbox 45 creating 6 demoting 36 difference comparing current to last checkpoint 26 comparing current to specified checkpoint 26 comparing two specified checkpoints 26 dropping 8 history 17 filtering 22 view 19 importing 7 importing members into 55 label adding 24 deleting 25 locating where used 30 managing members 50 metric 26 MKS Source. described 5 opening 9 promoting 36 removing members 60 restoring 22 viewing differences 25 ProjectLabel keyword 78 ProjectName keyword 78 ProjectRevision keyword 78 ProjectSetting keyword 78 promote member 111 project 36 propagation change package using with apply cp 145 using with resync cp 157 R RCSfile keyword 78 rename member 69 report generating 32 176 type by author 33 by author (summary) 33 member revision to label 34 member revision to revision 34 newer revision 33 project member history 35 revision locked 34 revision with label 35 revision with state 35 Reporter. member 73 user. change package reviews 130 working file comparing to member revision 95 discarding change 70 making writable 73 177 . described 1 V variant project applying changes from 155 applying changes from two variants 157 variant sandbox creating 40 described 38 using 38 Visual Difference editing merge results 104 merging 102 reverting merge results 105 saving merge results 105 working with 102 Visual Merge editing merge results 107 merging revision 106 reverting merge results 108 saving merge results 108 suspending merges 108 viewing conflicts 106 working with 105 W workflow. adding 12 working with 10 U unlock.Index working with 94 updating member revision 67 Revision keyword 78 T table of keywords 77 thaw member 81 tip revision. renaming 70 S sandbox creating 40 described 37 dropping 43 importing 40 opening 44 retargeting 45 scanning for change 66 shared 41 configuring 42 importing 43 removing 43 snapshot 45 types of 38 using build sandbox 39 variant 38 viewing sandbox that locked member 44 SandboxSetting keyword 78 Setting keyword 78 shared sandbox 41 configuring 42 importing 43 removing 43 shared subproject. adding 12 snapshot sandbox 45 Source keyword 78 State keyword 78 submit change packages 125 deferred member operations 83 subproject adding 11 configuring 13 creating 10 dropping 17 locating where used 30 moving 15 pending operations 134 shared. Index 178 . If you are the U. nor may “Apache” appear in their name. INCLUDING. Copyright © 2003– 2005. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. either version 2. duplicate or disclose the Software or Documentation in any way not specifically permitted by MKS Software Inc.apache.org/). BUT NOT LIMITED TO. without prior written permission of the Indiana University. Redistributions of source code must retain the above copyright notice. or (at your option) any later version. Version 2. are permitted provided that the following conditions are met: 1.extreme. MA 02110-1301 USA.indiana. Inc.17 software developed by The Apache Software Foundation (http:// www. 2. if any. You may obtain a copy of the License at http:/ /www.indiana.apache. but WITHOUT ANY WARRANTY. See the GNU Lesser General Public License for more details. The names “BSF” “Apache” and “Apache Software Foundation” must not be used to endorse or promote products derived from this software without prior written permission. 1999 Free Software Foundation. INCIDENTAL.1. Manufacturer is MKS Software Inc. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. You should have received a copy of the GNU Lesser General Public License along with this library.org/). THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. BUT NOT LIMITED TO. you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.1. The end-user documentation included with the redistribution. Unless required by applicable law or agreed to in writing.2 developed by The Apache Software Foundation (http:// www. please contact http:// www.apache. Version 2. See the License for the specific language governing permissions and limitations under the License. Licensed under the Apache License.S. This product contains Glazed Lists software developed by publicobject. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. Fifth Floor.apache. Copyright © 2002 Extreme! Lab. This product contains Apache Jakarta Commons HttpClient software developed by The Apache Software Foundation (http://www. publicobject. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Version 1. BUT NOT LIMITED TO. you may not use this file except in compliance with the License.com and O’Dell Engineering. 410 Albert Street. DATA.3 software developed by The Apache Software Foundation http:/ /www. OR PROFITS. 5.extreme. 2. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE.Product Notices Copyright © 2001–2007 MKS Software Inc. without prior written permission of the Apache Software Foundation. the following notice is given: The Software and Documentation are provided with RESTRICTED RIGHTS.org/).0. This product contains Bean Scripting Framework Version 2.” developed exclusively at private expense. The names “Indiana University” and “Indiana University Extreme! Lab” must not be used to endorse or promote products derived from this software without prior written permission.apache.”. Inc. Unless required by applicable law or agreed to in writing. are permitted provided that the following conditions are met: 1. Boston. O'Dell Engineering Ltd. Unless required by applicable law or agreed to in writing.org/).0.extreme. software distributed under the License is distributed on an “AS IS” BASIS. Fifth Floor. This product contains Apache Jakarta Commons Logging 1. either express or implied. This product contains Apache Tomcat v. law.S. This product includes the Extreme! Computing XPP3-1. in Canada copyright owned by MKS Inc. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.. 4. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. Redistribution and use in source and binary forms. OR CONSEQUENTIAL DAMAGES (INCLUDING.org/licenses/LICENSE-2. STRICT LIABILITY.0 (the “License“). 3. if any. See the License for the specific language governing permissions and limitations under the License. Redistributions in binary form must reproduce the above copyright notice. For written permission. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. either express or implied. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. with or without modification. this list of conditions and the following disclaimer. Products derived from this software may not use “Indiana University” name nor may “Indiana University” appear in their name. Products derived from this software may not be called “Apache”.org/). MA 02110-1301 USA.”. Licensed under the Apache License.1 of the License.org/licenses/LICENSE-2. Boston.This library is distributed in the hope that it will be useful. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. EXEMPLARY. Alternately.. the Software and Documentation are licensed hereunder (i) only as a commercial item and (ii) with only those rights as are granted to all other end users to the extent that such rights are consistent with this paragraph.2. write to the Free Software Foundation. You shall not use. Redistribution and use in source and binary forms.com.apache. 51 Franklin Street. U. Redistributions in binary form must reproduce the above copyright notice. COPYRIGHT HOLDERS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT.0. Waterloo.S. software distributed under the License is distributed on an “AS IS” BASIS. Copyright © 2002 The Apache Software Foundation.org. you may not use this file except in compliance with the License. 3. you may not use this file except in compliance with the License. IN NO EVENT SHALL THE AUTHORS. software distributed under the License is distributed on an “AS IS” BASIS. must include the following acknowledgment: “This product includes software developed by the Indiana University Extreme! Lab (http://www. The end-user documentation included with the redistribution. All rights reserved. See the License for the specific language governing permissions and limitations under the License. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. INDIRECT. 4.org/licenses/LICENSE2.edu/).. 5. Copyright © 1991.edu/. INCLUDING. if not. All rights reserved.apache. with or without modification. For written permission. You may obtain a copy of the License at http://www. this list of conditions and the following disclaimer.edu/).0 (the “License“). Ontario Canada N2L 3V3.0 (the “License”).0. Version 2. 5. Government Restricted Rights.. 51 Franklin Street. Licensed under the Apache License.apache. The software and documentation provided to you (the “Software and Documentation”) are “commercial items. SPECIAL. Redistributions of source code must retain the above copyright notice. Government or any agency or department thereof (collectively referred to as the “Government”). All rights reserved. Licensed under the Apache License. Indiana University. LOSS OF USE. You may obtain a copy of the License at http://www. this acknowledgment may appear in the software itself. if and wherever such third-party acknowledgments normally appear. consisting of “commercial computer software” and “commercial computer software documentation” as such terms are defined in the applicable acquisition regulations.indiana. or mandated by U. please contact [email protected]. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR . WHETHER IN CONTRACT.5. either express or implied. If you are any agency of the Department of Defense of the Government. software developed by the Indiana University Extreme! Lab (http://www. This library is free software. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. This product contains IBM Toolbox for Java software. EXEMPLARY. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.org/). DATA OR PROFITS. All rights reserved. nor the names. this list of conditions and the following disclaimer. LOSS OF USE. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. OR CONSEQUENTIAL DAMAGES (INCLUDING. LOSS OF USE.. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM. without prior written permission of the Apache Software Foundation. Redistribution and use in source and binary forms.”. use or other dealings in this Software without prior written authorization of the copyright holder. the name of a copyright holder shall not be used in advertising or otherwise to promote the sale. Except as contained in this notice. DATA.9. Products derived from this software may not be called “Apache”. DATA. INDIRECT. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. please contact [email protected]. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT. BUT NOT LIMITED TO. publish. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. 1. EXEMPLARY. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. WITHOUT WARRANTY OF ANY KIND. or trade names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. ARISING FROM. or trade names of Invisible Worlds.Product Notices PURPOSE ARE DISCLAIMED. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. INCIDENTAL. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. EXEMPLARY. All Rights Reserved. BUT NOT LIMITED TO. Copyright © 1999–2001 The Apache Software Foundation. STRICT LIABILITY. BUT NOT LIMITED TO. this list of conditions and the following disclaimer. if any. Permission is hereby granted. INCLUDING. OR CONSEQUENTIAL DAMAGES (INCLUDING. OR PROFITS. SPECIAL. EXPRESS OR IMPLIED. to deal in the Software without restriction. LOSS OF USE. This product contains Java BEEP Core Version 0. STRICT LIABILITY. THE SOFTWARE IS PROVIDED “AS IS”. WHETHER IN AN ACTION OF CONTRACT. Invisible Worlds. WHETHER IN CONTRACT. are permitted provided that the following conditions are met: 1. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. INDIRECT. and to permit persons to whom the Software is furnished to do so. OR PROFITS. OR CONSEQUENTIAL DAMAGES (INCLUDING. DATA. OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES. BUT NOT LIMITED TO. with or without modification. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM. BUT NOT LIMITED TO. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 5. including without limitation the rights to use. modify. All trademarks and registered trademarks mentioned herein are the property of their respective owners. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. . you may not use this file except in compliance with the License. and/or sell copies of the Software. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3.org/ ) licensed under the Apache License. WHETHER IN CONTRACT. This product contains Java BEEP Core Version 0. are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice. Version 1. FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY. OR PROFITS. All rights reserved. WHETHER IN CONTRACT. SPECIAL. INDIRECT. trademarks. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.com/ developerworks/library/os-ipl. Inc. SPECIAL. merge. SPECIAL. to any person obtaining a copy of this software and associated documentation files (the “Software”). OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. INCIDENTAL. DATA. THE SOFTWARE IS PROVIDED “AS IS”. All Rights Reserved.ibm. Licensed under the IBM Public License Version 1. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE This product contains ICU v. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. EXEMPLARY. OR CONSEQUENTIAL DAMAGES (INCLUDING. nor may “Apache” appear in their name. LOSS OF USE.apache. INDIRECT.html for the specific language governing permissions and limitations under the License. INCIDENTAL. copy. Copyright © up to and including 2006. WHETHER IN AN ACTION OF CONTRACT. trademarks. Copyright © 1995–2003 International Business Machines Corporation and others. if and wherever such third-party acknowledgements normally appear 4.apache. Redistributions of source code must retain the above copyright notice. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY.0 (the “License”). WITHOUT WARRANTY OF ANY KIND.08 developed by The Apache Software Foundation (http://www. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. free of charge. Alternately. IN NO EVENT SHALL INVISIBLE WORLDS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. NEGLIGENCE OR OTHER TORTIOUS ACTION. “Commons” and “Apache Software Foundation” must not be used to endorse or promote products derived from this software without prior written permission. Neither the name. The names “The Jakarta Project”. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. STRICT LIABILITY.1. The end-user documentation included with the redistribution. INCLUDING. WHETHER IN CONTRACT. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. Blocks Public License Copyright © 2000–2001. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. Redistributions in binary form must reproduce the above copyright notice.8. International Business Machines Corporation (“IBM”) and others. For written permission.org. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. with or without modification. STRICT LIABILITY. 2. DAMAGES OR OTHER LIABILITY. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. INCIDENTAL. See the License at http://www-128. EXPRESS OR IMPLIED. distribute. Redistribution and use in source and binary forms. OR PROFITS. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. this acknowledgement may appear in the software itself. INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY. Inc. Redistributions in binary form must reproduce the above copyright notice.1.9. BUT NOT LIMITED TO. TORT OR OTHERWISE. . THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. WHETHER IN AN ACTION OF CONTRACT. You may obtain a copy of the License at http://www. merge. free of charge. 1999 Free Software Foundation. if not. This product contains JFree Chart version 1. See the License for the specific language governing rights and limitations under the License.1 of the License. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. You should have received a copy of the GNU Lesser General Public License along with this library. Copyright © 2004–2007 JBoss. this list of conditions and the following disclaimer. Inc. publish. copy. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM. MA 02111-1307 USA.1 (the “License“). sublicense.. distribute. STRICT LIABILITY. Inc. and to permit persons to whom the Software is furnished to do so. Copyright © 1991. 59 Temple Place. Boston.org/NPL/. INDIRECT. Redistributions in binary form must reproduce the above copyright notice. 1999 Free Software Foundation. OR CONSEQUENTIAL DAMAGES (INCLUDING. Copyright © 2001 Silver Egg Technology. 1999 Free Software Foundation. Boston. 1999. STRICT LIABILITY. Fifth Floor. Inc. sub-license. MA 02110-1301 USA. LOSS OF USE. Suite 330. either version 2. The Initial Developer of the Original Code is Netscape Communications Corporation.This library is distributed in the hope that it will be useful. THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. EXEMPLARY. OR PROFITS. 2000. This library is free software. IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT.com) and licensed by Claymore Systems. but WITHOUT ANY WARRANTY. Suite 330. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. or (at your option) any later version. OR CONSEQUENTIAL DAMAGES (INCLUDING. All Rights Reserved. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. EXEMPLARY.mozilla. you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation. Copyright © 1991. subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Inc. All rights reserved. and/or sell copies of the Software. You should have received a copy of the . modify.Product Notices Cryptix General License Copyright © 1995. or (at your option) any later version.4. including without limitation the rights to use. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 1998. WHETHER IN CONTRACT. Boston. Redistribution and use in source and binary forms. are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice. Inc. INDIRECT. INCIDENTAL.0. Neither the name or Claymore Systems. You should have received a copy of the GNU Lesser General Public License along with this library. to any person obtaining a copy of the Java Service Wrapper and associated documentation files (the “Software”). WITHOUT WARRANTY OF ANY KIND. Inc. 51 Franklin Street. Software distributed under the License is distributed on an “AS IS” basis. either express or implied. 1997. Inc. with or without modification. BUT NOT LIMITED TO. WHETHER IN CONTRACT. or (at your option) any later version. Boston.. publish. This product contains Jdesktop Integration Components. Copyright 2000– 2006. Portions created by Netscape are Copyright © 1997–1999 Netscape Communications Corporation. copy. INCLUDING. 51 Franklin Street. but WITHOUT ANY WARRANTY. to deal in the Software without restriction. SPECIAL. SPECIAL. write to the Free Software Foundation. modify. Boston. subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. DAMAGES OR OTHER LIABILITY. merge. MA 02110-1301 USA. either version 2. and to permit persons to whom the Software is furnished to do so. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by Claymore Systems. See the GNU Lesser General Public License for more details. Inc. released May 6. Permission is hereby granted.1 of the License. but WITHOUT ANY WARRANTY. either version 2.0. The Cryptix Foundation Limited. This library is free software. Copyright © 1991. distribute. INCLUDING. DATA. MA 02110-1301 USA. This package is a SSLv3/TLS implementation written by Eric Rescorla (ekr\@rtfm. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. BUT NOT LIMITED TO. This product contains Java Service Wrapper software developed by Tanuki Software. Copyright © 2004 Sun Microsystems. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.. The Original Code is Rhino code. Copyright © 1999. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED “AS IS”. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. 59 Temple Place. with or without modification. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. OR PROFITS. Contributor(s): Norris Boyd This product contains JBoss version 4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.. Permission is hereby granted.1. if not. Inc. This library is distributed in the hope that it will be useful. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. ARISING FROM. 51 Franklin Street. you may not use this file except in compliance with the License. are permitted provided that the following conditions are met: Redistribution of source code must retain the above copyright notice. free of charge. including without limitation the rights to use. nor the name of Eric Rescorla may be used to endorse or promote products derived from this software without specific prior written permission. See the GNU Lesser General Public License for more details. This library is distributed in the hope that it will be useful. BUT NOT LIMITED TO. by Object Refinery Limited and Contributors. write to the Free Software Foundation. BUT NOT LIMITED TO. Fifth Floor. Inc. This library is free software. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. WITHOUT WARRANTY OF ANY KIND. LOSS OF USE. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. to deal in the Software without restriction. This product contains JavaScript for Java which is subject to the Netscape Public License Version 1. and/or sell copies of the Software. Redistributions in binary form must reproduce the above copyright notice. 2006 Tanuki Software Inc. you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation. TORT OR OTHERWISE. Fifth Floor. INCIDENTAL. MA 02111-1307 USA. Redistribution and use in source and binary forms. EXPRESS OR IMPLIED. to any person obtaining a copy of this software and associated documentation files (the “Software”). OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. this list of conditions and the following disclaimer.1 of the License. DATA. with or without modification. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. 2. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. See the License for the specific language governing rights and limitations under the License. WHETHER IN CONTRACT. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. please contact apache@apache. 1999 Free Software Foundation. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. Software distributed under the License is distributed on an “AS IS” basis. LOSS OF USE. All rights reserved. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. “Apache“ and “Apache Software Foundation“ must not be used to endorse or promote products derived from this software without prior written permission. For written permission.1 of the License.1. INDIRECT. INC. Redistributions in binary form must reproduce the above copyright notice. without prior written permission of the Apache Software Foundation. nor may “Apache“ appear in their name. INCIDENTAL.0 developed by The Apache Software Foundation (http://www. Redistributions of source code must retain . write to the Free Software Foundation. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. if not. Redistribution and use in source and binary forms. INCLUDING. 5. are permitted provided that the following conditions are met: 1. Redistribution and use in source and binary forms. INCLUDING. You should have received a copy of the GNU Lesser General Public License along with this library. are permitted provided that the following conditions are met: 1. All rights reserved.Product Notices GNU Lesser General Public License along with this library. Copyright © 1999 The Apache Software Foundation. Inc.org/MPL/. Copyright © 1991. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY.org. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. or (at your option) any later version.org/) licensed under the Apache License. INCIDENTAL.6.jxml. DATA. BUT NOT LIMITED TO. The contents of this file are subject to the Mozilla Public License Version 1. The end-user documentation included with the redistribution. 3.org. Fifth Floor. 51 Franklin Street. SPECIAL. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. nor may “Apache“ appear in their name. Boston. INDIRECT. Suite 330. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. Copyright © 1998. if not. 1999. with or without modification. STRICT LIABILITY.2 for MS SQL Server. please contact apache@apache. 3.1. MA 02110-1301 USA. This product contains NSPR Library software. you may not use this file except in compliance with the License. and its contributors: http://www.apache. All rights reserved.apache. The names “Xerces”. Inc. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. The Original Code is the Netscape Portable Runtime (NSPR). without prior written permission of the Apache Software Foundation. either express or implied. 4. This product contains Xerces 2. Version 1. OR CONSEQUENTIAL DAMAGES (INCLUDING. AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES. Neither name of JXML nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. For written permission. 59 Temple Place. are permitted provided that the following conditions are met: 1. BUT NOT LIMITED TO. WITHOUT WARRANTY OF ANY KIND. MA 02111-1307 USA. Redistribution and use in source and binary forms. Copyright © 1998–2007 The OpenSSL Project. You may obtain a copy of the License at http:// www. The Initial Developer of the Original Code is Netscape Communications Corporation.org/).”. This product contains OpenSSL software and is licensed under the terms of the OpenSSL License and the SSLeay License. LOSS OF USE. LOSS OF USE.1 (the “License“).mozilla. this list of conditions and the following disclaimer. OR PROFITS. WHETHER IN CONTRACT. Portions created by Netscape are Copyright © 1998–2000 Netscape Communications Corporation. STRICT LIABILITY. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. INCIDENTAL. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. WHETHER IN CONTRACT.com/mdsax/ contributors. MA 02110-1301 USA. Version 1. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. OR CONSEQUENTIAL DAMAGES (INCLUDING. EXEMPLARY.. BUT NOT LIMITED TO.. EXEMPLARY. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. Redistributions in binary form must reproduce the above copyright notice. are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice. with or without modification. SPECIAL. All Rights Reserved.. SPECIAL. either version 2. DATA. INDIRECT. This library is distributed in the hope that it will be useful. The names “log4j“ and “Apache Software Foundation“ must not be used to endorse or promote products derived from this software without prior written permission. DATA. Alternately. STRICT LIABILITY. See the GNU Lesser General Public License for more details. OR CONSEQUENTIAL DAMAGES (INCLUDING.html. write to the Free Software Foundation.. BUT NOT LIMITED TO. if and wherever such third-party acknowledgments normally appear. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Redistributions of source code must retain the above copyright notice. Boston. 2. with or without modification. but WITHOUT ANY WARRANTY. Boston. BUT NOT LIMITED TO. 4. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. if any. Inc. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. INCLUDING. if any. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES.org/) licensed under the Apache Software License. Redistribution and use in source and binary forms.apache. Inc. OR PROFITS. This product includes Log4J software developed by The Apache Software Foundation (http://www. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. this list of conditions and the following disclaimer. 5. This library is free software. Products derived from this software may not be called “Apache”. JXML. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OR PROFITS. EXEMPLARY. Redistributions in binary form must reproduce the above copyright notice. This product contains jTDS Drivers version 1. THIS SOFTWARE IS PROVIDED BY JXML. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. this list of conditions and the following disclaimer. All product materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by JXML. Products derived from this software may not be called “Apache”.org/). Inc. The end-user documentation included with the redistribution. this acknowledgment may appear in the software itself. BUT NOT LIMITED TO. 51 Franklin Street. you can redistribute it and/ or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.apache. IN NO EVENT SHALL JXML OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT. Redistributions of source code must retain the above copyright notice. Fifth Floor. All rights reserved. Copyright © 2000–2002 The Apache Software Foundation. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. OR PROFITS. BUT NOT LIMITED TO. OR CONSEQUENTIAL DAMAGES (INCLUDING. SPECIAL. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. INCLUDING.openssl. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. INDIRECT. Products derived from this software may not be called “JDOM". Redistributions in binary form must reproduce the above copyright notice. OR CONSEQUENTIAL DAMAGES (INCLUDING. with or without modification. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. All advertising materials mentioning features or use of this software must display the following acknowledgment: “This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. and the following disclaimer. Products derived from this software may not be called “OpenSSL“ nor may “OpenSSL“ appear in their names without prior written permission of the OpenSSL Project.org/). This product includes cryptographic software written by Eric Young ([email protected]. For written permission. are permitted provided that the following conditions are met: 1. (http://www. The end-user documentation included with the redistribution. please contact <request_AT_jdom_DOT_org>. nor may “JDOM“ appear in their name. Redistributions in binary form must reproduce the above copyright notice. please contact info@sapia-oss. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT. Redistributions of source code must retain the copyright notice. BUT NOT LIMITED TO. BUT NOT LIMITED TO. without prior written permission of Sapia OSS. this list of conditions and the following disclaimer. 2. For written permission. INDIRECT.Product Notices the above copyright notice. LOSS OF USE. All advertising materials mentioning features or use of this software must display the following acknowledgement: “This product includes cryptographic software written by Eric Young (eay@cryptsoft. DATA.jdom. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. INDIRECT. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. All rights reserved. Copyright © 1995–1998 Eric Young ([email protected]/)“ THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. DATA. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. STRICT LIABILITY. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3.com)“ The word “cryptographic” can be left out if the routines from the library being used are not cryptographic related. Redistributions in binary form must reproduce the above copyright notice.com). “Sapia Open Source Software“ and “Sapia OSS“ must not be used to endorse or promote products derived from this software without prior written permission. This package is an SSL implementation written by Eric Young (eay@cryptsoft. with or without modification. BUT NOT LIMITED TO. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: “This product includes software written by Tim Hudson (tjh@cryptsoft. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. 2.openssl. this list of conditions. the acknowledgment may be graphical using the logos available at http:// www. this list of conditions. SPECIAL.com). Copyright © 2002. WHETHER IN CONTRACT. we request (but do not require) that you include in the end-user documentation provided with the redistribution and/or in the software itself an acknowledgement equivalent to the following: “This product includes software developed by the JDOM Project (http://www. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY . LOSS OF USE. OR PROFITS. must include the following acknowledgment: “This product includes software developed by Sapia Open Source Software Organization (http://www. Redistribution and use in source and binary forms. 2003 Sapia Open Source Software. are permitted provided that the following conditions are met: 1.com). DATA. this acknowledgment may appear in the software itself. 4. this list of conditions and the following disclaimer. if any. INCIDENTAL. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. Redistribution and use in source and binary forms. EXEMPLARY. nor may “Sapia“ appear in their name. Copyright © 2000–2004 Jason Hunter & Brett McLaughlin. SPECIAL. EXEMPLARY. with or without modification. BUT NOT LIMITED TO. WHETHER IN CONTRACT.jdom. INCLUDING. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. if and wherever such third-party acknowledgments normally appear. are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice. 2.org/). OR CONSEQUENTIAL DAMAGES (INCLUDING. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. STRICT LIABILITY. and the disclaimer that follows these conditions in the documentation and/or other materials provided with the distribution. INCIDENTAL. LOSS OF USE. In addition.com)“ THIS SOFTWARE IS PROVIDED BY ERIC YOUNG “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES. Redistributions of source code must retain the above copyright notice. The name “JDOM“ must not be used to endorse or promote products derived from this software without prior written permission. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT CONTRIBUTORS BE LIABLE FOR ANY DIRECT. EXEMPLARY. please contact openssl-core@openssl. STRICT LIABILITY. LOSS OF USE. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 5. OR PROFITS. SPECIAL.sapiaoss. INCLUDING. The names “OpenSSL Toolkit“ and “OpenSSL Project“ must not be used to endorse or promote products derived from this software without prior written permission.org/images/logos. 6. This product includes software written by Tim Hudson (tjh@cryptsoft. without prior written permission from the JDOM Project Management <request_AT_jdom_DOT_org>. Alternatively.org/)“ 4. The names “Sapia”. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.”. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. INCIDENTAL. Products derived from this software may not be called “Sapia”. this list of conditions and the following disclaimer. All rights reserved. This product contains Sapia Ubik software developed by Sapia Open Source Software. OR PROFITS. All rights reserved. 3. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. Redistributions in binary form must reproduce the above copyright notice.com). BUT NOT LIMITED TO. INDIRECT. BUT NOT LIMITED TO. BUT NOT LIMITED TO. Redistributions of any form whatsoever must retain the following acknowledgment: “This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www. WHETHER IN CONTRACT. DATA. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. Redistribution and use in source and binary forms. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.org. For written permission. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. IN NO EVENT SHALL THE SAPIA OSS ORGANIZATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT.“ Alternately. 3. INCIDENTAL. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4. OR CONSEQUENTIAL DAMAGES (INCLUDING. INCLUDING. This product contains JDOM software. EXEMPLARY. to deal in the Software without restriction. with or without modification. INCLUDING. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific. Products derived from this software may not be called “Apache”. if any. Redistributions in binary form must reproduce the above copyright notice. Version 1.0 (the “License“). If none exist. This product contains XML Parsing Library for C version 2. The following software may be included in this product: Crimson v1. Permission is hereby granted. OR PROFITS. if and wherever such third-party acknowledgments normally appear. Licensed under the Apache License. Use of any of this software is governed by the terms of the license below: Copyright 1999 by CoolServlets. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. BUT NOT LIMITED TO. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES.Product Notices THEORY OF LIABILITY. All rights reserved. SPECIAL. software distributed under the License is distributed on an “AS IS” BASIS. EXPRESS OR IMPLIED. and/or sell copies of the Software. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT. WITHOUT WARRANTY OF ANY KIND. 5. All rights reserved. WHETHER IN CONTRACT. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. merge. INCIDENTAL. WHETHER IN CONTRACT. DAMAGES OR OTHER LIABILITY. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. For written permission. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM. distribute. Use of any of this software is governed by the terms of the license below: / The Apache Software License. Portions of this product are Copyright 2007. documentation such as READMEs. OR PROFITS. free of charge. 2. and distribute this software and its documentation. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. All Rights Reserved.5. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. with or without modification. Redistributions of source code must retain the above copyright notice. This product contains W3C Sirpac. You may obtain a copy of the License at http:// www.com. Redistribution and use in source and binary forms. are permitted provided that the following conditions are met: 1. modify. WHETHER IN CONTRACT. understood. LOSS OF USE. 4. OR CONSEQUENTIAL DAMAGES (INCLUDING. LOSS OF USE. INCLUDING. This work (and included software. The names “Crimson“ and “Apache Software Foundation“ must not be used to endorse or promote products derived from this software without prior written permission. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. you may not use this file except in compliance with the License.“. SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.org/licenses/LICENSE-2. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT.) THIS SOFTWARE AND DOCUMENTATION IS PROVIDED “AS IS. INCIDENTAL. COPYRIGHTS. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.0. this list of conditions and the following disclaimer. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS. EXEMPLARY.“ AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES.6. INDIRECT. BUT NOT LIMITED TO. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.org. TORT OR OTHERWISE. Any pre-existing intellectual property disclaimers. Permission to copy. the W3C Software Short Notice should be included (hypertext is preferred. including modifications: The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. written prior permission. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. Version 2.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. Alternately. are permitted provided that the following conditions are met: 1. with or without modification. SPECIAL. EXEMPLARY. BUT NOT LIMITED TO. See the License for the specific language governing permissions and limitations under the License. TRADEMARKS OR OTHER RIGHTS.1 Copyright © 1999–2000 The Apache Software Foundation. INDIRECT. The following software may be included in this product: Xalan J2. notices. Redistribution and use in source and binary forms. provided that you include the following on ALL copies of the software and documentation or portions thereof. and will comply with the following terms and conditions. Neither name of CoolServlets. including the date changes were made. STRICT LIABILITY. STRICT LIABILITY. using and/or copying this work. sublicense. Redistributions of source code must retain the above copyright notice.org/). OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. Microsoft Corporation.1.apache. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 3. Notice of any changes or modifications to the files. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. publish. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . OR CONSEQUENTIAL DAMAGES (INCLUDING. modify. including without limitation the rights to use. ARISING FROM. THE SOFTWARE IS PROVIDED “AS IS”. INDIRECT. or terms and conditions. this acknowledgment may appear in the software itself. INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY. this list of conditions and the following disclaimer.COM AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES. or other related items) is being provided by the copyright holders under the following license. text is permitted) within the body of any redistributed or derivative code. Copyright © 1998–2003 Daniel Veillard. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. EXPRESS OR IMPLIED. WHETHER IN AN ACTION OF CONTRACT. The end-user documentation included with the redistribution. copy.0 Unless required by applicable law or agreed to in writing. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT. STRICT LIABILITY. for any purpose and without fee or royalty is hereby granted.1. either express or implied. This product contains the Sun Java 1. By obtaining. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.0 Update Platform which may include the following software: The following software may be included in this product: CS CodeViewer v1. (We recommend you provide URIs to the location from which the code is derived.7. 2. INCLUDING BUT NOT LIMITED TO. and to permit persons to whom the Software is furnished to do so. DATA. without prior written permission of the Apache Software Foundation. nor may “Apache“ appear in their name. you (the licensee) agree that you have read. DATA. subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.apache. please contact apache@apache. to any person obtaining a copy of this software and associated documentation files (the “Software“). Redistributions in binary form must reproduce the above copyright notice. This software is distributed under the terms of the BSD License. THIS SOFTWARE IS PROVIDED BY COOLSERVLETS. BUT NOT LIMITED TO. org/). Inc. SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. TRADEMARKS OR OTHER RIGHTS. and Jigsaw. Title to copyright in this software and any associated documentation will at all times remain with copyright holders. The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. Products derived from this software may not be called “Apache”. 4. Any pre-existing intellectual property disclaimers.) THIS SOFTWARE AND DOCUMENTATION IS PROVIDED “AS IS. INCLUDING BUT NOT LIMITED TO. INCLUDING. Use of any of this software is governed by the terms of the license below: W3C® SOFTWARE NOTICE AND LICENSE http://www. and other countries. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Altered source versions must be plainly marked as such. EXEMPLARY. written prior permission. and must not be misrepresented as being the original software. nor may “IAIK“ appear in their name. Xerces. using and/or copying this work. Level 3.1 Copyright © 1999–2003 The Apache Software Foundation. and to alter it and redistribute it freely. INCIDENTAL. Permission to copy. 2. INCIDENTAL. Amaya.ibm. OR PROFITS. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. if any. BUT NOT LIMITED TO. The following software may be included in this product: Document Object Model (DOM) v. 3.org. This formulation of W3C’s notice and license became active on December 31. All rights reserved. Version 1. this list of conditions and the following disclaimer. for any purpose and without fee or royalty is hereby granted. without any express or implied warranty. this acknowledgment may appear in the software itself. Use of any of this software is governed by the terms of the license below: / The Apache Software License. are permitted provided that the following conditions are met: 1. please contact apache@apache. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. Use of any of this software is governed by the terms of the license below: Copyright © 2002 Graz University of Technology. including the date changes were made. 5. including commercial applications. Redistributions of source code must retain the above copyright notice. SPECIAL. LOSS OF USE. All rights reserved. 2. 5. Use of any of this software is governed by the terms of the license below: Copyright © 1999–2000 Nullsoft.0j. you (the licensee) agree that you have read. subject to the following restrictions: 1.org/ Consortium/Legal/2002/copyright-software-20021231 This work (and included software. 2. are permitted provided that the following conditions are met: 1. This version removes the copyright ownership notice such that this license can be used with materials other than those owned by the W3C. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS. By obtaining. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES.“ Alternately. and removes the ambiguous grant of “use”.software. 4. reflects that ERCIM is now a host of the W3C. INDIRECT. 3. including modifications: 1. OR PROFITS. notices. Other questions about this notice can be directed to site-policy@w3. INCLUDING. Redistribution and use in source and binary forms. Please see our Copyright FAQ for common questions about using materials from our site. with or without modification. This notice may not be removed or altered from any source distribution.org. IN NO EVENT SHALL THE LICENSOR BE LIABLE FOR ANY DIRECT. provided that you include the following on ALL copies of the software and documentation or portions thereof. Redistributions in binary form must reproduce the above copyright notice. EXPRESS OR IMPLIED. 3. INDIRECT. and will comply with the following terms and conditions. The names “Graz University of Technology“ and “IAIK of Graz University of Technology“ must not be used to endorse or promote products derived from this software without prior written permission. For written permission. Permission is granted to anyone to use this software for any purpose. Inc. this list of conditions and the following disclaimer. includes references to this specific dated version of the license. an acknowledgment in the product documentation would be appreciated but is not required. must include the following acknowledgment: “This product includes software developed by IAIK of Graz University of Technology. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. WHETHER IN CONTRACT. OR CONSEQUENTIAL DAMAGES (INCLUDING. with or without modification. The origin of this software must not be misrepresented. BUT NOT LIMITED TO. DATA. The end-user documentation included with the redistribution. EXEMPLARY. This software is provided “as-is”. Products derived from this software may not be called “IAIK PKCS Wrapper”. Redistributions in binary form must reproduce the above copyright notice.Product Notices The following software may be included in this product: NSIS 1. In no event will the authors be held liable for any damages arising from the use of this software. the W3C Software Short Notice should be included (hypertext is preferred. BUT NOT LIMITED TO. The names “Xerces“ and “Apache Software Foundation“ must not be used to endorse or promote products derived from this software without prior written permission. or other related items) is being provided by the copyright holders under the following license. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. and distribute this software and its documentation. Otherwise. 3. with or without modification. without prior written permission of the Apache Software Foundation. Notice of any changes or modifications to the files. 2002.“ AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES. LOSS OF USE. Portions licensed from Taligent. (We recommend you provide URIs to the location from which the code is derived. INDIRECT. if any. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific. this version is the same as the previous version and is written so as to preserve the Free Software Foundation’s assessment of GPL compatibility and OSI's certification under the Open Source Definition. if and wherever such third-party acknowledgments normally appear.w3. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. STRICT LIABILITY. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT. 2. The following software may be included in this product: Xalan. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. you must not claim that you wrote the original software. BUT NOT LIMITED TO. COPYRIGHTS. Redistribution and use in source and binary forms. DATA. documentation such as READMEs. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.com/icu4j/ Portions Copyright Eastman Kodak Company 1992 Lucida is a registered trademark or trademark of Bigelow & Holmes in the U. If none exist.com“ Some Portions licensed from IBM are available at: http://oss. this acknowledgment may appear in the software itself. OR BUSINESS INTERRUPTION) HOWEVER . OR CONSEQUENTIAL DAMAGES (INCLUDING. The end-user documentation included with the redistribution. The following software may be included in this product: IAIK PKCS Wrapper. Redistributions of source code must retain the above copyright notice. understood. SPECIAL. text is permitted) within the body of any redistributed or derivative code. modify. Justin Frankel [email protected]. or terms and conditions. including specific terms and conditions for packages like libwww.“ Alternately.apache. if and wherever such third-party acknowledgments normally appear. nor may “Apache“ appear in their name. without prior written permission of Graz University of Technology. If you use this software in a product. notices. Institut National de Recherche en Informatique et en Automatique. Please see our Copyright FAQ for common questions about using materials from our site. using and/or copying this work. or the W3C document from which this statement is linked. This library is free software. Institut National de Recherche en Informatique et en Automatique. text is permitted) should be used within the body of any redistributed or derivative code: “Copyright © up to and including 2006 World Wide Web Consortium. write to the Free Software Foundation. Keio University). THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE. MA 02110-1301 USA. The following software may be included in this product: W3C XML Schema Test Collection v.h Brian Paul Mesa GLX driver include/GL/glx. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT. including modifications. inclusion of the full text of this NOTICE should be provided. schema's and bindings. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE.org/ Consortium/Legal/ Public documents on the W3C site are provided by the copyright holders under the following license. (Massachusetts Institute of Technology.“ AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents without specific. but WITHOUT ANY WARRANTY. The following software may be included in this product: Mesa 3-D graphics library v. provided that you include the following on ALL copies of the software and documentation or portions thereof. or any portion thereof. with or without modification. 1. STRICT LIABILITY. (Massachusetts Institute of Technology. understood. The pre-existing copyright notice of the original author. Keio University). INDIRECT. modify. (Massachusetts Institute of Technology.w3. You should have received a copy of the GNU Library General Public License along with this library.. WARRANTIES OF MERCHANTABILITY. if not. All Rights Reserved. a notice of the form: “Copyright yyyy [$date-ofdocument] World Wide Web Consortium. Please see our Copyright FAQ for common questions about using materials from our site. We request that authorship attribution be provided in any software. The following software may be included in this product: W3C XML Conformance Test Suites v. Use of any of this software is governed by the terms of the license below: W3C DOCUMENT NOTICE AND LICENSE Copyright © 1994-2002 World Wide Web Consortium. OR TITLE. http:// www. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific. and Jigsaw.h Brian Paul Mesa Ext registry include/GL/glext. or the W3C document from which this statement is linked. 2.) THIS SOFTWARE AND DOCUMENTATION IS PROVIDED “AS IS. Different copyrights and licenses apply to .) 3. in any medium for any purpose and without fee or royalty is hereby granted. or portions thereof. written prior permission. By obtaining. or if it doesn't exist. COPYRIGHTS. The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. Notice of any changes or modifications to the W3C files. but a textual representation is permitted. COPYRIGHTS. INCLUDING. Fifth Floor.2. The software or Document Type Definitions (DTDs) associated with W3C specifications are governed by the Software Notice. 51 Franklin Street. See the older formulation for the policy prior to this date.Product Notices CAUSED AND ON ANY THEORY OF LIABILITY. This formulation of W3C’s notice and license became active on August 14 1998 so as to improve compatibility with GPL. Institut National de Recherche en Informatique et en Automatique.org.h Mesa license: The Mesa distribution consists of several components. documents. THIS DOCUMENT IS PROVIDED “AS IS. including specific terms and conditions for packages like libwww. A link or URL to the original W3C document. TRADEMARKS OR OTHER RIGHTS. written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders. that you use: 1. copy. or terms and conditions. Keio University). NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS. and Jigsaw. All Rights Reserved. and will comply with the following terms and conditions: Permission to use. you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation. However.w3. including specific terms and conditions for packages like libwww. When space permits. that you make: 1. Title to copyright in this document will at all times remain with copyright holders. This version ensures that W3C software licensing terms are no more restrictive than GPL and consequently W3C software may be distributed in GPL packages. TRADEMARKS OR OTHER RIGHTS. Any pre-existing intellectual property disclaimers. 5. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT. you (the licensee) agree that you have read. copy. http:// www.org. for any purpose and without fee or royalty is hereby granted. Other questions about this notice can be directed to [email protected]/Consortium/Legal/“ 3. and will comply with the following terms and conditions: Permission to use. No right to create modifications or derivatives of W3C documents is granted pursuant to this license. All Rights Reserved. http://www. webmaster (last updated by reagle on 1999/04/99. or other related items) is being provided by the copyright holders under the following license. either version 2 of the License. EXPRESS OR IMPLIED. and distribute this software and its documentation.“ AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES.) The following software may be included in this product: Common Unix Printing System API Libraries (CUPS API library). Other questions about this notice can be directed to site-policy@w3. Inc. a short notice of the following form (hypertext is preferred. INDIRECT.w3. or (at your option) any later version. This library is distributed in the hope that it will be useful. All Rights Reserved. 2.w3. Keio University). provided that you include the following on ALL copies of the document. 20020606. and distribute the contents of this document. FITNESS FOR A PARTICULAR PURPOSE. the STATUS of the W3C document. See the GNU Library General Public License for more details. Use of any of this software is governed by the terms of the license below: W3C® SOFTWARE NOTICE AND LICENSE Copyright © 1994–2002 World Wide Web Consortium. or other items or products that you create pursuant to the implementation of the contents of this document. By using and/or copying this document. EXPRESS OR IMPLIED.h SGI SGI Free B include/ GL/glxext. Boston. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. (We recommend you provide URIs to the location from which the code is derived. the right to create modifications or derivatives is sometimes granted by the W3C to individuals complying with those requirements. http://www. NON-INFRINGEMENT.16. If none exist. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS. Amaya. BUT NOT LIMITED TO. including the date changes were made. (Massachusetts Institute of Technology. you (the licensee) agree that you have read. SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF. See the older formulation for the policy prior to this date.org/Consortium/Legal/“ (Hypertext is preferred. understood.org/Consortium/Legal/ This W3C work (including software. INCLUDING BUT NOT LIMITED TO. Institut National de Recherche en Informatique et en Automatique. This formulation of W3C’s notice and license became active on April 05 1999 so as to account for the treatment of DTDs. If it exists. if additional requirements (documented in the Copyright FAQ) are satisfied. documents. WHETHER IN CONTRACT. Use of any of this software is governed by the terms of the license below: core Mesa code include/GL/ gl. Amaya. nor may “Apache“ appear in their name. and release date]. TORT OR OTHERWISE.2. some demo programs are copyrighted by SGI. BUT NOT LIMITED TO. INCIDENTAL. The names “Apache“ and “Apache Software Foundation“ and “Apache Turbine“ must not be used to endorse or promote products derived from this software without prior written permission.“ Alternately. 5.org/).1 (the “License“). ANY IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. INCLUDING. copy.org.apache. All rights reserved. developed by Silicon Graphics. as appearing in the Notice in the Original Code] Silicon Graphics. without prior written permission of the Apache Software Foundation.Product Notices different components. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. See below for a list of Mesa's components and the copyright/ license for each. to deal in the Software without restriction. INDIRECT. The end-user documentation included with the redistribution. WHETHER IN AN ACTION OF CONTRACT. All rights reserved. OR CONSEQUENTIAL DAMAGES (INCLUDING. BUT NOT LIMITED TO. this acknowledgment may appear in the software itself. Version 1. if any. GLUT is copyrighted by Mark Kilgard. The end-user documentation included with the redistribution. INDIRECT. 4. DATA. Products derived from this software may not be called “Apache”. if and wherever such thirdparty acknowledgments normally appear. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. OR PROFITS. Use of any of this software is governed by the terms of the license below: CUP Parser Generator Copyright Notice. if any. are permitted provided that the following conditions are met: 1.1 Copyright © 2001 The Apache Software Foundation.1 Copyright © 2001 The Apache Software Foundation. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http:/ /www. and to permit persons to whom the Software is furnished to do so. Inc. this list of conditions and the following disclaimer. Regular Expression Package v. to any person obtaining a copy of this software and associated documentation files (the “Software“).apache. if any. 0. 5. THIS SOFTWARE IS PROVIDED “AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES. THE SOFTWARE IS PROVIDED “AS IS”. The following software may be included in this product: CUP Parser Generator for Java v. are permitted provided that the following conditions are met: 1. FITNESS FOR A PARTICULAR PURPOSE. some of the Mesa device drivers are copyrighted by their authors. without prior written permission of the Apache Software Foundation. free of charge. INCLUDING. sublicense. 2. The Original Code is: [name of software. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY. ARISING FROM. Redistribution and use in source and binary forms. with or without modification. attn: Legal Services. as provided in the License. DATA. subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. as appear in the Notice in the Original Code under the heading “Additional Notice Provisions”] The following software may be included in this product: Byte Code Engineering Library (BCEL) v.org/). 2. Mountain View. BUT NOT LIMITED TO. Permission is hereby granted. OR CONSEQUENTIAL DAMAGES (INCLUDING. 1. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. please contact apache@apache. if and wherever such third-party acknowledgments normally appear. For written permission.sgi. and Disclaimer Copyright 1996–1999 by Scott Hudson. Copyright in any portions created by third parties is as indicated elsewhere herein. WITHOUT LIMITATION. IN NO EVENT SHALL BRIAN PAUL BE LIABLE FOR ANY CLAIM. this acknowledgment may appear in the software itself. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. Redistributions of source code must retain the above copyright notice.10k. Products derived from this software may not be called “Apache”.. CA 94043-1351. AND NON-INFRINGEMENT. Redistributions of source code must retain the above copyright notice. and/or sell copies of the Software. For written permission. “Apache Turbine”. License. Original Code. For example. “Apache BCEL”. STRICT LIABILITY. 5. 4. with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED. The names “Apache“ and “Apache Software Foundation“ and “Apache BCEL“ must not be used to endorse or promote products derived from this software without prior written permission. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. or at: http://oss. EXPRESS OR IMPLIED. and distribute this software and its documentation for any purpose and without fee is hereby granted. 3. Scott Ananian Permission to use. STRICT LIABILITY. Use of any of this software is governed by the terms of the license below: The Apache Software License. with or without modification. Unless otherwise stated. and that the names of the authors or their employers not be used in advertising or publicity pertaining to . WITHOUT WARRANTY OF ANY KIND. SPECIAL. Version 1. Redistributions in binary form must reproduce the above copyright notice. The following software may be included in this product: Regexp. provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. copy. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. SPECIAL. modify. The core Mesa library is licensed according to the terms of the XFree86 copyright (an MIT-style license). THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. You may not use this file except in compliance with the License. The Original Code is Copyright © [dates of first publication. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. INCIDENTAL. this list of conditions and the following disclaimer. You may obtain a copy of the License at Silicon Graphics. BUT NOT LIMITED TO. SGI FREE SOFTWARE LICENSE B (Version 1. Use of any of this software is governed by the terms of the license below: Apache Software License / The Apache Software License. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. Version 1. LOSS OF USE. the Software is distributed on an “AS IS” basis. the contents of this file are subject only to the provisions of the License. EXEMPLARY. OR PROFITS. including without limitation the rights to use. version number.com/projects/ FreeB Note that. EXEMPLARY. modify. Inc. Inc. 1600 Amphitheatre Parkway. WHETHER IN CONTRACT. C. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. Frank Flannery. merge. please contact apache@apache. publish. distribute. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.org. SATISFACTORY QUALITY. LOSS OF USE.1 [02/22/2000]) Except to the extent portions of this file are made subject to an alternative license as permitted in the SGI Free Software License B. nor may “Apache“ appear in their name. INCLUDING.“ Alternately. WHETHER IN CONTRACT. Redistributions in binary form must reproduce the above copyright notice. must include the following acknowledgment: “This product includes software developed by the Apache Software Foundation (http://www. Additional Notice Provisions: [such additional provisions. DAMAGES OR OTHER LIABILITY. 3. the Mesa source code and documentation is licensed as follows: Copyright © 1999–2003 Brian Paul All Rights Reserved. Redistribution and use in source and binary forms. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. All Rights Reserved. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. This allows integration with the XFree86/DRI project. http://www. INCIDENTAL. negligence or other tortious action. including all implied warranties of merchantability and fitness. STRICT LIABILITY.com. Scott Ananian Permission to use. Copyright 1996–2003 by Elliot Joel Berk and C. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. BUT NOT LIMITED TO. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. it's not possible to own a license to SAX. 4. Redistribution and use of this software and associated documentation (“Software“). Use of any of this software is governed by the terms of the license below: Cryptix General License Copyright © 1995–2003 The Cryptix Foundation Limited. The authors and their employers disclaim all warranties with regard to this software. 3. Ltd.1. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT. LICENSE AND DISCLAIMER. IN NO EVENT SHALL METASTUFF.dom4j. or use it in any other way you see fit. are permitted provided that the following conditions are met: 1.0 (the Simple API for XML). THIS SOFTWARE IS PROVIDED BY METASTUFF.com 2000-05-05. 2. written prior permission. The following software may be included in this product: Cryptix. EXEMPLARY. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. modify. data or profits. OR PROFITS. No one owns SAX: you may use it freely in both commercial and non-commercial applications. Redistributions of source code must retain copyright statements and notices. 1. arising out of or in connection with the use or performance of this software. All Rights Reserved. Copyright 2001-2005 © MetaStuff. The following software may be included in this product: JLex: A Lexical Analyzer Generator for Java v. BUT NOT LIMITED TO.5. The following software may be included in this product: SAX v. LOSS OF USE. the implied warranties of merchantability and fitness for a particular purpose.com 1998-05-11 SAX 2. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. SPECIAL. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. In no event unless required by applicable law or agreed to in writing will any copyright holder. sax@megginson. Should SAX prove defective. or any other party who may modify and/or redistribute SAX. repair or correction. Redistributions of source code must retain the copyright notice. OR CONSEQUENTIAL DAMAGES (INCLUDING. even if such holder or other party has been advised of the possibility of such damages. DOM4J is a registered trademark of MetaStuff. indirect or consequential damages or any damages whatsoever resulting from loss of use. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. please contact dom4jinfo@metastuff. . whether in an action of contract.org. OR CONSEQUENTIAL DAMAGES (INCLUDING.1. SPECIAL. to the extent permitted by applicable law. including. Ltd. David Megginson. with or without modification.0 source code. INDIRECT. indirect or consequential damages or any damages whatsoever resulting from loss of use. LOSS OF USE. provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation. WHETHER IN CONTRACT. be liable to you for damages. copy. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. 2. and distribute this software and its documentation for any purpose and without fee is hereby granted. INDIRECT. OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. Except when otherwise stated in writing the copyright holders and/or other parties provide SAX “as is“ without warranty of any kind. Redistribution and use in source and binary forms. OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE. Due credit should be given to the DOM4J Project .0 Version 1. The entire risk as to the quality and performance of SAX is with you. STRICT LIABILITY. INCIDENTAL. but not limited to. WHETHER IN CONTRACT. 2. Redistributions must also contain a copy of this document. INCLUDING. since it's been placed in the public domain. including any general. incidental or consequential damages arising out of the use or inability to use SAX (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the SAX to operate with any other programs). SAX comes with NO WARRANTY or guarantee of fitness for any purpose. DATA. Use of any of this software is governed by the terms of the license below: JLEX COPYRIGHT NOTICE. david@megginson. Inc. LTD. DATA. either expressed or implied.6. No Warranty Because SAX is released to the public domain. SAX 1. The name “DOM4J“ must not be used to endorse or promote products derived from this Software without prior written permission of MetaStuff. For written permission.2. list the source code in a book. Use of any of this software is governed by the terms of the license below: Copyright Status SAX is free! In fact. Copyright Disclaimers This page includes statements to that effect by David Megginson. All rights reserved. INCLUDING. who would have been able to claim copyright for the original work. is hereby released into the public domain. Ltd. this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The authors and their employers disclaim all warranties with regard to this software. Java is a trademark of Sun Microsystems. and release all of the SAX 2. Products derived from this Software may not be called “DOM4J“ nor may “DOM4J“ appear in their names without prior written permission of MetaStuff. negligence or other tortious action. 5. In no event shall the authors or their employers be liable for any special. OR PROFITS. arising out of or in connection with the use or performance of this software. compiled code. BUT NOT LIMITED TO. bundle it with your software distribution. created collectively by the membership of the XML-DEV mailing list.Product Notices distribution of the software without specific. BUT NOT LIMITED TO. David Megginson. with or without modification. IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT. and documentation contained in this distribution into the Public Domain. In no event shall the authors or their employers be liable for any special. This product contains DOM4J 1. AND CONTRIBUTORS “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES. include it on a CDROM. THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES. EXEMPLARY. and that the name of the authors or their employers not be used in advertising or publicity pertaining to distribution of the software without specific. mirror the documentation at your own web site.0. Redistributions in binary form must reproduce the above copyright notice. you assume the cost of all necessary servicing. EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. including all implied warranties of merchantability and fitness. Ltd. LTD. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES. data or profits. are permitted provided that the following conditions are met: 1. whether in an action of contract. written prior permission. this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice. special.0 I hereby abandon any property rights to SAX 2. there is no warranty for the design or for the software implementation. References to the Java programming language in relation to JLex are not meant to imply that Sun endorses this product.0 of the Simple API for XML (SAX).
Copyright © 2024 DOKUMEN.SITE Inc.