Description - Mks.com
Description - Mks.com
Description - Mks.com
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ÁÁÁ<br />
Á<br />
ÁÁ
MKS Source Integrity® Enterprise 2005<br />
CLI Reference Guide<br />
Copyright © 2001–2005 MKS Software Inc.; in Canada copyright owned by MKS Inc. All rights reserved.<br />
MKS makes no warranty of any kind with regard to this material, including, but not limited to the implied warranties of merchant ability,<br />
performance, or fitness for a particular purpose. MKS shall not be liable for errors contained herein, or for any direct, indirect, incidental,<br />
or consequential damages resulting from the use of this material.<br />
No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language in<br />
any form by any means, without written permission from MKS.<br />
MKS Source Integrity, MKS Integrity Manager, Implementer, NewVersion, MKS Toolkit, Sandbox, NuTCRACKER, MKS Integrity<br />
Solution, MKS Integrity Suite, AlertCentre, and MKS Federated Server are trademarks or registered trademarks of MKS Inc. All other<br />
trademarks or registered trademarks are the property of their respective holders.<br />
Contains Java software developed by Sun Microsystems, Inc. © Copyright Sun Microsystems, Inc. All Rights Reserved. Java and Javabased<br />
marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.<br />
Contains embedded database © Copyright PointBase Inc. All rights reserved.<br />
Portions of this product are based upon copyrighted materials of BEA Systems Inc. All rights reserved.<br />
Portions of this product are based upon copyrighted materials of Sitraka Inc. (formerly KL Group) or its suppliers. All rights reserved.<br />
IBM Bean Scripting Framework (BSF) is incorporated in this product and is provided by International Business Machines or one of its<br />
subsidiaries (IBM) and is copyrighted and licensed. MKS does not make or imply any representations or warranties on behalf of IBM.<br />
Contains NSPR (Netscape Portable Runtime) library for C API. The Source Code version of the Covered Code is available under the terms<br />
of the Mozilla Public License Version 1.1.<br />
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in <strong>com</strong>pliance with the License. You may<br />
obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.<br />
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS,<br />
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language<br />
governing permissions and limitations under the License.<br />
Contains XML parsing library for C. Copyright © 1998–2003 Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of<br />
charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software<br />
without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies<br />
of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above<br />
copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS<br />
PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE<br />
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT<br />
SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF<br />
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br />
OTHER DEALINGS IN THE SOFTWARE.<br />
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org).<br />
Copyright © 1998–2003 The OpenSSL Project. All rights reserved.<br />
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions<br />
are met:<br />
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<br />
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />
documentation and/or other materials provided with the distribution.<br />
3. All advertising materials mentioning features or use of this software must display the following acknowledgment:<br />
“This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)”<br />
4. The names “OpenSSL Toolkit” and “OpenSSL Project” must not be used to endorse or promote products derived from this software<br />
without prior written permission. For written permission, please contact openssl-core@openssl.org.<br />
5. Products derived from this software may not be called “OpenSSL” nor may “OpenSSL” appear in their names without prior written<br />
permission of the OpenSSL Project.<br />
6. Redistributions of any form whatsoever must retain the following acknowledgment:<br />
“This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)”<br />
THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES,<br />
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br />
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED<br />
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)<br />
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT<br />
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED<br />
OF THE POSSIBILITY OF SUCH DAMAGE.
This product includes cryptographic software written by Eric Young (eay@cryptsoft.<strong>com</strong>).<br />
Copyright © 1995–1998 Eric Young (eay@cryptsoft.<strong>com</strong>). All rights reserved.<br />
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions<br />
are met:<br />
1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer.<br />
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />
documentation and/or other materials provided with the distribution.<br />
3. All advertising materials mentioning features or use of this software must display the following acknowledgement:<br />
“This product includes cryptographic software written by Eric Young (eay@cryptsoft.<strong>com</strong>)”<br />
The word ‘cryptographic’ can be left out if the routines from the library being used are not cryptographic related.<br />
4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an<br />
acknowledgement: “This product includes software written by Tim Hudson (tjh@cryptsoft.<strong>com</strong>)”<br />
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<br />
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE<br />
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<br />
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br />
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND<br />
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH<br />
DAMAGE.
Corporate Headquarters Worldwide Offices:<br />
410 Albert Street<br />
Waterloo, ON N2L 3V3<br />
Canada<br />
tel: 519 884 2251<br />
fax: 519 884 8861<br />
sales (toll free): 800 265 2797<br />
www.mks.<strong>com</strong><br />
This document is uncontrolled when printed or copied.<br />
1815 South Meyers Rd.<br />
Suite 220<br />
Oakbrook Terrace, IL USA<br />
60181<br />
tel: 630 827 4900<br />
fax: 630 629 9167<br />
sales (toll free): 800 633 1235<br />
12450 Fair Lakes Circle<br />
Suite 400<br />
Fairfax, VA USA<br />
22033<br />
tel: 519 884 2251<br />
fax: 703 803 3344<br />
sales (toll free): 800 637 8034<br />
Martinstraße 42-44<br />
73728 Esslingen<br />
Germany<br />
tel: +49 711 351775 0<br />
fax: +49 711 351775 7555<br />
Third Floor, Duke’s Court<br />
Duke Street, Woking<br />
Surrey<br />
GU21 5BH<br />
United Kingdom<br />
tel: +44 (0)1483 733900<br />
fax: +44 (0)1483 733901<br />
sales: +44 (0)1483 733919
MKS Source Integrity Enterprise (also referred to as simply Source Integrity) provides a <strong>com</strong>plete<br />
<strong>com</strong>mand line interface (CLI) to manage Source Integrity projects and archives. The CLI and<br />
graphical user interfaces (GUI) provide the exact same functionality. In fact, in most cases, these<br />
two interfaces are interchangeable -- you can easily alternate between these interfaces and they<br />
are quickly synchronized to facilitate your user experience.<br />
Source Integrity <strong>com</strong>mands follow the si prefix. For example, si about displays the product<br />
information for Source Integrity, while si co -l samplefile.c checks out a locked copy of a<br />
sandbox member file.<br />
Each <strong>com</strong>mand allows a limited set of options. Single letter options must always be preceded by a<br />
single dash ( - ), while longer option strings must be preceded by a double dash ( -- ). The long<br />
strings are not case sensitive, but are shown in mixed case to facilitate readability.<br />
To see a list of the available Source Integrity <strong>com</strong>mands and brief descriptions of each, type si.<br />
To see a list of options available to a particular <strong>com</strong>mand, simply append -? or --usage to the<br />
<strong>com</strong>mand, for example,<br />
si add --usage<br />
In options, square brackets indicate optional strings, for example, the no is an optional prefix in --<br />
[no]batch. The two ways to use this option would be --nobatch or --batch.<br />
For information on Authorization Administrator <strong>com</strong>mands and permissions, see the MKS Integrity<br />
Server Administration CLI Reference Guide.<br />
Introduction<br />
● intro<br />
● man<br />
Source Integrity Commands<br />
● si about<br />
● si acceptcp<br />
1 of 457
● si add<br />
● si addlabel<br />
● si addmemberattr<br />
● si addmemberfromarchive<br />
● si addproject<br />
● si addprojectattr<br />
● si addprojectlabel<br />
● si addsandboxattr<br />
● si addsubproject<br />
● si annotate<br />
● si appendrevdesc<br />
● si applycp<br />
● si archiveinfo<br />
● si checkpoint<br />
● si ci<br />
● si closecp<br />
● si co<br />
● si configuresandbox<br />
● si configuresubproject<br />
● si connect<br />
● si cpissues<br />
● si createcp<br />
● si createdevpath<br />
● si createproject<br />
● si createsandbox<br />
● si createsubproject<br />
● si deletelabel<br />
● si deleteprojectlabel<br />
● si deleterevision<br />
● si demote<br />
● si demoteproject<br />
● si diff<br />
● si difffiles<br />
● si discardcp<br />
● si disconnect<br />
● si drop<br />
● si dropdevpath<br />
● si dropmemberattr<br />
● si dropproject<br />
● si dropprojectattr<br />
2 of 457
● si dropsandbox<br />
● si dropsandboxattr<br />
● si edit<br />
● si editcp<br />
● si exit<br />
● si freeze<br />
● si gui<br />
● si import<br />
● si importproject<br />
● si importsandbox<br />
● si integrations<br />
● si loadrc<br />
● si locate<br />
● si lock<br />
● si locks<br />
● si makewritable<br />
● si memberinfo<br />
● si merge<br />
● si mergebranch<br />
● si mods<br />
● si move<br />
● si movesubproject<br />
● si opencp<br />
● si print<br />
● si projectinfo<br />
● si projects<br />
● si promote<br />
● si promoteproject<br />
● si rejectcp<br />
● si rename<br />
● si report<br />
● si restoreproject<br />
● si resync<br />
● si resynccp<br />
● si revert<br />
● si revisioninfo<br />
● si rlog<br />
● si sandboxes<br />
● si sandboxinfo<br />
● si servers<br />
3 of 457
● si setmemberrule<br />
● si setprefs<br />
● si setprojectdescription<br />
● si sharesubproject<br />
● si snapshot<br />
● si submit<br />
● si submitcp<br />
● si thaw<br />
● si unlock<br />
● si unlockarchive<br />
● si updatearchive<br />
● si updateclient<br />
● si updaterevision<br />
● si viewcp<br />
● si viewcps<br />
● si viewhistory<br />
● si viewlabels<br />
● si viewlocks<br />
● si viewnonmembers<br />
● si viewprefs<br />
● si viewproject<br />
● si viewprojecthistory<br />
● si viewrevision<br />
● si viewsandbox<br />
Miscellaneous Information<br />
● ACL<br />
● cc<br />
● diagnostics<br />
● envvar<br />
● makefile<br />
● options<br />
● preferences<br />
● rcsedit<br />
MKS Toolkit Utilities<br />
Source Integrity provides the following MKS Toolkit <strong>com</strong>mand line utilities on the client:<br />
4 of 457
● ar<br />
● cc<br />
● cmp<br />
● cp<br />
● cxx<br />
● date<br />
● diff<br />
● diffb<br />
● diffh<br />
● echo<br />
● ident<br />
● less<br />
● ln<br />
● make<br />
● manstrip<br />
● more<br />
● mv<br />
● nm<br />
● rm<br />
● touch<br />
● vdiff32<br />
● whereis<br />
● which<br />
5 of 457
si intro<br />
introduction to reference pages<br />
DESCRIPTION<br />
A description of an individual topic (for example, a <strong>com</strong>mand) is loosely called the reference page<br />
for that topic, even if it is actually several pages long.<br />
There are three alternatives for accessing the reference pages to each MKS Source Integrity<br />
<strong>com</strong>mand through the CLI man <strong>com</strong>mand.<br />
First, you may simply type the si prefix and the <strong>com</strong>mand together as one word. Second, you may<br />
type the si prefix and the <strong>com</strong>mand with an underscore between them. Third, you may quote the<br />
si prefix and the <strong>com</strong>mand, with a space in the middle. For example:<br />
man siabout<br />
man si_about<br />
man "si about" (Windows client only)<br />
See the reference page for the man <strong>com</strong>mand itself, by typing man man, to find out more details.<br />
One new feature involves using the -h option which allows you to view the reference pages in<br />
HTML Help format (Windows client only).<br />
Note:<br />
To view Source Integrity online reference pages (CLI <strong>com</strong>mands) in HTML Help, you must<br />
have Microsoft Internet Explorer 4.0 or higher installed. MKS re<strong>com</strong>mends Microsoft Internet<br />
Explorer 5.0 to avoid any problems with HHCTRL.OCX.<br />
This reference page describes the parts of a reference page with examples taken from real MKS<br />
Source Integrity reference pages.<br />
The following sections discuss the various elements of a reference page.<br />
Name<br />
The NAME section provides the name of the <strong>com</strong>mand and a brief functional description.<br />
Synopsis<br />
In the reference page for a <strong>com</strong>mand, the SYNOPSIS section provides a quick summary of the<br />
6 of 457
<strong>com</strong>mand's format. For example, here is the synopsis of the si add <strong>com</strong>mand.<br />
si add [--archive=filename] [--author=name] [(--binaryFormat|--textFormat)]<br />
[(--cpid ID|--changePackageId=ID)] [--[no]defer] [--[no|confirm]closeCP]<br />
[--issueId=ID] [--description=desc] [--descriptionFile=file] [--issueId=ID]<br />
[(-l|--lock)] [--onExistingArchive=[confirm|sharearchive|newarchive|cancel]]<br />
[--[no]createSubprojects] [--[no]retainWorkingFile] [--[no]saveTimestamp]<br />
[--[no]unexpand] [(-r rev|--revision=rev)] [(-R |--[no|confirm]recurse)]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [--cwd=directory] [(-F file|--selectionFile=file)]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [(-N|--no)] [--[no]batch] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] [(-?|--usage)] [(-Y|--yes)]<br />
nonmember...<br />
The synopsis takes the form of a <strong>com</strong>mand line as you might type it into the system; it shows what<br />
you can type in and the order in which you should do it. The parts that are enclosed in square<br />
brackets are optional; you may omit them if you choose. Parts that are not enclosed in square<br />
brackets must be present for the <strong>com</strong>mand to be correct.<br />
The synopsis begins with the name of the <strong>com</strong>mand itself. The Source Integrity <strong>com</strong>mands all<br />
include the si prefix. In Source Integrity documentation, <strong>com</strong>mand names are always written in<br />
bold Courier font.<br />
After the <strong>com</strong>mand name <strong>com</strong>es a list of options. A typical Source Integrity <strong>com</strong>mand option<br />
consists of either a single dash (-) followed by a single character, usually an uppercase or<br />
lowercase letter, or it may consist of a double dash (--) followed by a multi-character option name.<br />
Often there are single-character and multi-character options that do the same thing. The multicharacter<br />
strings are not case sensitive, but are shown in mixed case to facilitate readability. For<br />
example, you might have -L or --label.<br />
The synopsis line shows options in bold Courier font. Note that the case of single-character<br />
options is important; for example, in the synopsis of si add, -r and -R are different options, with<br />
different effects.<br />
Furthermore, in the synopsis all options are shown in one long string. Other <strong>com</strong>mon option forms<br />
are:<br />
-r rev<br />
--revision=rev<br />
where rev or, in some cases, value provides extra information for using that option. For example,<br />
the si lock <strong>com</strong>mand locks sandbox members; here's the <strong>com</strong>mand's synopsis:<br />
7 of 457
si lock [--[no|confirm]branch] [(--cpid ID|--changePackageId=ID)] [--issueId=ID]<br />
[(-r rev|--revision=rev)] [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
In this example, there is the option<br />
-r rev<br />
This option tells the si lock <strong>com</strong>mand which revision to lock. In a <strong>com</strong>mand synopsis, anything<br />
appearing in italics is a placeholder for information that you are expected to supply. Sometime<br />
after the synopsis, the reference page explains what kind of information is expected in place of the<br />
placeholder.<br />
The end of the si lock synopsis is<br />
member...<br />
Since there are no square brackets around the list, in this example, it is mandatory.<br />
This means one or more member names; the ellipsis (...) stands for repetitions of whatever<br />
immediately precedes it. Most Source Integrity <strong>com</strong>mands allow you to specify lists of multiple<br />
items using spaces between them.<br />
See the options reference page for more details on selecting members, sandboxes and projects.<br />
The order of items on the <strong>com</strong>mand line is important. When you type in a <strong>com</strong>mand line, you<br />
should specify the parts of the <strong>com</strong>mand line in the order they appear in the <strong>com</strong>mand synopsis.<br />
The exceptions to this are options marked with a - or a --; they do not have to be given in the<br />
exact order shown in the synopsis. However, all the - or -- options must appear in the correct<br />
area of the <strong>com</strong>mand line. For example, you can specify<br />
si lock -r 1.2 --gui member1<br />
si lock --gui -r 1.2 member1<br />
but you won't get correct results if you specify<br />
si lock member1 -r 1.2 --gui<br />
8 of 457
and so on.<br />
si lock -r 1.2 member1 --gui<br />
<strong>Description</strong><br />
The DESCRIPTION section simply describes what the <strong>com</strong>mand does and how each option works.<br />
Inside the DESCRIPTION section, the names of files and directories are written in normal<br />
Courier font. The names of environment variables are written in italic Courier font.<br />
Diagnostics<br />
The DIAGNOSTICS division contains information about the exit status returned by the <strong>com</strong>mand.<br />
You can test this status to determine the result of the operation the <strong>com</strong>mand was asked to<br />
perform.<br />
See Also<br />
The SEE ALSO section refers to other reference pages that may contain information relevant to<br />
the reference page you have just read.<br />
9 of 457
NAME<br />
man — display online reference pages<br />
SYNOPSIS<br />
man [-wx] [-M path] [type] entry ...<br />
man [-wx] [-T txt_indexes] [type] entry ...<br />
man -h [-wx] [-C chm_indexes] [type] entry ...<br />
man -k [-M path] keyword ...<br />
DESCRIPTION<br />
man<br />
The man <strong>com</strong>mand either displays online reference pages or searches for reference pages that<br />
have specified keywords associated with them.<br />
Normally, man displays the reference page for each specified entry. To display only a reference<br />
page of a given type, specify type on the <strong>com</strong>mand line. type is a number representing which type<br />
of reference pages to search. Reference pages <strong>com</strong>e in the following types:<br />
1 Commands and Utilities<br />
3 Functions<br />
4 File Formats<br />
5 Miscellaneous<br />
To indicate an operating system specific version of the entry (if one exists) or to indicate an<br />
<strong>com</strong>mand specific to a given set of <strong>com</strong>mands and/or functions, append one of the following letters<br />
to the specified type:<br />
n for Windows NT/2000/XP/2003<br />
w for Windows Me<br />
t for Tcl<br />
When output is sent to the terminal, man invokes a pager <strong>com</strong>mand to filter and display the<br />
reference pages. If MANPAGER is defined, it is used. If not, and if PAGER is defined, it is used. If<br />
neither is defined, man defaults to using the <strong>com</strong>mand more -A -s.<br />
Options<br />
10 of 457
-C filelist<br />
specifies a list of .idx files (corresponding to .chm files) to search before searching the<br />
files listed in MAN_CHM_INDEX.<br />
-h<br />
-k<br />
launches the HTML Help viewer and displays the HTML Help version of the reference page.<br />
The reference page is found by searching each .idx listed in the MAN_CHM_INDEX file<br />
(or indicated by the -C option) for an entry matching entry and type that indicates which<br />
page in the corresponding .chm file to display.<br />
searches a pre<strong>com</strong>puted database of synopsis lines for information on keywords.<br />
-M path<br />
searches the directories indicated by path for reference pages. If -M is not specified, man<br />
uses the path specified in the MANPATH environment variable if it is set; otherwise man<br />
searches ROOTDIR/etc. All reference pages are found by searching similarly structured<br />
file trees rooted at one or more places. See the FILES section for a description of the files<br />
and directories man should find in each directory that it searches.<br />
-T filelist<br />
specifies a list of .idx files to search before searching the files listed in MAN_TXT_INDEX<br />
when looking for a text version of a reference page.<br />
-w<br />
-x<br />
displays only the file name of the file containing the specified entry.<br />
displays the files that man is searching as it tries to find the entry.<br />
Search Rules<br />
To find a given entry, man follows a set of search rules. When you specify a type, man searches for<br />
the appropriate page amongst pages of that type; otherwise, man looks for the first page named<br />
entry regardless of the type.<br />
When the -h option is specified, man searches the .idx files listed in the MAN_CHM_INDEX<br />
environment variable for an entry matching the specified entry which indicates the HTML Help<br />
page in corresponding .chm to display. The HTML Help viewer is launched, displaying the page.<br />
Once you exit, the view, the man <strong>com</strong>mand exits.<br />
When -h is not specified, man takes the following steps to find the entry. Once a step results in<br />
11 of 457
finding the entry, man displays the reference page and exits.<br />
● man searches the .idx files listed in the MAN_TXT_INDEX environment variable for an<br />
entry matching the request entry which indicates the text (.txt) reference page to display.<br />
● man checks each directory in MANPATH for a file named man.dbz. If it exists, man looks for<br />
the requested entry in its index (see man.dbz File Format).<br />
● For each possible type (that is, type if you specified it, or all types in order from 1 through 9,<br />
then 0 if you did not):<br />
● man checks each directory in MANPATH for a file named catn/entry.n[l] where n<br />
is the type number, and l is the optional letter code. If it exists, man checks to see if it<br />
was <strong>com</strong>pressed with pack, <strong>com</strong>press or mkszip, and un<strong>com</strong>presses it (calling<br />
pcat if the file was packed).<br />
● man checks each directory in MANPATH for a file named mann/entry.n[l].<br />
man.dbz File Format<br />
Sometimes, the reference pages are kept in a single large file, called man.dbz. The file starts with<br />
a magic text string:<br />
!\n<br />
and continues with the index:<br />
14 bytes formatted reference page name<br />
9 bytes seek pointer<br />
9 bytes length<br />
The name is simply the page name, followed by a dot and the type number. For example, this<br />
reference page would be named man.1. When man finds a matching entry, it seeks to the point in<br />
the file specified by the given seek pointer, and un<strong>com</strong>presses for length bytes. Each reference<br />
page is <strong>com</strong>pressed separately.<br />
EXAMPLES<br />
To find the utilities that do <strong>com</strong>parisons, type:<br />
man -k <strong>com</strong>par<br />
12 of 457
ENVIRONMENT VARIABLES<br />
MAN_CHM_INDEX<br />
contains a semicolon separated list of .idx files to search for entry when the -h is<br />
specified.<br />
MAN_TXT_INDEX<br />
contains a semicolon separated list of .idx files to search for entry when the -h is not<br />
specified.<br />
MANPATH<br />
contains a semicolon separated list of paths to search for reference pages.<br />
MANPAGER, PAGER<br />
contains an output filtering <strong>com</strong>mand for use when displaying reference pages on a<br />
terminal.<br />
TMPDIR<br />
identifies the directory where temporary files reside.<br />
FILES<br />
ROOTDIR/etc<br />
is the default directory for the online reference pages. The rest of the files listed here reside<br />
in this directory.<br />
cat[0-9]/*.[0-9]<br />
pre-formatted reference pages in normal, <strong>com</strong>pressed, or packed form.<br />
man[0-9]/*.[0-9]<br />
unformatted reference pages.<br />
whatis<br />
is a database used by -k option.<br />
*.chm<br />
HTML Help files containing collections of reference pages <strong>com</strong>plete with index, table of<br />
contents, and full text search.<br />
*.idx<br />
index files that man how to find HTML Help and text versions of individual reference files.<br />
13 of 457
The .idx files to search are indicated by the MAN_CHM_INDEX and MAN_TXT_INDEX<br />
environment variables.<br />
man.dbz<br />
is a master file containing all reference pages.<br />
The etc directory is found using the ROOTDIR environment variable.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
PORTABILITY<br />
— unknown <strong>com</strong>mand line option<br />
— missing path after an -M option<br />
— no information available on the desired subject<br />
— unable to create a child process to format reference page<br />
— child process returned with non-zero exit status<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -C, -h, -M, -T, -w, and -x options, the MANPAGER, MAN_CHM_INDEX, and<br />
MAN_TXT_INDEX environment variables, the default pager, the ability to specify type on the<br />
<strong>com</strong>mand line, and the ability to display reference pages in HTML Help format are all extensions to<br />
the POSIX and XPG standards.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
14 of 457
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
help, manstrip, more<br />
15 of 457
si about<br />
displays product information<br />
SYNOPSIS<br />
si about [--[no]batch] [--cwd=directory] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] [(-?|--usage)]<br />
DESCRIPTION<br />
si about displays information about this copy of MKS Source Integrity.<br />
Options<br />
si about takes a subset of the universal options available to si <strong>com</strong>mands. For example,<br />
si about --gui<br />
displays the product information in a GUI window. See the options reference page for<br />
descriptions.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
16 of 457
si acceptcp<br />
accepts change package<br />
SYNOPSIS<br />
si acceptcp [--<strong>com</strong>ments=value] [--<strong>com</strong>mentsFile=value]<br />
[--reviewer=[user|group:|super|all]] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
issue|issue:change package id...<br />
DESCRIPTION<br />
si acceptcp casts an accept vote on a change package under review and in the submitted<br />
state.<br />
After a change package is submitted, each individual reviewer and one member of each reviewer<br />
group (if specified) in the reviewer list must accept the change package before it can be <strong>com</strong>mitted<br />
to the repository and then closed.<br />
If there are reviewers in addition to yourself, an e-mail is sent to notify those reviewers that you<br />
have cast an accept vote for the change package.<br />
When all of the individual reviewers and at least one reviewer from each reviewer group have<br />
accepted the change package, an e-mail is sent to notify the reviewers and the creator that the<br />
change package is accepted.<br />
Once the final required accept vote is cast, the change package is accepted and then <strong>com</strong>mitted to<br />
the repository. If the change package is successfully <strong>com</strong>mitted to the repository, it then moves to<br />
a state of Closed. If the change package fails to <strong>com</strong>mit to the repository, the change package<br />
moves to a state of CommitFailed. Correct the error, then submit the change package again.<br />
If the change package under review is closed, an e-mail notification of the Closed state is sent to<br />
the change package watchers. All e-mail notifications contain Change Package and Review<br />
information.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
17 of 457
--<strong>com</strong>ments=value<br />
specifies <strong>com</strong>ments recorded in the review log with the vote.<br />
--<strong>com</strong>mentsFile=value<br />
specifies a text file that contains the <strong>com</strong>ments to be recorded in the review log with the<br />
vote.<br />
--reviewer=[user|group:|super|all]<br />
specifies the capacity in which you are casting an accept vote.<br />
user<br />
casts a vote as an individual reviewer in the reviewer list.<br />
group:<br />
casts a vote on behalf of the entire group (only one user from a group is necessary to<br />
vote on behalf of the entire group).<br />
super<br />
an overriding accept vote that is sufficient for accepting the change package even if<br />
there are additional reviewers. A super reviewer does is not required to be a listed<br />
reviewer for the change package.<br />
all<br />
casts a vote as a specific user and any group to which the reviewer belongs.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all submitted change packages that you want<br />
to cast accept votes for; use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to cast an accept vote for;<br />
use spaces to specify more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si co, si cpissues , si createcp, si drop, si lock, si<br />
viewcps, si rejectcp, si opencp, si discardcp,<br />
18 of 457
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
19 of 457
si add<br />
adds a new member to a project<br />
SYNOPSIS<br />
si add [--archive=filename] [--author=name] [(--binaryFormat|--textFormat)]<br />
[(--cpid ID|--changePackageId=ID)] [--[no]defer] [--[no|confirm]closeCP] [--issueId=ID] [(ddesc|--description=desc)]<br />
[--descriptionFile=file] [--issueId=ID] [(-l|--lock)]<br />
[--onExistingArchive=[confirm|sharearchive|newarchive|cancel]]<br />
[--[no]createSubprojects] [--[no]retainWorkingFile] [--[no]saveTimestamp]<br />
[--[no]unexpand] [(-r rev|--revision=rev)] [(-R|--[no|confirm]recurse)]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [--cwd=directory] [(-F file|--selectionFile=file)] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [(-N|--no)] [--[no]batch] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] [(-?|--usage)] [(-Y|--yes)] [-R|--[no|confirm]recurse]<br />
[--[no|confirm]includeFormers] [--exclude=file:pattern,dir:pattern...]<br />
[--include=file:pattern,dir:pattern...] nonmember...<br />
DESCRIPTION<br />
si add adds one or more nonmember files located in a sandbox directory to a project.<br />
For example, you can add a member from the c:\apps\prototype\ directory by specifying:<br />
si add --description="Prototype application header"<br />
-S prototype.pj header.c<br />
adds the header.c file to the project as a new member with the description "Prototype application header".<br />
Since the member is added to the project on the Source Integrity Server, all other users who have sandboxes<br />
pointing to the project can see the same new member. Source Integrity creates a history on the server for each<br />
newly added member that does not already have a history.<br />
If you intend to add files that already have a history, such as files you used in another project but wish to reuse<br />
in a new project, or a member that previously has been dropped (see si drop), then use the si<br />
addmemberfromarchive <strong>com</strong>mand. By default, if histories exist for members you add and you choose to<br />
attach the new members to them, Source Integrity creates a branch of the head revision.<br />
Adding a member that previously has been dropped (see si drop) results in the history of the dropped<br />
member be<strong>com</strong>ing the history of the newly added member.<br />
Tip: To add existing members to a new project more quickly, place the files on the server and use the si<br />
import <strong>com</strong>mand. MKS re<strong>com</strong>mends using the si import <strong>com</strong>mand for batch imports of a directory tree,<br />
or of history files from older versions of Source Integrity.<br />
Options<br />
20 of 457
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See<br />
the options reference page for descriptions.<br />
--archive=filename<br />
sets the archive file name, filename, containing the server-side path and name by which the newly<br />
added member will be archived. This must be an existing archive file - this option does not create a new<br />
archive. This is an advanced option that effectively specifies an archive path to override the default<br />
mapping, allowing a basic form of archive sharing between projects; its use is not re<strong>com</strong>mended except<br />
by advanced Source Integrity administrators.<br />
-r=value<br />
--revision=value<br />
Specifies the revision at which the member is to be added. By default, the member is added at the latest<br />
revision on the main branch. Values of 0.0 and 0.1 are acceptable revision numbers. The revision<br />
specified precludes specifying earlier revisions at a later date, for example after specifying 1.3, you<br />
cannot specify 1.2 as a valid revision.<br />
--author=name<br />
specifies an author name.<br />
--binaryFormat<br />
--textFormat<br />
forces the storage of the member file to occur in binary format or text format. This option overrides the<br />
preferences settings that control default behavior in the application for storage format. See the si<br />
setprefs and si viewprefs <strong>com</strong>mands for more details on preferences.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452:1. Note the following about<br />
using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is enabled,<br />
and/or it is mandatory to specify a change package.<br />
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if no change<br />
package is applicable, you must specify --changePackageId=:none.<br />
--[no]defer<br />
controls whether to delay the add operation in the project until the deferred operation is submitted. The<br />
operation in the sandbox still takes place immediately.<br />
If the change package reviews are mandatory, specify the --deferred option to create a pending entry<br />
for this operation at the time of change package submission. If the --deferred option is not enabled,<br />
Source Integrity creates the pending entry at the <strong>com</strong>pletion of this procedure. When a deferred add<br />
member operation is submitted as part of a review, a pending member is created For more information,<br />
see the Source Integrity Enterprise User Guide.<br />
--[no|confirm]closeCP<br />
controls whether to close the associated change package.<br />
--nocloseCP means do not close the change package.<br />
--confirmcloseCP means ask before closing the change package.<br />
21 of 457
--closeCP always closes the change package.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is another way of<br />
adding members to a change package. If you have an issue assigned to you that contains one open<br />
change package, you can specify the issue ID instead of the change package ID. See the Integrity<br />
Server Administration Guide or your administrator for details on using the Integrity Manager integration.<br />
-l<br />
--lock<br />
controls whether to lock the newly created revision.<br />
--onExistingArchive=[confirm|sharearchive|newarchive|cancel]<br />
controls whether to allow sharing of this member's history between projects, or to create a new archive if<br />
there is already an existing archive for the member.<br />
--onExistingArchive=confirm means always ask whether to share the archive, create a new<br />
archive, or cancel the operation.<br />
--onExistingArchive=sharearchive means share the archive.<br />
--onExistingArchive=newarchive means create a new archive.<br />
--onExistingArchive=confirmsharearchive means always ask before sharing an archive.<br />
--onExistingArchive=confirmnewarchive means always ask before creating a new archive.<br />
--onExistingArchive=cancel means cancel the operation.<br />
--description=desc<br />
specifies a description for the new archive; this setting and the --descriptionFile option are<br />
mutually exclusive. If specifying a nonmember that has an existing history, this description does not<br />
overwrite an existing description and is ignored.<br />
Note: <strong>Description</strong>s that include spaces must be enclosed by quotes.<br />
-d desc<br />
--descriptionFile=file<br />
specifies a file for obtaining a description to apply to the new archive; this setting and the<br />
--description option are mutually exclusive. If specifying a nonmember that has an existing history,<br />
this description does not overwrite an existing description and is ignored.<br />
--[no]createSubprojects<br />
controls whether to create subprojects for each subdirectory encountered when adding members. This<br />
option is <strong>com</strong>monly used where you anticipate working with a large directory structure, because multiple<br />
subprojects are easier to manage than many subdirectories within one project. For example, specifying:<br />
si add --createSubprojects --description="Button Application"<br />
\buttons\activebutton.c<br />
creates a subproject for the \buttons directory and adds the file activebutton.c. Without the -createSubprojects<br />
option, the file and its path simply would be added to the project in the current<br />
directory.<br />
22 of 457
--[no]retainWorkingFile<br />
controls whether to retain a working file in the sandbox after adding the new member.<br />
--[no]saveTimestamp<br />
controls whether to set the revision timestamp to the modification date and time of the working file rather<br />
than the current date and time.<br />
--[no|confirm]includeFormers<br />
controls whether to include former members. Former members are members that have been dropped<br />
but whose working files still reside in the sandbox directory.<br />
--[no]unexpand<br />
controls whether to unexpand keywords in the member file before checking it into the history. Keyword<br />
expansion is only available in text archives, not binary archives. For descriptions of the Source Integrity<br />
keywords, see the Source Integrity User Guide. Possible keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
$Source$<br />
$State$<br />
-R<br />
--[no|confirm]recurse<br />
controls whether to select non-members recursively. Non-members are files that exist in the sandbox<br />
directory but have not previously been added to the server repository.<br />
--exclude=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for excluding members.<br />
--include=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for including members.<br />
nonmember...<br />
identifies a specific file to add to your sandbox; use spaces to specify more than one.<br />
Note: All files must be added "in tree", that is, the nonmember must exist in the sandbox directory or a<br />
subdirectory. Shared "out of tree" histories are supported by using the --archive option to point to the<br />
"out of tree" history that you want to associate with the member.<br />
DIAGNOSTICS<br />
23 of 457
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addmemberfromarchive, si import, si ci, si closecp, si co, si cpissues, si<br />
createcp, si drop, si projects, si sandboxes, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
24 of 457
si addlabel<br />
assigns a label to project members<br />
SYNOPSIS<br />
si addlabel [--[no|confirm]moveLabel] [(-r rev|--revision=rev)] [(-L label|--label=label)]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si addlabel assigns a label to a revision of one or more members of an MKS Source Integrity project. If you<br />
do not specify any members, the si addlabel <strong>com</strong>mand applies to all project members.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See<br />
the options reference page for descriptions.<br />
--[no|confirm]moveLabel<br />
controls whether the application should move a label from one revision to another.<br />
--nomoveLabel disables the moving of a label.<br />
--confirmmoveLabel displays a confirmation message.<br />
--moveLabel moves the label.<br />
-L label<br />
--label=label<br />
identifies a label. To add the label "October 15th Prototype" to a member file activebutton.c, you<br />
would enter<br />
Note the following about using labels:<br />
si addlabel -L "October 15th Prototype" activebutton.c<br />
❍ Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
❍ Labels cannot have the same format as a valid revision number.<br />
❍ Labels that include spaces must be enclosed by quotes.<br />
❍ MKS re<strong>com</strong>mends not using hyphens (-) in labels. Using hyphens may cause some si <strong>com</strong>mands to fail.<br />
❍ Labels cannot contain numbers without any spaces, for example, 14325. Numbers that contain spaces<br />
25 of 457
are acceptable, for example, 2432 1234.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addprojectlabel, si ci, si deletelabel, si deleteprojectlabel , si rlog, si<br />
viewlabels<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
26 of 457
si addmemberattr<br />
adds attributes to a member<br />
SYNOPSIS<br />
si addmemberattr [(--attr=key[=value]|--attribute=key[=value])]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si addmemberattr adds attributes to a member, replacing any previous attribute of that same<br />
name specified with the member. If no members are specified, the <strong>com</strong>mand applies to all<br />
members of the project.<br />
Attributes are key-value pairs of strings that are associated with a member. They are used for<br />
automated operations. For example, you could have an attribute indicating the target operating<br />
system type:<br />
si addmemberattr --attr OS=WIN32 activebutton.c<br />
and then you could perform other operations, such as si resync, on just those files through the<br />
--filter universal option:<br />
si resync --filter=attribute:OS=WIN32<br />
Note: Attribute keys cannot contain a hyphen (-) as the first character. The first character must<br />
either be a underscore (_) or an alpha character.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--attr=key[=value]<br />
--attribute=key[=value]<br />
sets the attribute key and, optionally, the value. Note: you cannot have <strong>com</strong>mas (,) in the<br />
key or value, nor an underscore (_) at the beginning of an attribute.<br />
27 of 457
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addprojectattr, si dropmemberattr, si dropprojectattr<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
28 of 457
si addmemberfromarchive<br />
adds a member from a server archive<br />
SYNOPSIS<br />
si addmemberfromarchive [--archive=value] [--[no]createSubprojects] [--[no]defer]<br />
[--[no|confirm]includeFormers] [--include=file:pattern,dir:pattern...] [--exclude=file:pattern,dir:pattern...]<br />
[--cpid|--changePackageId=value] [--[no|confirm]closeCP] [--issueId=value] [--devpath=value]<br />
[-P|--project=value] [-r|--revision=value] [-S|--sandbox=value] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] nonmember...<br />
DESCRIPTION<br />
si addmemberfromarchive adds members from server archives.<br />
The si addmemberfromarchive <strong>com</strong>mand can be used for the following:<br />
● Add previously dropped members without requiring a sandbox working file, while preserving the member<br />
history.<br />
From the sandbox directory, for example, and assuming the three specified members have just been<br />
mistakenly dropped, the following <strong>com</strong>mand will re-add them:<br />
si addmemberfromarchive label.c button.c panel.c<br />
● Add a member that shares the history of another existing member, where the source member can be located<br />
in another project from the added member.<br />
From the sandbox directory, for example, the following <strong>com</strong>mand will add a member named largeLabel.c that<br />
shares the history with all members already linked to the specified archive location.<br />
si addmemberfromarchive --archive=/anotherproject/rcs/label.c largeLabel.c<br />
Note the following about the <strong>com</strong>mand:<br />
● can be deferred when performed from a sandbox<br />
● may be part of change package review (displayed as pending members in the project)<br />
● supports multiple selection of archives using the wizard<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
--archive=value<br />
a non-default archive location (the specified archive must exist on the server). To add several members with<br />
29 of 457
non-default archive locations in one operation, use the GUI wizard (si addmemberfromarchive -g ).<br />
-r=value<br />
--revision=value<br />
specifies the revision at which the member is to be added. This must be an existing revision in the archive. By<br />
default, the member is added at the latest revision on the main branch.<br />
--[no]createSubprojects<br />
controls whether to create subprojects for each subdirectory encountered when adding members. This option<br />
is <strong>com</strong>monly used where you anticipate working with a large directory structure, because multiple subprojects<br />
are easier to manage than many subdirectories within one project. For example, specifying:<br />
Application"<br />
si addmemberfromarchive --createSubprojects --description="Button<br />
\buttons\activebutton.c<br />
creates a subproject for the \buttons directory and adds the file activebutton.c. Without the -createSubprojects<br />
option, the file and its path simply would be added to the project in the current directory.<br />
--[no]defer<br />
controls whether to delay the add member from archive operation in the project until the deferred operation is<br />
submitted. The operation in the sandbox still takes place immediately.<br />
If the change package reviews are mandatory, specify the --defer option to create a pending entry for this<br />
operation at the time of change package submission. If the --defer option is not specified, Source Integrity<br />
creates the pending entry at the <strong>com</strong>pletion of this operation. When a deferred import member operation is<br />
submitted as part of a review, a pending member is created For more information, see the Source Integrity<br />
Enterprise User Guide.<br />
--[no|confirm]includeFormers<br />
controls whether to include former members. Former members are members that have been dropped but<br />
whose working files still reside in the sandbox directory.<br />
--exclude=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for excluding members.<br />
--include=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for including members.<br />
--cpid=value<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452. Note the following about using<br />
this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is enabled, and/or it<br />
is mandatory to specify a change package.<br />
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if no change<br />
package is applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change package ID is<br />
displayed by default, if :none was specified or at least one change package was successfully updated<br />
from the last operation.<br />
--[no|confirm]closeCP<br />
closes the change package after <strong>com</strong>mand <strong>com</strong>pletion.<br />
--issueID=value<br />
specifies the issue ID that corresponds to the change package that records the changes.<br />
30 of 457
nonmember...<br />
identifies non-members to add; use spaces to specify more than one non-member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si co, si cpissues , si createcp, si drop, si lock, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
31 of 457
si addproject<br />
adds an existing project to the list of top-level projects<br />
SYNOPSIS<br />
si addproject [--[no]openView] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
[--[no]add] project location...<br />
DESCRIPTION<br />
si addproject adds an existing project to the list of top-level projects.<br />
The si addproject <strong>com</strong>mand can be used for the following:<br />
● Expose an existing subproject as a top-level project.<br />
● Expose a project imported with the --noadd flag.<br />
● Re-expose a dropped top-level project.<br />
Note: This <strong>com</strong>mand actually has to perform a processing very similar to the ImportProject<br />
<strong>com</strong>mand. This is why those two <strong>com</strong>mands share the ImportProject ACL.<br />
MKS suggests you use si Addproject when the project is already in the Source Integrity<br />
repository and si ImportProject when importing projects from older versions of Source<br />
Integrity.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]openView<br />
controls whether to open the project view after this project is added. If --noopenView is<br />
used, the project view does not open.<br />
project location...<br />
identifies a location on the Integrity Server for the existing project to be added. Regardless<br />
of your operating system, all paths are specified here using forward slashes (/) and should<br />
include the name of the project file (typically project.pj). Use spaces to specify more<br />
than one project location.<br />
32 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si checkpoint, si createproject, si createsandbox, si createsubproject,<br />
si dropproject, si addsandbox, si projects, si importproject, si<br />
viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
33 of 457
si addprojectattr<br />
adds attributes to a project<br />
SYNOPSIS<br />
si addprojectattr [(--attr=key[=value]|--attribute=key[=value])]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si addprojectattr adds attributes to a project, replacing any previous attribute of the same<br />
name specified with the project.<br />
Attributes are key-value pairs of strings that are associated with the project. They are used for<br />
automated operations. For example, you could have an attribute indicating the target operating<br />
system type:<br />
si addprojectattr --attr OS=WIN32<br />
Note: Attribute keys cannot contain a hyphen (-) as the first character. The first character must<br />
either be a underscore (_) or an alpha character.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--attr=key[=value]<br />
--attribute=key[=value]<br />
sets the attribute key and, optionally, the value. Note: you cannot have <strong>com</strong>mas (,) in the<br />
key or value, nor an underscore (_) at the beginning of an attribute.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
34 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addmemberattr, si dropmemberattr, si dropprojectattr, si<br />
dropsandboxattr, si addsandboxattr<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
35 of 457
si addprojectlabel<br />
assigns a label to a project<br />
SYNOPSIS<br />
si addprojectlabel [--[no|confirm]moveLabel] [(-L label|--label=label)]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si addprojectlabel assigns a label to a checkpointed revision of a project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]moveLabel<br />
controls whether the application should move a label from one revision to another.<br />
--nomoveLabel disables the moving of a label.<br />
--confirmmoveLabel displays a confirmation message.<br />
--moveLabel moves the label.<br />
-L label<br />
--label=label<br />
identifies a label. Note the following about using labels:<br />
❍ Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
❍ Labels cannot have the same format as a valid revision number.<br />
❍ Labels that include spaces must be enclosed by quotes.<br />
❍ MKS re<strong>com</strong>mends not using hyphens (-) in labels. Using hyphens may cause some<br />
si <strong>com</strong>mands to fail.<br />
❍ Labels cannot contain numbers without any spaces, for example, 14325. Numbers<br />
that contain spaces are acceptable, for example, 2432 1234.<br />
36 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addlabel, si ci, si deletelabel, si deleteprojectlabel , si rlog, si<br />
viewlabels<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
37 of 457
si addsandboxattr<br />
adds sandbox attributes<br />
SYNOPSIS<br />
si addsandboxattr [--attr|attribute=key=value] [-S|--sandbox=value]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-Ffile|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si addsandboxattr adds sandbox attributes.<br />
Note: Attribute keys cannot contain a hyphen (-) as the first character. The first character must<br />
either be a underscore (_) or an alpha character.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--attr=key=value<br />
--attribute=key=value<br />
specifies the attibute to set.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
38 of 457
si dropsandboxattr, siconfiguresandbox, add projectattr,<br />
dropprojectattr<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
39 of 457
si addsubproject<br />
adds an existing subproject to a project<br />
SYNOPSIS<br />
si addsubproject [-r subproject revision|--subprojectRevision=subproject revision]<br />
[--subprojectDevelopmentPath=subproject development path name|--variant=subproject development path<br />
name] [--type=[normal|variant|build|default]] [(-Pproject|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)]<br />
[(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] subproject location...<br />
DESCRIPTION<br />
si addsubproject allows you to re-add a dropped subproject to recreate an earlier version of the project.<br />
Note: If you want to add a normal subproject to a variant project, the normal subproject does not require a<br />
development path.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
-r=subproject revision<br />
--subprojectRevision=subproject revision<br />
specifies the revision number (for build subprojects). For example, 1.5. This option is used with -type=build.<br />
--subprojectDevelopmentPath=subproject development path name<br />
--variant=subproject development path name<br />
specifies the development path name (for variant subprojects). For example, Service_Pack3. This option is<br />
used with --type=variant<br />
--type=[normal|variant|build|default]<br />
specifies the new configuration type for the subproject.<br />
--type=normal configures the subproject based upon the current state of the subproject.<br />
--type=variant configures the subproject based upon a specific development path. The option is used<br />
with --variant=subproject development path name or --subprojectDevelopmentPath=subproject<br />
development path name.<br />
--type=build configures the subproject as a static subproject based upon a specific revision of the master<br />
project that is used for building or testing the project, but not for further development. This option is used with -<br />
r subproject revision or --subprojectRevision=subproject revision.<br />
--type=default configures the subproject based on the type that is consistent with the parent project that<br />
you are adding the subproject to. For example, if you add a subproject to a normal project, the subproject is<br />
added as a normal type. For information on what the default type is, see your administrator.<br />
-P project name<br />
40 of 457
--project=project name<br />
specifies the path and name of the project to add the subproject to, for example,<br />
c:/Aurora_Program/bin/project.pj.<br />
subproject location...<br />
specifies the path and name of the subproject you want to add, for example,<br />
c:/Aurora_Program/bin/Libra/project.pj<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si checkpoint, si configuresubproject , si createproject , si createsandbox , si drop,<br />
si dropproject, si importproject, si projectinfo, si projects, si sharesubproject, si<br />
viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
41 of 457
si annotate<br />
displays an annotated revision.<br />
SYNOPSIS<br />
si annotate [--[no]defaultFormat] [--[no|un]expand]<br />
[--fields=field1[:width1],field2[:width2]...] [-height=value] [-width= value] [-x=value]<br />
[-y=value] [-r|--revision=value] [--devpath=value] [-P|--project=value]<br />
[-S|--sandbox=value] [--projectRevision=value] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member<br />
DESCRIPTION<br />
si annotate displays an annotated revision. Use the <strong>com</strong>mand when you want to know the<br />
reason and circumstances a line was introduced or changed. Rather than viewing the content of<br />
each revision in the history one revision at a time, you can see the line by line history that includes<br />
information on a per revision basis.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]defaultFormat<br />
specifies if the default format is used to display the output.<br />
--[no|un]expand<br />
specifies if the keywords are expanded in the output.<br />
--fields=field1[:width1],field2[:width2]...<br />
The fields available for printing can be one or more of the following:<br />
author<br />
displays the author of the revision.<br />
cpid<br />
displays the line's associated change package ID.<br />
date<br />
displays the date each line in the history was created.<br />
labels<br />
displays revision labels.<br />
linenum<br />
42 of 457
displays the line number for each line of text in the revision..<br />
revision<br />
displays the line's revision number.<br />
text<br />
displays the text contained in the line.<br />
--height=value<br />
specifies the height in pixels of the window.<br />
--width=value<br />
specifies the width in pixels of the window.<br />
--x=value<br />
specifies the x location in pixels of the window.<br />
--y=value<br />
specifies the y location in pixels of the window.<br />
-r|--revision=value<br />
specifies the revision number to view.<br />
--devpath=value<br />
selects the revision of the member on a specified development path. Can also be used to<br />
specify the development path the revision is on, which is used to refer to variant projects.<br />
-P|--project=value<br />
specifies the name of the target project.<br />
-S|--sandbox=value<br />
specifies the name of the sandbox and can be used as project redirector.<br />
--projectRevision=value<br />
specifies the project revision number and can be used to refer to build projects.<br />
member<br />
specifies the name of the member to view.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si<br />
43 of 457
viewprojecthistory, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
44 of 457
si appendrevdesc<br />
appends additional text to a revision description<br />
SYNOPSIS<br />
si appendrevdesc [(-d desc|--description=desc)] [--descriptionFile=file]<br />
[(-r rev|--revision=rev)] [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si appendrevdesc appends additional text to a revision description. A revision description is<br />
created when you check in a new revision. When you review the description for a specific revision,<br />
through the si viewhistory <strong>com</strong>mand, you see the appended information in a manner similar<br />
to the following:<br />
Options<br />
--- Added <strong>com</strong>ments --- sholmes [2002/07/20 20:23:55Z]<br />
Appended <strong>Description</strong><br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-d desc<br />
--description=desc<br />
specifies the new description text to be appended to the existing revision description. These<br />
options and the --descriptionFile option are mutually exclusive.<br />
Note:<br />
<strong>Description</strong>s that include spaces must be enclosed by quotes.<br />
--descriptionFile=file<br />
specifies a file name, file, containing the new description text to be appended to the existing<br />
revision description. This option and the -d or --description options are mutually<br />
exclusive.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
45 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addlabel, si archiveinfo, si ci<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
46 of 457
si applycp<br />
applies one or more change packages to a Source Integrity project<br />
SYNOPSIS<br />
si applycp [--[no]alreadyInProjectIsError]<br />
[--backFill=[cp|revision|error|skip|ask]] [--[no|confirm]closeCP]<br />
[--[no]confirm] [--[no|confirm]createVariants] [--[no]ignoreBranches]<br />
[--[no]ignoreServer] [--[no]otherProjectIsError ] [--[no]spanProjects]<br />
[--[no]verbose] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--hostname =server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N |--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd =directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
[--cpid|--changePackageID=value] [--[no]ignoreUpdateRevision] [--issueID=value]<br />
issue|issue:change package id...<br />
DESCRIPTION<br />
si applycp applies one or more change packages to a Source Integrity project, incorporating<br />
only the changes you want.<br />
Feature Overview<br />
A change package specifies groups of members that are affected by an issue. An issue tracks<br />
changes that occur during the development process. An example of a change package would be a<br />
group of files that need to be changed to address a problem in program code.<br />
Both Apply CP and Resync CP rely on the use of change packages to track individual changes that<br />
modify project content or create new content. If a development team has been using change<br />
packages consistently, Source Integrity can isolate all changes related to a specific issue because<br />
this information is recorded as part of the change package. Once the dependencies are calculated,<br />
the operation <strong>com</strong>pletes and the change packages are applied in the project.<br />
If a development team does not use the change package methodology, isolating specific content<br />
be<strong>com</strong>es a <strong>com</strong>plex, manual task. In a large code project, this could mean searching hundreds of<br />
files to determine which ones are related to a specific issue. To build the project, it would then be<br />
necessary to add, drop, rename, and move files, update file revisions, merge around unwanted<br />
revisions, merge in required changes, and merge out any unwanted changes.<br />
Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated process be<strong>com</strong>es largely<br />
automated. In Source Integrity, the Apply CP operation adds, drops, renames, and moves files,<br />
47 of 457
and updates file revisions as required to create the desired change. If merging is required, you can<br />
use the Resync CP <strong>com</strong>mand. Resync CP allows you to either merge in desired changes or merge<br />
around unwanted changes.<br />
Apply CP and Resync CP are most useful for code and other text files where differencing can be<br />
performed.<br />
The Change Package Methodology<br />
When used across a development project, Apply CP and Resync CP are powerful tools for<br />
managing changes and new content. However, the effectiveness of the functionality ultimately<br />
relies on the following factors:<br />
● accurate and consistent logging of issues into the Integrity Manager database<br />
● associating related changes into a single change package that ultimately addresses the<br />
issue in question<br />
Because issues, and their associated change packages, follow a workflow progression, it is critical<br />
that each member of the development team record and track all changes as they are made, from<br />
the initial phase to the <strong>com</strong>pletion phase in which the associated problem is addressed. All<br />
changes relating to a given issue must then be associated with the correct change package. Once<br />
the problem is addressed, or the feature added, that change package can be closed.<br />
It is equally important that issues are clearly delineated so that each change package addresses<br />
only one problem area or feature. Certainly, one problem area or feature may require many files to<br />
address it, but if you create a change package that is too wide in scope, it be<strong>com</strong>es difficult to<br />
extract specific changes later on.<br />
With accurate and consistent logging, Source Integrity can clearly identify the specific member<br />
revisions (or files) that address the identified problem or <strong>com</strong>plete the required feature. Without this<br />
type of tracking, applying a change package may not have the desired results and manual reviews<br />
may be<strong>com</strong>e necessary.<br />
The Commands<br />
Consider the following scenario at abcBusiness--a major customer purchased version 2.0 of<br />
abcBusiness' Aurora software. The customer now wants a new feature--data <strong>com</strong>pression--that<br />
they can use with Aurora 2.0 The development team at abcBusiness has already <strong>com</strong>pleted work<br />
on a data <strong>com</strong>pression feature, bu the feature has been engineered only as part of the up<strong>com</strong>ing<br />
Aurora 3.0 release.<br />
To address the customer's needs, abcBusiness would normally have to assign a separate<br />
development team to create the new feature for Aurora 2.0 But how can abcBusiness take<br />
advantage of the work already <strong>com</strong>pleted on the data <strong>com</strong>pression feature and provide it to the<br />
48 of 457
customer?<br />
If the development team has been using change packages, they can isolate the files that relate to<br />
the new data <strong>com</strong>pression feature. However, without the functionality of Apply CP and Resync CP,<br />
the buildmaster at abcBusiness would have to manually search the required change package(s)<br />
and individually review all of the associated files to isolate the changes related to the feature. The<br />
buildmaster would then have to manually add, drop, rename, and move files, update file revisions,<br />
merge around unwanted revisions, merge in required changes, and merge out any unwanted<br />
changes.<br />
Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated process be<strong>com</strong>es largely<br />
automated. In Source Integrity, the Apply CP operation works directly in the project to add and<br />
drop files, and update file revisions as required to create the desired change. Source Integrity<br />
presents you with a list--the backfill list--of all change packages required to capture the issue. In<br />
the Apply CP operation, you must either accept or decline this list--you cannot make selections. If<br />
you accept the list, the Apply CP <strong>com</strong>mand <strong>com</strong>pletes. If you decline the list, the Apply CP<br />
<strong>com</strong>mand cannot <strong>com</strong>plete.<br />
If the Apply CP <strong>com</strong>mand fails because merging is required, you can then run the Resync CP<br />
<strong>com</strong>mand. Resync CP works in a sandbox and allows you to make selections from the backfill list.<br />
Source Integrity then merges around unwanted changes and uses differencing to merge files.<br />
Consider once again, the abcBusiness development team. Because the team has been tracking all<br />
of their changes through the use of change packages, they can target the main trunk of<br />
development and use Apply CP and Resync CP functionality to extract only those files that relate<br />
to the new data <strong>com</strong>pression feature. Those specific change packages can then be applied to a<br />
variant project of Aurora 2.0 and testing carried out within a new project designed specifically for<br />
the customer.<br />
The functionality allows you to maximize existing development work, while being more responsive<br />
to both internal and external stakeholders. Apply CP and Resync CP are especially effective in any<br />
environment where there are large numbers of files to deal with--whether these are code files for a<br />
software project or Web pages for a <strong>com</strong>plex Web site.<br />
Apply CP Example<br />
This section provides an example to show how Apply CP can be used in your environment. In this<br />
example, the buildmaster brings a new feature from the main trunk of project development and<br />
applies it to an earlier release.<br />
The abcBusiness software <strong>com</strong>pany has released their Aurora software, version 3.0. When the<br />
release was <strong>com</strong>pleted, the project was checkpointed and all project members were labelled. The<br />
development team is now working on a new set of features for the next release, 4.0. A new feature<br />
for this release is a timestamp function. All the changes associated with the timestamp function<br />
49 of 457
have been recorded in a change package, or set of issues, that isolates the feature from other<br />
features.<br />
Now abcBusiness receives a request from a customer who has Release 3.0 but also needs the<br />
new timestamp feature for its global operations. The code in development for Aurora 4.0 is not<br />
stable enough for release and too many resources would be required to accelerate the release<br />
schedule. How can abcBusiness provide the timestamp feature without affecting the current<br />
release? Because the code for this feature is isolated within a change package, the Apply CP<br />
<strong>com</strong>mand can be used to transfer the feature to the earlier, stable release.<br />
The buildmaster at abcBusiness would:<br />
● create a variant project off of the checkpoint for version 3.0. This variant project is isolated<br />
from the rest of the development team so that unwanted changes are not added to the main<br />
trunk of the development path.<br />
● use Apply CP to apply the change package to the variant project. The change package<br />
contains all the files that were changed or added to produce the timestamp feature. Apply<br />
CP is essentially adding the feature to the variant of Aurora 3.0.<br />
● create an executable of the software.<br />
That executable can then be tested by Quality Assurance and shipped to the customer.<br />
Using Apply CP<br />
Apply CP relies on the use of change packages to track individual changes that modify project<br />
content or create new content. The Apply CP operation presents you with a backfill list that<br />
includes all of the change packages required for the identified issue. If you accept the backfill list,<br />
the operation then adds, drops, renames, and moves files, and updates file revisions as required to<br />
create the feature, content, or bug fix you are looking for.<br />
How Does Apply CP Work?<br />
The Apply CP operation applies change packages through a revision process. By applying a<br />
change package, you can incorporate only those changes that you want to include in the project.<br />
The Apply CP operation reads the entries in a change package and updates the project to the<br />
revisions listed in that change package. This function of the <strong>com</strong>mand is an automated process of<br />
the Update Revision <strong>com</strong>mand (si updaterevision). The Apply CP operation may also require<br />
that files be added, dropped, renamed, or moved. This function of the <strong>com</strong>mand is an automated<br />
process of the Add Member <strong>com</strong>mand (si add), the Drop Member <strong>com</strong>mand (si drop), the<br />
Rename Member <strong>com</strong>mand (si rename), and the Move Member <strong>com</strong>mand (si move).<br />
Note: If reviews are mandatory, the changes made by an Apply CP operation must be recorded as<br />
pending entries in a change package. The change package must be then submitted, which starts<br />
50 of 457
the review process. For more information on the review process, see the Source Integrity<br />
Enterprise User Guide.<br />
When Should I Use the Apply CP Command?<br />
You should use the Apply CP <strong>com</strong>mand when you need to update a project to include changes<br />
listed in a change package. The updating process updates member revisions, and may also<br />
involve adding, dropping, renaming, and moving files. The Apply CP <strong>com</strong>mand is most useful for<br />
building software.<br />
Are There Any Limitations When Using Apply CP?<br />
The Apply CP operation adds, drops, renames, and moves files, and updates file revisions. Apply<br />
CP does not automatically manage subprojects, for example, it does not delete or remove<br />
subprojects and cannot detect the user’s intentions with respects to handling them. Apply CP only<br />
operates on closed change packages and cannot perform merging. The operation is carried out in<br />
relation to the project. If you run the Apply CP <strong>com</strong>mand from a sandbox, the sandbox acts as a<br />
redirector to the project.<br />
For more detailed information and examples on si applycp, see the Source Integrity Enterprise<br />
User Guide.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]alreadyInProjectIsError<br />
Causes Source Integrity to terminate the operation if the member being resynchronized is<br />
the same one listed in the change package and is already in the project. If this setting is<br />
negated --noalreadyInProjectIsError, then the information is displayed as a<br />
warning.<br />
--backFill=[cp|revision|error|skip|ask]<br />
Specifies the way Source Integrity treats historic revisions required by the specified change<br />
package.<br />
--backFill=cp<br />
recursively chooses all historic revisions required by the specified change packages<br />
and applies them by updating member revisions, adding files, or dropping files.<br />
--backFill=revision<br />
processes only the specified change package(s) and chooses only directly associated<br />
revisions. It does not process any change packages that are associated with<br />
intermediate revisions.<br />
--backFill=error<br />
terminates the operation if other change packages are required but are not specified.<br />
51 of 457
--backFill=skip<br />
causes Source Integrity to merge around backfill revisions.<br />
--backFill=ask<br />
allows you to specify the change packages you want to include.<br />
--[no]confirm<br />
specifies whether to confirm the actions before starting them.<br />
--[no|confirm]createVariants<br />
specifies whether to create variant projects within the target project as required to apply the<br />
change package members.<br />
--[no]ignoreBranches<br />
specifies whether to use the most recent revision when Source Integrity encounters two<br />
revisions of the same member on different branches in the change package being applied.<br />
--[no]ignoreServer<br />
specifies whether to perform the Apply CP operation even if the change package members<br />
reside on different servers.<br />
Note: If you specify --ignoreServer, you must also specify --otherProjectIsError.<br />
This additional setting is required because projects are defined by their server and path.<br />
--[no]ignoreUpdateRevision<br />
ignores update revision change package entries. Use this option when the change package<br />
contains backward revision updates, for example, from 1.4 to 1.2. The default is to include<br />
update revision entries.<br />
--[no]otherProjectIsError<br />
specifies whether to terminate the <strong>com</strong>mand if any member in a change package is in<br />
another project. Change package entries referring to other projects are therefore treated as<br />
an error.<br />
--[no]spanProjects<br />
specifies whether to apply the <strong>com</strong>mand to any member specified in the change package,<br />
even if this involves multiple projects. If you are applying a change package that contains<br />
move member entries, the --[no]spanProjects option must be used.<br />
Warning: This is the only operation that has the potential to affect other projects.<br />
--[no]verbose<br />
specifies whether to include additional information to track the current state of the <strong>com</strong>mand.<br />
--cpid=value<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452. This option is<br />
mandatory if change package reviews are mandatory.<br />
Note the following about using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
52 of 457
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if<br />
no change package is applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--[no|confirm]closeCP<br />
closes the change package after <strong>com</strong>mand <strong>com</strong>pletion.<br />
--issueID=value<br />
specifies the issue ID that corresponds to the change package that records the changes.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all change packages that you want to include;<br />
use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to include; use spaces to<br />
specify more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si resync, si resynccp<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
53 of 457
si archiveinfo<br />
displays information about an archive<br />
SYNOPSIS<br />
si archiveinfo [--[no]labels] [--[no]locks] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si archiveinfo displays global information about an archive. It does not contain any perrevision<br />
information. For example:<br />
Member Name: c:\Documentation\Man_Pages\xml_man\si_add.1.xml<br />
Sandbox Name: c:\Documentation\Man_Pages\project.pj<br />
Archive Name: \rd\doc\Man_Pages\xml_man\rcs\si_add.1.xml<br />
Archive Type: Text<br />
Shared<br />
Strict Locking<br />
Archive <strong>Description</strong>:<br />
Labels:<br />
TechReview1 1.7<br />
PeerReview_1 1.6<br />
Note: Shared displays only if other members share the archive and you are using the database<br />
repository.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]labels<br />
controls whether to show labels and associated revision IDs.<br />
--[no]locks<br />
controls whether to show locks and associated revision IDs.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
54 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si memberinfo, si mods, si revisioninfo, si rlog, si viewhistory, si<br />
viewlabels<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
55 of 457
si checkpoint<br />
checkpoint archives in a project<br />
SYNOPSIS<br />
si checkpoint [--author=name] [(-d desc|--description=desc)]<br />
[--descriptionFile=file] [--[no]labelMembers] [--[no]notify]<br />
[(-L label| --label=label)] [(-s state|--state =state)] [--[no]stateMembers]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
Just as you check in a source file to preserve the changes made to it from one revision to another,<br />
you can also track the evolution of an entire project. In Source Integrity, this process is called<br />
checkpointing.<br />
Checkpointing a project creates a new revision of the project and adds it to the project history.<br />
When you checkpoint a project, you save all the information needed to recreate the project<br />
<strong>com</strong>pletely at any time in the future. The saved information includes the project structure and the<br />
list of members with their revision numbers.<br />
If you are using the database repository, all checkpoints are transactional. This means that a<br />
checkpoint records the structure and contents of the project at the time the checkpoint starts. It<br />
does not include anything added to the project or its subprojects after the checkpoint starts, such<br />
as check ins or submitted change packages. To ensure that only <strong>com</strong>plete change packages are<br />
included in your project checkpoints, your administrator must enable change package reviews. For<br />
more information on change package reviews, see the Source Integrity Enterprise User Guide.<br />
Note:<br />
Options<br />
Checkpointing a project recursively checkpoints all subprojects, creating new subproject<br />
revisions. If you do not want to create new subproject revisions during the checkpoint,<br />
configure them as build subprojects first. See the si configuresubproject <strong>com</strong>mand<br />
for more details.<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
56 of 457
--author=name<br />
specifies an author name to identify the author of the new revision.<br />
-d desc<br />
--description=desc<br />
specifies a description for the checkpointed revisions. These options and the<br />
--descriptionFile option are mutually exclusive.<br />
Note:<br />
<strong>Description</strong>s that include spaces must be enclosed by quotes.<br />
--descriptionFile=file<br />
specifies a file name, file, containing the description text for the checkpointed revisions. This<br />
option and the -d or --description options are mutually exclusive.<br />
--[no]labelMembers<br />
controls whether to label the members in addition to the project. If labelMembers is<br />
specified, labels are always moved to the revision, even if they already exist on another<br />
revision. Each member is labeled at the member revision.<br />
Note:<br />
While using this option is not necessary in order to reconstruct the state of a project<br />
at a later date, some sites find this option useful for such an action.<br />
--[no]notify<br />
controls whether to notify when the checkpoint is <strong>com</strong>plete.<br />
-L label<br />
--label=label<br />
identifies a label. The label is applied to the checkpointed revision of the project, and to all<br />
members if --labelMembers is specified. Note the following about using labels:<br />
❍ Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
❍ Labels cannot have the same format as a valid revision number.<br />
❍ Labels that include spaces must be enclosed by quotes.<br />
❍ MKS re<strong>com</strong>mends not using hyphens (-) in labels. Using hyphens may cause some<br />
si <strong>com</strong>mands to fail.<br />
-s state<br />
--state=state<br />
specifies a state, state, for the checkpointed revisions. The state is applied to the<br />
checkpointed revision of the project, and to all members if --stateMembers is specified.<br />
--[no]stateMembers<br />
controls whether to set the state for members at member revision, in addition to the project.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
57 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addprojectattr, si addprojectlabel, si ci, si createdevpath, si<br />
createproject, si createsubproject, si importproject, si memberinfo, si<br />
projectinfo, si projects, si promoteproject, si setprojectdescription,<br />
si viewproject, si viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
58 of 457
si ci<br />
checks in members of a sandbox<br />
SYNOPSIS<br />
si ci [--[no|confirm]ignoreUnresolvedMerge] [(-L label|--label=label)]<br />
[--author=name] [--[no]branch] [--[no|confirm]branchUpdate]<br />
[(--cpid ID|--changePackageId=ID)] [--issueId=ID]<br />
[--[no|confirm]checkinUnchanged] [--[no|confirm]closeCP]<br />
[(-d desc|--description=desc)] [--[no]defer] [--descriptionFile=file]<br />
[--issueId=ID] [(-l|--[no]lock)] [--[no|confirm]moveLabel]<br />
[(-r rev|--revision=rev)] [--[no]retainWorkingFile] [--revision=value]<br />
[--[no]saveTimestamp] [(-u|--unlock)] [--[no]unexpand] [--[no]update]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [-F value] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=value]<br />
[--forceConfirm=[yes|no]] [--selectionFile=value] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] sandbox member...<br />
DESCRIPTION<br />
si ci checks in and saves changes to sandbox members. If you do not specify any members, si<br />
ci applies to all members of an associated sandbox.<br />
Check in is an operation that adds a new revision of a file to an archive. When a file is checked in<br />
to a revision other than the head revision or a branch tip revision, a new branch is created.<br />
Assigning Revision Numbers<br />
By default, when you check in a member, Source Integrity automatically assigns a unique revision<br />
number to the new revision. It does this by incrementing the current revision number by one. For<br />
example, if the previous revision is 1.3, the new revision is assigned number 1.4.<br />
You can choose the revision number of the changes you are checking in, so long as your revision<br />
number:<br />
● is greater than the last revision number (you cannot use previously "skipped" revision<br />
numbers)<br />
● has no leading zeros (zeros as <strong>com</strong>plete revision numbers are acceptable)<br />
● starts a new branch based on an existing revision<br />
59 of 457
If you check in a revision using an already existing revision number, Source Integrity attempts to<br />
add one to the revision number and check it in as that revision. If that revision already exists,<br />
Source Integrity then chooses the next available branch number and creates a new branch.<br />
For example, if you are checking in a new revision to an archive where the head revision is 1.7, the<br />
following numbers are valid:<br />
● 1.8 (greater than head revision)--if you check in a revision as 1.7, which already exists,<br />
Source Integrity assigns it 1.8<br />
● 1.10 (greater than head revision)<br />
● 1.72 (none of the numbers between 7 and 72 may be used afterwards)<br />
● 2.0<br />
● 1.7.1.1 (if it starts a new branch)<br />
● 1.7.0.1 (leading zero as the branch number)<br />
The following numbers are invalid:<br />
● 1.3 even if there was no revision 1.3 previously<br />
● 1.08 (leading 0 in last portion)<br />
● 02.1 is considered the same as 2.1 (leading zero in branch number)<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]ignoreUnresolvedMerge<br />
controls whether to ignore a previously unresolved merge. For more information on merging<br />
revisions, see si merge and si mergebranch.<br />
-L label<br />
--label=label<br />
identifies a label that is applied to the new revision. Note the following about using labels:<br />
❍ Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
❍ Labels cannot have the same format as a valid revision number.<br />
❍ Labels that include spaces must be enclosed by quotes.<br />
❍ MKS re<strong>com</strong>mends not using hyphens (-) in labels. Using hyphens may cause some<br />
si <strong>com</strong>mands to fail.<br />
--author=name<br />
specifies an author name.<br />
--[no]branch<br />
controls whether to force the creation of a branch revision.<br />
60 of 457
A branch is a revision path that diverges from the main line of development (also known as<br />
the trunk) in a member or project history. A branch is typically created by checking in a file<br />
to a revision other than the head revision. The most recent revision of a branch is called the<br />
tip revision.<br />
MKS Source Integrity usually places new revisions at the top of the trunk, assigning them<br />
two-part revision numbers, such as 1.15. There are times, however, when you do not want<br />
your work to be checked into the trunk. You may be pursuing a line of development that will<br />
not be included in the finished product, for instance, or you may be doing post-release<br />
maintenance while development for the next release continues on the trunk.<br />
Divergent lines of development in the same archive are managed through the use of<br />
branches. A branch is an independent revision line that uses an existing revision as its<br />
starting point. Members of a branch revision are identified by their revision numbers.<br />
Whereas revisions on the trunk are characterized by two-part revision numbers (for<br />
example, 1.2 or 3.5), branch revision numbers are prefixed with the number of the revision<br />
they start from. For example, if a branch revision is started from revision number 1.2, the<br />
members of that branch are numbered<br />
1.2.1.1<br />
1.2.1.2<br />
1.2.1.3<br />
and so on. The first two digits of the number identify the revision where the branch diverges from<br />
the trunk, and the last two represent a position on the branch.<br />
--[no|confirm]branchUpdate<br />
controls whether to update the member revision, even if it is on a branch. This option stops<br />
the member revision from accidentally moving onto a branch if a branch was created during<br />
check out. This option only applies if --update is specified, --revision was not<br />
specified, and the member revision is on a different branch from the working revision.<br />
--nobranchUpdate means do not update the member revision.<br />
--confirmbranchUpdate means ask before updating the member revision.<br />
--branchUpdate always updates the member revision.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452. Note the<br />
following about using this option:<br />
61 of 457
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
❍ If you have TrackLocks enabled, Source Integrity prompts you with the change<br />
package you used when you checked out the specified member, not the default<br />
change package. From the graphical user interface, you must manually select the<br />
change package.<br />
❍ If it is not mandatory to specify a change package, or if no change package is<br />
applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of adding members to a change package. If you have an issue assigned to you<br />
that contains one open change package, you can specify the issue ID instead of the change<br />
package ID. See the Integrity Server Administration Guide or your administrator for details<br />
on using the Integrity Manager integration.<br />
--[no|confirm]checkinUnchanged<br />
controls whether to force the checkin so that the new revision is checked in even if it is not<br />
different from the preceding one.<br />
--nocheckinUnchanged means do not force the checkin.<br />
--confirmcheckinUnchanged means ask before forcing the checkin.<br />
--checkinUnchanged always forces the checkin.<br />
--[no|confirm]closeCP<br />
controls whether to close the associated change package.<br />
--nocloseCP means do not close the change package.<br />
--confirmcloseCP means ask before closing the change package.<br />
--closeCP always closes the change package.<br />
-d desc<br />
--description=desc<br />
specifies a description for the new revision. This option and the --descriptionFile<br />
option are mutually exclusive.<br />
Note:<br />
<strong>Description</strong>s that include spaces must be enclosed by quotes.<br />
--[no]defer<br />
62 of 457
controls whether to delay the checkin operation in the project until the deferred operation is<br />
submitted. The operation in the sandbox still takes place immediately.<br />
If reviews are mandatory, specify this option to submit the changes for review as a change<br />
package. If this option is not specified, a pending revision is created for the operation, that<br />
corresponds to a pending entry in the change package.<br />
--descriptionFile=file<br />
specifies a file name, file, containing the description text for the new revision. This option<br />
and the -d or --description options are mutually exclusive.<br />
-l<br />
--[no]lock<br />
controls whether to keep locks on members.<br />
--[no|confirm]moveLabel<br />
controls whether the application should move a label from one revision to another.<br />
--nomoveLabel disables the moving of a label.<br />
--confirmmoveLabel displays a confirmation message.<br />
--moveLabel moves the label.<br />
--[no]retainWorkingFile<br />
controls whether to keep the working file in the sandbox after checkin. By default, a sparse<br />
sandbox does not retain the working file after checkin.<br />
--[no]saveTimestamp<br />
controls whether to set the revision timestamp to the modification date and time of the<br />
working file rather than the current date and time.<br />
-u<br />
--unlock<br />
unlocks the newly checked-in revision. This is equivalent to specifying --nolock.<br />
--[no]unexpand<br />
controls whether to expand, unexpand, or ignore keywords in the member file. Keyword<br />
expansion is only available in text archives, not binary archives. For descriptions of the MKS<br />
Source Integrity keywords, see the Source Integrity Enterprise User Guide. Possible<br />
keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
63 of 457
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
$Source$<br />
$State$<br />
--[no]update<br />
controls whether to set the checked in revision as the project's member revision.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si closecp, si co, si cpissues, si createcp, si diff, si edit, si lock, si<br />
mergebranch , si rlog, si unlock, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
64 of 457
si closecp<br />
closes a change package.<br />
SYNOPSIS<br />
si closecp [--[no|confirm]allowOrphanedDeferred] [--[no]confirm]<br />
[--[no|confirm]releaseLocks] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
issue|issue:change package id...<br />
DESCRIPTION<br />
si closecp closes a change package.<br />
Note: If reviews are mandatory, you cannot close the change package using this <strong>com</strong>mand. The<br />
change package can only be closed by Source Integrity once it has successfully <strong>com</strong>pleted the<br />
review process. For more information, see the Source Integrity Enterprise User Guide.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]allowOrphanedDeferred<br />
controls if orphaned deferred operations are permitted when the change package is closed.<br />
--[no]confirm<br />
controls whether to confirm closing individual change packages.<br />
--[no|confirm]releaseLocks<br />
controls whether or not outstanding locks are released when the change package is closed.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all open change packages that you want to<br />
close; use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to close; use spaces to<br />
specify more than one change package.<br />
DIAGNOSTICS<br />
65 of 457
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si co, si cpissues , si createcp, si drop, si lock, si<br />
viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
66 of 457
si co<br />
checks out members into working files in a sandbox<br />
SYNOPSIS<br />
si co [--mergeType=[confirm|cancel|automatic|manual]]<br />
[--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]] [--[no]branch]<br />
[--[no|confirm]branchVariant] [(--cpid ID|--changePackageId=ID)] [ --issueId=ID]<br />
[(-l|--[no]lock)] [--[no|confirm]lockOnFreeze] [--[no|confirm]merge]<br />
[--onLock=[confirm|branch|makewritable|branchconfirm|makewritableconfirm|cancel] ]<br />
[(-r rev|--revision=rev)] [(-u|--unlock)] [--[no]update] [--[no|un]expand] [-f]<br />
[--[no|confirm]overwriteChanged] [--[no|confirm]overwriteDeferred]<br />
[--[no]restoreTimestamp] [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] sandbox member...<br />
DESCRIPTION<br />
si co checks out members, typically for modification. If no members are specified, si co applies to all<br />
sandbox members.<br />
Check out is an operation that extracts the contents of a revision in an archive and copies it to a working file.<br />
You can check out any revision by specifying either its revision number or label. By default, the member<br />
revision is used. If an existing revision other than the head revision is specified, a branch from that revision is<br />
created.<br />
Use the si resync <strong>com</strong>mand to just get a read-only copy of a member.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options.<br />
See the options reference page for descriptions.<br />
--mergeType=[confirm|cancel|automatic|manual]<br />
specifies how you want merge changes from the working file in your sandbox into the working file that<br />
will be created upon check out.<br />
--mergeType=confirm prompts you to confirm a merge type.<br />
--mergeType=cancel cancels the selected merge.<br />
--mergeType=automatic <strong>com</strong>pletes the merge process without launching the MKS Visual Merge tool.<br />
Warning: While Source Integrity and MKS Visual Merge are capable of performing automatic merging,<br />
67 of 457
MKS cannot guarantee that the merged results are “correct”. MKS re<strong>com</strong>mends that you examine and<br />
test the merged results before checking them into the repository.<br />
--mergeType=manual <strong>com</strong>pletes the merge operation through the MKS Visual Merge tool. The MKS<br />
Visual Merge tool launches, displaying the revisions you want to merge. For more information on the<br />
MKS Visual Merge tool, refer to the Source Integrity Enterprise User Guide.<br />
--onMergeConflict =[confirm|cancel|mark|launchtool|highlight|error]<br />
specifies what to do when conflicts occur during a merge.<br />
--onMergeConflict=confirm prompts you to confirm a merge conflict option.<br />
--onMergeConflict=cancel cancels the merge.<br />
--onMergeConflict=mark marks the revisions indicating that merging is required without<br />
<strong>com</strong>pleting all of the merge related tasks. This provides time you may need to investigate conflicts or<br />
consult on editing or difference blocks before finishing the merge.<br />
--onMergeConflict=launchtool launches the MKS Visual Merge tool to resolve the conflicts, all nonconflicting<br />
blocks will already have been applied.<br />
--onMergeConflict=highlight indicates conflicts in the file with the following characters: "".<br />
--onMergeConflict=error indicates merge conflicts with an error message prompt.<br />
Note: --onMergeConflict=launchtool does not require the -g or --gui options.<br />
--[no]branch<br />
controls whether to force the creation of a branch revision. Specifying --branch always creates a<br />
branch.<br />
For details on branch revisions, see the si ci reference page.<br />
--[no|confirm]branchVariant<br />
controls whether Source Integrity should create a branch off of the revision you are checking out, if you<br />
are working in a variant sandbox. This reduces the possibility of locking conflicts with the member while<br />
work is being done in the variant and regular sandboxes. Specifying --confirmbranchVariant<br />
causes a prompt to be displayed so you can confirm the branching.<br />
This option overrides the branchIfVariant preference that you can set with the si setprefs<br />
<strong>com</strong>mand.<br />
This option is useful because development paths can conflict when developers working on different<br />
paths need to work on the same revision of a file. There is also the potential to conflict when<br />
development paths access the same member histories. For example, suppose the current version of a<br />
project includes utility.dll, version 1.4 and the variant sandbox contains utility.dll, version<br />
1.3. Both versions are stored in the same member history, and therefore a conflict is possible. Using<br />
the --branchVariant option helps handle such conflicts.<br />
68 of 457
For details on development paths and variant sandboxes, see the si createsandbox reference<br />
page.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452. Note the following about<br />
using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is enabled,<br />
and/or it is mandatory to specify a change package.<br />
❍ If it is not mandatory to specify a change package, or if no change package is applicable, you<br />
must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change package ID is<br />
displayed by default, if :none was specified or at least one change package was successfully<br />
updated from the last operation.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is another way of<br />
adding members to a change package. If you have an issue assigned to you that contains one open<br />
change package, you can specify the issue ID instead of the change package ID. See the Integrity<br />
Server Administration Guide or your administrator for details on using the Integrity Manager integration.<br />
-l<br />
--[no]lock<br />
controls whether to create locks on members.<br />
--[no|confirm]lockOnFreeze<br />
controls whether to lock the specified member even if it is frozen.<br />
--lockOnFreeze means always do it.<br />
--nolockOnFreeze means never do it.<br />
--confirmlockOnFreeze means always ask before doing it.<br />
--[no|confirm]merge<br />
controls whether to merge changes from the working file in your sandbox into the working file that will<br />
be created upon check out.<br />
--merge means always do it.<br />
--nomerge means never do it.<br />
--confirmmerge means always ask before doing it.<br />
Note: By default, Source Integrity prompts you for the type of merge (manual or automatic) to perform<br />
and what action to take if a conflict is encountered.<br />
--onLock=[confirm|branch|makewritable|branchconfirm|makewritableconfirm|cancel]<br />
controls whether to make the working file writable, create a branch, or cancel the operation.<br />
--onLock=confirm means always ask whether to make the working file writable, create a branch, or<br />
cancel the operation.<br />
69 of 457
--onLock=branch means create a branch.<br />
--onLock=makewritable means make the working file writable.<br />
--onLock=branchconfirm means always ask before creating a branch.<br />
--onLock=makewritableconfirm means always ask before making the working file writable.<br />
--onLock=cancel means cancel the operation.<br />
-u<br />
--unlock<br />
keeps the member unlocked, and is equivalent to --nolock.<br />
--[no]update<br />
controls whether to update the project's member revision to the checked out revision.<br />
Note: In a variant sandbox, specifying si co --noupdate --branchVariant member updates<br />
the member revision.<br />
--[no|un]expand<br />
controls whether to expand, unexpand, or ignore keywords in the member file. Keyword expansion is<br />
only available in text archives, not binary archives. For descriptions of the MKS Source Integrity<br />
keywords, see the Source Integrity Enterprise User Guide. Possible keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
$Source$<br />
$State$<br />
-f<br />
overwrites the working file if it has changed since it was last checked in. This is equivalent to specifying<br />
--overwriteChanged.<br />
--[no|confirm]overwriteChanged<br />
controls whether to overwrite the working file if it has changed since it was last checked in.<br />
--overwriteChanged means always do it<br />
70 of 457
--nooverwriteChanged means never do it<br />
--confirmoverwriteChanged means always ask before doing it. Specifying the --yes or --no<br />
options would have the same effect as the first two, but would further answer "yes" or "no" to all<br />
questions asked, not just this one.<br />
--[no|confirm]overwriteDeferred<br />
controls whether to overwrite the working file if there is a deferred operation on the member.<br />
--[no]restoreTimestamp<br />
controls whether to restore the timestamp of the working file to the timestamp of the revision in the<br />
member history. If this is not specified, the timestamp is set to the current date and time.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si closecp, si cpissues, si createcp, si diff, si edit, si lock, si resync,<br />
si rlog, si unlock, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
71 of 457
si configuresandbox<br />
configures sandbox properties<br />
SYNOPSIS<br />
si configuresandbox [--lineTerminator=[lf|crlf|native]] [--[no]shared]<br />
[--[no]sparse] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] sandbox location...<br />
DESCRIPTION<br />
Source Integrity provides a way to configure the following sandbox properties: sandbox sharing,<br />
line terminator and sparse settings.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
---lineTerminator=[lf|crlf|native]<br />
explicitly identifies the characters to use as the line terminator for this sandbox. lf is a line<br />
feed character, crlf is the <strong>com</strong>bination of the carriage return and line feed characters, and<br />
native uses the default line terminator in the client operating system: crlf in Windows and lf<br />
in UNIX.<br />
Note:<br />
When you create a sandbox Source Integrity remembers the setting of the line<br />
terminator, and all checkouts (using si co) and resyncs (using si resync) in that<br />
sandbox use the same line terminator setting. If you want to override the line<br />
terminator on an individual member, you must use some utility such as the MKS<br />
Toolkit flip <strong>com</strong>mand.<br />
--[no]shared<br />
controls whether or not to make the sandbox shared.<br />
Configuring the sandbox to be shared makes it possible for other users to share its working<br />
files. Other users must first import the sandbox to register it with their Source Integrity clients<br />
(see si importsandbox). When a top-level sandbox is configured to be shared, all<br />
subsandboxes are shared as well. Subsandboxes cannot be individually configured to be<br />
shared or not shared.<br />
72 of 457
When sandbox sharing is removed, users sharing the sandbox each receive an error<br />
message stating the change in sharing configuration the next time they attempt to access<br />
the sandbox or perform an operation on its contents.<br />
--[no]sparse<br />
controls whether or not to make the sandbox sparse.<br />
Making the sandbox sparse with --sparse affects the way the sandbox behaves with the<br />
si ci check in <strong>com</strong>mand and the si co check out <strong>com</strong>mand, as well as si resync .<br />
The intent of a sparse sandbox is that it contains only those working files that are actively<br />
being worked on by you at the time. Using si ci to check in a member to a sparse<br />
sandbox removes the working file from the sandbox (unless you did a check in locked, using<br />
the -l option). Similarly, using si resync on the sandbox will by default remove the<br />
working files for those members which are not locked by you, although you can override this<br />
with si resync --populate in a sparse sandbox, which in effect causes the resync to<br />
behave like it does in a "normal", non-sparse sandbox.<br />
sandbox location...<br />
specifies the path of the sandbox directory including the project file. For example,<br />
C:\sourcecode\framework\scripts\project.pj.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si createsandbox, si importsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
73 of 457
si configuresubproject<br />
configures a subproject's type<br />
SYNOPSIS<br />
si configuresubproject [-r subproject revision|--subprojectRevision=subproject revision]<br />
[--subprojectDevelopmentPath=subproject development path name|--variant=subproject development path<br />
name] [--type=[normal|variant|build|reset]] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)]<br />
[(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] subproject or subsandbox<br />
DESCRIPTION<br />
Once you have created or added a subproject, you can modify the type to suit your needs. For example, you can<br />
change a normal subproject to a build subproject to suspend development, or you can change a variant subproject to<br />
a normal subproject to continue development on the main trunk.<br />
Important: Any changes you make when reconfiguring a subproject affects the project as a whole and any shared<br />
subprojects. More specifically, changing the type, revision, or development path of a subproject can radically change<br />
the list of members of that subproject. After configuring a subproject, existing sandboxes whose contents were in<br />
sync with the subproject before it was configured will display deltas when you use si viewproject and si<br />
viewsandbox, reflecting the following possible differences:<br />
● Members that exist in both the old and new version of the subproject display a delta if the working revision in<br />
the sandbox is different from the new member revision.<br />
● Members that are in the new version of the subproject but were not in the old version of the subproject display<br />
a "no working file" delta, indicating that the sandbox does not have a copy of the new member yet.<br />
● Members that were in the old version of the subproject but are not in the new version display as former<br />
members.<br />
● Subprojects that were in the old version of the subproject but are not in the new version will display as former<br />
subprojects.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
-r=subproject revision<br />
--subprojectRevision=subproject revision<br />
specifies the revision number (for build subprojects). For example, 1.5. This option is used with -type=build.<br />
--subprojectDevelopmentPath=subproject development path name<br />
--variant=subproject development path name<br />
specifies the development path name (for variant subprojects). For example, Service_Pack3. This option is<br />
used with --type=variant<br />
--type=[normal|variant|build|reset]<br />
specifies the new configuration type for the subproject.<br />
74 of 457
--type=normal configures the subproject to the master (non-variant) version of the subproject.<br />
--type=variant configures the subproject based upon a specific development path. The option is used<br />
with --variant=subproject development path name or --subprojectDevelopmentPath=subproject<br />
development path name.<br />
--type=build configures the subproject as a static subproject based upon a specific revision of the master<br />
project that is used for building or testing the project, but not for further development. This option is used with -<br />
r subproject revision or --subprojectRevision=subproject revision.<br />
--type=default configures the subproject based on the type that is consistent with the parent project that<br />
you are adding the subproject to. For example, if you add a subproject to a normal project, the subproject is<br />
added as a normal type. For information on what the default type is, see your administrator.<br />
-P project name<br />
--project=project name<br />
specifies the path and name of the project where the subproject exists, for example,<br />
c:/Aurora_Program/bin/project.pj.<br />
subproject<br />
subsandbox<br />
specifies the subproject or subsandbox name to which the new configuration applies, for example, tools.pj<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addsubproject, si checkpoint, si createproject, si createsandbox, si<br />
createsubproject, si drop, si dropproject, si importproject, si projectinfo, si<br />
projects, si sharesubproject, si viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
75 of 457
si connect<br />
establishes a connection to an Integrity Server<br />
SYNOPSIS<br />
si connect [--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si connect establishes a connection to an Integrity Server host. Most <strong>com</strong>mands implicitly<br />
connect to the host, this does so explicitly. In fact, all the other <strong>com</strong>mands call si connect to<br />
establish the connection. The client supports multiple connections to multiple servers. You can use<br />
si disconnect to disconnect from an Integrity Server host.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--hostname=server<br />
identifies the name of the host server where the Integrity Server is located.<br />
--password=password<br />
identifies the password to use for connecting to the Integrity Server.<br />
--port=number<br />
identifies the port on the host server where the Integrity Server is located.<br />
--user=name<br />
identifies the user to use for connecting to the Integrity Server. This typically defaults to the<br />
name you have used to log into your client machine.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
76 of 457
SEE ALSO<br />
Commands:<br />
si disconnect, si exit, si servers<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
77 of 457
si cpissues<br />
displays all Integrity Manager issues that are in a valid state to accept new change<br />
packages<br />
SYNOPSIS<br />
si cpissues [--fields=field1[:width1],field2[:width2]...] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [--[no]persist] [--quiet]<br />
DESCRIPTION<br />
si cpissues displays all Integrity Manager issues that are in a valid state to accept new change<br />
packages. Only issues assigned to the user are displayed.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
id<br />
displays issue IDs.<br />
summary<br />
displays issue summaries.<br />
--[no]persist<br />
controls the persistence of CLI views.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
78 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si co, si createcp , si createcp, si drop, si lock, si<br />
viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
79 of 457
si createcp<br />
creates a new change package<br />
SYNOPSIS<br />
si createcp [--description=value] [--issueId=value] [--summary=value]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si createcp creates a new change package.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--description=value<br />
specifies a description of the change package being created.<br />
--issueId=value<br />
specifies the ID of the issue you are creating a change package for. This option can only be<br />
specified if the integration between Source Integrity and Integrity Manager is enabled.<br />
Important: Your ability to create a change package is based on the change package<br />
creation policy for the type that you want to create a change package for.<br />
--summary=value<br />
specifies a brief summary of the change package being created.<br />
Note: A change package summary is mandatory.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
80 of 457
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si co, si cpissues, si drop, si lock, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
81 of 457
si createdevpath<br />
creates a development path<br />
SYNOPSIS<br />
si createdevpath [--projectRevision=rev] [--devpath=path]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si createdevpath creates a development path for specific project revisions, effectively creating a<br />
variant project.<br />
Regular sandboxes are based upon the current state of the project. You can also create a sandbox<br />
that is based upon a previously checkpointed revision of the project. This type of sandbox is called<br />
a variant. When you create a variant sandbox, using the si createsandbox <strong>com</strong>mand, you<br />
choose a checkpoint (snapshot) of your project and use it as a starting point for new development.<br />
MKS Source Integrity allows you to do this by defining a new development path.<br />
A development path is an identifier given to a new direction of software development. Changes<br />
made through the development path are kept separate from the main development trunk unless<br />
you choose to merge them into it later.<br />
Source Integrity allows multiple developers to point to the same development path, each using<br />
their own variant sandbox. In the variant sandbox, you can see the current state of the project<br />
along the development path and the changes made by other developers using it.<br />
When a variant project is created, it is also created for all subprojects, reserving the assigned<br />
name as a unique identifier and ensuring no two paths can share the same name.<br />
Development paths are useful for performing post-release maintenance. Variant sandboxes<br />
pointing to a post-release development path allow you to make changes to a previous revision of a<br />
project. Any fixes, patches, or changes you check in go onto a branch and do not affect the main<br />
project, unless you choose to merge them.<br />
Note:<br />
You may instead create branch revisions in the main project, rather than creating a variant<br />
82 of 457
Options<br />
sandbox through a new development path, by specifying --branch when checking files out<br />
or in. You still may have to merge changes, but the development path remains the same.<br />
For details on simply branching revisions, see the si ci reference page.<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--devpath=path<br />
identifies the name of the new development path.<br />
Note: The following characters may not be used in a development path: \n, \r, \t, :, [', '], #.<br />
--projectRevision=rev<br />
identifies the checkpointed revision number to create the variant against.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si createsandbox, si dropdevpath, si memberinfo, si<br />
projectinfo, si revisioninfo, si rlog<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
83 of 457
si createproject<br />
creates a new empty project<br />
SYNOPSIS<br />
si createproject [--[no]openView] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
project location<br />
DESCRIPTION<br />
si createproject creates a new, empty project on the Integrity Server in a specified directory.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]openView<br />
controls whether to open the project view after this new project is registered on the server. If<br />
--noopenView is used, the project view does not open.<br />
project location<br />
identifies a location on the Integrity Server for the new project. Regardless of your operating<br />
system, all paths are specified here using forward slashes (/), and are server absolute<br />
paths. You must also specify the name of the project file as part of the location; typically this<br />
is project.pj.<br />
Note:<br />
By convention, you should name your new project file with a suffix of .pj.<br />
Intermediate directories on the Integrity Server are created for you. Remember, however,<br />
that server-side restrictions may exist controlling where you are permitted to locate any<br />
projects. Contact your system administrator for permitted locations.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
84 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si checkpoint, si createsandbox, si createsubproject, si dropproject, si<br />
importproject, si projects, si viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
85 of 457
si createsandbox<br />
creates a new sandbox on your local machine<br />
SYNOPSIS<br />
si createsandbox [(-R|--[no|confirm]recurse)] [--lineTerminator=[lf|crlf|native]]<br />
[--[no]populate] [--[no]sparse] [--[no]openView] [--[no]shared]<br />
[(-Pproject|--project=project)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] [--xmlapi] directory<br />
DESCRIPTION<br />
si createsandbox creates a new sandbox on the client machine in a specified directory. When<br />
creating a sandbox you are able to determine the type of sandbox you want it to be:<br />
● The default regular type creates a sandbox based upon the current state of the project.<br />
● Choosing to create a variant creates a sandbox based upon a specific revision of the<br />
master project and is used for branching off the main development path. You first have to<br />
specify a development path other than the default one; to create a development path, see<br />
the si createdevpath <strong>com</strong>mand.<br />
● You may also choose to create a build sandbox. A build sandbox creates a static sandbox<br />
based upon a specific revision of the master project that is used for building or testing the<br />
project, but not for further development.<br />
Variant Sandboxes and Development Paths<br />
By default, si createsandbox creates regular sandboxes that are based upon the current state<br />
of the project. You can also create a variant sandbox, a sandbox that is based upon a previously<br />
checkpointed revision of the project. When you create a variant sandbox, you choose a checkpoint<br />
(snapshot) of your project and use it as a starting point for new development. MKS Source Integrity<br />
allows you to do this by defining a new development path and then specifying that path with the<br />
--devpath option. For example:<br />
si createsandbox --devpath=MyVariant<br />
A development path is an identifier given to a new direction of software development. Changes<br />
made through the development path are kept separate from the main development trunk unless<br />
you choose to merge them (see si merge) into it later. Source Integrity allows multiple<br />
developers to point to the same development path, each using their own variant sandbox. In the<br />
86 of 457
variant sandbox, you can see the current state of the project along the development path and the<br />
changes made by other developers using it.<br />
When a variant sandbox is created for the first time, it is also created for all subprojects, reserving<br />
the assigned name as a unique identifier and ensuring no two paths can share the same name.<br />
Development paths are useful for performing post-release maintenance. Variant sandboxes<br />
pointing to a post-release development path allow you to make changes to a previous revision of a<br />
project. Any fixes, patches, or changes you check in go onto a branch and do not affect the main<br />
project, unless you choose to merge them.<br />
Build Sandboxes<br />
After major milestones, such as product releases, you might want to recreate a static version of an<br />
entire project as it existed at some point in the past. You create a build sandbox, to build or test the<br />
project, not to begin further work along a new development path.<br />
A build sandbox is associated with a particular project revision, and has no development path<br />
(since it is static and not meant for further development). For example:<br />
si createsandbox --projectRevision=1.34<br />
creates a build sandbox based on the project revision 1.34, and it cannot be modified.<br />
With a build sandbox, you cannot:<br />
● check out, lock, or check in members<br />
● remove or add members<br />
● freeze or thaw members<br />
● checkpoint the master project<br />
● modify project or member attributes<br />
● revert members<br />
● set the member revision<br />
However, with a build sandbox, you can:<br />
● change labels and states (see si addlabel)<br />
● resynchronize your sandbox (see si resync)<br />
● <strong>com</strong>pare a member revision in the build sandbox to another revision (see si diff)<br />
● merge a member revision (si merge) in the build sandbox with another revision (of course,<br />
you cannot check that merged file back into the build sandbox)<br />
● check for differences between project revisions, such as changes to a project since it was<br />
last checkpointed (see si mods)<br />
87 of 457
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--lineTerminator=[lf|crlf|native]<br />
explicitly identifies the characters to use as the line terminator for this sandbox. lf is a line<br />
feed character, crlf is the <strong>com</strong>bination of the carriage return and line feed characters, and<br />
native uses the default line terminator in the client operating system: crlf in Windows and lf<br />
in UNIX.<br />
Note:<br />
When you create a sandbox Source Integrity remembers the setting of the line<br />
terminator, and all checkouts (using si co) and resyncs (using si resync) in that<br />
sandbox use the same line terminator setting. If you want to override the line<br />
terminator on an individual member, you must use some utility such as the MKS<br />
Toolkit flip <strong>com</strong>mand.<br />
--[no]populate<br />
controls whether to populate the sandbox with read-only working files for all members.<br />
--[no]sparse<br />
controls whether to create a sparse sandbox.<br />
Creating a sparse sandbox with --sparse affects the way the sandbox behaves with the<br />
si ci check in <strong>com</strong>mand and the si co check out <strong>com</strong>mand, as well as si resync. This<br />
option creates a sandbox with no working files and defers the creation of sandbox<br />
directories and subsandboxes until you need to work with them. A sparse sandbox does not<br />
retain working files when a member is checked in and continues to function this way<br />
throughout its use; however, once created, sandbox directories and subsandboxes remain<br />
in the sandbox. Using si ci to check in a member to a sparse sandbox removes the<br />
working file from the sandbox (unless you did a check in locked, using the -l option).<br />
Similarly, using si resync on the sandbox by default removes the working files for those<br />
members that are not locked by you, although you can override this with<br />
si resync --populate in a sparse sandbox, which in effect causes the resync to behave<br />
like it does in a normal, non-sparse sandbox.<br />
--[no]openView<br />
controls whether to open the sandbox view after this new sandbox is registered on the<br />
client. If --noopenView is used, the sandbox view does not open.<br />
--[no]shared<br />
controls whether or not to make the sandbox shared. The default is not shared.<br />
Configuring the sandbox to be shared makes it possible for other users to share its working<br />
files. Other users must first import the sandbox to register it with their Source Integrity clients<br />
(see si importsandbox). When a top-level sandbox is configured to be shared, all<br />
88 of 457
subsandboxes are shared as well. Subsandboxes cannot be individually configured to be<br />
shared or not shared.<br />
directory<br />
identifies a location on the MKS Source Integrity client system for the new sandbox. Use<br />
spaces to identify more than one directory.<br />
Note:<br />
DIAGNOSTICS<br />
Do NOT append the name of the project file (typically project.pj) to the directory.<br />
The name will be calculated automatically.<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si checkpoint, si co, si createdevpath, si createproject, si<br />
dropsandbox, si importsandbox, si merge, si resync, si sandboxes, si<br />
viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
89 of 457
si createsubproject<br />
creates a subproject or adds an existing project as a subproject<br />
SYNOPSIS<br />
si createsubproject [ --[no|confirm]reuseDroppedSubproject]<br />
[ --[no]createSubprojects] [(-P project| --project=project)]<br />
[(-S sandbox| --sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port =number] [--password=password] [ --user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes )] [--[no]batch] [ --cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [ --quiet] [--settingsUI=[gui|default]]<br />
[ --status=[none|gui|default]] subproject location...<br />
DESCRIPTION<br />
si createsubproject creates a subproject on the server in a specified directory, which must<br />
be under an existing project specified by the -P project or --project=project options. This<br />
<strong>com</strong>mand works with Regular and Variant sandboxes, but not with Build sandboxes.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]reuseDroppedSubproject<br />
controls whether to add an existing subproject to the named project. This can be useful if the<br />
existing subproject had been dropped from a project.<br />
Note: While si addsubproject is the re<strong>com</strong>mended <strong>com</strong>mand for adding an existing<br />
subproject to a project, this option is available for backwards <strong>com</strong>patibility and any scripts<br />
you may use.<br />
--[no]createSubprojects<br />
controls whether to create one subproject for each directory encountered when creating<br />
subprojects.<br />
subproject location...<br />
identifies a location on the Integrity Server for the new subproject. Regardless of your<br />
operating system, all paths are specified here using forward slashes (/), and may be server<br />
relative or absolute paths. You must also specify the name of the project file as part of the<br />
location; typically this is project.pj.<br />
Note:<br />
Subprojects must be added "in tree", that is, in the project directory or a subdirectory.<br />
90 of 457
As with the si createproject <strong>com</strong>mand, remember that server-side restrictions may<br />
exist controlling where you are permitted to locate any subprojects on the Integrity Server.<br />
Contact your system administrator for permitted locations.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si checkpoint, si createproject, si createsandbox, si drop, si<br />
dropproject, si importproject, si projectinfo, si projects, si<br />
viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
91 of 457
si deletelabel<br />
removes a label from a member<br />
SYNOPSIS<br />
si deletelabel [(-L label|--label=label)] [--filter=filteroptions]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[-R|--[no|confirm]recurse] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si deletelabel removes a label from one or more members. If you do not specify any<br />
members, the si deletelabel <strong>com</strong>mand applies to all project members with associated<br />
archives, deleting the label from whatever revision the label happens to exist on in the archive.<br />
Please note the --projectRevision option is not used for identifying the revision to delete<br />
labels from.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-L label<br />
--label=label<br />
identifies a label. Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
Additionally, they cannot have the same format as a valid revision number.<br />
Note:<br />
Labels that include spaces must be enclosed by quotes.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
92 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addlabel, si addprojectlabel, si deleteprojectlabel , si viewlabels<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
93 of 457
si deleteprojectlabel<br />
removes a label from a project<br />
SYNOPSIS<br />
si deleteprojectlabel [(-L label|--label=label)] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si deleteprojectlabel removes a label from an MKS Source Integrity project, deleting the<br />
label from whatever project revision the label happens to exist on. Note that the<br />
--projectRevision option is not used for identifying the project revision to delete labels from; it<br />
is the generic option available on all project-based <strong>com</strong>mands that allows you to specify the<br />
revision of the build project you want to work with.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-L label<br />
--label=label<br />
identifies a label. Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
Additionally, they cannot have the same format as a valid revision number.<br />
Note:<br />
Labels that include spaces must be enclosed by quotes.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
94 of 457
SEE ALSO<br />
Commands:<br />
si addlabel, si addprojectlabel, si deletelabel, si viewlabels<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
95 of 457
si deleterevision<br />
permanently deletes a revision from a member<br />
SYNOPSIS<br />
si deleterevision [--[no]confirm] [--[no]confirminuse] [-f] [--range=value]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si deleterevision deletes an archived revision of a project member.<br />
Note:<br />
Options<br />
It is re<strong>com</strong>mended that you never delete a revision. Since historical versions of projects may<br />
still point at the deleted revision, it may be<strong>com</strong>e impossible to recreate old projects.<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]confirm<br />
controls the display of confirmation messages.<br />
--[no]confirminuse<br />
controls whether Source Integrity warns you about deleting the revision if it is used in other<br />
projects. If the revision is used in other projects, Source Integrity warns you that deleting the<br />
selected revision will break the listed items. This option is valid only with the database<br />
repository.<br />
-f<br />
forces the revision to be deleted, without any confirmation message.<br />
--range=value<br />
specifies a range of revision numbers. The format of value for a single revision is simply the<br />
revision number itself. Separate multiple non sequential revisions with a <strong>com</strong>ma, and use a<br />
dash to indicate a sequential range, for example, 1.2-1.5.<br />
You may also prefix or append a dash to a single revision number, meaning you want to<br />
96 of 457
delete from 1.1 to the specified revision, or from the specified revision to the tip. For<br />
example, you would specify -1.6 to delete revisions 1.1 to 1.6. Or you could specify 1.2-<br />
to delete revisions 1.2 to the tip revision, whatever it may be.<br />
The revisions are deleted in order from the highest revision to the lowest.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si diff, si merge, si revisioninfo, si rlog<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
97 of 457
si demote<br />
demotes the state of a member<br />
SYNOPSIS<br />
si demote [(-r rev|--revision=rev)] [(-s state|--state=state)]<br />
[(-R|--[no|confirm]recurse)] [--devpath=path] [--filter=filteroptions]<br />
[(-P project|--project=project)] [--projectRevision=rev]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [--cwd=directory] [(-F file|--selectionFile=file)]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [(-N|--no)] [--[no]batch] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] [(-?|--usage)] [(-Y|--yes)]<br />
member...<br />
DESCRIPTION<br />
si demote demotes a project member to a lower state of development. A state is a textual<br />
description defined by the administrator to classify the condition of a revision in a history. If no state<br />
is assigned to a revision at check-in, a default value of Exp (for Experimental) is used. See the<br />
Integrity Server Administration Guide for details on setting up states.<br />
Project members can also be demoted to a predefined lower state of development using this<br />
<strong>com</strong>mand.<br />
Note: Demoting members is for historical purposes only. To more effectively control project<br />
workflow, MKS re<strong>com</strong>mends using the Integrity Manager integration.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-s state<br />
--state=state<br />
specifies the target state to be set for the demoted member. If a state is not specified, the<br />
member is demoted to the next state.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
98 of 457
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si demoteproject, si promote, si promoteproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
99 of 457
si demoteproject<br />
demotes the state of a project<br />
SYNOPSIS<br />
si demoteproject [(-s state|--state=state)] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si demoteproject demotes a project to a lower state of development. A state is a textual<br />
description, defined by the administrator, used to classify the condition of a revision in a history. If<br />
no state is assigned to a revision at checkpoint, a default value of Exp (for Experimental) is used.<br />
See the Integrity Server Administration Guide for details on setting up states.<br />
Just as you can with a project member, you can demote the project itself (change its state, in other<br />
words). Only the project is demoted, not the members of the project.<br />
Note: Demoting projects is for historical purposes only. To more effectively control project<br />
workflow, MKS re<strong>com</strong>mends using the Integrity Manager integration.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-s state<br />
--state=state<br />
specifies the target state to be set for the demoted project. If no state is specified, the<br />
project is demoted to the next state.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
100 of 457
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si demote, si promote, si promoteproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
101 of 457
si diff<br />
displays differences between two revisions of a member<br />
SYNOPSIS<br />
si diff [--context=value] [--[no]ignoreBlanks] [--[no]ignoreCase]<br />
[--[no]ignoreWhitespace] [-r rev1[-r rev2]] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si diff displays the differences between two revisions of the specified member, or one revision<br />
and the member's working file. If no members are specified, si diff operates on all project<br />
members.<br />
By default, in a sandbox, this <strong>com</strong>pares the member revision against the working file.<br />
In graphical mode where the -g or --gui option is used, this invokes the visual difference utility.<br />
Otherwise, the diff or diffb utilities are used depending on whether it is evaluating differences<br />
in a text or binary file.<br />
If used with -g or --gui, only one member can be differenced at a time, and the --context<br />
option is ignored.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--context=value<br />
shows value number of lines of context, before and after each difference between two files.<br />
si diff marks lines removed from the "old" revision with -, marks lines added to the<br />
"new" revision with +, and marks lines changed in both files with !.<br />
--[no]ignoreBlanks<br />
controls whether to ignore blanks when <strong>com</strong>paring textual revisions. When<br />
--ignoreBlanks is used, all differences involving blanks are ignored except blanks at the<br />
start of a line. These are treated differently than blanks between other characters. The<br />
following pair would be considered different, for example, because of the leading blank:<br />
102 of 457
a b c def<br />
a b c def<br />
--[no]ignoreCase<br />
controls whether to ignore case when <strong>com</strong>paring revisions.<br />
--[no]ignoreWhitespace<br />
controls whether to ignore white space at the end of each line (except the newline) and treat<br />
all consecutive strings of white space elsewhere in a line as equivalent (effectively, reducing<br />
all strings of white space to a single space for the purpose of <strong>com</strong>paring lines).<br />
-r rev1[-r rev2]<br />
uses a specified revision. Specify this option twice to identify the two revisions to be<br />
<strong>com</strong>pared; the first instance is the "old" revision, the second is the "new". If the second<br />
revision is not specified, the working file is assumed. Both revisions must be specified if<br />
operating against a project. rev can be a valid revision number or a label. If neither is<br />
specified, it defaults to member revision.<br />
member...<br />
identifies a specific project or sandbox member, depending on whether the -S sandbox<br />
option or the -P project option is specified. To specify more than one member, use spaces<br />
between them.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
diff, diffb, si ci, si merge, si mods, si revisioninfo, si rlog, si<br />
updaterevision, si viewrevision, vdiff32<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
103 of 457
si difffiles<br />
<strong>com</strong>pares the differences between two text files<br />
SYNOPSIS<br />
si difffiles [--context=value] [--[no]ignoreBlanks] [--[no]ignoreCase]<br />
[--[no]ignoreWhitespace] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)]<br />
[(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]] file1 file2<br />
DESCRIPTION<br />
si difffiles <strong>com</strong>pares the differences between two text files. This is useful when you want to<br />
<strong>com</strong>pare the differences between two arbitrary text files (not members or revisions).<br />
In graphical mode where the -g or --gui option is used, this invokes a dialog box that allows you<br />
to browse for each file. The results appear in MKS Visual Difference.<br />
Note: The dialog box keeps track of the last 10 files in both fields.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--context=value<br />
shows value number of lines of context, before and after each difference between two files.<br />
si difffiles marks lines removed from the first specified file with -, marks lines added<br />
to the second specified file with +, and marks lines changed in both files with !.<br />
--[no]ignoreBlanks<br />
controls whether to ignore blanks when <strong>com</strong>paring text files. When --ignoreBlanks is<br />
used, all differences involving blanks are ignored except blanks at the start of a line. These<br />
are treated differently than blanks between other characters. The following pair would be<br />
considered different, for example, because of the leading blank:<br />
a b c def<br />
a b c def<br />
--[no]ignoreCase<br />
controls whether to ignore case when <strong>com</strong>paring files.<br />
--[no]ignoreWhitespace<br />
104 of 457
controls whether to ignore white space at the end of each line (except the newline) and treat<br />
all consecutive strings of white space elsewhere in a line as equivalent (effectively, reducing<br />
all strings of white space to a single space for the purpose of <strong>com</strong>paring lines).<br />
file1 file2<br />
identifies the two files you want to <strong>com</strong>pare.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
diff, diffb, si diff, si ci, si merge, si mods, si revisioninfo, si rlog, si<br />
updaterevision, si viewrevision,<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
105 of 457
si discardcp<br />
discards a change package<br />
SYNOPSIS<br />
si discardcp [--[no]confirm] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
issue|issue:change package id...<br />
DESCRIPTION<br />
si discardcp discards a change package.<br />
Source Integrity provides a way to remove change packages from active use when they are not<br />
needed by discarding them.<br />
Change packages can only be discarded if they are in the Open or Rejected states. In order to<br />
discard a change package, that change package must be both created by you and not contain any<br />
<strong>com</strong>mitted entries. However, a change package administrator may discard a change package<br />
created by another user.<br />
When a change package is discarded, the following happens where applicable:<br />
● all un<strong>com</strong>mitted entries are removed from the change package<br />
● all deferred operations corresponding to deferred entries are reverted<br />
● all locks on members corresponding to lock entries are released<br />
● all pending operations corresponding to pending entries are reverted, and appear as<br />
discarded entries in the review log (to preserve the review history)<br />
● all pending revisions that correspond to pending entries are deleted<br />
● any archives created for pending members associated with pending entries in the change<br />
package are deleted from the server (pre-existing archives that were shared to create a<br />
pending member are not deleted)<br />
Note the following about discarded change packages:<br />
● The change package ID for the discarded change package can never be used for any future<br />
change packages that are created.<br />
● Discarded change packages have a state of Discarded, and can still be viewed using the<br />
Change Package filter.<br />
● If the change package has undergone a review, the review log persists.<br />
106 of 457
● Discarded change packages can be opened and used again.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]confirm<br />
specifies if to confirm discarding the change package.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all change packages that you want to discard;<br />
use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to discard; use spaces to specify<br />
more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si co, si cpissues , si createcp, si drop, si lock, si<br />
viewcps si acceptcp, si rejectcp, si opencp<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
107 of 457
si disconnect<br />
disconnects from the Integrity Server<br />
SYNOPSIS<br />
si disconnect [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--[no]confirm] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si disconnect disconnects the client connection to the host Integrity Server.<br />
Note: When disconnecting a connection that is the current connection, all open client views close.<br />
All new views use the connection specified in the Source Integrity preferences, or an existing<br />
connection, as the new current connection.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]confirm<br />
controls whether to implement the Integrity Server disconnection confirmation policy.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si connect, si servers<br />
108 of 457
Miscellaneous:<br />
diagnostics, options, preferences<br />
109 of 457
si drop<br />
drops a member or subproject from a project<br />
SYNOPSIS<br />
si drop [(--cpid ID|--changePackageId=ID)] [--[no|confirm]closeCP]<br />
[--issueId=ID] [(-f|--[no]confirm)] [--[no]defer] [--[no]delete]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member... or subproject...<br />
DESCRIPTION<br />
si drop drops specified members and subprojects from a project. Files dropped in a sandbox are<br />
not actually dropped from the sandbox until you use the si resync <strong>com</strong>mand, or if you specify<br />
--delete with this <strong>com</strong>mand. This allows sandbox users to be protected from a file deletion until<br />
an appropriate point, and therefore be in control.<br />
Note:<br />
This <strong>com</strong>mand does not operate in a Build sandbox.<br />
If a member has outlived its usefulness or just does not belong in a project any more, you can<br />
remove it at any time. After you remove a member from a project, the member is no longer listed<br />
as part of the sandbox or master project, but the member history remains, in case you need to<br />
recreate an earlier version of the project. The build project and variants may still have the file as a<br />
member.<br />
Adding a member (see si add) which has previously been dropped will result in the history of the<br />
dropped member be<strong>com</strong>ing the history of the newly added member.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452. Note the<br />
following about using this option:<br />
110 of 457
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if<br />
no change package is applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--[no|confirm]closeCP<br />
controls whether to close the associated change package.<br />
--nocloseCP means do not close the change package.<br />
--confirmcloseCP means ask before closing the change package.<br />
--closeCP always closes the change package.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of adding members to a change package. If you have an issue assigned to you<br />
that contains one open change package, you can specify the issue ID instead of the change<br />
package ID. See the Integrity Server Administration Guide or your administrator for details<br />
on using the Integrity Manager integration.<br />
-f<br />
--[no]confirm<br />
controls the display of confirmation messages. -f forces an action without any prompt.<br />
--[no]defer<br />
controls whether to delay the drop operation in the project until the deferred operation is<br />
submitted. The operation in the sandbox still takes place immediately.<br />
--[no]delete<br />
control whether the working file should be deleted immediately from your sandbox, when<br />
using -S or<br />
--sandbox.<br />
member... or subproject...<br />
identifies a specific member or subproject; use spaces to specify more than one.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
111 of 457
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si closecp, si cpissues, si createcp, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
112 of 457
si dropdevpath<br />
drops a variant project from the master project<br />
SYNOPSIS<br />
si dropdevpath [--devpath=path] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si dropdevpath drops a variant project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--devpath=path<br />
identifies the development path of a project to be dropped.<br />
Note: The following characters may not be used in a development path: \n, \r, \t, :, [', '], #.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si createdevpath, si createproject, si dropproject, si projectinfo, si<br />
projects, si viewproject<br />
113 of 457
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
114 of 457
si dropmemberattr<br />
drops an attribute from a member<br />
SYNOPSIS<br />
si dropmemberattr [(--attr=key[=value]|--attribute=key[=value])]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si dropmemberattr drops an attribute from a member. If no members are specified, the<br />
<strong>com</strong>mand applies to all members of the project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--attr=key=value<br />
--attribute=key=value<br />
identifies the attribute key and, optionally, the value to be dropped. If only the key is given,<br />
this <strong>com</strong>mand deletes any attribute with that key. If a value is given for the key, then only a<br />
key with that value is dropped.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
115 of 457
SEE ALSO<br />
Commands:<br />
si addmemberattr, si addprojectattr, si dropprojectattr<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
116 of 457
si dropproject<br />
drops (unregisters) a project from an Integrity Server<br />
SYNOPSIS<br />
si dropproject [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] project...<br />
DESCRIPTION<br />
si dropproject unregisters a project from the Integrity Server. Once a project is dropped,<br />
project <strong>com</strong>mands do not operate on the project, and any sandboxes pointing to that project do not<br />
operate.<br />
Note:<br />
This works only on "top level" projects; to drop a subproject from its master project, use si<br />
drop .<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
project...<br />
identifies a specific project location with a fully qualified server-relative path; use spaces to<br />
specify more than one.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
117 of 457
Commands:<br />
si createproject, si createsubproject, si drop, si importproject, si<br />
projects, si viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
118 of 457
si dropprojectattr<br />
drops an attribute from a project<br />
SYNOPSIS<br />
si dropprojectattr [(--attr=key[=value]|--attribute =key[=value])] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server] [--port=number] [-password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--<br />
[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [-status=[none|gui|default]]<br />
DESCRIPTION<br />
si dropprojectattr drops an attribute from a project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the options<br />
reference page for descriptions.<br />
--attr=key=value<br />
--attribute=key=value<br />
identifies the attribute key and, optionally, the value to be dropped. If only the key is given, this <strong>com</strong>mand deletes any<br />
attribute with that key. If a value is given for the key, then only a key with that value is dropped.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addmemberattr, si addprojectattr, si dropmemberattr, si dropsandboxattr, si addsandboxattr<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
119 of 457
si dropsandbox<br />
drops a sandbox<br />
SYNOPSIS<br />
si dropsandbox [--[no]confirm] [--delete=[none|members|all]] [-f] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] sandbox location...<br />
DESCRIPTION<br />
si dropsandbox unregisters a sandbox from the Integrity Client. Once a sandbox is dropped,<br />
sandbox <strong>com</strong>mands do not operate on the sandbox.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-f<br />
--[no]confirm<br />
controls the display of confirmation messages. -f forces an action without any prompt.<br />
--delete=[none|members|all]<br />
deletes files from the client sandbox directory according to the value specified. If none is<br />
specified, then no deletion occurs after the sandbox is dropped. If members is specified,<br />
then the specified sandbox, subsandboxes, and members are deleted. If all is specified,<br />
then everything in the current directory and subdirectories is deleted. For example:<br />
--delete=none sandbox.pj<br />
causes sandbox.pj to be removed from the registry, but not deleted from the client directory.<br />
--delete=members sandbox.pj<br />
causes sandbox.pj to be removed from the registry and deleted from the client directory<br />
along with all its subsandboxes and members.<br />
120 of 457
Note:<br />
--delete=all sandbox.pj<br />
causes sandbox.pj to be removed from the registry and all files in the client directory and<br />
subdirectories to be deleted.<br />
Since --delete=all is a destructive operation, it always requires confirmation. This is a<br />
preventative security measure. For example, if you create a sandbox in the root of a file<br />
system, this operation would delete your entire drive.<br />
sandbox location...<br />
identifies the location of a specific sandbox; use spaces to specify more than one sandbox.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si createsandbox, si importsandbox, si sandboxes, si viewsandbox<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
121 of 457
si dropsandboxattr<br />
drops sandbox attributes<br />
SYNOPSIS<br />
si dropsandboxattr [--attr|attribute=key=value] [-S|--sandbox=value]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-Ffile|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si dropsandboxattr drops sandbox attributes.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--attr=key=value<br />
--attribute=key=value<br />
specifies the attribute to drop.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addsandboxattr, si configuresandbox, add projectattr,<br />
dropprojectattr<br />
122 of 457
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
123 of 457
si edit<br />
opens a revision or working file for editing<br />
SYNOPSIS<br />
si edit [--editor=value] [(-r rev|--revision=rev)] [--[no]systemEditor] [--filter=filteroptions] [(-P<br />
project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev] [-hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)] [(-F file|-selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|-<br />
-gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si edit opens a current, former, or deferred member revision for editing. In a sandbox, by default specifying no -r<br />
option edits the working file.<br />
If this <strong>com</strong>mand is invoked in the CLI mode (that is, no -g or --gui option is used), then the EDITOR environment<br />
variable is used and runs with the name of the temporary file containing the requested revision. If the EDITOR variable is<br />
not set, or if the -g or --gui option is used, a system-specific method is used. In particular, on WIN32-based systems,<br />
the operating system is instructed to open the file and does so based on the extension association. Under UNIX, the -g<br />
or --gui option uses the EDITOR environment variable; if it is not set, then Vi is used.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
--editor=value<br />
identifies the editor to be used, overriding any EDITOR environment variables or system setting.<br />
--[no]systemEditor<br />
controls whether to use the system editor, set through si setprefs. If set, this overrides any editor setting if -g or -gui<br />
is given. This is used to temporarily override the pereference system.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si lock, si unlock , si viewrevision<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
124 of 457
si editcp<br />
edits an existing change package<br />
SYNOPSIS<br />
si editcp [--description=value] [--descriptionFile=value]<br />
[--state=[open|closed|submitted|accepted|rejected|discarded|<strong>com</strong>mitfailed]]<br />
[--summary=value] [--summary=value] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[--quiet] [(-g|--gui)] [--settingsUI=[gui|default]] issue|issue:change package id...<br />
DESCRIPTION<br />
si editcp edits an existing change package.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--description=value<br />
specifies a description of the change package being edited.<br />
--descriptionFile=value<br />
specifies the file that contains the description for the change package.<br />
--state=[open|closed|submitted|accepted|rejected|discarded|<strong>com</strong>mitfailed]<br />
specifies the state of the change package. The change package progresses through states<br />
as part of the change package review workflow. If reviews are not mandatory, some states<br />
are not applicable. For more information, see the Source Integrity Enterprise User Guide<br />
--state=[open] specifies that the change package is open.<br />
--state=[closed] specifies that the change package is closed.<br />
--state=[submitted] specifies that the change package has been submitted for review.<br />
--state=[accepted] specifies that the change package has been accepted by all<br />
reviewers.<br />
--state=[rejected] specifies that the change package has been rejected by at least<br />
one reviewer.<br />
125 of 457
--state=[discarded] specifies that the change package has been discarded.<br />
--state=[<strong>com</strong>mitfailed] specifies that the change package has failed to <strong>com</strong>mit to the<br />
repository.<br />
-summary=value<br />
specifies a brief summary of the change package being edited.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all change packages that you want to edit; use<br />
spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to edit; use spaces to specify<br />
more than one change package.<br />
DIAGNOSTICS<br />
See the diagnosticsreference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si discardcp, si opencp, si closecp, si createcp, si add, si ci, si co, si<br />
cpissues, si createcp, si drop, si lock, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
126 of 457
si exit<br />
exits the current MKS Source Integrity client session<br />
SYNOPSIS<br />
si exit [--[no]abort] [--[no|confirm]shutdown] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si exit exits the current Source Integrity client session. When you run any Source Integrity<br />
<strong>com</strong>mand from the CLI, or when you open the Integrity Client GUI, you start a client session. Only<br />
one client session is running at a time, regardless of how many GUI windows you have open or<br />
how many CLIs you are using. To close the GUI you use the appropriate menu <strong>com</strong>mands, and to<br />
close the CLI you use the si exit <strong>com</strong>mand. In both cases you may have the further option of<br />
shutting down the Source Integrity client altogether, based on your preferences (see si<br />
setprefs); if you do not, the client is still running and available for additional interaction. If you do<br />
shut down the client <strong>com</strong>pletely, then running any Source Integrity <strong>com</strong>mand from the CLI or<br />
opening the Integrity Client GUI starts a new client session.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]abort<br />
controls whether to shut down any other Source Integrity <strong>com</strong>mands that may be running.<br />
Some <strong>com</strong>mands allow you to specify a --persist option which keeps those <strong>com</strong>mands<br />
active during a client session. Using --abort with si exit is re<strong>com</strong>mended for stopping<br />
all persistent views that have been specified with another <strong>com</strong>mand's --persist option.<br />
--[no|confirm]shutdown<br />
controls the shutting down of the Source Integrity client without getting a prompt.<br />
Note:<br />
DIAGNOSTICS<br />
Specifying --noshutdown with si exit is essentially a non-operation: it does<br />
nothing.<br />
127 of 457
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si about, si gui, si setprefs<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
128 of 457
si freeze<br />
freezes a project member<br />
SYNOPSIS<br />
si freeze [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si freeze freezes one or more project members. If no members are specified, si freeze<br />
assumes all members of the project. Members can be unfrozen with the si thaw <strong>com</strong>mand.<br />
When a member is frozen, all MKS Source Integrity operations are run on the frozen member<br />
revision. The member revision and attributes of the frozen member cannot be changed until it is<br />
thawed. This ensures that a particular revision is always picked up, even if development on it<br />
continues.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
129 of 457
Commands:<br />
si checkpoint, si thaw<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
130 of 457
si gui<br />
starts the Integrity Client graphical user interface<br />
SYNOPSIS<br />
si gui [--height=value] [--width=value] [-x value] [-y value] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si gui starts the Integrity Client graphical user interface.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--height=value<br />
specifies the height of the GUI window, in pixels; value must be a whole number.<br />
--width=value<br />
specifies the width of the GUI window, in pixels; value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
131 of 457
Miscellaneous:<br />
diagnostics, options, preferences<br />
132 of 457
si import<br />
imports a member from a server file or from an old Source Integrity archive into an existing MKS Source<br />
Integrity project<br />
SYNOPSIS<br />
si import [--archive=filename] [--author=name] [(--binaryFormat|--textFormat)]<br />
[(-d desc|--description=desc)] [--descriptionFile=file] [--devpath=path] [--[no]createSubprojects]<br />
[--[no]unexpand] [(-r rev|--revision=rev)] [(-P project|--project=project)]<br />
[( -S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name] [--cwd=directory] [(-F file|-selectionFile=file)]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [(-N|--no)] [--[no]batch] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] [(-?|--usage)] [(-Y|--yes)] [--cpid|-changepackageID=value]<br />
[--[no|confirm]closeCP] [--[no]defer] [--issueID=value]<br />
[-R|--[no|confirm]recurse] [--[no|confirm]includeFormers] [--exclude=file:pattern,dir:pattern...]<br />
[--include=file:pattern,dir:pattern...] nonmember...<br />
DESCRIPTION<br />
si import imports an external file or archive into the Source Integrity repository and adds it as a member of a<br />
Source Integrity project.<br />
The si import <strong>com</strong>mand can be used for the following:<br />
● Import archives from older versions of Source Integrity into an existing project on the Integrity Server.<br />
Note: Once a member has been imported, you may not use an older version of Source Integrity to manipulate<br />
its archives.<br />
● To add several files as new members more quickly. Use the si import <strong>com</strong>mand for batch imports of a<br />
directory tree.<br />
Place the files on the server in the project directory before si import is run. The files can safely be removed<br />
after the <strong>com</strong>mand <strong>com</strong>pletion.<br />
Note: To retrieve a dropped member history, use the si addmemberfromarchive <strong>com</strong>mand.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
--archive=filename<br />
sets the archive file name, filename, containing the server-side path and name by which the newly added<br />
member will be archived. This must be an existing archive file - this option does not create a new archive. This<br />
is an advanced option that effectively specifies an archive path to override the default mapping, allowing a<br />
basic form of archive sharing between projects; its use is not re<strong>com</strong>mended except by advanced Source<br />
Integrity administrators.<br />
-r=value<br />
--revision=value<br />
specifies the revision at which the member is to be added. This must be an existing revision in the archive. By<br />
133 of 457
default, the member is added at the latest revision on the main branch.<br />
--author=name<br />
specifies an author name.<br />
--binaryFormat<br />
--textFormat<br />
forces the storage of the member file to occur in binary format or text format. This option overrides the<br />
preferences settings that control default behavior in the application for storage format. See the si setprefs<br />
and si viewprefs <strong>com</strong>mands for more details on preferences.<br />
--devpath=path<br />
identifies the name of the development path.<br />
-d desc<br />
--description=desc<br />
specifies a description for the new member history; this setting and the --descriptionFile option are<br />
mutually exclusive. If specifying a nonmember that has an existing history, this description does not overwrite<br />
an existing description and is ignored.<br />
--descriptionFile=file<br />
specifies a file for obtaining a description to apply to the new member history; this setting and the<br />
--description option are mutually exclusive. If specifying a nonmember that has an existing history, this<br />
description does not overwrite an existing description and is ignored.<br />
--[no]createSubprojects<br />
controls whether to create subprojects for each subdirectory encountered when adding members. This option is<br />
<strong>com</strong>monly used where you anticipate working with a large directory structure, because multiple subprojects are<br />
easier to manage than many subdirectories within one project. For example, specifying:<br />
si import --createSubprojects --description="Button Application"<br />
\buttons\activebutton.c<br />
creates a subproject for the \buttons directory and adds the file activebutton.c. Without the -createSubprojects<br />
option, the file and its path simply would be added to the project in the project directory.<br />
--[no]unexpand<br />
controls whether to unexpand keywords in the member file before checking it into the history. Keyword<br />
expansion is only available in text archives, not binary archives. For descriptions of the Source Integrity<br />
keywords, see the Source Integrity Enterprise User Guide User Guide. Possible keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
$Source$<br />
$State$<br />
134 of 457
--cpid=value<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452:1. Note the following about using<br />
this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is enabled, and/or it<br />
is mandatory to specify a change package.<br />
❍ If you have TrackLocks enabled, Source Integrity prompts you with the change package you used when<br />
you checked out the specified member, not the default change package. From the graphical user<br />
interface, you must manually select the change package.<br />
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if no change<br />
package is applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change package ID is displayed<br />
by default, if :none was specified or at least one change package was successfully updated from the last<br />
operation.<br />
--[no|confirm]closeCP<br />
closes the change package after <strong>com</strong>mand <strong>com</strong>pletion.<br />
--issueID=value<br />
specifies the issue ID that corresponds to the change package that records the changes.<br />
--[no]defer<br />
controls whether to delay the operation in the project until the deferred operation is submitted. The operation in<br />
the sandbox still takes place immediately.<br />
--[no|confirm]includeFormers<br />
controls whether to include former members when importing.<br />
-R<br />
--[no|confirm]recurse<br />
controls whether to select non-members recursively. Non-members are files that exist in the sandbox directory<br />
but have not previously been added to the server repository.<br />
--exclude=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for excluding members.<br />
--include=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for including members.<br />
monmember...<br />
identifies a specific file to add to your sandbox; use spaces to specify more than one. The file pathnames are<br />
server-side, relative to the project.<br />
Note: All files must be added "in tree", that is, the nonmember must exist in the sandbox directory or a<br />
subdirectory. Shared "out of tree" histories are supported by using the --archive option to point to the "out of<br />
tree" history that you want to associate with the member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
135 of 457
SEE ALSO<br />
Commands:<br />
si add, si addmemberfromarchive<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
136 of 457
si importproject<br />
imports an external project and registers it on an Integrity Server<br />
SYNOPSIS<br />
si importproject [--[no]openView] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
[--[no]add] project location...<br />
DESCRIPTION<br />
si importproject imports an external project into the Integrity Server and adds it as a top-level<br />
project. All existing legacy projects must first be imported before further <strong>com</strong>mands can operate on<br />
the project and its members. If you only want to expose a project already in the Source Integrity<br />
repository, such as exposing a subproject as a top-level project, use the si addproject<br />
<strong>com</strong>mand.<br />
This <strong>com</strong>mand would normally be run only by the Source Integrity administrator.<br />
An existing project may have been created by a prior version of Source Integrity, or dropped, or<br />
copied from another server. However, this operation is strictly performed on the Integrity Server --<br />
all archives and projects must have been copied to the appropriate location on the server. They are<br />
NOT copied up from a client.<br />
The processing of this <strong>com</strong>mand may take some time, since it traverses all subprojects in the<br />
imported project, and may perform various operations on them, such as checkpointing.<br />
The Source Integrity administrator may restrict the path names of projects being imported on the<br />
server. This is done through the si.serverRoot property in the si.properties file on the Integrity<br />
Server. If this is set, then any project location given must be under that directory. For details, see<br />
the Integrity Server Administration Guide.<br />
Note:<br />
Options<br />
Once a project has been imported, you may not use an older version of Source Integrity to<br />
manipulate it nor its archives. If for some reason you need to use an older version of Source<br />
Integrity on a project, first use si dropproject before doing so. The project must be reimported<br />
before it can be used again with this version of Source Integrity.<br />
137 of 457
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]openView<br />
controls whether to open the project view after this project is imported and registered on the<br />
server. If --noopenView is used, the project view does not open.<br />
--[no]add<br />
specifies if to add the project to the list of registered projects.<br />
project location...<br />
identifies a location on the Integrity Server for the existing project to be imported.<br />
Regardless of your operating system, all paths are specified here using forward slashes (/)<br />
and should include the name of the project file (typically project.pj). Use spaces to<br />
specify more than one project location.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addproject, si checkpoint, si createproject, si createsandbox, si<br />
createsubproject, si dropproject, si importsandbox, si projects, si<br />
viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
138 of 457
si importsandbox<br />
imports an existing sandbox<br />
SYNOPSIS<br />
si importsandbox [--[no]openView] [(-S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] file...<br />
DESCRIPTION<br />
si importsandbox imports an existing sandbox and registers it as a new sandbox on the<br />
Integrity Client. You must correlate this sandbox with a project that already exists on the Integrity<br />
Server, and it is assumed that the project you identify is the project the sandbox was first created<br />
from. A sandbox must first be registered before further <strong>com</strong>mands can operate on the sandbox and<br />
its members.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]openView<br />
controls whether to open the sandbox view after this sandbox is imported and registered on<br />
the client. If --noopenView is used, the sandbox view does not open.<br />
file...<br />
identifies an existing sandbox file (project.pj) on the MKS Source Integrity client system<br />
to be imported; use spaces to specify more than one.<br />
Note:<br />
Unlike the si createsandbox <strong>com</strong>mand, for si importsandbox you must<br />
include the name of the sandbox file, which is typically project.pj.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
139 of 457
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si createproject, si dropsandbox, si importproject, si<br />
sandboxes, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
140 of 457
si integrations<br />
manages integrations.<br />
SYNOPSIS<br />
si integrations [--action=[list|enable|enableAll|disable|disableAll]] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] string...<br />
DESCRIPTION<br />
si integrations enables or disables Source Integrity Integrations. You can select from a list of<br />
available IDE integrations and enable or disable them as required to work with your preferred IDE.<br />
There is no requirement to re-install the Integrity Client, but if prompted, you may need to reboot<br />
your <strong>com</strong>puter or restart the IDE for the integration to take effect.<br />
An Integrated Development Environment, or IDE, is a supported development application, such as<br />
Sybase PowerBuilder, that allows you to access Source Integrity functionality by installing the<br />
appropriate extension.<br />
For <strong>com</strong>plete information on using third party integrations with Source Integrity, see the<br />
Integrations User Guide.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--action=[list|enable|enableAll|disable|disableAll]<br />
specifies the action to perform on the integration. An action must be specified. There is no<br />
default specification for this option, so to list all of the available integrations, use the list flag.<br />
Note: Source Integrity asks you to restart your <strong>com</strong>puter to <strong>com</strong>plete the integration<br />
changes. If you are disabling[enabling] a number of integrations, you do not need to restart<br />
between each si integrations <strong>com</strong>mand. When you have disabled[enabled] all the<br />
required integrations, you can restart your machine.<br />
string...<br />
specifies the integration to perform an action upon.<br />
DIAGNOSTICS<br />
141 of 457
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
142 of 457
si loadrc<br />
loads the Integrity Client preferences file<br />
SYNOPSIS<br />
si loadrc [--[no]merge] [--rc=value] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [-F|--selectionFile=value]<br />
DESCRIPTION<br />
si loadrc loads the user's IntegrityClient.rc file, which contains your personal<br />
preferences for configuring the Integrity Client. The IntegrityClient.rc file is loaded when<br />
you start the client; however, this <strong>com</strong>mand reloads the file without restarting the client. If for some<br />
reason your personal IntegrityClient.rc file has changed, this <strong>com</strong>mand will reload your<br />
preferences. Your preferences file shouldn't change, unless you happen to copy someone else's<br />
file or if you happen to restore a backup that you made.<br />
Your administrator can lock certain preferences from the Integrity Server, preventing you from<br />
configuring them using the si setprefs <strong>com</strong>mand. Preferences that are locked -- viewable with<br />
si viewprefs -- display (locked) at the end of the output line. The following preferences can<br />
be locked from the server by editing Source Integrity policies in the Administration Client:<br />
Tip: For information on editing Source Integrity policies, see "Configuring the Integrity Server" in<br />
the Integrity Server Administration Guide.<br />
Preference Affected Commands<br />
branchIfVariant si co , si lock<br />
breakLock si unlock<br />
changePackageID si co, si lock<br />
createBranch si lock<br />
onLock si co<br />
restoreTimestamp<br />
si resync,<br />
si resynccp, si<br />
revert<br />
retainWorkingFile si add, si ci<br />
saveTimestamp si add, si ci<br />
sparse si importsandbox<br />
143 of 457
updateMemberRev si ci<br />
Warning: Do not edit the IntegrityClient.rc file manually, because preferences that appear<br />
more than once in the IntegrityClient.rc file can cause the Integrity Client to behave<br />
unpredictably.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]merge<br />
controls whether settings from the loaded file should be merged into existing preferences.<br />
--rc=value<br />
identifies the file containing settings for running the Integrity Client. The default is the<br />
IntegrityClient.rc file in your home directory.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si setprefs, si viewprefs<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
144 of 457
si locate<br />
displays where a project, subproject, member, or revision is used<br />
SYNOPSIS<br />
si locate [--depth=[current|build|all]] [--devpathscope=[this|others|all]]<br />
[--distinct=[project|devpath|registeredproject]]<br />
[--[no]limittoactiveprojects] [--listfields=field1[:width1],field2[:width2]...]<br />
[--mode=[distinct|list]] [--projectscope=[this|others|all]]<br />
[(-r value|--revision=value)] [--height=value] [--width=value] [-x=value] [-y=value]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member/subproject<br />
DESCRIPTION<br />
As projects grow in <strong>com</strong>plexity, it can be difficult to determine the relationships that Source Integrity<br />
objects--projects, subprojects, and members--have with one another. When working with multiple<br />
development paths and shared subprojects or shared member archives, it be<strong>com</strong>es very important<br />
to understand what areas of a project might be affected by parallel development. Using the si<br />
locate <strong>com</strong>mand, you can locate where a specific Source Integrity object is used in your source<br />
code repository and refine and sort the search results.<br />
For example, you might need to:<br />
● Determine what “active” projects (a project currently under development) a member,<br />
subproject, or registered top-level project is shared into.<br />
● Determine what development paths a selected member or subproject is a part of.<br />
● Determine if a selected member revision is part of a checkpoint.<br />
● Confirm all existing checkpoints for a selected revision before you delete it.<br />
● Display the development path that a corresponding member revision belongs to.<br />
● Display which master projects a selected subproject belongs to.<br />
Source Integrity displays the search results in one of the following modes:<br />
● Distinct Mode provides a high-level view of the information.<br />
● List Mode provides a detailed view of the information.<br />
Key Considerations:<br />
145 of 457
● The si locate <strong>com</strong>mand can only be used in the database repository. Using the<br />
<strong>com</strong>mand in the RCS based repository returns an error message.<br />
● You require the OpenProject permission for the project you are running the si locate<br />
<strong>com</strong>mand from. When the Locate view displays, Source Integrity informs you if there are<br />
additional projects that you do not have permission to view.<br />
● Archive locations are not displayed in the search results.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--depth=[current|build|all]<br />
specifies the depth of the search. --depth=current searches current project<br />
configurations (normal and variant).--depth=build searches current project<br />
configurations and checkpoints.--depth=all searches current project configurations,<br />
checkpoints, and in between checkpoints.<br />
--devpathscope=[this|others|all]<br />
specifies which development paths to include in the search. --devpathscope=this<br />
searches the current development path. --devpathscope=others searches all<br />
development paths, except the current development path. --devpathscope=all<br />
searches all development paths.<br />
--distinct=[project|devpath|registeredproject]<br />
specifies the information you want displayed in Distinct Mode. This option must be used with<br />
--mode=distinct. --distinct=project lists only distinct project names.-distinct=devpath<br />
lists only development path names.-distinct=registeredproject<br />
lists only registered top-level project names.<br />
--[no]limittoactiveprojects<br />
specifies whether to search projects referenced by current registered top level projects on<br />
the server.<br />
--listfields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be displayed when you use the --mode=list option, specified<br />
in the format field1[:width1],field2[:width2].... Specifying the column [: width] (in pixels) for<br />
each field is optional - widths are only available in the GUI. In the CLI, fields are separated<br />
with a space. This option must be used with --mode=list.<br />
You can display one or more of the following fields:<br />
checkpoints<br />
displays the checkpoints that the object belongs to.<br />
dates<br />
displays the date ranges in which the object exists.<br />
devpath<br />
displays the development paths that the object belongs to.<br />
146 of 457
name<br />
displays the object's path and name.<br />
project<br />
displays the projects that the object belongs to.<br />
revisions<br />
displays the member's revisions.<br />
registeredproject<br />
displays the top-level project that the object belongs to.<br />
--mode=[distinct|list]<br />
specifies the level of detail to display in the search results. --mode=distinct displays<br />
only the projects and/or development paths that contain the object you are searching. This<br />
option must be used with --distinct=[project|devpath|registeredproject]. -mode=list<br />
displays all occurrences of the object in the projects and/or development paths<br />
that contain the object. If you do not specify a mode, --mode=distinct and -distinct=devpath<br />
are used.<br />
--projectscope=[this|others|all]<br />
specifies which projects to search. --projectscope=this searches the current project<br />
and its subprojects.--projectscope=others searches all projects and subprojects,<br />
except the current project.--projectscope=all searches all projects and subprojects.<br />
-r<br />
--revision<br />
specifies the member revision to search.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the GUI window, in pixels; value<br />
must be a whole number.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the GUI window, in pixels; value<br />
must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
member/subproject<br />
locates where the specified member or subproject is used. If you do not specify a member<br />
or subproject, Source Integrity uses the project specified in -P project|--project=project<br />
or -S sandbox|--sandbox=sandbox.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
147 of 457
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si deleterevision, si viewproject, si viewprojecthistory, si<br />
viewhistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
148 of 457
si lock<br />
locks project members<br />
SYNOPSIS<br />
si lock [--[no|confirm]branch] [--[no|confirm]branchVariant]<br />
[(--cpid ID|--changePackageId=ID)] [--issueId =ID] [(-r rev|--revision=rev)]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si lock locks one or more project members. If no members are specified, si lock applies to all<br />
project members. By default, the member revision is locked and not necessarily the working<br />
revision, if in a sandbox.<br />
This is purely a project operation -- if performed in a sandbox, no memory of what revision was<br />
locked is maintained in the sandbox.<br />
Depending on the locking policy configured by your administrator, you may hold a lock on only one<br />
revision of a particular member at a time. It is not an "error" to relock an already locked member.<br />
If the target revision is already locked by a user other than yourself, then specifying the --branch<br />
option creates a branch revision and locks it. Otherwise, you cannot lock the revision at all.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]branch<br />
controls whether to create a branch revision if the target revision is already locked by a user<br />
other than yourself.<br />
For details on branch revisions, see the si ci reference page.<br />
--[no|confirm]branchVariant<br />
controls whether to create a branch off of the revision you are locking, if you are working in a<br />
variant sandbox. This is useful for keeping changes in the variant separate from changes<br />
149 of 457
made in the mainline project.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 145:2. Note the<br />
following about using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if<br />
no change package is applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of adding members to a change package. If you have an issue assigned to you<br />
that contains one open change package, you can specify the issue ID instead of the change<br />
package ID. This option can only be specified if the Integrity Manager integration is enabled.<br />
See the Integrity Server Administration Guide or your administrator for details on using the<br />
Integrity Manager integration.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si edit, si rlog, si unlock<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
150 of 457
si locks<br />
displays a user's locks.<br />
SYNOPSIS<br />
si locks [--locker=value] [--fields=field1[:width1],field2[:width2]...] [--height=value]<br />
[--width=value] [-x=value] [-y=value] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--[no]persist]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si locks displays all of a user's locks on the target server.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--locker=value<br />
specifies the user whose locks are retrieved.<br />
--fields=field1[:width1],field2[:width2]...<br />
The fields available for printing can be one or more of the following:<br />
archive<br />
displays the name of the locked archive.<br />
cpid<br />
displays the change package ID number if it is a lock entry in a change package.<br />
devpath<br />
displays the name of the development path where the lock on the revision was made<br />
from. This information is relevant when the locking policy is set to devpath, allowing a<br />
single user to have a single lock on an archive per development path.<br />
host<br />
displays the hostname of the <strong>com</strong>puter which the lock was performed on.<br />
member<br />
displays the name of the locked member.<br />
project<br />
displays the name and path of the project where the member revision was locked<br />
from. If the member revision was locked from a shared subproject, it is the subproject<br />
151 of 457
name and path that are displayed.<br />
revision<br />
displays the locked revision number.<br />
sandbox<br />
displays the name of the sandbox where the lock on the revision was made, and is<br />
relevant when viewing the information from the machine that locked it.<br />
timestamp<br />
displays the time the archive was locked.<br />
user<br />
displays the user holding the lock.<br />
--height=value<br />
specifies the height of the GUI window in pixels.<br />
--width=value<br />
specifies the width of the GUI window in pixels.<br />
-x=value<br />
specifies the x location of the GUI window in pixels.<br />
-y=value<br />
specifies the y location of the GUI window in pixels.<br />
--[no]persist<br />
controls the persistence of CLI views.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si<br />
viewprojecthistory, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
152 of 457
si makewritable<br />
makes sandbox members writable<br />
SYNOPSIS<br />
si makewritable [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
sandbox member...<br />
DESCRIPTION<br />
si makewritable makes sandbox members writable. If no members are specified, si<br />
makewritable applies to all sandbox members.<br />
The si makewritable <strong>com</strong>mand makes a working file writable. This option is useful when you<br />
want to work with a particular revision and someone else has the revision checked out, but you do<br />
not want to create a new branch. When the other user has <strong>com</strong>pleted their changes and checked<br />
them in, you can check out the revision, merge your changes with the new revision, and check in<br />
your changes. This option is equivalent to the si co --onLock=makewritable <strong>com</strong>mand.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
153 of 457
SEE ALSO<br />
Commands:<br />
si ci, si co, si diff, si edit, si lock, si resync, si rlog, si unlock<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
154 of 457
si memberinfo<br />
lists member information<br />
SYNOPSIS<br />
si memberinfo [--[no]acl] [--[no]attributes] [--[no]changePackage]<br />
[--[no]labels] [--[no]rule] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member<br />
DESCRIPTION<br />
si memberinfo lists current information about a project member. This includes general<br />
information about the member, and specific information on the member revision. For example:<br />
Member Name: c:\Documentation\Man_Pages\xml_man\si_add.1.xml<br />
Sandbox Name: c:\Documentation\Man_Pages\project.pj<br />
The member archive is shared<br />
Member Revision: 1.7<br />
Created By: sueq on July 11, 2005 - 11:36 AM<br />
State: state_a<br />
Revision <strong>Description</strong>:<br />
Updated for Technical Review<br />
Labels:<br />
TechReview1<br />
Change Package:<br />
ID: 1:1<br />
Summary: Search Engine Fix<br />
Attributes: none<br />
This member does not have a revision rule.<br />
Note: The member archive is shared displays only if the member shares another member's<br />
archive and you are using the database repository.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
155 of 457
--[no]acl<br />
shows ACL information for the member.<br />
--[no]attributes<br />
controls whether to display member attributes. If no attributes exist, Attributes:none is<br />
displayed.<br />
--[no]changePackage<br />
controls whether to display change package information (applies only change packages are<br />
enabled).<br />
--[no]labels<br />
controls whether to display member labels.<br />
--[no]rule<br />
controls whether to display the member revision rule.<br />
member<br />
identifies one specific member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si mods, si revisioninfo, si rlog, si setmemberrule, si<br />
updatemember<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
156 of 457
si merge<br />
merges data from two revisions of a project member into a working file<br />
SYNOPSIS<br />
si merge [--mergeType=[confirm|cancel|automatic|manual]]<br />
[--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]] [--outputFile=value]<br />
[-r rev] [--resolve] [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
sandbox member...<br />
DESCRIPTION<br />
si merge merges data from two revisions of a project member against a root revision. By default,<br />
the result overwrites the working file. This operates in a sandbox. You cannot perform a merge on<br />
a project-only basis, since the result is left in your sandbox.<br />
The second -r rev specified is merged with the revision in the current working file. The first<br />
-r rev specified is the root revision. Both the working file revision and the other revision should<br />
have been derived from this root revision. For example, suppose development has branched from<br />
revision 1.3, with maintenance occurring on the 1.3.1 branch. Further suppose the tip of that<br />
branch is revision 1.3.1.3, the headrev member revision is 1.5, and that the revision in the sandbox<br />
is 1.5.<br />
1.5 (headrev)<br />
1.4<br />
1.3.1.3 (maintenance branch tip)<br />
1.3.1.2<br />
1.3.1.1<br />
1.3 (root)<br />
The <strong>com</strong>mand si merge -r 1.3 -r 1.3.1.3 merges the changes in 1.3.1.3 that have occurred<br />
since 1.3, into revision 1.5 in the working file in the sandbox.<br />
si merge is useful for <strong>com</strong>bining separate changes into a checked out revision. Suppose root is<br />
the original, and both headrev and branch tip are modifications of root. Then, si merge <strong>com</strong>bines<br />
both changes.<br />
An overlap occurs if both branches of development (headrev and branch tip) have changes in a<br />
157 of 457
<strong>com</strong>mon segment of lines. Depending on the value used in --onMergeConflict, si merge<br />
displays how many overlaps occurred, and includes both alternatives in the result, delimiting them<br />
as follows:<br />
> file2<br />
If there are overlaps, by default Source Integrity asks you how you want to resolve the conflict. If<br />
you specify --mergeType=automatic and --onMergeConflict=highlight, it is up to you<br />
to determine how to resolve the conflict by editing the result.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--mergeType=[confirm|cancel|automatic|manual]<br />
specifies how you want to <strong>com</strong>plete the merge.<br />
--mergeType=confirm prompts you to confirm a merge type.<br />
--mergeType=cancel cancels the selected merge.<br />
--mergeType=automatic <strong>com</strong>pletes the merge process without launching the MKS Visual<br />
Merge tool.<br />
Warning: While Source Integrity and MKS Visual Merge are capable of performing<br />
automatic merging, MKS cannot guarantee that the merged results are “correct”. MKS<br />
re<strong>com</strong>mends that you examine and test the merged results before checking them into the<br />
repository.<br />
--mergeType=manual <strong>com</strong>pletes the merge operation through the MKS Visual Merge tool.<br />
The MKS Visual Merge tool launches, displaying the revisions you want to merge. For more<br />
information on the MKS Visual Merge tool, refer to the Source Integrity Enterprise User<br />
Guide.<br />
--onMergeConflict =[confirm|cancel|mark|launchtool|highlight|error]<br />
specifies what to do when conflicts occur during the merge.<br />
--onMergeConflict=confirm prompts you to confirm a merge conflict option.<br />
158 of 457
--onMergeConflict=cancel cancels the merge.<br />
--onMergeConflict=mark marks the working file in your sandbox indicating that merging<br />
is required without <strong>com</strong>pleting all of the merge related tasks. This provides the time to<br />
investigate conflicts, edit, or difference blocks before finishing the merge.<br />
Tip: To display the affected member revisions, use the<br />
si print --filter=unresolvedmerges <strong>com</strong>mand. After you resolve the merge<br />
conflicts, merge the revisions using the si merge --resolve <strong>com</strong>mand.<br />
--onMergeConflict=launchtool launches the MKS Visual Merge tool to resolve the<br />
conflicts, all non-conflicting blocks will already have been applied.<br />
--onMergeConflict=highlight indicates conflicts in the working file with the following<br />
characters: "". You are responsible for manually resolving conflicts in<br />
the working file.<br />
Note: --onMergeConflict=launchtool does not require the -g or --gui options.<br />
--onMergeConflict=error displays an error when a merge conflict is encountered.<br />
--outputFile=value<br />
identifies the location and name of a file that is to contain the result of merging data from two<br />
member revisions. If you do not specify a file, the working file is used.<br />
-r rev<br />
uses a specified revision. value can be a valid revision number or a label.<br />
Specify this option twice to identify the two revisions to be merged; the first instance is the<br />
"old" revision, the second is the "new". The changes needed to make the "old" into the "new"<br />
are then incorporated into the working file or into the --outputFile. If you specify the<br />
-r rev option only once, si merge uses the latest revision on the default branch as the<br />
other revision.<br />
--resolve<br />
merges a previously unresolved merge.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
159 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si diff, si mergebranch, si revisioninfo<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
160 of 457
si mergebranch<br />
merges a branch revision into a single revision<br />
SYNOPSIS<br />
si mergebranch [--[no|confirm]branch] [--[no|confirm]branchVariant]<br />
[--mergeType=[confirm|cancel|automatic|manual]]<br />
[--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]]<br />
[--branchRevision=value] [(--cpid ID|--changePackageId=ID)] [--issueId=ID]<br />
[(--[no]lock)] [--targetRevision=value] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-S sandbox|--sandbox=sandbox)] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] sandbox member...<br />
DESCRIPTION<br />
si mergebranch allows you to <strong>com</strong>bine the development occurring on different branches by<br />
merging the branched revisions into a single revision.<br />
Source Integrity recognizes cases where a previous merge has occurred, (whether by merging the<br />
branch, automatic merging, or using the MKS Visual Merge and MKS Visual Difference tools), and<br />
merges only changes since the last merge operation. Thus, the first merge branch operation<br />
occurring on a given branch merges all changes throughout the branch. Any subsequent merge<br />
branch operations will merge only changes since the previous merge operation.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]branch<br />
specifies whether to create a branch off of the target revision (the member revision that the<br />
working revision is merged into), if it is locked by another user.<br />
--[no|confirm]branchVariant<br />
specifies whether to create a new branch for the merged revision, if the specified variant<br />
does not already have a branch.<br />
--mergeType=[confirm|cancel|automatic|manual]<br />
specifies how you want to <strong>com</strong>plete the merge.<br />
--mergeType=confirm prompts you to confirm a merge type.<br />
161 of 457
--mergeType=cancel cancels the selected merge.<br />
--mergeType=automatic <strong>com</strong>pletes the merge process without launching the MKS Visual<br />
Merge tool.<br />
Warning: While Source Integrity and MKS Visual Merge are capable of performing<br />
automatic merging, MKS cannot guarantee that the merged results are “correct”. MKS<br />
re<strong>com</strong>mends that you examine and test the merged results before checking them into the<br />
repository.<br />
--mergeType=manual <strong>com</strong>pletes the merge operation through the MKS Visual Merge tool.<br />
The MKS Visual Merge tool launches, displaying the revisions you want to merge. For more<br />
information on the MKS Visual Merge tool, refer to the Source Integrity Enterprise User<br />
Guide.<br />
--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]<br />
specifies what to do when conflicts occur during the merge.<br />
--onMergeConflict=confirm prompts you to confirm a merge conflict option.<br />
--onMergeConflict=cancel cancels the merge.<br />
--onMergeConflict=mark marks the working file indicating that merging is required<br />
without <strong>com</strong>pleting all of the merge related tasks. This provides the time you may need to<br />
investigate conflicts, edit, or difference blocks before finishing the merge.<br />
--onMergeConflict=launchtool launches the MKS Visual Merge tool to resolve the<br />
conflicts, all non-conflicting blocks will already have been applied.<br />
--onMergeConflict=highlight indicates conflicts in the file with the following characters:<br />
"". You are responsible for manually resolving conflicts in the working<br />
file.<br />
Note: --onMergeConflict=launchtool does not require the -g or --gui options.<br />
--onMergeConflict=error displays an error when a merge conflict is encountered.<br />
--branchRevision=revision<br />
specifies the branch revision that you want to merge into the head revision. If no revision is<br />
specified, the working revision is used.<br />
--cpid=ID<br />
--changePackageId=ID<br />
162 of 457
identifies a change package that is notified of this action, for example, 145:2. Note the<br />
following about using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
❍ If the Integrity Manager integration is enabled, but it is not mandatory to specify a<br />
change package, or if no change package is applicable, you must specify<br />
--changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of redirecting to a change package. If you have an issue assigned to you that<br />
contains one open change package, you can specify the issue ID instead of the change<br />
package ID. This option can only be specified if the Integrity Manager integration is enabled.<br />
See the Integrity Server Administration Guide or your administrator for details on using the<br />
Integrity Manager integration.<br />
--[no]lock<br />
controls whether to lock the target revision, so that the results of the merge can be checked<br />
in.<br />
--targetRevision=revision|:symbolic<br />
specifies the symbolic name (i.e. member, working, branch, etc.), revision number, or label<br />
of the revision that you want to merge the branch revision into; typically the head revision. If<br />
no revision is specified, the member revision is used.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
163 of 457
si ci, si diff, si edit, si lock, si merge, si resync, si rlog, si unlock<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
164 of 457
si mods<br />
lists changes made to a project since a checkpoint<br />
SYNOPSIS<br />
si mods [--fields=field1[:width1],field2[:width2]...] [(-r rev)] [--[no]showAppliedCPList]<br />
[--[no]showAttrChanges] [--[no]showChangePackages] [--[no]showMemberChanges]<br />
[--[no]showRev<strong>Description</strong>] [--devpath=value] [--projectRevision=value]<br />
[(-R|--[no|confirm]recurse)] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [--height=value] [--width=value] [-x=value]<br />
[-y=value] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si mods displays modifications to a project between checkpoints or between a checkpoint and the<br />
working project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
The fields available can be one or more of the following:<br />
change<br />
displays details of changes made to project members.<br />
name<br />
displays the member name.<br />
-r rev<br />
uses a specified revision of the project. rev can be a valid revision number or label. The -r<br />
option may occur twice; if the second is not specified, the <strong>com</strong>parison is against the working<br />
project. If both revisions are not specified, the first revision is the tip of the trunk in a normal<br />
project, or the project revision when working in a variant sandbox. For example, simply<br />
165 of 457
using si mods shows all the changes in the current project since the last checkpoint.<br />
--[no]showAppliedCPList<br />
controls whether to show change packages applied to a project via si applycp or si<br />
resynccp.<br />
For more information on applying change packages, see si applycp.<br />
--[no]showAttrChanges<br />
controls whether to show the member attribute changes.<br />
--[no]showMemberChanges<br />
controls whether to show member changes.<br />
--[no]showRev<strong>Description</strong><br />
controls whether to show the revision description of new revisions that have been added.<br />
--[no]showChangePackages<br />
controls whether to show the change packages that correspond to member operations.<br />
Change package information displayed is drawn from the modifications calculated from the<br />
checkpoint <strong>com</strong>parison.<br />
The By Change Package panel displays the following information:<br />
❍ ID displays the change package ID for change packages that contain entries with<br />
member changes between project revisions<br />
❍ Summary displays the change package summary for change packages that contain<br />
entries with member changes between project revisions.<br />
Modifications that are not associated with a change package (unresolved) are displayed in<br />
the bottom frame of the By Change Package panel. Where possible, the member or project<br />
name is displayed with full path information. The following are reasons why modifications<br />
can appear in the bottom frame:<br />
❍ The change package entry is missing; either because one was not recorded for the<br />
member operation, or the entry was discarded.<br />
❍ The operation that made the modification cannot use a change package, for example,<br />
adding a subproject.<br />
❍ The project state captures <strong>com</strong>pared are from different development paths.<br />
Pending change package entries do not appear in the By Change Package panel (GUI).<br />
-R<br />
--[no|confirm]recurse<br />
controls whether to recurse into subprojects that are determined to be in <strong>com</strong>mon between<br />
the two projects.<br />
--height=value<br />
specifies the height of the GUI window, in pixels; value must be a whole number.<br />
--width=value<br />
166 of 457
specifies the width of the GUI window, in pixels; value must be a whole number.<br />
-x=value<br />
specifies the x location of the GUI window in pixels.<br />
-y=value<br />
specifies the y location of the GUI window in pixels.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si appendrevdesc, si archiveinfo, si checkpoint, si ci, si co, si diff, si<br />
memberinfo, si merge, si projectinfo, si revisioninfo, si rlog, si<br />
sandboxinfo, si updatearchive, si updaterevision, si viewhistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
167 of 457
si move<br />
moves one or more project members between projects, or between directories in a single<br />
project<br />
SYNOPSIS<br />
si move [(--cpid ID|--changePackageId=ID)]<br />
[--[no|confirm]closeCP] [--[no]confirm] [--[no]defer] [-f] [--issueId=ID]<br />
[--[no]moveWorkingFile] [--[no|confirm]overwrite] [--[no]createSubprojects]<br />
[--targetDevpath=value] [--targetDir=value] [--targetProject=value]<br />
[--targetSandbox=value] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
As software designs and project structures change, it may be<strong>com</strong>e necessary to move one or more<br />
members between projects, variants of the same project, or directories in a project.<br />
Moving a member performs a drop in the source location and an add in the target location, creating<br />
a new revision in the existing archive. The member’s archive remains in its original location in the<br />
repository so that change packages, member histories, and project histories continue to work. If<br />
the move is performed with a change package, the member is added as a single Move entry in the<br />
change package. If you are moving multiple members, any <strong>com</strong>mon directory prefix shared by the<br />
members is automatically removed during the move.<br />
Key Considerations<br />
● Moving members between projects on different servers is not supported.<br />
● You can perform deferred member moves only if both the source and target locations are<br />
sandboxes.<br />
● si move does not work recursively on subprojects. To move one or more subprojects, use<br />
the si movesubproject <strong>com</strong>mand.<br />
● Source Integrity detects whether any ACLs exist in the tree defined by the source project,<br />
the target project, and the <strong>com</strong>mon root between them (or the global ACL, if there is no<br />
<strong>com</strong>mon root). If any ACLs are found, Source Integrity warns you so you can manually<br />
make any required adjustments to the ACLs after the move is <strong>com</strong>plete.<br />
168 of 457
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 145:2. Note the<br />
following about using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
❍ If the Integrity Manager integration is enabled, but it is not mandatory to specify a<br />
change package, or if no change package is applicable, you must specify<br />
--changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--[no|confirm]closeCP<br />
controls whether to close the associated change package.<br />
--nocloseCP means do not close the change package.<br />
--confirmcloseCP means ask before closing the change package.<br />
--closeCP always closes the change package.<br />
--[no]confirm<br />
controls whether to confirm the move before proceeding.<br />
--[no]defer<br />
controls whether to delay the move operation in the project until the deferred operation is<br />
submitted. The move operation in the sandbox still takes place immediately. This option is<br />
available only if the source and target are sandboxes.<br />
-f<br />
forces the move without confirmation.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of redirecting to a change package. If you have an issue assigned to you that<br />
contains one open change package, you can specify the issue ID instead of the change<br />
package ID. This option can only be specified if the Integrity Manager Integration is enabled.<br />
See the Integrity Server Administration Guide or your administrator for details on using the<br />
Integrity Manager integration.<br />
--[no|confirm]overwrite<br />
controls whether to overwrite the working file if it exists. This option is valid only if you are<br />
169 of 457
moving one or more members from a source sandbox to a target sandbox.<br />
--[no]moveWorkingFile<br />
controls whether to move the working file into the sandbox immediately. This option is valid<br />
only if you are moving one or more members from a source sandbox to a target sandbox.<br />
--[no]createSubprojects<br />
controls whether to create subprojects in existing directories that do not contain subprojects.<br />
--targetDevpath=value<br />
specifies the target development path (for variant projects).<br />
--targetDir=value<br />
specifies the subdirectory in the destination project or sandbox’s directory that you want to<br />
move the member(s) to.<br />
--targetSandbox=value<br />
specifies the name of the target sandbox (can be used as a project redirector).<br />
--targetProject=value<br />
specifies the name of the target project.<br />
member...<br />
identifies a member to move; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si co, si rename, si movesubproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
170 of 457
si movesubproject<br />
moves a subproject between projects or between directories of a single project<br />
SYNOPSIS<br />
si movesubproject [--[no]confirm] [--[no]createSubprojects] [-f]<br />
[--moveWorkingFiles=[none|members|all]] [--[no|confirm]overwrite]<br />
[--targetDevpath=value] [--targetDir=value] [--targetProject=value]<br />
[--targetSandbox=value] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] subproject or subsandbox<br />
DESCRIPTION<br />
To meet the needs of changing project configurations, you can move one or more subprojects, and<br />
all of its members and sub-subprojects, between projects, and/or directories in a single project, or<br />
variants of the same project on the same Integrity Server.<br />
When a subproject is moved, it behaves like a shared subproject. The subproject in the new<br />
location continues to be backed by the underlying subproject in the old location and the path and<br />
name of the subproject file in the repository remains the same. Any external references (ACL<br />
names, event triggers, policy statements) to the moved subproject continue to work because they<br />
are based on the subproject’s original name; however, a subproject that is moved into a new<br />
project hierarchy continues to inherit ACLs from its original hierarchy and not from the new parent<br />
project. The moved subproject also retains its configuration type (normal, variant, build). If you are<br />
moving multiple subprojects, any <strong>com</strong>mon directory prefix shared by the subprojects is<br />
automatically removed during the move.<br />
Before using si movesubproject, note the following:<br />
❍ Moving subprojects between projects on different servers is not supported.<br />
❍ The moved subproject inherits the project or directory ACLs from its original location. You<br />
cannot apply the ACLs from the new location to the subproject.<br />
❍ The path and name of the subproject file in the repository is permanently reserved. If you<br />
attempt to create a new subproject using the moved subproject’s path and name in the<br />
repository, you are prompted to add the existing subproject. If you answer no, the create<br />
subproject operation exits without providing you with the option of creating a subproject with<br />
a different path and name.<br />
❍ Deferred and pending subproject moves are not supported.<br />
171 of 457
❍ You can move one or more subprojects across directories within a single project.<br />
❍ Moved subprojects are not displayed as shared in a Sandbox or Project view unless the<br />
subproject was shared before the move.<br />
❍ When you move one or more subprojects, you cannot co-locate subprojects in the same<br />
directory. If you want to co-locate an existing subproject with another subproject, use the si<br />
sharesubproject <strong>com</strong>mand on the subproject you want to move, followed by si<br />
dropsubproject in the original location.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]confirm<br />
controls whether to confirm the move before proceeding.<br />
--[no]createSubprojects<br />
controls whether to create subprojects in existing directories that do not contain subprojects.<br />
-f<br />
force the move without confirmation.<br />
--moveWorkingFiles=[none|members|all]<br />
controls whether to move existing working files in the subproject. This option is valid only if<br />
you are moving one or more subprojects from a source sandbox to a target sandbox.<br />
--[no|confirm]overwrite<br />
controls whether to confirm before overwriting any existing working files that exist in the new<br />
location. This option is valid only if you are moving one or more subprojects from a source<br />
sandbox to a target sandbox.<br />
--targetDevpath=value<br />
specifies the target development path (for variant projects).<br />
--targetDir=value<br />
specifies the subdirectory in the destination project or sandbox’s directory that you want to<br />
move the subproject(s) to.<br />
--targetProject=value<br />
specifies the name of the target project.<br />
--targetSandbox=value<br />
specifies the name of the target sandbox (can be used as a project redirector).<br />
subproject or subsandbox<br />
identifies a subproject or subsandbox to move; use spaces to specify more than one<br />
subproject<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
172 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si move, si sharesubproject, si dropsubproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
173 of 457
si opencp<br />
reopens a change package<br />
SYNOPSIS<br />
si opencp [--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-Ffile|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] issue|issue:change package id...<br />
DESCRIPTION<br />
si opencp reopens a change package. A change package is in the Open state when it is first<br />
created. This <strong>com</strong>mand is useful for reopening a change package after it has been submitted.<br />
The open state is the only state where you can add new entries to a change package. As part of<br />
the review workflow, change packages in the following states can be reopened: CommitFailed,<br />
Rejected, and Discarded.<br />
Caution: Only a Change Package Administrator can reopen a change package in the Closed<br />
state. Modifying closed change package contents can <strong>com</strong>promise the integrity of the repository.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all change packages that you want to open;<br />
use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to open; use spaces to<br />
specify more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
174 of 457
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si cpissues , si createcp, si viewcps, si acceptcp, si rejectcp, si<br />
discardcp<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
175 of 457
si print<br />
displays member information<br />
SYNOPSIS<br />
si print [--format=value] [--headerFormat=value] [--noFormat] [--noHeaderFormat]<br />
[--noTrailerFormat] [(-r rev|--revision=rev)] [--range=value]<br />
[--trailerFormat=value] [--fields=field1[:width1],field2[:width2]...] [--height=value]<br />
[--width=value] [-x value] [-y value] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[--[no]persist] [--quiet] member...<br />
DESCRIPTION<br />
si print displays member information on the standard output. If you do not specify any<br />
members, si print displays all project members. This <strong>com</strong>mand is the same as si rlog;<br />
however, it has a different set of default options. In particular, --noFormat and<br />
--noTrailerFormat are specified, and --headerFormat=value produces one line per<br />
member.<br />
Options<br />
See the si rlog reference page for descriptions of all options applicable to si print. This<br />
<strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options - these are described on the options reference page.<br />
Note: The --headerFormat=value and --trailerFormat=value options only accept global<br />
fields. See si rlog for the list of global fields. Revision specific fields, such as State, cannot be<br />
used with these options.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
176 of 457
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si diff, si memberinfo, si mods, si projectinfo, si<br />
report, si revisioninfo, si rlog, si sandboxinfo, si viewhistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
177 of 457
si projectinfo<br />
lists project information<br />
SYNOPSIS<br />
si projectinfo [--[no]acl] [--[no]attributes] [--[no]devpaths]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si projectinfo displays current project information, for example:<br />
Options<br />
Project Name: /rd/doc/MKS_Source_Integrity/Man_Pages/project.pj<br />
Server: server.mks.<strong>com</strong>:7001<br />
Revision: 1.1<br />
Last Checkpointed: Jul 18, 2002 - 4:14 PM<br />
Members: 83<br />
Subprojects: 0<br />
<strong>Description</strong>: Documentation Set<br />
Attributes:<br />
rd=/rd<br />
Development Paths:<br />
Variant Project for Docs Man Pages (1.1)<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]acl<br />
shows ACL information for the project.<br />
--[no]attributes<br />
controls whether to display project attributes.<br />
--[no]devpaths<br />
controls whether to display project development paths.<br />
--projectRevision=rev<br />
displays project information ouput for a single revision of the project history.<br />
Note:<br />
178 of 457
DIAGNOSTICS<br />
The development paths (variants) may only be displayed through the master project,<br />
since you cannot have variants of variants.<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si viewproject, si viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
179 of 457
si projects<br />
lists projects on the Integrity Server<br />
SYNOPSIS<br />
si projects [--[no]displaySubs] [--height=value] [--manage] [--width=value]<br />
[-x value] [-y value] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--[no]persist]<br />
[--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si projects displays a list of projects registered to the currently connected Integrity Server. A<br />
registered project is currently visible on the Integrity Server. A project dropped with the si<br />
dropproject <strong>com</strong>mand still exists on the Integrity Server, but does not display in the list of<br />
registered projects.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]displaySubs<br />
controls whether to display subprojects. By default, only top level registered projects are<br />
displayed.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the projects view window, in<br />
pixels; value must be a whole number.<br />
--manage<br />
enables the project manager view for those using the -g or --gui options.<br />
--width=value<br />
used with the -g or --gui> options, specifies the width of the projects view window, in<br />
pixels; value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
180 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si createproject, si dropproject, si importproject, si projectinfo, si<br />
viewproject, si viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
181 of 457
si promote<br />
promotes the state of a member<br />
SYNOPSIS<br />
si promote [(-r rev|--revision=rev)] [(-s state|--state=state)]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si promote promotes a project member to a higher state of development. A state is a textual<br />
description, defined by the administrator, used to classify the condition of a revision in a history. If<br />
no state is assigned to a revision at check-in, a default value of Exp (for Experimental) is used.<br />
See the Integrity Server Administration Guide for details on setting up states.<br />
At particular milestones, project members are ready to move to the next state of their development<br />
cycle (for example, from Development to Testing). This is done through states and their promotion.<br />
Note: Promoting members is for historical purposes only. To more effectively control project<br />
workflow, MKS re<strong>com</strong>mends using the Integrity Manager integration.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-s state<br />
--state=state<br />
specifies the target state to be set for the promoted member. If no state is specified, the<br />
member is promoted to the next state.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
182 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si demote, si demoteproject, si promoteproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
183 of 457
si promoteproject<br />
promotes the state of a project<br />
SYNOPSIS<br />
si promoteproject [--[no|confirm]force] [(-s state|--state=state)]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si promoteproject promotes a project to a higher state of development. A state is a textual<br />
description, defined by the administrator, used to classify the condition of a revision in a history. If<br />
no state is assigned to a revision at check-in, a default value of Exp (for Experimental) is used.<br />
See the Integrity Server Administration Guide for details on setting up states.<br />
Just as you can with a project member, you can promote the project itself (change its state, in<br />
other words). This can assist in management of an entire project through a development cycle,<br />
especially if the promotion functions are restricted to key project personnel. Normally, you promote<br />
a project (set its state) when you si checkpoint it, but you can do so at any time. Only the<br />
project is promoted, not the members of the project.<br />
Note: Promoting projects is for historical purposes only. To more effectively control project<br />
workflow, MKS re<strong>com</strong>mends using the Integrity Manager integration.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]force<br />
controls whether to force promotion of a project even if members have been changed.<br />
-s state<br />
--state=state<br />
specifies the target state to be set for the promoted project. If no state is specified, the<br />
project is promoted to the next state.<br />
DIAGNOSTICS<br />
184 of 457
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si demote, si demoteproject, si promote<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
185 of 457
si rejectcp<br />
rejects a change package<br />
SYNOPSIS<br />
si rejectcp [--<strong>com</strong>ments=value] [--<strong>com</strong>mentsFile=value]<br />
[--reviewer=[user|group:|super]] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
issue|issue:change package id...<br />
DESCRIPTION<br />
si rejectcp rejects a change package under review.<br />
If a reviewer of a change package determines that additional development must be <strong>com</strong>pleted to<br />
resolve an issue, the reviewer can reject the change package. A single reviewer rejection is<br />
enough to reject a change package, even if there are multiple reviewers. The creator of the change<br />
package can reject it without being listed as a reviewer.<br />
An e-mail notification of the change package’s rejection is sent to the reviewers and creator. From<br />
the Rejected state, the change package can be discarded, or reopened.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--<strong>com</strong>ments=value<br />
specifies <strong>com</strong>ments recorded in the review log with the vote.<br />
--<strong>com</strong>mentsFile=value<br />
specifies a text file that contains the <strong>com</strong>ments to be recorded in the review log with the<br />
vote.<br />
--reviewer=[user|group:|super|all]<br />
specifies the capacity in which you are rejecting the change package.<br />
user<br />
casts a vote as an individual reviewer in the reviewer list.<br />
group:<br />
casts a vote on behalf of the entire group (only one user from a group is necessary to<br />
vote on behalf of the entire group).<br />
186 of 457
super<br />
an overriding reject vote. A super reviewer is not required to be a listed reviewer for<br />
the change package. You must have the SuperReviewer permission to use this<br />
option.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all submitted change packages that you want<br />
to reject; use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to reject; use spaces to<br />
specify more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si co, si cpissues , si createcp, si viewcps si acceptcp, si opencp, si<br />
discardcp<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
187 of 457
si rename<br />
renames an existing project member<br />
SYNOPSIS<br />
si rename [(--cpid ID|--changePackageId=ID)]<br />
[--[no|confirm]closeCP] [--[no]confirm] [--[no]defer] [-f] [--issueId=ID]<br />
[(--newName=value)] [--[no|confirm]overwrite] [--[no]renameWorkingFile]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si rename renames an existing project member. This <strong>com</strong>mand only changes the basename of<br />
the member and cannot be used to move the member into a different directory or project. To move<br />
members, use the si move <strong>com</strong>mand.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
Before using si rename, note the following:<br />
❍ You can only rename members within a directory. You cannot rename a member and move<br />
it to a different directory or project.<br />
❍ Renaming a locked revision in a variant project moves the lock to the duplicate revision,<br />
even if the lock exists in the master project.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 145:2. Note the<br />
following about using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if TrackLocks is enabled, and/or it is mandatory to<br />
specify a change package.<br />
❍ If the Integrity Manager integration is enabled, but it is not mandatory to specify a<br />
change package, or if no change package is applicable, you must specify<br />
188 of 457
--changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--[no|confirm]closeCP<br />
controls whether to close the associated change package.<br />
--nocloseCP means do not close the change package.<br />
--confirmcloseCP means ask before closing the change package.<br />
--closeCP always closes the change package.<br />
--[no]confirm<br />
controls whether to confirm the rename before proceeding.<br />
--[no]defer<br />
controls whether to delay the rename operation in the project until the deferred operation is<br />
submitted. The rename operation in the sandbox still takes place immediately. This option is<br />
valid only if you are performing the <strong>com</strong>mand from a sandbox.<br />
-f<br />
force the rename without confirmation.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of redirecting to a change package. If you have an issue assigned to you that<br />
contains one open change package, you can specify the issue ID instead of the change<br />
package ID. This option can only be specified if the Integrity Manager Integration is enabled.<br />
See the Integrity Server Administration Guide or your administrator for details on using the<br />
Integrity Manager integration.<br />
--newName=value<br />
specifies the new name of the renamed member.<br />
--[no|confirm]overwrite<br />
controls whether to overwrite the target (new name) working file if it exists. Specifying<br />
--overwrite means always do it, --nooverwrite means never do it, and<br />
--confirmoverwrite means always ask before doing it. This option is valid only if you<br />
are performing the <strong>com</strong>mand from a sandbox.<br />
--[no]renameWorkingFile<br />
controls whether to rename the working file in the sandbox immediately.<br />
member...<br />
identifies a specific member. You can only specify one member at a time.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
189 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si closecp, si co, si cpissues, si createcp, si diff, si drop si<br />
edit, si lock, si move si mergebranch, si rlog, si unlock, si viewcps<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
190 of 457
si report<br />
generates a project report<br />
SYNOPSIS<br />
si report [--basename=value] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [ --devpath=path] [--projectRevision =rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[-F|--selectionFile=value] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si report generates a report for a project. Use of this <strong>com</strong>mand requires your MKS Source<br />
Integrity client to be running Microsoft Access (TM) on the Windows operating system.<br />
Reporter calculates a summary of the changes to a project and all its archives, then displays or<br />
prints the summary as text or, for some reports, as a graph. Customized reports, created using<br />
Microsoft Access, can also be produced.<br />
Reporter's data files (containing the results of its project or archive analysis) can be saved as text<br />
files that can be read by most database applications. Reporter generates:<br />
● changes introduced by individual authors<br />
● changes between the member revision and a revision with a particular label<br />
● changes between the member revision and any other revision<br />
● a list of locked members and the names of users who locked them<br />
● a list of revisions with a particular label or state<br />
● project member history (including revision descriptions) by file<br />
For more details on report types, see the Source Integrity Enterprise Edition User Guide.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--basename=value<br />
Specifies the name of generated tables. If you do not specify --basename=value, si<br />
report launches MKS Source Integrity Reporter (if installed).<br />
191 of 457
Data Fields<br />
si report uses the following suffixes to indicate the contents of the table:<br />
.txp project information<br />
.txm member information<br />
.txa archive information<br />
.txr revision information<br />
.txs symbols<br />
.txx access information<br />
In the generated data files, the first line of each data file contains field names.<br />
The fields for the project information file (.txp) are:<br />
ProjId<br />
(integer) A unique identifier of a project (Primary Key)<br />
ProjName<br />
(string) The project path/name<br />
The fields for the member information file (.txm) are:<br />
ProjId<br />
(integer) A unique identifier for the project, can be used as a key. Taken from project info<br />
(Foreign Key - 1:M).<br />
MemberName<br />
(string) Member file path/name.<br />
MemberType<br />
(string) Valid values are:<br />
a archive<br />
other (only valid for projects imported from<br />
f<br />
older versions of Source Integrity Standard<br />
i sub-project<br />
Revision<br />
(string) Revision number of member (can be NULL).<br />
ArchId<br />
(integer) A unique identifier of the member file, may be an archive id or another project id<br />
192 of 457
(can be NULL). Can be used as a primary key.<br />
The fields for the project information file (.txa) are:<br />
ArchId<br />
(integer) A unique identifier of the member file, may be an archive id or another project id<br />
(can be NULL). Can be used as a primary key.<br />
ArchiveName<br />
(string) File path/name, only for archives.<br />
Head<br />
(string) Revision number of the head revision.<br />
Branch<br />
(string) Branch number of a default branch if one has been set by si archiveinfo –b.<br />
(can be NULL).<br />
NumLocks<br />
(integer) The number of locked revisions.<br />
Format<br />
(string) One of text, binary or auto-detect.<br />
Encrypted<br />
(integer) Set to 1 if the archive is encrypted. This option is not supported in Source Integrity<br />
Enterprise.<br />
Compressed<br />
(integer) Set to 1 if the archive is <strong>com</strong>pressed.<br />
TotalRevs<br />
(integer) Total number of revisions in the archive.<br />
Branches<br />
(integer) Total number of branches in the archive.<br />
BranchRevs<br />
(integer) Total number of revisions on branches.<br />
Comment<br />
(string) Comment delimiter if set (can be NULL). This field is historical.<br />
<strong>Description</strong><br />
(string) Text describing an archive. This text is entered when the archive is first created.<br />
The fields for the revision information file (.txr) are:<br />
ArchId<br />
(integer) A unique identifier of the member file, may be an archive id or another project id<br />
(can be NULL). Can be used as a primary key.<br />
RevNum<br />
(string) The revision number of this revision (unique per ArchId).<br />
Date<br />
(string) The date this revision was entered, in the format yyyy/mm/dd hh:mm:ss.<br />
Author<br />
193 of 457
(string) The author’s name (usually the author’s user ID).<br />
State<br />
(string) The state assigned to this revision; this is taken from state list items).<br />
LinesAdded<br />
(integer) The number of lines added by this revision; derived from delta information.<br />
LinesDeleted<br />
(integer) The number of lines deleted by this revision.<br />
Locker<br />
(string) The name of the user holding a lock on this revision (usually the user’s user ID) and<br />
the time when the revision was locked.<br />
LogMsg<br />
(string) Text description of the changes made by this revision as entered at check in.<br />
The fields for the symbol information file (.txs) are:<br />
ArchId<br />
(integer) A unique identifier of the member file, may be an archive id or another project id<br />
(can be NULL). Can be used as a primary key.<br />
RevNum<br />
(string) The revision number of a revision that has an associated symbolic label. The<br />
revision number may not be unique in a list.<br />
Symbol<br />
(string) The symbolic label.<br />
The fields for the access information file (.txx) are:<br />
ArchId<br />
(integer) A unique identifier of the member file, may be an archive id or another project id<br />
(can be NULL). Can be used as a primary key.<br />
UserId<br />
(string) Name (user ID) of user who is included in an access list (Source Integrity Standard<br />
only) for an archive. The archive and project ID numbers (ArchId and ProjId) are unique for<br />
any set of reports (though they may change from one use of report to another). They may be<br />
used as keys.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
194 of 457
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si projectinfo , si projects, si viewproject, si viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
195 of 457
si restoreproject<br />
restores a project to a particular revision<br />
SYNOPSIS<br />
si restoreproject [(-r rev|--revision=rev)] [(--reason=reason|--reasonFile=file)]<br />
[--devpath=path] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[-F|--selectionFile=value] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si restoreproject restores a project to a particular checkpoint. When you apply the si<br />
restoreproject <strong>com</strong>mand, Source Integrity recursively checkpoints the selected project, then<br />
modifies it to reflect the member list of the target checkpoint. Any further development then<br />
proceeds from the restored checkpoint.<br />
Restoring a project is useful when development must revert back to an earlier version and there<br />
are no plans to proceed from the current version of the project. Restoring a project is not an option<br />
when the goal is to test a particular version. The project is always checkpointed before and after<br />
the restore.<br />
Note the following:<br />
● The si restoreproject <strong>com</strong>mand can potentially restore and checkpoint dropped<br />
subprojects that existed at the target revision, even if they are not currently a member of the<br />
project.<br />
● Do not use the si restoreproject <strong>com</strong>mand to create a new development branch from<br />
a previously checkpointed project revision. For new development paths, you should instead<br />
create a new development path.<br />
● To restore a variant project to a specific project revision, the development path must exist in<br />
all subprojects referenced by the project revision.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--reason=reason<br />
--reasonFile=file<br />
196 of 457
specifies the reason text to be associated with restoring the project, or specifies a file where<br />
text can be retrieved.<br />
Note:<br />
Reasons that include spaces must be enclosed by quotes.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si checkpoint<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
197 of 457
si resync<br />
updates a sandbox with the member revision<br />
SYNOPSIS<br />
si resync [--mergeType=[confirm|cancel|automatic|manual]]<br />
[--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]] [--[no]byCP]<br />
[--[no]confirm] [--[no]confirmPopulateSparse] [--[no]includeDropped]<br />
[--[no|confirm]merge] [--[no|un]expand] [-f] [--[no|confirm]overwriteChanged]<br />
[--[no|confirm]overwriteIfPending] [--[no|confirm]overwriteDeferred]<br />
[--[no]overwriteUnchanged] [--[no]populate] [--[no]restoreTimestamp]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
current or dropped member/subproject...<br />
DESCRIPTION<br />
si resync <strong>com</strong>pares the contents of project members with their corresponding working files in<br />
the sandbox and replaces the working file with an exact copy of the member revision, if differences<br />
are detected or if no working file exists. If the working file is writable, you are optionally prompted<br />
for confirmation before it is replaced. This <strong>com</strong>mand has no effect on working files that are identical<br />
to the member revision.<br />
Note:<br />
This <strong>com</strong>mand overwrites files, even ones that you have locked and that have changed<br />
since you last checked them out. Be certain of your response to any prompts indicating that<br />
the files will be overwritten - once replaced, you cannot get back your changes.<br />
The Resync By Change Package Option<br />
The Resync by CP (--[no]byCP) option is primarily a tool for developers. When you want to<br />
resynchronize files in your sandbox, you usually do so by choosing individual files and then using<br />
si resync <strong>com</strong>mand. However, if the files you are resynchronizing have changes that are linked<br />
to other files, the standard resync operation would not include those related files. To resynchronize<br />
all related files, you would have to manually search for all the changes associated with the change<br />
package on the member you are resynchronizing.<br />
The Resync by CP option automates this process by searching the change package specified on<br />
the member revision you are resynchronizing and then bringing the changes from the project to<br />
198 of 457
your sandbox.<br />
While the Resync CP option searches all files related to a selected change package, and all the<br />
change packages that may be associated with the related files, the Resync By CP option only<br />
processes the change packages associated with the member you are resynchronizing.<br />
How Does the Resync By CP Option Work?<br />
The functioning of Resync by CP is affected by the options you choose for si resynccp. For<br />
more information, see si resynccp.<br />
When Should I Use the Resync By CP Option?<br />
Developers should use Resync By CP when they want to ensure that they have all dependent<br />
changes associated with a member revision, even if these changes are contained in other files. For<br />
example, a developer needs to check out (locked) a file and modify it. The developer finds that<br />
other revisions have been checked in since the member was resynchronized in the sandbox.<br />
Because the sandbox is quite large and contains many unrelated changes, the developer does not<br />
want to perform a standard resynchronization. The Resync By CP option can be used in this<br />
situation.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
Note:<br />
If the working file of the member you are resyncing has been modified, Source Integrity asks<br />
you to confirm that you want to merge your modifications into the working file.<br />
--mergeType=[confirm|cancel|automatic|manual]<br />
specifies how you want to merge changes from the working file in your sandbox into the<br />
member revision.<br />
--mergeType=confirm prompts you to confirm a merge type.<br />
--mergeType=cancel cancels the selected merge type.<br />
--mergeType=automatic <strong>com</strong>pletes the merge process without launching the MKS Visual<br />
Merge tool.<br />
Caution: While Source Integrity and MKS Visual Merge are capable of performing<br />
automatic merging, MKS cannot guarantee that the merged results are “correct”. MKS<br />
re<strong>com</strong>mends that you examine and test the merged results before checking them into the<br />
199 of 457
epository.<br />
--mergeType=manual <strong>com</strong>pletes the merge operation through the MKS Visual Merge tool.<br />
The MKS Visual Merge tool launches, displaying the revisions you want to merge. For more<br />
information on the MKS Visual Merge tool, refer to the Source Integrity Enterprise User<br />
Guide.<br />
--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]<br />
specifies what to do when conflicts occur during a merge.<br />
--onMergeConflict=confirm prompts you to confirm a merge conflict option.<br />
--onMergeConflict=cancel cancels the merge.<br />
--onMergeConflict=mark marks the working file indicating that merging is required<br />
without <strong>com</strong>pleting all of the merge related tasks. This provides the time you may need to<br />
investigate conflicts or edit difference blocks before finishing the merge.<br />
--onMergeConflict=launchtool launches the MKS Visual Merge tool to resolve the<br />
conflicts; all non-conflicting blocks will already have been applied.<br />
--onMergeConflict=highlight indicates conflicts in the file with the following characters:<br />
"". You are responsible for resolving merge conflicts before checking<br />
in the changes.<br />
Note: --onMergeConflict=launchtool does not require the -g or --gui options.<br />
--onMergeConflict=error indicates merge conflicts with an error message prompt.<br />
--[no]byCP<br />
controls whether to cause Source Integrity to operate in change package mode. Source<br />
Integrity automatically searches the change package associated with the member and<br />
resynchronizes all member files contained in that change package.<br />
Note:<br />
If there are no revisions in the change package to resynchronize, a normal resync is<br />
performed.<br />
--[no]confirm<br />
controls whether to proceed without confirmation messages when working with a change<br />
package (applies only when change packages are enabled).<br />
--[no]confirmPopulateSparse<br />
controls whether to proceed without confirmation messages when populating a sparse<br />
sandbox.<br />
--[no]includeDropped<br />
200 of 457
controls whether to delete dropped members from your sandbox.<br />
--[no|confirm]merge<br />
controls whether to merge changes from the working file in your sandbox into the member<br />
revision.<br />
--merge means always do it.<br />
--nomerge means never do it.<br />
--confirmmerge means always ask before doing it.<br />
Note: By default, Source Integrity prompts you for the type of merge (manual or automatic)<br />
to perform and what action to take if a conflict is encountered.<br />
--[no|un]expand<br />
controls whether to expand, unexpand, or ignore keywords in the member file. Keyword<br />
expansion is only available in text archives, not binary archives. For descriptions of the MKS<br />
Source Integrity keywords, see the Source Integrity Enterprise User Guide. Possible<br />
keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
$Source$<br />
$State$<br />
-f<br />
overwrites the working file if it has changed since it was last checked in. This is equivalent to<br />
specifying --overwriteChanged.<br />
--[no|confirm]overwriteChanged<br />
controls whether to overwrite the working file if it has changed since it was last checked in.<br />
201 of 457
--overwriteChanged means always do it.<br />
--nooverwriteChanged means never do it.<br />
--confirmoverwriteChanged means always ask before doing it. Specifying the --yes<br />
or --no options would have the same effect as the first two, but would further answer "yes"<br />
or "no" to all questions asked, not just this one.<br />
--[no|confirm]overwriteIfPending<br />
controls whether to overwrite the working file if there is a pending operation on the revision<br />
corresponding to the working file.<br />
--[no|confirm]overwriteDeferred<br />
controls whether to overwrite the working file if there is a deferred operation on the revision<br />
corresponding to the working file.<br />
--[no]overwriteUnchanged<br />
controls whether to overwrite files that have not been modified in the sandbox. This may be<br />
useful for forcing files to pick up new keyword expansions or timestamps even if their<br />
content has not changed.<br />
--[no]populate<br />
controls whether to populate the sandbox with a working file for the specified member. If you<br />
are working with a sparse sandbox (see si createsandbox), specifying --populate<br />
with this <strong>com</strong>mand overrides the default sparse sandbox behavior of removing working files.<br />
--[no]restoreTimestamp<br />
controls whether to restore the timestamp of the working file to the timestamp of the revision<br />
in the member history.<br />
current or dropped member/subproject...<br />
identifies a specific member or subproject that currently exists in the project, or one that has<br />
been dropped from the project but still exists in the sandbox. Use spaces to specify more<br />
than one. If you specify a dropped member or subproject, and if you specify<br />
--includeDropped, this <strong>com</strong>mand deletes the corresponding working file.<br />
DIAGNOSTICS<br />
See the diagnosticsreference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
202 of 457
Commands:<br />
si applycp, si ci, si co, si resynccp, si revert<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
203 of 457
si resynccp<br />
merges change package members to a Source Integrity sandbox<br />
SYNOPSIS<br />
si resynccp [--allowOpenCP] [--[no]alreadyInProjectIsError]<br />
[--backFill=[cp|revision|error|skip|ask]]<br />
[--mergeType=[confirm|cancel|automatic|manual]]<br />
[--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]]<br />
[--[no]confirm] [--[no|un]expand] [-f|--[no|confirm]overwriteChanged]<br />
[--[no]ignoreBranches] [--[no]ignoreServer] [--[no|confirm]merge]<br />
[--[no|confirm]mergeOnBranch] [--[no|confirm]createVariants]<br />
[--[no]otherProjectIsError] [(--propagationCP=value)] [(--resolutionCP=value)]<br />
[--[no]restoreTimestamp] [--[no]spanProjects] [--[no]useMaster]<br />
[--[no]verbose] [(-S sandbox|--sandbox=sandbox)] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] [--[no]ignoreUpdateRevision]<br />
issue|issue:change package id...<br />
DESCRIPTION<br />
si resynccp merges change package members to a Source Integrity sandbox.<br />
Feature Overview<br />
A change package specifies groups of members that are affected by an issue. An issue tracks<br />
changes that occur during the development process. An example of a change package would be a<br />
group of files that need to be changed to address a problem in program code.<br />
Both Apply CP and Resync CP rely on the use of change packages to track individual changes that<br />
modify project content or create new content. If a development team has been using change<br />
packages consistently, Source Integrity can isolate all changes related to a specific issue because<br />
this information is recorded as part of the change package. Once the dependencies are calculated,<br />
the operation <strong>com</strong>pletes and the change packages are applied in the project.<br />
If a development team does not use the change package methodology, isolating specific content<br />
be<strong>com</strong>es a <strong>com</strong>plex, manual task. In a large code project, this could mean searching hundreds of<br />
files to determine which ones are related to a specific issue. To build the project, it would then be<br />
necessary to add, drop, rename, and move files, update file revisions, merge around unwanted<br />
revisions, merge in required changes, and merge out any unwanted changes.<br />
204 of 457
Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated process be<strong>com</strong>es largely<br />
automated. In Source Integrity, the Apply CP operation adds, drops, renames, and moves files,<br />
and updates file revisions as required to create the desired change. If merging is required or other<br />
changes are needed to propogate the desired changes into the target project, you can use the<br />
Resync CP <strong>com</strong>mand. Resync CP allows you to either merge in desired changes or merge around<br />
unwanted changes.<br />
Apply CP and Resync CP are most useful for code and other text files where differencing can be<br />
performed. The operations are not re<strong>com</strong>mended for binary files because of the difficulties<br />
encountered in differencing and merging binaries.<br />
The Change Package Methodology<br />
When used across a development project, Apply CP and Resync CP are powerful tools for<br />
managing changes and new content. However, the effectiveness of the functionality ultimately<br />
relies on the following factors:<br />
● accurate and consistent logging of issues into the Integrity Manager database<br />
● associating related changes into a single change package that ultimately addresses the<br />
issue in question<br />
Because issues, and their associated change packages, follow a workflow progression, it is critical<br />
that each member of the development team record and track all changes as they are made, from<br />
the initial phase to the <strong>com</strong>pletion phase in which the associated problem is addressed. All<br />
changes relating to a given issue must then be associated with the correct change package. Once<br />
the problem is addressed, or the feature added, that change package can be closed.<br />
It is equally important that issues are clearly delineated so that each change package addresses<br />
only one problem area or feature. Certainly, one problem area or feature may require many files to<br />
address it, but if you create a change package that is too wide in scope, it be<strong>com</strong>es difficult to<br />
extract specific changes later on.<br />
With accurate and consistent logging, Source Integrity can clearly identify the specific member<br />
revisions (or files) that address the identified problem or <strong>com</strong>plete the required feature. Without this<br />
type of tracking, applying a change package may not have the desired results and manual reviews<br />
may be<strong>com</strong>e necessary.<br />
The Commands<br />
Consider the following scenario at abcBusiness--a major customer purchased version 2.0 of<br />
abcBusiness' Aurora software. The customer now wants a new feature--data <strong>com</strong>pression--that<br />
they can use with Aurora 2.0 The development team at abcBusiness has already <strong>com</strong>pleted work<br />
on a data <strong>com</strong>pression feature, bu the feature has been engineered only as part of the up<strong>com</strong>ing<br />
Aurora 3.0 release.<br />
205 of 457
To address the customer's needs, abcBusiness would normally have to assign a separate<br />
development team to create the new feature for Aurora 2.0 But how can abcBusiness take<br />
advantage of the work already <strong>com</strong>pleted on the data <strong>com</strong>pression feature and provide it to the<br />
customer?<br />
If the development team has been using change packages, they can isolate the files that relate to<br />
the new data <strong>com</strong>pression feature. However, without the functionality of Apply CP and Resync CP,<br />
the buildmaster at abcBusiness would have to manually search the required change package(s)<br />
and individually review all of the associated files to isolate the changes related to the feature. The<br />
buildmaster would then have to manually add, drop, rename, and move files, update file revisions,<br />
merge around unwanted revisions, merge in required changes, and merge out any unwanted<br />
changes.<br />
Using the functionality of Apply CP and Resync CP, this <strong>com</strong>plicated process be<strong>com</strong>es largely<br />
automated. In Source Integrity, the Apply CP operation works directly in the project to add, drop,<br />
rename, and move files, and update file revisions as required to create the desired change. Source<br />
Integrity presents you with a list--the backfill list--of all change packages required to capture the<br />
issue. In the Apply CP operation, you must either accept or decline this list--you cannot make<br />
selections. If you accept the list, the Apply CP <strong>com</strong>mand <strong>com</strong>pletes. If you decline the list, the<br />
Apply CP <strong>com</strong>mand cannot <strong>com</strong>plete.<br />
If the Apply CP <strong>com</strong>mand fails because merging is required, you can then run the Resync CP<br />
<strong>com</strong>mand. Resync CP works in a sandbox and allows you to make selections from the backfill list.<br />
Source Integrity then merges around unwanted changes and uses differencing to merge files.<br />
Consider once again, the abcBusiness development team. Because the team has been tracking all<br />
of their changes through the use of change packages, they can target the main trunk of<br />
development and use Apply CP and Resync CP functionality to extract only those files that relate<br />
to the new data <strong>com</strong>pression feature. Those specific change packages can then be applied to a<br />
variant project of Aurora 2.0 and testing carried out within a new project designed specifically for<br />
the customer.<br />
The functionality allows you to maximize existing development work, while being more responsive<br />
to both internal and external stakeholders. Apply CP and Resync CP are especially effective in any<br />
environment where there are large numbers of files to deal with--whether these are code files for a<br />
software project or Web pages for a <strong>com</strong>plex Web site.<br />
Using Resync CP and Resync By CP<br />
This section provides an example to show how Resync CP can be used in your environment. The<br />
example also illustrates how Resync By CP can be used in a developer's sandbox.<br />
The development team at abcBusiness is working on the next release, which contains hundreds of<br />
206 of 457
files that span many Source Integrity projects. Whenever a fix is made, or a feature added, it may<br />
require the manipulation of a single file, or many different files across multiple projects. A fix or new<br />
feature may also include new dependencies within the source code.<br />
If developers resynchronize only a single file into their sandboxes, their builds may break because<br />
of new dependencies in the code. Such broken builds cause delays and prevent the team from<br />
<strong>com</strong>pleting their work on time. However, it is possible to avoid this lost time by using the Resync<br />
CP and Resync By CP <strong>com</strong>mands.<br />
Resync CP and Resync By CP allow developers to specify a change package and have all<br />
changes associated with that change package resynchronized into their sandboxes. The<br />
<strong>com</strong>mands save development time because they:<br />
● automatically search for the required files<br />
● determine what other change packages the selection is dependant on (this is known as the<br />
backfill list) and also resynchronize those change packages into the sandbox<br />
If the developer is working on a file conflict, Resync CP and Resync By CP also merge new<br />
information into a file. The merge operation ensures that the sandbox is up-to-date and that no<br />
changes are lost.<br />
The Resync CP and Resync By CP <strong>com</strong>mands also allow a developer to remove a bug fix or<br />
feature that is in<strong>com</strong>plete or not working.<br />
Resync Change Package Command<br />
While Apply CP works to either add, drop, rename, or move members, or update member<br />
revisions, you must accept the entire list of backfill entries or the <strong>com</strong>mand fails. In the Resync CP<br />
operation, you are able to select the individual files you want to exclude from the backfill operation<br />
and then Source Integrity performs the required merges. Therefore, if you need to merge files to<br />
create your solution or make other changes to incorporate the desired change packages into the<br />
target project, you must use the Resync CP <strong>com</strong>mand.<br />
The Resync CP operation allows you resynchronize revisions and carry out merges entirely within<br />
a sandbox. When you are prompted to backfill historical revisions (the Resync CP backfill list), you<br />
can select the files you want to include. Resync CP automatically performs merging and notifies<br />
you of unresolved conflicts that must be addressed manually after the <strong>com</strong>mand <strong>com</strong>pletes.<br />
How Does Resync CP Work?<br />
Unlike the Apply CP <strong>com</strong>mand, you can undo the effect of a Resync CP operation by<br />
resynchronizing the sandbox again and then unlocking all locks. Because the master project has<br />
not been changed, the sandbox is restored to the state it was in prior to the Resync CP operation.<br />
207 of 457
Once the dependencies are calculated, and you have performed the required merges, the<br />
operation <strong>com</strong>pletes and Source Integrity presents all the files required for the new feature or<br />
content in your sandbox.<br />
When Should I Use Resync CP?<br />
You should use the Resync CP <strong>com</strong>mand when the Apply CP operation has failed because there<br />
were conflicts to be resolved through merging or if there are additional changes that need to be<br />
made in order to incorporate the change packages into the target project. Resync CP is most<br />
useful for developing software features and for applying bug fixes during the software development<br />
process.<br />
Note:<br />
When working in your sandbox, you can also use the Resynchronize By CP <strong>com</strong>mand.<br />
When you select a member and use Resynchronize By CP, Source Integrity automatically<br />
searches the change package associated with the member and resynchronizes the selected<br />
member and all other member files contained in that change package. For more information,<br />
see si resync.<br />
If the issues you are looking at have numerous associated change packages, you can also use a<br />
single change package--a resolution change package--that contains all the associated change<br />
packages, to resolve it. The Resync CP <strong>com</strong>mand includes a process for creating resolution<br />
change packages that can be used for this purpose.<br />
Note:<br />
If you attempt to perform a Resync CP <strong>com</strong>mand on a member that was previously dropped<br />
from a project, Source Integrity instructs you to manually re-add the member.<br />
Resolution Change Packages<br />
There are instances when the Apply CP <strong>com</strong>mand does not work on a set of change packages<br />
because merging is required. When this happens, the Resync CP <strong>com</strong>mand must be used to<br />
automate the required merging. Once the Resync CP operation is <strong>com</strong>pleted, the modified files<br />
that result from those merges are transferred to your sandbox. To apply the changes, you must<br />
then check in those modified files.<br />
For a development team using the change package methodology, the check in of the modified files<br />
requires an associated issue and change package. Once the issue has been created, the files can<br />
then be checked into the associated change package and the development path updated with the<br />
merged files.<br />
If other developers want to apply the same set of change packages, how can they be certain that<br />
the changes made relate only to the target feature and that no other changes have been checked<br />
in? To be absolutely certain, they would have to repeat the original Resync CP operation--a<br />
208 of 457
significant duplication of effort. Otherwise, they would have to resynchronize using the original set<br />
of change packages and possibly accept additional, unwanted changes that were selected during<br />
the first Resync CP operation.<br />
To avoid this uncertainty and duplication of effort, there is a mechanism for recording all change<br />
packages that have been applied, including the merge conflicts that have been resolved. The<br />
resolution change package is the mechanism for recording these changes. The resolution change<br />
package records all applied change packages, resolved conflicts, checked in modified files, and<br />
conflicts resolved by merging.<br />
In addition, you can only apply one resolution change package during each Apply CP operation,<br />
and if you select a resolution change package, you cannot apply any other change packages<br />
during that operation. Therefore, the applied changes are strictly limited and defined. Anyone<br />
wanting a specific set of changes can then select the associated resolution change package, run<br />
the Apply CP <strong>com</strong>mand, and obtain the same results.<br />
What Is a Resolution Change Package?<br />
A resolution change package is similar to a normal change package except that it contains<br />
additional information on:<br />
● change packages that have been applied<br />
● modified files that have been checked in<br />
● conflicts that have been addressed by merging<br />
When Should I Use a Resolution Change Package?<br />
You need to use a resolution change package if an Apply CP operation has failed because<br />
merging is required and you want to record the all merge operations required to address the issue.<br />
To accurately record all the results of the required merge operations, you should use a resolution<br />
change package.<br />
Resolution change packages are particularly useful for assisting buildmasters to <strong>com</strong>plete their<br />
work. When an Apply CP operation has failed, developers can identify the dependencies and<br />
required merges, and include all the necessary changes in a single resolution change package.<br />
The buildmaster can then redo the Apply CP operation using that resolution change package. This<br />
reduces the amount of decision-making required of the buildmaster and allows developers to<br />
resolve the conflicts in their own files.<br />
How Is a Resolution Change Package Created?<br />
A resolution change package is created only through the Resync CP operation. Using the graphical<br />
user interface, you can select an existing change package--or create a new one--and then ask<br />
Source Integrity to use this as a resolution change package. The only requirement is that the<br />
change package must be in the Open state.<br />
209 of 457
The change package you ask Source Integrity to use may or may not contain entries (that is, files),<br />
but for the greatest level of control in isolating a feature or issue, it is preferable to start with an<br />
empty change package.<br />
The process for creating a resolution change package is as follows:<br />
1. You create a normal change package and, during a Resync CP operation, you ask Source<br />
Integrity to use it as a resolution change package for recording all conflicts.<br />
2. Source Integrity takes the specified change package and adds a resolution list, thereby<br />
making it into a resolution change package.<br />
3. Once all the merge conflicts are addressed, you can check in the changes to the newly<br />
created resolution change package.<br />
4. After all the changes are checked in, you can then close the resolution change package, just<br />
as you would do for a normal change package.<br />
5. Apply the change package.<br />
Note: If reviews are mandatory, you must submit the resolution change package (you cannot close<br />
it manually). Submitting the resolution change package causes Source Integrity to apply the<br />
change package using the si applyCP <strong>com</strong>mand. If reviews are mandatory, the apply CP<br />
<strong>com</strong>mand records the applied changes in another change package that then follows the review<br />
process<br />
Are There Any Limitations When Using a Resolution CP?<br />
To avoid the problem of overlaps and conflicts during the Apply CP operation, you can only apply<br />
one resolution change package per operation.<br />
For more detailed information and examples on si resynccp and resolution change packages,<br />
see Applying Change Packages in the Source Integrity Enterprise User Guide.<br />
Propagation Change Packages<br />
During an Apply CP operation, your review of the changes you want to apply to a project may<br />
reveal potential merge conflicts or conflicts from files that have been added, dropped, renamed, or<br />
moved. For example, if a member has been removed from the source project, the Apply CP<br />
process re-adds the member to the project you are updating, creating an undesirable structural<br />
conflict.<br />
Resolving structural conflicts call for a propagation change package. Similar to a resolution change<br />
package, a propagation change package is initially constructed and populated using the Resync<br />
CP operation with deferred operations for members that need to be updated. Once the propagation<br />
change package is created, any conflicting entries can be discarded or corrected as needed prior<br />
to submission. As an alternative to a resolution change package, a propagation change package<br />
210 of 457
can also be used to resolve merge conflicts.<br />
Because a propagation change package records all the changes that need to be propagated<br />
between development paths, it is useful when incremental and repeated use of the Resync CP<br />
<strong>com</strong>mand is used to collect project changes.<br />
What is a Propagation Change Package?<br />
Technically, a propagation change package is a normal change package used to propagate<br />
specific changes from one development path to another. Conceptually, a propagation change<br />
package is a change package used to record and resolve changes that need to be applied<br />
between development paths. Similar to a resolution change package, a propagation change<br />
package records the changes that need to be made to resolve a merge. Unlike a resolution change<br />
package, a propagation change package records member changes and can be used across other<br />
development paths like a normal change package after it has been submitted.<br />
When Should I Use a Propagation Change Package?<br />
You need to use a propagation change package if an Apply CP operation includes undesirable<br />
member changes. You can use the Resync CP <strong>com</strong>mand to populate the propagation change<br />
package with the undesirable member changes in the form of deferred member operations. The<br />
undesirable member changes can then be discarded from the propagation change package prior to<br />
submission.<br />
Rather than perform one large Apply CP or Resync CP operation that can take a long time, a<br />
propagation change package allows you to incrementally propagate changes between<br />
development paths. Once the propagation change package is submitted, it records the changes<br />
made to the project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--allowOpenCP<br />
allows Source Integrity to apply open change packages.<br />
--[no]alreadyInProjectIsError<br />
Causes Source Integrity to terminate the operation if the member being resynchronized is<br />
the same one listed in the change package and is already in the project. If this setting is<br />
negated --noalreadyInProjectIsError, then the information is displayed as a<br />
warning.<br />
--backFill=[cp|revision|error|skip|ask]<br />
Specifies the way Source Integrity treats historic revisions required by the specified change<br />
package. For example, --backfill=ask means Source Integrity asks you to specify the<br />
change packages you want to exclude from the operation.<br />
211 of 457
The available values for the --backFill option include:<br />
--backFill=cp<br />
recursively chooses all historic revisions required by the specified change packages<br />
and applies them by updating member revisions, adding files, or dropping files.<br />
--backFill=revision<br />
processes only the specified change package(s) and chooses only directly associated<br />
revisions. It does not process any change packages that are associated with<br />
intermediate revisions.<br />
--backFill=error<br />
terminates the operation if other change packages are required but are not specified.<br />
--backFill=skip<br />
causes Source Integrity to merge around specified backfill revisions. Because the<br />
Apply CP <strong>com</strong>mand does not perform merging, this is treated as an error in Apply<br />
CP, allowed in Resync CP.<br />
--backFill=ask<br />
allows you to specify the change packages you want to include.<br />
--[no]ignoreUpdateRevision<br />
ignores update revision change package entries when performing the <strong>com</strong>mand. The default<br />
is to include update revision entries.<br />
--mergeType=[confirm|cancel|automatic|manual]<br />
specifies how you want to merge changes from the working file in your sandbox into the<br />
member revision.<br />
--mergeType=confirm prompts you to confirm a merge type.<br />
--mergeType=cancel cancels the merge.<br />
--mergeType=automatic <strong>com</strong>pletes the merge process without launching the MKS Visual<br />
Merge tool.<br />
Caution: While Source Integrity and MKS Visual Merge are capable of performing<br />
automatic merging, MKS cannot guarantee that the merged results are “correct”. MKS<br />
re<strong>com</strong>mends that you examine and test the merged results before checking them into the<br />
repository.<br />
--mergeType=manual <strong>com</strong>pletes the merge operation through the MKS Visual Merge tool.<br />
The MKS Visual Merge tool launches, displaying the revisions you want to merge. For more<br />
information on the MKS Visual Merge tool, refer to the Source Integrity Enterprise User<br />
Guide.<br />
--onMergeConflict=[confirm|cancel|mark|launchtool|highlight|error]<br />
212 of 457
specifies what to do when conflicts occur during a merge.<br />
--onMergeConflict=confirm prompts you to confirm a merge conflict option.<br />
--onMergeConflict=cancel cancels the merge.<br />
--onMergeConflict=mark marks the working file indicating that merging is required<br />
without <strong>com</strong>pleting all of the merge related tasks. This provides the time you may need to<br />
investigate conflicts or edit difference blocks before finishing the merge.<br />
--onMergeConflict=launchtool launches the MKS Visual Merge tool to resolve the<br />
conflicts, all non-conflicting blocks will already have been applied.<br />
--onMergeConflict=highlight indicates conflicts in the file with the following characters:<br />
"". You are responsible for resolving conflicts in the working file.<br />
Note: --onMergeConflict=launchtool does not require the -g or --gui options.<br />
--onMergeConflict=error indicates merge conflicts with an error message prompt.<br />
--[no]confirm<br />
Confirm the actions before starting them.<br />
--[no|un]expand<br />
specifies whether Source Integrity should expand, unexpand, or ignore keywords when<br />
checking out working files.<br />
-f<br />
--[no|confirm]overwriteChanged<br />
forces overwrite of changed working files.<br />
--[no|confirm]createVariants<br />
controls whether to confirm the creation of variant projects as needed.<br />
--[no]ignoreBranches<br />
Causes Source Integrity to use the most recent revision when it encounters two revisions of<br />
the same member on two development paths in the change package being applied.<br />
--[no]ignoreServer<br />
Causes Source Integrity to perform the Apply CP operation even if the change package<br />
members reside on different servers.<br />
--[no|confirm]merge<br />
controls whether to confirm all merge operations before <strong>com</strong>pleting them.<br />
--[no|confirm]mergeOnBranch<br />
controls whether to cause Source Integrity to perform a merge if the target revision is on a<br />
branch. Source Integrity differences the two file revisions and merges any changes into the<br />
213 of 457
working file without modifying its revision number. You must then check in the working file to<br />
advance the revision to the next available revision number.<br />
--[no]otherProjectIsError<br />
Causes Source Integrity to terminate the <strong>com</strong>mand if the member is in another project, for<br />
example, if the change package contains multiple entries in different top level projects.<br />
Change package entries referring to other projects are therefore treated as an error.<br />
--resolutionCP=value<br />
causes Source Integrity to lock merged working files under this change package (where<br />
value is the change package ID number). For example, specifying<br />
--resolutionCP=1285:2 would cause Source Integrity to lock all working files merged<br />
under change package 1285:2.<br />
--propagationCP=value<br />
specifies whether to create a propagation change package that is detached from the set of<br />
change packages it resolves (where value is the change package ID number). All the<br />
required operations are automatically represented as deferred entries. You can then discard<br />
entries that you do not want represented in the final application of changes to the project.<br />
Similar to resolution change packages, you can also add or change entries in the<br />
propagation change package as required.<br />
--[no]restoreTimestamp<br />
controls whether to restore the timestamp of the working file to the timestamp of the revision<br />
in the member history. If this is not specified, the timestamp is set to the current date and<br />
time.<br />
--[no]spanProjects<br />
Causes Source Integrity to apply the <strong>com</strong>mand to any member specified in the change<br />
package, even if this involves multiple projects. This option also applies across all<br />
sandboxes and results in a search of local sandboxes for all entries in the change package.<br />
--[no]useMaster<br />
causes Source Integrity to operate on the top-level sandbox.<br />
--[no]verbose<br />
Means Source Integrity includes additional information to track the current state of the<br />
<strong>com</strong>mand.<br />
issue...<br />
issue:change package id...<br />
specifies the identification numbers for the change package you want to apply. For example,<br />
11804:2.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
214 of 457
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si applycp, si resync<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
215 of 457
si revert<br />
overwrites a sandbox file with a fresh copy of the working file, discarding changes<br />
SYNOPSIS<br />
si revert<br />
[--[no|un]expand] [-f] [--[no|confirm]overwriteChanged] [--[no|confirm]overwriteDeferred] [--<br />
[no]overwriteUnchanged] [--[no]restoreTimestamp] [(-R|--[no|confirm]recurse)] [-filter=filteroptions]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number] [-password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--<br />
[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [-status=[none|gui|default]]<br />
sandbox member...<br />
DESCRIPTION<br />
si revert restores a working file to a state before changes were made, by overwriting the sandbox file with a fresh<br />
copy of the working file at the same revision you currently have in your sandbox, not the member revision. If you had the<br />
member locked, it is unlocked.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
--[no|un]expand<br />
controls whether to expand, unexpand, or ignore keywords in the member file. Keyword expansion is only<br />
available in text archives, not binary archives. For descriptions of the MKS Source Integrity keywords, see the<br />
Source Integrity Enterprise User Guide. Possible keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
$Source$<br />
$State$<br />
-f<br />
overwrites the working file if it has changed since it was last checked in. This is equivalent to specifying<br />
--overwriteChanged.<br />
--[no|confirm]overwriteChanged<br />
controls whether to overwrite the working file if it has changed since it was last checked in.<br />
216 of 457
--overwriteChanged means always do it<br />
--nooverwriteChanged means never do it<br />
--confirmoverwriteChanged means always ask before doing it. Specifying the --yes or --no options would<br />
have the same effect as the first two, but would further answer "yes" or "no" to all questions asked, not just this<br />
one.<br />
--[no|confirm]overwriteDeferred<br />
controls whether to overwrite the working file if there is a deferred operation on the member.<br />
--[no]overwriteUnchanged<br />
controls whether to overwrite files that have not been modified in the sandbox. This may be useful for forcing files<br />
to pick up new keyword expansions or timestamps even if their content has not changed.<br />
--[no]restoreTimestamp<br />
controls whether to restore the timestamp of the working file to the timestamp of the revision in the member<br />
history.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si resync<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
217 of 457
si revisioninfo<br />
displays revision information<br />
SYNOPSIS<br />
si revisioninfo [--[no]changePackage] [--[no]labels] [(-r rev|--revision=rev)]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si revisioninfo displays revision information for a member, for example:<br />
Options<br />
Member Name: c:\Documentation\Man_Pages\xml_man\si_add.1.xml<br />
Sandbox Name: c:\Documentation\Man_Pages\project.pj<br />
Revision: 1.7<br />
Created By: pmolinas on Jul 11, 2004 - 11:36 AM<br />
State: state_a<br />
Revision <strong>Description</strong>:<br />
Updated for Technical Review<br />
Labels:<br />
TechReview1<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]changePackage<br />
controls whether to display change package information (applies only when change<br />
packages are enabled).<br />
--[no]labels<br />
controls whether to display member labels.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
218 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si rlog<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
219 of 457
si rlog<br />
displays the revision log<br />
SYNOPSIS<br />
si rlog [--format=value] [--headerFormat=value] [--noFormat] [--noHeaderFormat]<br />
[--noTrailerFormat] [(-r rev|--revision=rev)] [--range=value]<br />
[--trailerFormat=value] [--fields=field1[:width1],field2[:width2]...] [--height=value]<br />
[--width=value] [-x value] [-y value] [(-R |--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [--[no]persist] [--cwd=directory]<br />
[(-F file|--selectionFile=file)] [--forceConfirm=[yes|no]] [(-N|--no)] [--[no]batch]<br />
[--quiet] [(-?|--usage )] [(-Y|--yes)] member...<br />
DESCRIPTION<br />
si rlog displays the revision log and general archive information for every revision in a member<br />
history. The formatting is, by default, suitable for user viewing but it is also programmable, suitable<br />
for use in scripts. See the --format=value option description below.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
For a member, first the --headerFormat is processed. Then each revision is processed and<br />
formatted using the --fields or --format option. Finally, the --trailerFormat is processed.<br />
All three sections have available the global archive information. For each revision, the fields<br />
designated as per-revision are shown.<br />
--format=value<br />
defines an output format for user-formatted text. The default formatting is suitable for<br />
interpretation by most users; the various formatting options are provided for programmatic<br />
control.<br />
This option and the --fields option are mutually exclusive.<br />
--format options use the same values as --fields, but similar to a JAVA<br />
MessageFormat string (that is, it requires { } to surround each field). The --fields option<br />
automatically adds a newline on the end, but you must supply the newline for formats with a<br />
\n, for example:<br />
220 of 457
si rlog --format="{membername},{revision}\n"<br />
--headerFormat=value<br />
defines the header to be used.<br />
--noFormat<br />
disables formatting for user-formatted text. If --noFormat is specified, the per-revision<br />
iteration is not performed.<br />
--noHeaderFormat<br />
disables the header formatting.<br />
--noTrailerFormat<br />
disables the trailer formatting.<br />
--range=value<br />
specifies a range of revision numbers. The format of value for a single revision is simply the<br />
revision number itself. Separate multiple non sequential revisions with a <strong>com</strong>ma, and use a<br />
dash to indicate a sequential range, for example, 1.2-1.5.<br />
You may also prefix or append a dash to a single revision number, meaning you want to<br />
show from 1.1 to the specified revision, or from the specified revision to the tip. For example,<br />
you would specify -1.6 to show revisions 1.1 to 1.6. Or you could specify 1.2- to show<br />
revisions 1.2 to the tip revision, whatever it may be.<br />
Another alternative is to use ?locker[:user] to match revisions that are locked, or locked by a<br />
certain user. For example,<br />
si rlog --noHeaderFormat --noTrailerFormat --range=?locker -format="{membername},{locker},{revision}\n"<br />
displays one line per locked revision, containing the membername, locker, and the revision<br />
locked.<br />
The revisions are printed in order from the highest revision to the lowest.<br />
--trailerFormat=value<br />
defines the trailer to be used.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
This option and the --format option are mutually exclusive.<br />
The fields available for printing can be one or more of the following:<br />
221 of 457
added<br />
per revision: the number of lines/bytes added for the current revision.<br />
alllabels<br />
global: all labels on any revision of the member, in the format<br />
label:revision[,label:revision]...<br />
alllockers<br />
global: user identifiers of all those who have locked revisions, in the format<br />
user:revision[,user:revision]...<br />
archivedescription<br />
global: the archive description.<br />
archivename<br />
global: the name of the archive to which the member refers.<br />
archiveshared<br />
global: indicators for members that share another member's archive; 1 if shared, 0 if<br />
not shared.<br />
attributes<br />
global: member attributes in the form attr=value[,attr=value].<br />
author<br />
per revision: author of the revision.<br />
branchcount<br />
global: number of branches.<br />
branchid<br />
global: default branch.<br />
branchtiprev<br />
global: tip of the branch on which the member revision is located.<br />
<strong>com</strong>pressed<br />
global: 1 if archive is stored <strong>com</strong>pressed, otherwise 0.<br />
cpid<br />
per revision: the associated change package identifier (applies only when change<br />
packages are enabled).<br />
cpsummary<br />
per revision: the associated change package summary (applies only when change<br />
packages are enabled).<br />
date<br />
per revision: date on the revision.<br />
deleted<br />
per revision: the number of lines/bytes deleted on the current revision.<br />
description<br />
per revision: the revision description.<br />
format<br />
global: the storage format; 1 if stored as text, 0 if stored in binary format.<br />
formattedlabels<br />
global: all labels formatted into 80 column lines.<br />
frozen<br />
global: indicators for frozen members; 1 if frozen, or 0 if not frozen.<br />
222 of 457
haslabels<br />
global: 1 if alllabels is non-null, 0 if null.<br />
per revision: 1 if labels is non-null, 0 if null.<br />
haslocker<br />
per revision: 1 if locker is non-null, 0 if null.<br />
hasnewrevdelta<br />
global: displays 1 if the member revision is not on a tip.<br />
haspackage<br />
per revision: displays 1 if cpid is set, indicating the presence of a change package.<br />
headrev<br />
global: displays the head revision number.<br />
issandbox<br />
global: displays 1 if it is a sandbox, 0 if a project.<br />
labels<br />
per revision: a <strong>com</strong>ma separated list of labels on this revision.<br />
lockdevpath<br />
per revision: displays the name of the development path where the lock on the<br />
revision was made from. This information is relevant when the locking policy is set to<br />
devpath, allowing a single user to have a single lock on an archive per development<br />
path. Contact your administrator for more information.<br />
locker<br />
per revision: the user ID of the user with this revision locked, or null.<br />
lockhost<br />
per revision: displays the host name of the <strong>com</strong>puter that locked the member.<br />
lockproject<br />
per revision: displays the name and path of the project where the member revision<br />
was locked from. If the member revision was locked from a shared subproject, it is<br />
the original project's name and path that are displayed.<br />
locksandbox<br />
per revision: displays the name of the sandbox where the lock on the revision was<br />
made, and is relevant when viewing the information from the Locker Host.<br />
locktimestamp<br />
per revision: when locked, displays the time stamp for when the member was locked,<br />
otherwise null.<br />
memberdevbranch<br />
global: displays the member's development branch.<br />
membername<br />
global: displays the name of the member.<br />
memberrev<br />
global: displays the member revision number.<br />
223 of 457
memberrule<br />
global: displays the member rule on one line (in the header, if it exists).<br />
projectname<br />
global: from a project, displays the name of the project or subproject that the member<br />
belongs to. From a sandbox, displays the name of the sandbox or subsandbox that<br />
the member belongs to.<br />
projecttype<br />
global: displays 1 if the project is a regular project, 2 if the project is a build project, 3<br />
if the project is a variant project.<br />
rawmemberrule<br />
global: displays the member rule using the CLI syntax (in the header section, if it<br />
exists).<br />
relativemembername<br />
global: displays the member name relative to the top level project.<br />
revision<br />
per revision: revision number.<br />
revisioncount<br />
global: displays the count of the revisions.<br />
revisionsonbranchcount<br />
global: the number of revisions on branches.<br />
state<br />
per revision: displays the state.<br />
storageformat<br />
global: displays 1 if stored by reference, 0 if stored by delta.<br />
strictlocked<br />
global: displays an indicator for strictlocked members; 1 if strictlocked, otherwise 0.<br />
trunktip<br />
global: displays the trunk tip revision number.<br />
type<br />
global: always 0 to indicate a normal file member.<br />
workingarchive<br />
global: displays the name of the archive from which the working file is derived .<br />
NOTE: In the case where the working file was derived from an archive that was<br />
based on a server-side system setup (i.e. based on some default RCSPath or<br />
WorkToArch setting, as opposed to an explicit archive= reference), the<br />
workingarchive field displays the value "(default:)". The<br />
actual name of the archive from which the working file was derived can then be<br />
determined from the value for the archivename field.<br />
workingfile<br />
global: displays the working file name; null in a project.<br />
workingfileexists<br />
global: displays 1 if a sandbox and working file exists, 0 if operating on a project.<br />
workingfilerevunknown<br />
global: displays 1 in a sandbox if the working revision is unknown, or 0 if known.<br />
224 of 457
Always displays 0 in a project.<br />
workingrevdelta<br />
global: displays 1 in a sandbox if the working revision is the same as the member<br />
revision, or displays 0 in a project.<br />
workingfilewritable<br />
global: displays 1 if a sandbox and working file are writable.<br />
workingrev<br />
global: displays the working revision.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the print view window, in pixels;<br />
value must be a whole number.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the print view window, in pixels;<br />
value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si diff, si memberinfo, si mods, si print, si projectinfo,<br />
si report, si revisioninfo, si sandboxinfo, si viewhistory<br />
Miscellaneous:<br />
225 of 457
ACL, diagnostics, options, preferences<br />
226 of 457
si sandboxes<br />
lists sandboxes on the client<br />
SYNOPSIS<br />
si sandboxes [--[no]displaySubs] [--height=value] [--manage] [--width=value]<br />
[-x value] [-y value] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--[no]persist] [--quiet]<br />
[--settingsUI=[gui|default]] [-F|--selectionFile=value] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si sandboxes displays sandboxes currently registered on the MKS Source Integrity client and<br />
the corresponding project, server name, and port number, for example:<br />
Options<br />
c:\demoapp\project.pj -> /projects/demoapp/project.pj<br />
(server.mks.<strong>com</strong>:7001)<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]displaySubs<br />
controls whether to display subsandboxes.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the sandbox view window, in<br />
pixels; value must be a whole number.<br />
--manage<br />
enables the sandbox manager view for those using the -g or --gui options.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the sandbox view window, in<br />
pixels; value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
227 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si createsandbox, si dropsandbox, si importsandbox, si sandboxinfo, si<br />
viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
228 of 457
si sandboxinfo<br />
lists information about a sandbox<br />
SYNOPSIS<br />
si sandboxinfo [--[no]attributes] [(-S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[-F|--selectionFile=value] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si sandboxinfo displays current information about a sandbox, for example:<br />
Options<br />
Sandbox Name: c:\SourceCode\project.pj<br />
Project Name: c:/master_projects/SourceCode/project.pj<br />
Server: intra-wif:7001<br />
Revision: 1.4<br />
Last Checkpoint: Feb 15, 2003 - 3:28 PM<br />
Members: 0<br />
Subsandboxes: 3<br />
Line Terminator: native<br />
Project <strong>Description</strong>:<br />
Project Attributes: none<br />
Sandbox Attributes: none<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no]attributes<br />
controls whether to display project and sandbox attributes.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
229 of 457
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si ci, si memberinfo, si mods, si projectinfo, si rlog, si<br />
sandboxes, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
230 of 457
si servers<br />
displays the current connections to an Integrity Server<br />
SYNOPSIS<br />
si servers [--[no]showVersion] [--height=value] [--width=value] [-x value] [-y value] [(-?|--usage)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--[no]persist]] [--quiet] [-F|--selectionFile=value] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si servers displays active server connections in the format user@host_name:port.<br />
The default server connection is indicated by user@host_name:port(default).<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
--[no]showVersion<br />
controls whether to show build version information for the connected server. The presentation of this<br />
information is in the format [Build: 2015].<br />
--height=value<br />
used with the<br />
-g or --gui options, specifies the height of the servers view window, in pixels; value must be a whole number.<br />
--width=value<br />
used with the<br />
-g or --gui options, specifies the width of the servers view window, in pixels; value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new information be<strong>com</strong>es<br />
available. --nopersist forces a static "snapshot" of information, while --persist gives real-time updates.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
231 of 457
Commands:<br />
si connect, si disconnect<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
232 of 457
si setmemberrule<br />
sets the member rule for one or more members<br />
SYNOPSIS<br />
si setmemberrule [--clear] [--[no]confirm] [--[no]expand] [-f]<br />
[--[no|confirm]overrideRule] [(-r rev|--revision=rev)]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
A member rule is a revision--typically a symbolic revision--attached to a member that you can use<br />
regularly to update the member’s revision or use it with any <strong>com</strong>mand that allows you to specify the<br />
member rule as a pre-defined revision. In the graphical user interface, only the Check Out and<br />
Update Member Revision <strong>com</strong>mands allow you to specify a member rule. In the <strong>com</strong>mand line<br />
interface, any <strong>com</strong>mand that accepts the -r|--revision option allows you to specify a member<br />
rule. For example, you can check out a revision corresponding to the member rule in the graphical<br />
user interface or add a label to a revision corresponding to the member rule in the <strong>com</strong>mand line<br />
interface. After you create a rule for a member, you can also view the rule using the si<br />
memberinfo <strong>com</strong>mand.<br />
Important: By design, applying a rule as a member revision to a member does not dynamically<br />
update the member revision of the corresponding member in an external project configuration<br />
(normal, variant, build). For example, if member 1’s member revision is updated in project A, the<br />
corresponding member in a variant of project A with the rule configured to link to project A is not<br />
updated with the same member revision. To update the corresponding member in the variant<br />
according to the member rule, you must use the si updaterevision <strong>com</strong>mand with the<br />
member rule, or your administrator can configure the ClientLink.js sample event trigger script<br />
that enables dynamic updating of linked member revisions under certain conditions. For more<br />
information, contact your administrator.<br />
Example:<br />
1. A project administrator defines a rule based on a label and implements it:<br />
si setmemberrule -rReadyForUse demoapp.c demoapp.h<br />
233 of 457
si updaterevision -r:rule demoapp.c demoapp.h<br />
si freeze demoapp.c demoapp.h<br />
2. Developers work as usual, using :member.<br />
Note: In this scenario, it is not expected that members with the rule are modified locally.<br />
3. From time to time, the project administrator re-applies the rule, based on new revisions<br />
marked ReadyForUse:<br />
Options<br />
si thaw demoapp.c demoapp.h<br />
si updaterevision -r:rule demoapp.c demoapp.h<br />
si freeze demoapp.c demoapp.h<br />
Several rule filters are available so you can easily work with members that contain rules. For<br />
more information, see the --filter option in the options reference page.<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-r<br />
--revision<br />
revision to update the member revision to. For revision options, see options.<br />
--clear<br />
clears the member rule and removes it from the specified members.<br />
--[no]confirm<br />
causes Source Integrity to confirm that the rule will be cleared.<br />
--[no]expand<br />
controls whether to expand the revision before setting the rule.<br />
-f<br />
forces removal of the rule without confirmation.<br />
--[no|confirm]overrideRule<br />
controls whether to override the existing member rule.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
234 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si edit, si resync, si revert, si updatearchive, si<br />
updaterevision<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
235 of 457
si setprefs<br />
sets preferences<br />
SYNOPSIS<br />
si setprefs [--<strong>com</strong>mand=value] [--[no]resetToDefault] [--[no]save] [--[no]ask]<br />
[--ui=[unspecified|gui|cli|api]] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)]<br />
[(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] pref[=value]...<br />
DESCRIPTION<br />
si setprefs sets preferences and configuration options. These settings are used to determine default<br />
behaviors for other <strong>com</strong>mands - each option on each <strong>com</strong>mand has a preference key associated with it.<br />
The si viewprefs <strong>com</strong>mand lists the <strong>com</strong>mands and preference keys. Changes to your preferences<br />
are either for the current client session (until si exit is used) or may be permanently saved in your<br />
system's home directory, into a file named IntegrityClient.rc, using the --save option.<br />
To permanently enable keyword expansion when checking in members, for example, you would specify:<br />
si setprefs --<strong>com</strong>mand=ci --save keywordExpand=expand<br />
Your administrator can also lock certain preferences from the Integrity Server, preventing you from<br />
configuring them using the si setprefs <strong>com</strong>mand. Preferences that are locked -- viewable with si<br />
viewprefs -- display (locked) at the end of the output line. The following preferences can be locked<br />
from the server by editing Source Integrity policies in the Administration Client:<br />
Tip: For information on editing Source Integrity policies, see "Configuring the Integrity Server" in the<br />
Integrity Server Administration Guide.<br />
Preference Affected Commands<br />
branchIfVariant si co , si lock<br />
breakLock si unlock<br />
changePackageID si co, si lock<br />
createBranch si lock<br />
onLock si co<br />
restoreTimestamp<br />
si resync,<br />
si resynccp, si revert<br />
retainWorkingFile si add, si ci<br />
saveTimestamp si add, si ci<br />
sparse si importsandbox<br />
updateMemberRev si ci<br />
236 of 457
Warning: Do not edit the IntegrityClient.rc file manually, because preferences that appear more<br />
than once in the IntegrityClient.rc file can cause Source Integrity to behave unpredictably.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options.<br />
See the options reference page for descriptions.<br />
--<strong>com</strong>mand=value<br />
identifies the <strong>com</strong>mand to be set. For an easy way to see a list of <strong>com</strong>mands and values that may<br />
be set, simply type the si viewprefs <strong>com</strong>mand, either piped through |more or redirected to a<br />
file, for example:<br />
si viewprefs --global --showValidValues >prefs.txt<br />
The <strong>com</strong>mands and preference keys are also listed on the preferences reference page.<br />
--[no]resetToDefault<br />
controls whether to revert specified settings to the default values as shipped with MKS Source<br />
Integrity Client. If specifying --resetToDefault, you must not specify =value for each preference.<br />
--[no]save<br />
controls whether changes should be permanently saved.<br />
--[no]ask<br />
controls prompts to the user for specific preferences. Each preference option may be set to either -ask<br />
or --noask. When the <strong>com</strong>mand itself is run, any option set to --ask and that is not explicitly<br />
set with <strong>com</strong>mand line options will be queried. If this --ask option is set, then you do not specify a<br />
value for the preference at the same time, but instead the pref=value must supply one of the<br />
following four valid ask values:<br />
once<br />
never<br />
asks the user the first time only, and then uses the provided value every time after for the<br />
duration of that <strong>com</strong>mand.<br />
never asks the user for a response, but uses the current setting (which may be specified by a<br />
preference).<br />
element-last<br />
asks the user for each element of the selection, providing the most recently used value as the<br />
default.<br />
element-pref<br />
asks the user for each element of the selection, resetting the default to the value specified by<br />
the preference.<br />
For example, to set the server host for si connect to a specific host name, you specify something<br />
like:<br />
237 of 457
si setprefs --<strong>com</strong>mand=connect<br />
server.hostname=specific.hostname.<strong>com</strong><br />
but to set the preference to ask for a host name when using si connect, you specify something like:<br />
si setprefs --<strong>com</strong>mand=connect --ask<br />
server.hostname=element-last<br />
--ui=[unspecified|gui|cli|api]<br />
controls whether to apply the preference to the graphical user interface, the <strong>com</strong>mand line interface,<br />
or when the interface is unspecified. By default, --ui=cli is implied when issuing the si<br />
setprefs. To set preferences for GUI behavior, however, you should specify --ui=gui. For<br />
example, to set the manage preference to be true in the GUI for the si sandboxes <strong>com</strong>mand, you<br />
would type:<br />
si setprefs --<strong>com</strong>mand=sandboxes --ui=gui manage=true<br />
These correlate to settings in the IntegrityClient.rc file, which can be seen as having the gui.si. or<br />
cli.si. prefix, or simply the si. prefix when it is unspecified.<br />
pref[=value]...<br />
identifies the preference string. If you specified the --resetToDefault option, then you only need<br />
to specify the preference name; otherwise specify a value for the preference. Use spaces to specify<br />
multiple preferences.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si loadrc, si viewprefs<br />
Miscellaneous:<br />
diagnostics, options, preferences<br />
238 of 457
si setprojectdescription<br />
sets the project description<br />
SYNOPSIS<br />
si setprojectdescription [--description=desc] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)] [(-N|--no)]<br />
[(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--quiet] [--settingsUI=[gui|default]] [-F|--selectionFile=value]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si setprojectdescription sets the one line description of a project.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--description=desc<br />
specifies the new description text to be set as the project description.<br />
Note:<br />
<strong>Description</strong>s that include spaces must be enclosed by quotes.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
239 of 457
si addprojectlabel, si appendrevdesc, si checkpoint, si projectinfo, si<br />
viewproject, si viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
240 of 457
si sharesubproject<br />
shares an existing subproject between multiple projects<br />
SYNOPSIS<br />
si sharesubproject [--sharedProject=project location]<br />
[-r subproject revision|--subprojectRevision=subproject revision]<br />
[--subprojectDevelopmentPath=subproject development path name|--variant=subproject development path<br />
name] [--type=[normal|variant|build|default]] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=development path name] [--hostname=server]<br />
[--port=number] [--password =password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] subproject location<br />
DESCRIPTION<br />
A shared subproject is a subproject that is a member of more than one project. Source Integrity allows you to share a<br />
subproject between two or more projects by referencing the original subproject. A shared subproject allows you to<br />
access <strong>com</strong>mon members across many projects. Shared subprojects are not required to be located within the same<br />
directory structure or project hierarchy.<br />
A shared subproject functions the same as an unshared subproject and is accessible by the same <strong>com</strong>mands.<br />
Shared subprojects that were created in a previous version of Source Integrity (Standard Edition) are detected as<br />
they are accessed by Source Integrity Enterprise without disrupting the operation. The format of these subprojects is<br />
retained until you change or update it to the new format by re-configuring it.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the<br />
options reference page for descriptions.<br />
--sharedProject=project location<br />
specifies the path and name of the subproject you want to share, for example,<br />
c:/Libra_Program/project.pj.<br />
-r subproject revision<br />
--subprojectRevision=subproject revision<br />
specifies the revision number (for build subprojects). For example, 1.5. This option is used with -type=build.<br />
--subprojectDevelopmentPath=subproject development path name<br />
--variant=subproject development path name<br />
specifies the development path name (for variant subprojects). For example, Service_Pack3. This option is<br />
used with --type=variant<br />
--type=[normal|variant|build|default]<br />
specifies the new configuration type for the subproject.<br />
--type=normal configures the subproject to the master (non-variant) version of the subproject.<br />
--type=variant configures the subproject based upon a specific development path. The option is used<br />
with --variant=subproject development path name or --subprojectDevelopmentPath=subproject<br />
241 of 457
development path name.<br />
--type=build configures the subproject as a static subproject based upon a specific revision of the master<br />
project that is used for building or testing the project, but not for further development. This option is used with -<br />
r subproject revision or --subprojectRevision=subproject revision.<br />
--type=default configures the subproject based on the type that is consistent with the parent project that<br />
you are adding the subproject to. For example, if you add a subproject to a normal project, the subproject is<br />
added as a normal type. For information on what the default type is, see your administrator.<br />
-P project name<br />
--project=project name<br />
specifies the path and name of the project you want to add the shared subproject to, for example,<br />
c:/Aurora_Program/bin/project.pj.<br />
subproject location<br />
specifies where in the project you want the shared subproject to appear, for example,<br />
c:/Aurora_Program/bin/Libra/.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si addsubproject, si checkpoint, si configuresubproject, si createproject, si<br />
createsandbox, si createsubproject, si drop, si dropproject, si importproject, si<br />
projectinfo, si projects, si viewproject<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
242 of 457
si snapshot<br />
records the state of a sandbox.<br />
SYNOPSIS<br />
si snapshot [--targetDevpath=value] [--author=value] [-d|--description=value]<br />
[--descriptionFile=snapshot] [-L|--label=value] [--[no]labelMembers]<br />
[--[no]notify] [-s|--state=value] [--[no]stateMembers] [-S|--sandbox=value]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si snapshot records a capture of the current state of a sandbox, where each element in the<br />
sandbox can be identified with a pre-existing entity in the repository on the Integrity Server. The<br />
sandbox snapshot creates a standard project revision from which a build sandbox can be created<br />
and a development path assigned. The project revision number takes the form of a branched<br />
revision in the project history. For example, if the head revision of the project is 1.1, then the<br />
project revision created by the snapshot will be 1.1.1.1.<br />
Note: si snapshot records the state of a sandbox, while si checkpoint records the state of a<br />
project. Checkpointing is re<strong>com</strong>mended for recording milestones during the development of a<br />
project; however, there may be situations where you may need to take a snapshot of a sandbox to<br />
record the state for later use.<br />
The state of a sandbox is defined by its set of elements, which include the following:<br />
● sandbox members identified with an archive and working revision from which the working<br />
file was created<br />
● former members that were dropped, but are still present in your sandbox<br />
● subsandboxes, identified by project name and type<br />
● former subsandboxes that were dropped but are still present in your sandbox<br />
Note the following about how si snapshot handles the set of sandbox elements:<br />
● To be included in the snapshot, all working files must be checked in. There must be no<br />
working file changes in the sandbox.<br />
● If the working file revision differs from the member revision, it is the working file revision that<br />
is included in the snapshot.<br />
● Members with no working files are not included in the snapshot.<br />
243 of 457
● Former members that still have working files in the sandbox directory appear as members in<br />
the snapshot.<br />
● Former subprojects that are still in the sandbox directory appear as restored subprojects in<br />
the snapshot.<br />
For more information on sandbox snapshots, see the Source Integrity Enterprise User Guide.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--targetDevpath=value<br />
specifies the development path to create the snapshot from. With this option you can only<br />
specify an existing development path.<br />
--author=value<br />
specifies the author of the snapshot revision.<br />
-d<br />
--description value<br />
specifies the description for the snapshot revision.<br />
--descriptionFile=value<br />
specifies a file containing the description for the snapshot revision.<br />
-L<br />
--label=value<br />
specifies a label for the snapshot revision. Note the following about using labels:<br />
❍ Labels cannot contain colons(:), square brackets ([ ]), or leading spaces.<br />
❍ Labels cannot have the same format as a valid revision number.<br />
❍ Labels that include spaces must be enclosed by quotes.<br />
❍ MKS re<strong>com</strong>mends not using hyphens (-) in labels. Using hyphens may cause some<br />
si <strong>com</strong>mands to fail.<br />
--[no]labelMembers<br />
assigns the specified label to the working revisions.<br />
--[no]notify<br />
provides a notification when the snapshot has been created.<br />
-s<br />
--state=value<br />
specifies the state for the project revision created by the snapshot.<br />
--[no]stateMembers<br />
specifies whether to apply the state to all members or only the project.<br />
-S<br />
--sandbox=value<br />
specifies the name of the sandbox to snapshot.<br />
244 of 457
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si viewproject, si<br />
viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
245 of 457
si submit<br />
submits a deferred operation<br />
SYNOPSIS<br />
si submit [(--cpid ID|--changePackageId=ID)] [--issueId=ID]<br />
[--[no|confirm]closeCP] [-f] [--[no]overrideCPID] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [--[no|confirm]recurse] [(-S sandbox|--sandbox=sandbox)]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [-F value] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=value]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] [-F|--selectionFile=value] sandbox member...<br />
DESCRIPTION<br />
si submit submits a deferred operation in your sandbox. Submitting the operation <strong>com</strong>pletes the<br />
<strong>com</strong>mand and makes it visible in the associated project. If reviews are mandatory, submitting a<br />
deferred operation creates a pending entry in the associated change package.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--cpid=ID<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 145:2. Note the<br />
following about using this option:<br />
❍ This option can only be specified if change packages are enabled.<br />
❍ If the Integrity Manager integration is enabled, but it is not mandatory to specify a<br />
change package, or if no change package is applicable, you must specify<br />
--changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--[no|confirm]closeCP<br />
controls whether to close the associated change package.<br />
--nocloseCP means do not close the change package.<br />
--confirmcloseCP means ask before closing the change package.<br />
246 of 457
--closeCP always closes the change package.<br />
-f<br />
force all elements to be submitted with the specified change package ID override.<br />
--issueId=ID<br />
identifies an MKS Integrity Manager issue that is notified of this action. This option is<br />
another way of redirecting to a change package. If you have an issue assigned to you that<br />
contains one open change package, you can specify the issue ID instead of the change<br />
package ID. This option can only be specified if the Integrity Manager integration is enabled.<br />
See the Integrity Server Administration Guide or your administrator for details on using the<br />
Integrity Manager integration.<br />
--[no]overrideCPID<br />
force all elements to be submitted with the specified change package ID override.<br />
sandbox member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si drop, si move, si rename<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
247 of 457
si submitcp<br />
submits a change package.<br />
SYNOPSIS<br />
si submitcp [--[no|confirm]closeCP] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
[--[no|confirm]<strong>com</strong>mit] [--[no|confirm]deferredIsError]<br />
[--[no|confirm]ignoreNoDeferred] issue|issue:change package id...<br />
DESCRIPTION<br />
si submitcp submits the un<strong>com</strong>mitted operations in a change package. Although you can<br />
submit operations individually via si submit, you can ensure that no operations are missed by<br />
submitting a change package that contains deferred operations. Deferred operations are visible<br />
only from the Source Integrity Client, and are not <strong>com</strong>mitted to the project or repository until they<br />
are submitted. If reviews are mandatory, submitting the change package begins the review process<br />
(pending entries are created).<br />
When a change package is submitted, all of the deferred operations are submitted. Any locked<br />
members are converted to deferred check in operations and then checked in.<br />
When reviews are mandatory, submitting a change package begins the review process. Deferred<br />
entries be<strong>com</strong>e pending entries, and are <strong>com</strong>mitted to the server repository by Source Integrity<br />
once the change package has been accepted. For more information, see the Source Integrity<br />
Enterprise User Guide<br />
If the change package is a resolution change package, by default you are prompted with the option<br />
to apply the change package after it is submitted.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]closeCP<br />
specifies whether to close the change package after it has been submitted.<br />
--[no|confirm]<strong>com</strong>mit<br />
specifies whether to <strong>com</strong>mit deferred or pending changes to the server repository, or submit<br />
them for review. The default is to <strong>com</strong>mit without confirmation.<br />
248 of 457
--[no|confirm]deferredIsError<br />
specifies whether to proceed with the submit operation if there are deferred change package<br />
entries.<br />
--[no|confirm]ignoreNoDeferred<br />
specifies whether to proceed with the submit operation if there are no deferred or lock<br />
change package entries.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all open change packages that you want to<br />
close; use spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to close; use spaces to<br />
specify more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si acceptcp, si rejectcp, si closecp, si add, si ci, si co, si cpissues, si<br />
createcp, si drop, si viewcps, si viewcp.<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
249 of 457
si thaw<br />
thaws a project member<br />
SYNOPSIS<br />
si thaw [(-R|--[no|confirm]recurse)] [--filter=filteroptions]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si thaw thaws project members previously frozen with the si freeze <strong>com</strong>mand. Once thawed,<br />
all operations normally associated with a member can be performed again.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si checkpoint, si freeze<br />
250 of 457
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
251 of 457
si unlock<br />
unlocks a member<br />
SYNOPSIS<br />
si unlock [--[no|confirm]breakLock] [(-r rev|--revision=rev)]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si unlock unlocks a member. If you do not specify any members, si unlock applies to all<br />
members. By default, si unlock unlocks the member revision of each archived member.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]breakLock<br />
controls whether to break someone else's lock. If someone else has the member locked and<br />
you have the BreakLock permission (see ACL), you will normally be prompted to confirm<br />
whether you want to break their locks.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
252 of 457
SEE ALSO<br />
Commands:<br />
si ci, si co, si edit, si lock, si rlog<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
253 of 457
si unlockarchive<br />
unlocks a revision in an archive.<br />
SYNOPSIS<br />
si unlockarchive [--archive=value] [-r|--revision=value] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)] [(-N|--no)]<br />
[(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--quiet] [--settingsUI=[gui|default]] [-F|--selectionFile=value]<br />
[--status=[none|gui|default]]<br />
DESCRIPTION<br />
si unlockarchive unlocks a revision in an archive. You can use this <strong>com</strong>mand to unlock<br />
members that have been dropped from a project, and members locked in a project for which you<br />
longer have permission to view.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--archive=value<br />
specifies the server side archive name.<br />
-r<br />
--revision=value<br />
specifies the locked revision number.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
254 of 457
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si<br />
viewprojecthistory, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
255 of 457
si updatearchive<br />
manipulates various member archive attributes<br />
SYNOPSIS<br />
si updatearchive [--archive<strong>Description</strong>=description] [--[no]<strong>com</strong>press]<br />
[--defaultBranch=value] [--storageFormat=[delta|reference]] [--[no]strictLock]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--projectRevision=rev]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si updatearchive manipulates various member archive attributes.<br />
Note:<br />
Options<br />
This <strong>com</strong>mand affects the base archive, and, therefore, all projects and development paths<br />
referring to the archive.<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--archive<strong>Description</strong>=description<br />
sets the archive description for a member. description is stored in the member's meta data<br />
as an archive description. If description has spaces then it must be enclosed by quotes.<br />
--[no]<strong>com</strong>press<br />
controls whether to <strong>com</strong>press the member's archive. This is re<strong>com</strong>mended for use by the<br />
system administrator only. On WIN32/NT systems, use the NTFS built-in <strong>com</strong>pression<br />
instead.<br />
--defaultBranch=value<br />
sets the default branch MKS Source Integrity uses to check in files. If unspecified, files are<br />
checked in to the trunk.<br />
--storageFormat=[delta|reference]<br />
identifies what type of format to use in the archive. This is re<strong>com</strong>mended for use by the<br />
system ADMIN only. delta is the traditional Source Integrity reverse delta format, while<br />
reference means to store member history by reference -- each revision is stored as a<br />
separate file. Particularly for binary files, storing by reference can enhance performance.<br />
256 of 457
--[no]strictLock<br />
controls whether to set strict locking for the member. Without a strict locking policy, Source<br />
Integrity respects locks but does not require them. When --strictLock is specified,<br />
Source Integrity uses the file system's read-only attribute to assist in the locking process. If<br />
you do not lock a revision when you check it out, the working file based on that revision is<br />
read-only.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si createdevpath, si edit, si resync, si revert, si<br />
updaterevision<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
257 of 457
si updateclient<br />
updates the Integrity Client with a Service Pack<br />
SYNOPSIS<br />
si updateclient [--[no|confirm]download] [--[no|confirm]shutdown]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]]<br />
DESCRIPTION<br />
si updateclient updates the Integrity Client with a Service Pack from the server if one is<br />
available. A Service Pack may be designated as required to address a known issue, or may<br />
provide enhancements. Client side Service Pack numbers are designated with a "C", for example,<br />
C04030003.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to some si <strong>com</strong>mands, as well as some<br />
general options. See the options reference page for descriptions.<br />
--[no|confirm]download<br />
automatically downloads a Service Pack if one is available.<br />
--[no|confirm]shutdown<br />
automatically shutdowns the client if a Service Pack is downloaded.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
258 of 457
si connect, si disconnect<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
259 of 457
si updaterevision<br />
updates a project member revision to a specific revision<br />
SYNOPSIS<br />
si updaterevision [--cpid|--changepackageID=value] [--[no|confirm]closeCP]<br />
[--[no]defer] [--issueID=value] [(-r rev|--revision=rev)]<br />
[(-R|--[no|confirm]recurse)] [--filter=filteroptions] [(-P project|--project=project)]<br />
[(-S sandbox|--sandbox=sandbox)] [--devpath=path] [--hostname=server]<br />
[--port=number] [--password=password] [--user=name] [(-?|--usage)]<br />
[(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory]<br />
[--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] [--[no]save] member...<br />
DESCRIPTION<br />
si updaterevision updates a member revision to a specific pre-existing revision. This is useful<br />
when you want the member revisions in a project to reflect revisions based on a symbolic location<br />
in the development path (working file, head revision, trunk tip, member branch tip), property (state,<br />
label, timestamp), current project configuration, or external project configuration.<br />
Note: You cannot update a frozen member’s revision. You must first thaw the member (si thaw)<br />
and then update it.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
-r<br />
--revision<br />
revision to update the member revision to. For revision options, see options.<br />
--[no]save<br />
Used to save any revision specified by -r (see options). Although existing saved revisions<br />
can be referenced using the :rule symbolic revision, this option has been deprecated in<br />
favor of the member rule. MKS re<strong>com</strong>mends using the member rule instead of the --<br />
[no]save option. For more information about the member rule, see si setmemberrule).<br />
--cpid=value<br />
--changePackageId=ID<br />
identifies a change package that is notified of this action, for example, 1452. Note the<br />
following about using this option:<br />
260 of 457
❍ This option can only be specified if change packages are enabled.<br />
❍ You must specify this option if you have requested to obtain a lock and TrackLocks is<br />
enabled, and/or it is mandatory to specify a change package.<br />
❍ If you have TrackLocks enabled, Source Integrity prompts you with the change<br />
package you used when you checked out the specified member, not the default<br />
change package. From the graphical user interface, you must manually select the<br />
change package.<br />
❍ If the integration is enabled, but it is not mandatory to specify a change package, or if<br />
no change package is applicable, you must specify --changePackageId=:none.<br />
❍ The next time you are prompted for a change package ID, the last used change<br />
package ID is displayed by default, if :none was specified or at least one change<br />
package was successfully updated from the last operation.<br />
--[no|confirm]closeCP<br />
closes the change package after <strong>com</strong>mand <strong>com</strong>pletion.<br />
--[no]defer<br />
controls whether to delay the operation in the project until the deferred operation is<br />
submitted. The operation in the sandbox still takes place immediately.<br />
--issueID=value<br />
specifies the issue ID that corresponds to the change package that records the changes.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si edit, si resync, si revert, si updatearchive, si<br />
setmemberrule<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
261 of 457
si viewcp<br />
displays a change package's details<br />
SYNOPSIS<br />
si viewcp [--fields=field1[:width1],field2[:width2]...] [--[no]showCommitted]<br />
[--[no]showUn<strong>com</strong>mitted] [--[no]showPending] [--[no]showReviewLog]<br />
[--format=value] [--height=value] [--width=value] [-x value] [-y value]<br />
[--headerFormat=value] [--noFormat=value] [--noHeaderFormat=value]<br />
[--noTrailerFormat=value] [--trailerFormat=value] [--width=value]<br />
[--hostname=server] [--port=number] [--password=password] [--user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch]<br />
[--cwd=directory] [--forceConfirm=[yes|no]] [--quiet] [(-g|--gui)]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] issue|issue:change package id...<br />
DESCRIPTION<br />
si viewcp allows you to view details on any change package you select. You can select the<br />
change package using an issue ID or change package ID, and the change package does not have<br />
to be assigned to you.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional. Fields are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
archive<br />
displays the archive name of member in the change package entry.<br />
closeddate<br />
displays the date the change package was closed on.<br />
description<br />
displays the description of the selected change package.<br />
id<br />
displays the ID of the issue associated with the selected change package.<br />
isclosed<br />
262 of 457
indicates if the change package is closed.<br />
member<br />
displays the member names in the change package.<br />
project<br />
displays the project the change package is associated with.<br />
resolution<br />
indicates whether or not the selected change package is a resolution change<br />
package.<br />
resolutionlist<br />
displays the list of change packages resolved by a selected resolution change<br />
package (the resolution list is displayed by default if a resolution change package is<br />
selected).<br />
revision<br />
displays the member revision number.<br />
sandbox<br />
displays the name of the sandbox where the deferred operation or check out took<br />
place.<br />
server<br />
displays the server the change package resides on.<br />
siserver<br />
displays the Source Integrity server the change package resides on.<br />
state<br />
displays the status of the change package.<br />
summary<br />
displays the change package summary.<br />
timestamp<br />
displays the timestamp of the selected change package.<br />
type<br />
displays how the member was added to the change package: add, update, drop, lock,<br />
rename-to, or rename-from.<br />
user<br />
displays the ID of the user who added the member to the change package.<br />
variant<br />
displays the names of variant projects associated with the member.<br />
creationdate<br />
displays date the change package was created..<br />
--[no]showCommitted<br />
specifies if to display <strong>com</strong>mitted operations. Committed operations appear as change<br />
package entries that contain changes <strong>com</strong>mitted to the server repository.<br />
--[no]showUn<strong>com</strong>mitted<br />
specifies if to display un<strong>com</strong>mitted operations. Un<strong>com</strong>mitted operations are Lock or deferred<br />
entries that can be submitted to the server repository.<br />
--[no]showPending<br />
specifies if to display pending entries that have not yet <strong>com</strong>mitted to the repository.<br />
--[no]showReviewLog<br />
263 of 457
specifies if to display review information. Source Integrity provides review logs as part of a<br />
<strong>com</strong>plete review audit process. A log consists of individual records for each reviewer vote<br />
cast. Each time the change package is submitted for review, a new log begins.<br />
Each review record contains the following information:<br />
Review States The possible review states are:<br />
❍ Review Pending the change package is still in a state of Submitted and there are<br />
outstanding votes to be cast by reviewers.<br />
❍ Accepted the change package is in a state of Accepted, and all of the individual<br />
reviewers and a user from each reviewer group have accepted the change package.<br />
❍ Rejected the change package is in a state of Rejected, and at least one reviewer has<br />
rejected the change package.<br />
Reviewer Type The possible reviewer types are:<br />
❍ User Reviewer is a user voting in an individual capacity.<br />
❍ Group Reviewer is a user voting in a group capacity on behalf of that group.<br />
❍ Super Reviewer is a user casting an overriding vote in a super reviewer capacity,<br />
and is not required to be a user on the reviewer list or in a group on the group<br />
reviewer list.<br />
Votes The possible vote values are:<br />
❍ Pending signifies that the reviewer or group reviewer has not yet cast a vote.<br />
❍ Accepted signifies that the user has cast an accept vote for the change package.<br />
❍ Rejected signifies that the user has cast a reject vote for the change package.<br />
Comments Displays information that reviewers optionally provide to clarify their votes.<br />
Changes Displays in tabular form the changes that were made to upon submission of the<br />
change package.<br />
si viewcp also includes options that deal with formatting for the view.<br />
--format=value<br />
format for user-formatted text.<br />
--headerFormat=value<br />
header for user-formatted text.<br />
--height=value<br />
the height in pixels of the window.<br />
264 of 457
--noFormat=value<br />
format for user-formatted text.<br />
--noHeaderFormat=value<br />
header for user-formatted text.<br />
--noTrailerFormat=value<br />
trailer for user-formatted text.<br />
--trailerFormat=value<br />
trailer for user-formatted text.<br />
--width=value<br />
the width in pixels of the window. Can also be specified as fields=field1[:width1]....<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
issue...<br />
issue:change package id...<br />
issue identifies a specific issue that contains all change packages that you want to view; use<br />
spaces to specify more than one issue.<br />
issue:change package id identifies a specific change package to view; use spaces to specify<br />
more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si closecp, si co, si cpissues, si createcp, si drop, si<br />
lock<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
265 of 457
266 of 457
si viewcps<br />
displays all open change packages created by you<br />
SYNOPSIS<br />
si viewcps [--fields=field1[:width1],field2[:width2]...] [--filter=value] [--height=value] [--width=value] [-x<br />
value] [-y value] [--query=value] [--hostname=server] [--port=number] [--password=password] [-user=name]<br />
[(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)] [--[no]batch] [-cwd=directory]<br />
[--forceConfirm=[yes|no]] [--[no]persist] [--quiet] [--myReviews] [(-g|--gui)] [-settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] [--[no]persist] issue|issue:change package id...<br />
DESCRIPTION<br />
si viewcps displays all open change packages created by you.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the options reference page for<br />
descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each<br />
field is optional - widths are only available with the -g or -gui<br />
options. Under the CLI the fields are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
closeddate<br />
displays the date the change package was closed.<br />
creationdate<br />
displays the date the change package was created.<br />
description<br />
displays change package descriptions.<br />
id<br />
displays change packages IDs.<br />
summary<br />
displays change package summaries.<br />
issue<br />
displays the issue ID if the Integrity Manager integration is enabled.<br />
reason<br />
is only relevant when applying change packages, and is not used in the standalone Change Packages view.<br />
resolution 267 of 457
displays yes if the change package is a resolution change package, and no if it is not.<br />
resolutionlist<br />
displays the list of change packages resolved by a selected resolution change package (the resolution list is displayed by default if a<br />
resolution change package is selected).<br />
state<br />
displays current state of the change package.<br />
siserver<br />
displays the Source Integrity server the change package resides on.<br />
user<br />
displays the username who created the change package.<br />
--filter=value<br />
displays the change packages according to one of the following filters:<br />
state[:closed|:open|:submitted|:accepted|:rejected|:discarded|:<strong>com</strong>mitfailed]<br />
displays change packages according to their state, which can be one of the following:<br />
:closed specifies that the change package is in a closed state (all changes <strong>com</strong>mitted to repository).<br />
:open specifies that the change package has in an open state (work in progress, available to add entries too).<br />
:submitted specifies that the change package has been submitted for review.<br />
:accepted specifies that the change package has been accepted by all reviewers.<br />
:rejected specifies that the change package has been rejected by at least one reviewer.<br />
:discarded specifies that the change package has been discarded.<br />
:<strong>com</strong>mitfailed specifies that the change package has failed to <strong>com</strong>mit to the repository.<br />
closeddate:<br />
displays closed change packages based on a specified closed date. Valid date formats are the following: between MM/dd/yyyy and<br />
MM/dd/yyyy, in the last|in the next number days|months|years yesterday|today|tomorrow.<br />
creationdate:<br />
displays change packages based on a specified creation date. Valid date formats are the following: between MM/dd/yyyy and<br />
MM/dd/yyyy, in the last|in the next number days|months|years yesterday|today|tomorrow.<br />
member:<br />
specifies a text string to filter change packages by member name.<br />
project:<br />
specifies a text string to filter change packages by project.<br />
variant:<br />
specifies a text string to filter change packages by variant. 268 of 457
description:<br />
specifies a text string to filter change packages by their description.<br />
summary:<br />
specifies a text string to filter change packages by their summary.<br />
type[:add|:addfromarchive|:drop|:import|:lock|:movememberto|:movememberfrom|:renamefrom|:renameto|:update|:updatearchive|:updaterevision]<br />
displays change packages based on their entry type.<br />
typemodifier[:<strong>com</strong>mitted|:pending]<br />
displays change packages based on their entry category.<br />
hasissue<br />
displays change packages that have an associated issue.<br />
pendingreviewby:name<br />
displays change packages that have not yet been accepted or rejected by a specified reviewer.<br />
acceptedby:name[;date]<br />
displays change packages accepted by a specified username on a specified date. Valid date formats are the following: between<br />
MM/dd/yyyy and MM/dd/yyyy, in the last|in the next number days|months|years yesterday|today|tomorrow.<br />
rejectedby:name[;date]<br />
displays change packages rejected by a specified username on a specified date. Valid date formats are the following: between<br />
MM/dd/yyyy and MM/dd/yyyy, in the last|in the next number days|months|years yesterday|today|tomorrow.<br />
rejectedby:name[;date]<br />
displays change packages rejected by a specified username on a specified date. Valid date formats are the following: between<br />
MM/dd/yyyy and MM/dd/yyyy, in the last|in the next number days|months|years yesterday|today|tomorrow.<br />
--myReviews<br />
displays change packages you are to review (which may include change packages not created by you). Change packages only appear in the list<br />
after they have been submitted for review. After you vote on the change package, it no longer appears in this list.<br />
--query=value<br />
the Integrity Manager query used to find change packages. For information on creating and using queries, see the Integrity Manager CLI<br />
Reference Guide.<br />
--[no]persist<br />
controls the persistence of CLI views.<br />
--height=value<br />
the height in pixels of the window.<br />
--width=value<br />
the width in pixels of the window. Can also be specified as fields=field1[:width1]....<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
269 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si add, si ci, si closecp, si co, si cpissues, si createcp, si drop, si lock<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
270 of 457
si viewhistory<br />
displays a member's history<br />
SYNOPSIS<br />
si viewhistory [--fields=field1[:width1],field2[:width2]...] [--height=value]<br />
[--width=value] [-x value] [-y value] [--filter=filteroptions]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--[no]persist]<br />
[--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si viewhistory displays a member's history, one line per revision, per member. This is similar<br />
to si print and si rlog, but with different defaults.<br />
While sandboxes and projects allow you to manage and access project members and the contents<br />
of individual members, the history of changes are saved in member histories.<br />
MKS Source Integrity lets you save and recreate every stage (or revision) in the development of<br />
each member you use. When you make changes to a project member and check it back in, your<br />
changes are automatically added to the member history.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
author<br />
displays author names.<br />
cpid<br />
displays the associated change package identifier (applies only if change packages<br />
271 of 457
are enabled).<br />
date<br />
displays the working file date.<br />
description<br />
displays revision and project descriptions.<br />
labels<br />
displays labels.<br />
lockcpid<br />
displays the change package ID for the associated lock entry.<br />
lockdevpath<br />
displays the name of the development path where the lock on the revision was made<br />
from. This information is relevant when the locking policy is set to devpath, allowing a<br />
single user to have a single lock on an archive per development path. Contact your<br />
administrator for more information.<br />
locked<br />
displays indicators for locked revisions.<br />
locker<br />
displays the user ID of the user with this revision locked, or null.<br />
lockhost<br />
displays the host name of the <strong>com</strong>puter that locked the member.<br />
lockproject<br />
displays the name and path of the project where the member revision was locked<br />
from. If the member revision was locked from a shared subproject, it is the subproject<br />
name and path that are displayed.<br />
locksandbox<br />
displays the name of the sandbox where the lock on the revision was made, and is<br />
relevant when viewing the information from the Locker Host.<br />
locktimestamp<br />
displays the time stamp for when the member was locked, otherwise null.<br />
revision<br />
displays the revision number.<br />
state<br />
displays the state.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the history view window, in pixels;<br />
value must be a whole number.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the history view window, in pixels;<br />
value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
272 of 457
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewlabels, si viewproject, si<br />
viewprojecthistory, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
273 of 457
si viewlabels<br />
displays a member's labels<br />
SYNOPSIS<br />
si viewlabels [--fields=field1[:width1],field2[:width2]...]<br />
[--height=value] [--width=value] [-x value] [-y value] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[(-g|--gui)] [--[no]persist] [--quiet] [--settingsUI=[gui|default]]<br />
[--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si viewlabels displays a member's labels: one label per line, showing the label and its revision<br />
number.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
cpid<br />
label<br />
displays the associated change package identifier (applies only if change packages<br />
are enabled).<br />
displays labels.<br />
revision<br />
displays the revision number.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the labels view window, in pixels;<br />
value must be a whole number.<br />
274 of 457
--width=value<br />
used with the -g or --gui options, specifies the width of the labels view window, in pixels;<br />
value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewproject, si<br />
viewprojecthistory, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
275 of 457
si viewlocks<br />
displays locks<br />
SYNOPSIS<br />
si viewlocks [--format=value] [--headerFormat=value] [--noFormat]<br />
[--noHeaderFormat] [--noTrailerFormat] [(-r rev|--revision=rev)] [--range=value]<br />
[--trailerFormat=value] [--fields=field1[:width1],field2[:width2]...] [--height=value]<br />
[--width=value] [-x value] [-y value] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)]<br />
[(-N|--no)] [(-Y|--yes)] [--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]]<br />
[--[no]persist] [--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si viewlocks displays the locks held in a project and some information about the members, for<br />
example:<br />
c:\app\connect.txt 1.4 mkern<br />
Jan 9, 2002 - 4:06 PM<br />
c:\app\source.txt 1.3 mkern<br />
Jan 9, 2002 - 4:06 PM<br />
c:\app\config.c 1.3 mkern<br />
Jan 8, 2002 - 2:26 PM<br />
Note: By default, si viewlocks displays the member names of locked members, not the<br />
working file names.<br />
Options<br />
This <strong>com</strong>mand takes some of the universal options available to all si <strong>com</strong>mands, as well as some<br />
general options. See the options reference page for descriptions.<br />
See the si rlog reference page for descriptions of all options applicable to si viewlocks.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
276 of 457
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si<br />
viewprojecthistory, si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
277 of 457
si viewnonmembers<br />
displays non-members in a sandbox<br />
SYNOPSIS<br />
si viewnonmembers [--[no|confirm]includeFormers]<br />
[--exclude=file:pattern,dir:pattern...] [--include=file:pattern,dir:pattern...]<br />
[--fields=field1[:width1],field2[:width2]...] [-R|--[no|confirm]recurse]<br />
[-S|--sandbox=value] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-Ffile|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] nonmember...<br />
DESCRIPTION<br />
si viewnonmembers displays non-members in a sandbox.<br />
From Source Integrity, you can view non-member files existent in your sandbox directory. The Non-<br />
Members view is useful when used recursively to identify all of the files that need to be placed<br />
under source control. By default, former members are not displayed in the Non-Members view.<br />
The Non-Members view does not display files that are:<br />
● deferred imported members<br />
● deferred add members from archive<br />
● pending members (add, add from archive, import)<br />
● working files from members that have been renamed but not resynchronized<br />
Non-members can only be viewed in a sandbox context, and not from any project view operation.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|confirm]includeFormers<br />
specifies if to include members that have been dropped from the project, but where there<br />
still exists a working file in the sandbox directory..<br />
--exclude=file:pattern,dir:pattern...<br />
specifies a file that contains a glob pattern for excluding members.<br />
--include=file:pattern,dir:pattern...<br />
278 of 457
specifies a file that contains a glob pattern for including members.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be displayed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options.<br />
The fields available for printing can be one or more of the following:<br />
absolutepath<br />
displays the absolute file path of the file.<br />
closestproject<br />
displays the project associated with the sandbox that is closest to the directory<br />
containing the file.<br />
closestsandbox<br />
displays the sandbox that is closest to the directory containing the file.<br />
lastmodified<br />
displays the date that the file was last modified.<br />
memberid<br />
displays the default member name for the file as it would appear if it was added to the<br />
nearest project. In the case where the nearest project is subproject, the relative path<br />
is displayed with the member name.<br />
size<br />
displays the size of the file in bytes.<br />
nonmember...<br />
identifies nonmembers to display; use spaces to specify more than one change package.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si viewsandbox, si viewsproject, si add<br />
279 of 457
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
280 of 457
si viewprefs<br />
displays preferences<br />
SYNOPSIS<br />
si viewprefs [--[no]global] [--<strong>com</strong>mand=value] [--[no]showValidValues]<br />
[--[no]ask] [--ui=[unspecified|gui|cli|api]] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[(-F file|--selectionFile=file)] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
DESCRIPTION<br />
si viewprefs displays preferences and configuration options. These settings are used to<br />
determine default behaviors for other <strong>com</strong>mands.<br />
Your administrator can lock certain preferences from the Integrity Server, preventing you from<br />
configuring them using the si setprefs <strong>com</strong>mand. Preferences that are locked display<br />
(locked) at the end of the output line. The following preferences can be locked from the server<br />
by editing Source Integrity policies in the Administration Client:<br />
Tip: For information on editing the Source Integrity policies, see "Configuring the Integrity Server"<br />
in the Integrity Server Administration Guide.<br />
Preference Affected Commands<br />
branchIfVariant si co , si lock<br />
breakLock si unlock<br />
changePackageID si co, si lock<br />
createBranch si lock<br />
onLock si co<br />
restoreTimestamp<br />
si resync,<br />
si resynccp, si<br />
revert<br />
retainWorkingFile si add, si ci<br />
saveTimestamp si add, si ci<br />
sparse si importsandbox<br />
updateMemberRev si ci<br />
281 of 457
Warning: Do not edit the IntegrityClient.rc file manually, because preferences that appear<br />
more than once in the IntegrityClient.rc file can cause Source Integrity to behave<br />
unpredictably.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions. For an easy way to see a list of<br />
<strong>com</strong>mands and values that may be set, simply type the si viewprefs <strong>com</strong>mand, either piped<br />
through |more or redirected to a file, for example:<br />
si viewprefs --global --showValidValues >prefs.txt<br />
Alternatively, the --gui option presents a simple-to-use dialog box that lets you view and<br />
configure the preferences.<br />
--[no]global<br />
controls whether to view all preferences.<br />
--<strong>com</strong>mand=value<br />
identifies the <strong>com</strong>mand preference to be viewed.<br />
--[no]showValidValues<br />
controls whether to list valid values for the preferences.<br />
--[no]ask<br />
controls whether to view the ask control over the preference options. See the description for<br />
--[no]ask on the si setprefs <strong>com</strong>mand.<br />
--ui=[unspecified|gui|cli|api]<br />
controls whether to view the preference as it applies to the graphical user interface, the<br />
<strong>com</strong>mand line interface, application programming interface, or when the interface is<br />
unspecified. By default, --ui=cli is implied when issuing the si viewprefs. To view<br />
preferences for GUI behavior, however, you should specify --ui=gui.<br />
The preferences you see correlate to settings in the IntegrityClient.rc file, which can<br />
be seen as having the gui.si. or cli.si. prefix, or simply the si. prefix when it is unspecified.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
282 of 457
SEE ALSO<br />
Commands:<br />
si loadrc, si setprefs<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
283 of 457
si viewproject<br />
displays the contents of a project<br />
SYNOPSIS<br />
si viewproject [--fields=field1[:width1],field2[:width2]...] [--[no]filterSubs]<br />
[--height=value] [--width=value] [-x value] [-y value] [(-R|--[no|confirm]recurse)]<br />
[--filter=filteroptions] [(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)]<br />
[--devpath=path] [--projectRevision=rev] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd =directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--[no]persist] [--quiet] [--settingsUI=[gui|default]] [(-F file|--selectionFile=file)]<br />
[--status=[none|gui|default]] member/subproject...<br />
DESCRIPTION<br />
si viewproject displays the contents of a project and some information about the members, for<br />
example:<br />
connect.txt 1.4 archived<br />
source.txt 1.3 archived<br />
config.c 1.3 archived<br />
Note: Specifying si viewproject -S sandbox does not view the sandbox; it redirects through<br />
the sandbox to view the project. Use si viewsandbox to view a sandbox.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional. Widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
archiveshared<br />
displays indicators for members that share another member’s archive. This column is<br />
284 of 457
valid only if you are using the database repository.<br />
attributes<br />
displays member attributes.<br />
context<br />
displays the name of the project, with the parent project name if applicable, type of<br />
project, and if build or variant.<br />
cpid<br />
displays the change package associated with the operation that set the member<br />
revision.<br />
creationcpid<br />
displays the change package that created the revision that is currently the member<br />
revision. This revision may be different from the Member CPID if an import, add<br />
member from archive, or set member revision operation was used.<br />
frozen<br />
displays indicators for frozen members.<br />
indent<br />
indents subprojects.<br />
labels<br />
displays labels.<br />
locked<br />
displays indicators for locked revisions.<br />
locker<br />
displays user identifiers for those who have locked revisions.<br />
lockercpid<br />
displays the change package associated with the lock on the member revision.<br />
lockdevpath<br />
displays the name of the development path where the lock on the revision was made<br />
from. This information is relevant when the locking policy is set to devpath, allowing a<br />
single user to have a single lock on an archive per development path. Contact your<br />
administrator for more information.<br />
lockhost<br />
displays the host name of the <strong>com</strong>puter that locked the member.<br />
lockproject<br />
displays the name and path of the project where the member revision was locked<br />
from. If the member revision was locked from a shared subproject, it is the subproject<br />
name and path that are displayed.<br />
locksandbox<br />
displays the name of the sandbox where the lock on the revision was made, and is<br />
relevant when viewing the information from the Locker Host.<br />
locktimestamp<br />
displays the time stamp for when the member was locked.<br />
memberarchive<br />
displays the name and path of the member archive.<br />
memberdescription<br />
displays the member description.<br />
285 of 457
memberrev<br />
displays the member revision.<br />
membertimestamp<br />
displays the member timestamp.<br />
name<br />
displays the member name.<br />
newrevdelta<br />
displays indicators for new revisions.<br />
pendingcpid<br />
displays the change package associated with a pending operation.<br />
state<br />
displays the member state.<br />
type<br />
displays the type of each item in the project: project, subproject, shared-subproject,<br />
shared-variant-subproject, shared-build-subproject, or member.<br />
--[no]filterSubs<br />
controls whether to display subprojects and directories that do not contain members<br />
matching the current filter.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the project view window, in pixels;<br />
value must be a whole number.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the project view window, in pixels;<br />
value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
member/subproject...<br />
identifies a specific member or subproject; use spaces to specify more than one.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
286 of 457
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si<br />
viewprojecthistory , si viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
287 of 457
si viewprojecthistory<br />
displays a history of the project<br />
SYNOPSIS<br />
si viewprojecthistory [--fields=field1[:width1],field2[:width2]...] [--height=value]<br />
[--width=value] [-x value] [-y value] [(-R|--[no|confirm]recurse)]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd =directory] [--forceConfirm=[yes|no]] [(-g|--gui)]<br />
[--[no]persist] [--quiet] [--settingsUI=[gui|default]] [--status=[none|gui|default]]<br />
[--xmlapi]<br />
DESCRIPTION<br />
si viewprojecthistory displays a history of the project, including information on each<br />
historical checkpoint.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format<br />
field1[:width1],field2[:width2].... Specifying the column [:width] (in pixels) for each field is<br />
optional - widths are only available with the -g or --gui options. Under the CLI the fields<br />
are separated with a space.<br />
The fields available for printing can be one or more of the following:<br />
author<br />
displays author names.<br />
date<br />
displays the project checkpoint date.<br />
description<br />
displays revision and project descriptions.<br />
labels<br />
displays labels.<br />
revision<br />
displays the revision number.<br />
288 of 457
state<br />
displays the revision state.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the project history view window,<br />
in pixels; value must be a whole number.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the project history view window, in<br />
pixels; value must be a whole number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new<br />
information be<strong>com</strong>es available. --nopersist forces a static "snapshot" of information,<br />
while --persist gives real-time updates.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si<br />
rlog, si sandboxinfo, si viewhistory, si viewlabels, si viewproject, si<br />
viewsandbox<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
289 of 457
si viewrevision<br />
opens a revision for viewing<br />
SYNOPSIS<br />
si viewrevision [--[no|un]expand] [(-rrev|--revision=rev)]<br />
[(-P project|--project=project)] [(-S sandbox|--sandbox=sandbox)] [--devpath=path]<br />
[--projectRevision=rev] [--hostname=server] [--port=number] [--password=password]<br />
[--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N|--no)] [(-Y|--yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] member...<br />
DESCRIPTION<br />
si viewrevision opens a member revision for viewing.<br />
Options<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general<br />
options. See the options reference page for descriptions.<br />
--[no|un]expand<br />
controls whether to expand, unexpand, or ignore keywords in the member file. Keyword<br />
expansion is only available in text archives, not binary archives. For descriptions of the MKS<br />
Source Integrity keywords, see the Source Integrity Enterprise User Guide. Possible<br />
keywords are:<br />
$Author$<br />
$CompanyInfo$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectSetting attribute$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$SandboxSetting attribute$<br />
$Setting attribute$<br />
290 of 457
$Source$<br />
$State$<br />
member...<br />
identifies a specific member; use spaces to specify more than one member.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this<br />
<strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si ci, si co, si edit, si lock, si unlock<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
291 of 457
si viewsandbox<br />
displays the contents of a sandbox<br />
SYNOPSIS<br />
si viewsandbox [--[no]includeDropped] [--fields=field1[:width1],field2[:width2]...] [--[no]filterSubs]<br />
[--height=value] [--width=value] [-x value] [-y value] [(-R |--[no|confirm]recurse)] [-filter=filteroptions]<br />
[(-S sandbox|--sandbox=sandbox)] [--hostname=server] [--port=number]<br />
[--password=password] [--user=name] [(-?|--usage)] [(-F file|--selectionFile=file)] [(-N |--no)] [(-Y|-yes)]<br />
[--[no]batch] [--cwd=directory] [--forceConfirm=[yes|no]] [(-g|--gui)] [--[no]persist] [--quiet]<br />
[--settingsUI=[gui|default]] [--status=[none|gui|default]] current or dropped member/subproject...<br />
DESCRIPTION<br />
si viewsandbox displays the contents of a sandbox, for example:<br />
Options<br />
c:\Documentation\xml_man\si_about.1.xml archived 1.6<br />
c:\Documentation\Man_Pages\xml_man\si_acv.1.xml archived 1.7<br />
c:\Documentation\Man_Pages\xml_man\si_add.1.xml archived 1.7 sueq Jun 21, 2002 - 10:14<br />
AM<br />
Working file 2,739 bytes smaller, older (Jun 20, 2002 - 1:46:27 PM)<br />
c:\Documentation\Man_Pages\xml_man\si_addlabel.1.xml archived 1.6 sueq Jun 21, 2002 -<br />
10:14 AM<br />
Working file 7,344 bytes smaller, older (Jun 20, 2002 - 2:49:28 PM)<br />
c:\Documentation\Man_Pages\xml_man\si_addmemberattr.1.xml archived 1.4 sueq Jun 21,<br />
2002 - 10:14 AM<br />
Working file 5,795 bytes smaller, older (Jun 20, 2002 - 3:16:29 PM)<br />
c:\Documentation\Man_Pages\xml_man\si_addprojectattr.1.xml archived 1.4<br />
c:\Documentation\Man_Pages\xml_man\si_addprojectlabel.1.xml archived 1.4<br />
c:\Documentation\Man_Pages\xml_man\si_appendrevdesc.1.xml archived 1.6<br />
c:\Documentation\Man_Pages\xml_man\si_archiveinfo.1.xml archived 1.5<br />
This <strong>com</strong>mand takes the universal options available to all si <strong>com</strong>mands, as well as some general options. See the options<br />
reference page for descriptions.<br />
--[no]includeDropped<br />
controls whether to include members dropped from the project that still have working files in your sandbox. Dropped<br />
members will be marked as dropped.<br />
--fields=field1[:width1],field2[:width2]...<br />
allows you to select fields to be printed, specified in the format field1[:width1],field2[:width2].... Specifying the column<br />
[: width] (in pixels) for each field is optional - widths are only available with the options. Under the CLI the fields are<br />
separated with a space>.<br />
The fields available for printing can be one or more of the following:<br />
archiveshared<br />
displays indicators for members that share another member’s archive. This column is valid only if you are using<br />
the database repository.<br />
attributes<br />
displays member and project attributes.<br />
context<br />
displays the name of the project, with the parent project name if applicable, type of project, and if build or variant.<br />
292 of 457
cpid<br />
displays the change package associated with the operation that set the member revision.<br />
creationcpid<br />
displays the change package that created the revision that is currently the member revision. This revision may<br />
be different from the Member CPID if an import, add member from archive, or set member revision operation<br />
was used.<br />
deferred<br />
displays all deferred operations.<br />
frozen<br />
displays indicators for frozen members.<br />
indent<br />
indent subprojects.<br />
labels<br />
displays labels.<br />
locked<br />
displays an indicator if the member revision is locked.<br />
locker<br />
displays user identifiers for those who have locked revisions.<br />
lockercpid<br />
displays the change package associated with the lock on the member revision.<br />
lockdevpath<br />
displays the name of the development path where the lock on the revision was made from. This information is<br />
relevant when the locking policy is set to devpath, allowing a single user to have a single lock on an archive per<br />
development path. Contact your administrator for more information.<br />
lockhost<br />
displays the host name of the <strong>com</strong>puter that locked the member.<br />
lockproject<br />
displays the name and path of the project where the member revision was locked from. If the member revision<br />
was locked from a shared subproject, it is the subproject name and path that are displayed.<br />
locksandbox<br />
displays the name of the sandbox where the lock on the revision was made, and is relevant when viewing the<br />
information from the Locker Host.<br />
locktimestamp<br />
displays the time stamp for when the member was locked.<br />
memberarchive<br />
display the name of the archive to which the member refers.<br />
memberdescription<br />
displays the revision description assigned to the sandbox member.<br />
memberrev<br />
displays the member revision.<br />
membertimestamp<br />
displays the date and time the member revision is set.<br />
merge<br />
displays any merge information between member revisions.<br />
name<br />
displays the member name.<br />
newrevdelta<br />
displays indicators for new revisions.<br />
pendingcpid<br />
displays the change package associated with a pending operation.<br />
revsyncdelta<br />
displays an indicator for out of sync members.<br />
state<br />
displays the member state.<br />
type<br />
displays the type of each item in the sandbox: sandbox, subsandbox, shared-subsandbox, shared-variantsubsandbox,<br />
shared-build-subsandbox, or member.<br />
wfdelta<br />
293 of 457
displays an indicator when the working file is different from the member revision.<br />
workingarchive<br />
displays the name of the archive from which the working file is derived.<br />
In the case where the working file was derived from an archive that was based on a server-side system setup<br />
(based on some default RCSPath or WorkToArch setting, as opposed to an explicit archive=reference), the<br />
Working Archive field displays the value default:server directory. The actual name of the archive the working<br />
file was derived from can then be determined from the value for the Archive Name field.<br />
workingcpid<br />
displays the change package associated with a deferred or a lock operation performed by the current user from<br />
the current sandbox.<br />
workingrev<br />
displays the working file revision.<br />
--[no]filterSubs<br />
controls whether to display subsandboxes and directories that do not contain members matching the current filter.<br />
--height=value<br />
used with the -g or --gui options, specifies the height of the sandbox view window, in pixels; value must be a whole<br />
number.<br />
--width=value<br />
used with the -g or --gui options, specifies the width of the sandbox view window, in pixels; value must be a whole<br />
number.<br />
-x value<br />
used with the -g or --gui options, specifies the x location in pixels of the window.<br />
-y value<br />
used with the -g or --gui options, specifies the y location in pixels of the window.<br />
--[no]persist<br />
controls whether this presentation of information should continue to be updated as new information be<strong>com</strong>es available.<br />
--nopersist forces a static "snapshot" of information, while --persist gives real-time updates.<br />
current or dropped member/subproject...<br />
identifies a specific member or subproject that currently exists in the project, or one that has been dropped from the<br />
project. Use spaces to specify more than one.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
PREFERENCES<br />
Using si setprefs or si viewprefs, you are able to set or view the preference keys for this <strong>com</strong>mand.<br />
SEE ALSO<br />
Commands:<br />
si archiveinfo, si memberinfo, si mods, si print, si revisioninfo, si rlog, si sandboxinfo, si<br />
viewhistory, si viewlabels, si viewproject, si viewprojecthistory<br />
Miscellaneous:<br />
ACL, diagnostics, options, preferences<br />
294 of 457
ACL (Access Control List)<br />
permissions for MKS Integrity Suite ACL interaction<br />
DESCRIPTION<br />
The ACL (Access Control List) permissions control user access to MKS Integrity Suite functions (in<br />
both MKS Source Integrity and MKS Integrity Manager) by associating development objects and<br />
operations with specific permissions. For example, whenever a user initiates an operation such as<br />
checking a file in or out, Source Integrity queries the ACL database to determine whether the user<br />
has permission to perform the operation. This reference page is provided as a guide to the ACL<br />
permissions.<br />
There are five server-level ACLs shipped by default: mks:aa--controls the Login access to the AA<br />
application for managing the ACLs, mks:aa:mks--controls Read and Update access to the ACLs,<br />
mks:im controls access to Integrity Manager operations, mks:patch controls the Download<br />
permission required for service pack management, and mks:si--controls access to Source Integrity<br />
operations. For the most part, however, you will be working with project ACLs, that control the<br />
permissions for a particular directory. Working with member ACLs is also possible, which control<br />
permissions for specific files -- this would be for those rare circumstances where security on<br />
specific, individual files must be heavily controlled and where the administrative costs are known<br />
and accepted.<br />
The ACL name itself follows a specific hierarchical format:<br />
● The default server-level ACL is named mks:si. All project and member ACLs will inherit<br />
permissions from this one.<br />
● Project-level ACL names include a specific prefix, taking the format<br />
mks:si:project:id:. The project directory is relative to the root of the<br />
Integrity Server.<br />
● Subproject ACLs have the same format as projects, simply appending the subdirectories<br />
using colons (:) instead of slashes.<br />
● Variant project ACLs have a slightly different prefix, taking the format<br />
mks:si:project:devpath::id.<br />
● Member ACLs simply specify the file name in the ACL name, such as<br />
mks:si:project:id::.<br />
● Archive ACLs simply specify the archive name in the ACL name, such as<br />
295 of 457
mks:si:archive:.<br />
ACL PERMISSIONS<br />
You must have the appropriate ACL permissions before you can perform Source Integrity and<br />
Integrity Manager operations. For details on configuring ACLs, see the Integrity Server<br />
Administration Guide.<br />
Server Permissions<br />
Possible Source Integrity server-related permissions:<br />
AdminProxy<br />
For MKS Customer Care only. Allows a user to perform administrative functions on the<br />
proxy<br />
Prerequisites: none.<br />
AdminServer<br />
For MKS Customer Care only. Allows a user to perform administrative functions on the<br />
server.<br />
Prerequisites: none.<br />
DebugProxy<br />
For MKS Customer Care only. Allows a user to perform diagnostic functions on the proxy.<br />
Prerequisites: none.<br />
DebugServer<br />
For MKS Customer Care only. Allows a user to perform diagnostic functions on the server.<br />
Prerequisites: none.<br />
EditPolicy<br />
Allows a user to modify and create Source Integrity policies on the Integrity Server. The Edit<br />
Policy permission should be restricted to administrators and Source Integrity project<br />
managers<br />
Prerequisites: Login.<br />
Login<br />
296 of 457
Allows a user to log in to Source Integrity.<br />
Prerequisites: none.<br />
ViewPolicy<br />
Allows a user to view Source Integrity policies on the Integrity Server. The View Policy<br />
permission should be restricted to administrators and Source Integrity project managers.<br />
Prerequisites: Login.<br />
Member Permissions<br />
Possible Source Integrity member-related permissions are:<br />
ApplyLabel<br />
Allows a user to add labels to revisions or move labels between revisions.<br />
Prerequisites: Login, OpenProject.<br />
BreakLock<br />
Allows a user to break locks held by other users.<br />
Prerequisites: Login, OpenProject, Lock, Unlock.<br />
CheckIn<br />
Allows a user to check in working files as new revisions of members.<br />
Prerequisites: Login, OpenProject, ApplyLabel, Lock, ModifyAuthor,<br />
ModifyMemberRev, ModifyMemberAttribute.<br />
DeleteLabel<br />
Allows users to delete a label from a revision.<br />
Prerequisites: Login, OpenProject.<br />
DeleteRevision<br />
Allows a user to delete revisions from the member history.<br />
Note:<br />
This permission allows users to irrevocably delete revisions from the member history.<br />
Administrators should assign this permission carefully.<br />
Prerequisites: Login, OpenProject.<br />
297 of 457
Demote<br />
This permission allows a user to change the promotion state of revisions from a higher<br />
setting to a lower one, when the States= configuration option defines a sequence of<br />
promotion states. For details, see the Integrity Server Administration Guide.<br />
Prerequisites: Login, OpenProject.<br />
FetchRevision<br />
Allows a user check out member revisions.<br />
Prerequisites: Login, OpenProject, Lock, ModifyMemberRev.<br />
Freeze<br />
Allows a user to freeze members. When a member is frozen, all Source Integrity operations<br />
are run on the frozen member revision.<br />
Lock<br />
Prerequisites: Login, OpenProject.<br />
Allows a user to lock revisions.<br />
Prerequisites: Login, OpenProject.<br />
ModifyAuthor<br />
Allows a user to change the author name associated with a revision.<br />
Prerequisites: Login, OpenProject.<br />
ModifyMemberAttribute<br />
Allows a user to set an attribute for a member that can be used later in a search.<br />
Prerequisites: Login, OpenProject.<br />
ModifyMemberRule<br />
Allows a user to configure a member revision rule that can be applied to one or more<br />
members.<br />
Prerequisites: Login, OpenProject.<br />
MoveLabel<br />
Allows a user to move a member label to another revision within the member history.<br />
298 of 457
Prerequisites: Login, OpenProject, ApplyLabel.<br />
Promote<br />
This permission specifies that a user may promote revisions from the current promotion<br />
state to a higher state, when the States= configuration option defines a sequence of<br />
promotion states. For details, see the Integrity Server Administration Guide.<br />
Prerequisites: Login, OpenProject.<br />
ShareArchive<br />
Allows sharing of member archives between two or more members.<br />
Thaw<br />
Note:<br />
Archive sharing is not re<strong>com</strong>mended. Instead, creating variant sandboxes is<br />
considered a better practice.<br />
Prerequisites: Login, OpenProject, Checkpoint, CheckIn, Lock.<br />
Allows a user to thaw frozen members.<br />
Prerequisites: Login, OpenProject.<br />
Change Package Permissions<br />
Possible Source Integrity change Package related permissions are:<br />
ChangePackageAdmin<br />
Allows a user to edit, discard, close, and submit change packages; as well as move or<br />
discard change package unties, regardless of any documented user restrictions.<br />
Prerequisites: none.<br />
CreateChangePackage<br />
If you are using Source Integrity only, this permission allows a user to create change<br />
packages.<br />
If the Source Integrity and Integrity Manager Integration is enabled, this permission allows a<br />
user to create change packages based on the Change Package Creation Policy for the type<br />
that they want to create change packages for.<br />
Prerequisites: Login, OpenProject.<br />
299 of 457
SelfReview<br />
Allows user to accept change packages under review that were created by that user.<br />
SuperReview<br />
Allows a user to accept or reject a change package under review regardless of the reviewer<br />
rules. Note: This permission supersedes the SelfReview permission.<br />
Project Permissions<br />
Possible Source Integrity project-related permissions are:<br />
AddMember<br />
Allows a user to add new members to projects through a sandbox.<br />
Prerequisites: Login, OpenProject, Lock, ShareArchive, ModifyAuthor.<br />
AddSubproject<br />
Allows a user to re-add dropped subprojects to a project.<br />
Prerequisites: Login, OpenProject.<br />
ApplyProjectLabel<br />
Allows a user to add labels to projects or move labels between revisions of the project.<br />
Prerequisites: Login, OpenProject.<br />
CheckPoint<br />
Allows a user to check in a new revision of a project (that is, checkpoint the project).<br />
Prerequisites: Login, OpenProject, ApplyLabel, Promote, PromoteProject,<br />
ApplyProjectLabel.<br />
ConfigureSubproject<br />
Allows a user to configure a subproject's type. A subproject can be configured as a Normal,<br />
Variant, or Build subproject.<br />
Prerequisites: Login, OpenProject.<br />
CreateDevPath<br />
Allows a user to create new development paths for variants of a project.<br />
Prerequisites: Login, OpenProject.<br />
300 of 457
CreateProject<br />
Allows a user to create new projects.<br />
Prerequisites: Login, OpenProject.<br />
CreateSubproject<br />
Allows a user to create new subprojects below existing projects.<br />
Prerequisites: Login, OpenProject.<br />
DeleteProjectLabel<br />
Allows a user to delete a label from a project revision.<br />
Prerequisites: Login, OpenProject.<br />
DemoteProject<br />
This permission specifies that a user may demote projects from a higher promotion state to<br />
a lower state, when the States= configuration option defines a sequence of promotion<br />
states. For details, see the Integrity Server Administration Guide.<br />
Prerequisites: Login, OpenProject.<br />
DropDevPath<br />
Allows a user to drop a development path, also known as "dropping variants" from a project.<br />
Prerequisites: Login, OpenProject.<br />
DropMember<br />
Allows a user to remove members from projects. The member archive remains, but the<br />
member is no longer treated as part of the project.<br />
Prerequisites: Login, OpenProject.<br />
DropProject<br />
Allows a user to drop one or more top-level, registered projects from the server. The<br />
projects then be<strong>com</strong>e unregistered projects.<br />
Prerequisites: Login, OpenProject.<br />
DropSubProject<br />
Allows a user to drop one or more subprojects from the server. The projects then be<strong>com</strong>e<br />
301 of 457
unregistered projects.<br />
Prerequisites: Login, OpenProject.<br />
ImportProject<br />
Allows a user to import one or more projects from an earlier version of Source Integrity. The<br />
import operation registers the project on the Integrity Server.<br />
Prerequisites: Login, OpenProject.<br />
ModifyMemberRev<br />
Allows a user to make changes to existing member histories.<br />
Prerequisites: Login, OpenProject.<br />
ModifyProjectAttribute<br />
Allows a user to set an attribute for a project, which can be used later in a filter or search.<br />
Prerequisites: Login, OpenProject.<br />
MoveProjectLabel<br />
Allows a user to move a project label to another project revision within the project history.<br />
Prerequisites: Login, OpenProject, ApplyProjectLabel.<br />
OpenProject<br />
Allows a user to open existing registered projects. This is required for most actions.<br />
Note:<br />
When OpenProject is granted or denied on a project, clients accessing the project<br />
must disconnect and then reconnect in order to get the new permission set. If you do<br />
not disconnect and reconnect your client, you may see unexpected behavior due to<br />
out-of-date permissions.<br />
Prerequisites: Login.<br />
PromoteProject<br />
This permission specifies that a user may promote projects from the current promotion state<br />
to a higher state, when the States= configuration option defines a sequence of promotion<br />
states. For details, see the Integrity Server Administration Guide.<br />
Prerequisites: Login, OpenProject.<br />
302 of 457
RestoreProject<br />
Allows a user to restore a project to a particular checkpointed version.<br />
Prerequisites: Login, OpenProject, Checkpoint.<br />
SnapshotSandbox<br />
Snapshot creates and records the state of the user’s sandbox as a branched project revision<br />
within the project history.<br />
Prerequisites: Login, OpenProject, Checkpoint, AddMember, DropMembers.<br />
MKS Integrity Manager Permissions<br />
Possible permissions related to Integrity Manager are:<br />
Admin<br />
Allows administrative privileges for working with Integrity Manager.<br />
Prerequisites: Login.<br />
AdminProxy<br />
For MKS Customer Care only. Allows a user to perform administrative functions on the<br />
proxy<br />
Prerequisites: none.<br />
AdminServer<br />
For MKS Customer Care only. Allows a user to perform administrative functions on the<br />
server.<br />
Prerequisites: none.<br />
CreateCPType<br />
Allows the assigned user or group to create a custom change package type. For information<br />
on custom change package types, contact MKS Customer Care.<br />
Prerequisites: Login.<br />
CreateProject<br />
Allows the assigned user or group to create a new top level Integrity Manager project and<br />
assign another Integrity Manager Project Administrator. This permission can be used to<br />
extend the capability of the Integrity Manager Project Administrator. Denying this permission<br />
303 of 457
means the user cannot create a new top level project or assign another Project<br />
Administrator.<br />
Prerequisites: Login.<br />
CreateQuery<br />
Allows a user to create a new query in Integrity Manager. Denying this permission restricts<br />
the user to using only those queries that already exist on the system.<br />
Prerequisites: Login.<br />
CreateType<br />
Allows the assigned user or group to create a new type in Integrity Manager or assign<br />
another Integrity Manager Type Administrator. This permission can be used to extend the<br />
capability of the Integrity Manager Type Administrator. Denying this permission means the<br />
user cannot create any new types or assign another Type Administrator.<br />
Prerequisites: Login.<br />
Login<br />
Allows a user to login to Integrity Manager.<br />
Prerequisites: none.<br />
ModifyMyNotification<br />
Allows a user to modify personal e-mail notification preferences in Integrity Manager.<br />
Prerequisites: Login, ViewMyNotification.<br />
ViewAdmin<br />
Allows a user to view administrative information related to Integrity Manager.<br />
Prerequisites: Login.<br />
ViewMyNotification<br />
Allows a user to view personal e-mail notification preferences in Integrity Manager.<br />
SEE ALSO<br />
Prerequisites: Login.<br />
304 of 457
Commands:<br />
aa acls, aa addaclentry, aa availablepermissions, aa deleteacl, aa<br />
deleteaclentry, aa groups, aa users, aa viewacl<br />
Miscellaneous:<br />
diagnostics<br />
305 of 457
NAME<br />
cc — cc configuration files.<br />
INTRODUCTION<br />
cc -- Miscellaneous Information<br />
cc reads <strong>com</strong>mands from the configuration file, and executes them to run the appropriate <strong>com</strong>piler<br />
and linker. The <strong>com</strong>mand line that was passed to cc is examined by the code in the configuration<br />
file. If you are familiar with MKS Toolkit, you may notice that the <strong>com</strong>mands resemble AWK or MKS<br />
KornShell <strong>com</strong>mands. However, these <strong>com</strong>mands are sufficiently different that you should study<br />
them carefully before using them. Look at sample configuration files, and experiment with cc in its<br />
interactive mode as you program new configuration files. The program tries to load the script<br />
$ROOTDIR/etc/<strong>com</strong>piler.ccg. You can modify this behavior by setting the CCG environment<br />
variable. If CCG contains the name of a file, cc loads and runs that file; if CCG contains the name<br />
of a directory, the program loads and runs the script in that directory.<br />
If you rename the cc executable, it attempts to find its default configuration in a .ccg file with the<br />
same base name as the renamed executable. For example, if you rename cc.exe to c89.exe,<br />
then c89 looks for a default configuration file named c89.ccg in ROOTDIR/etc.<br />
In any case, if you have set the CCG environment variable, its value takes precedence. If CCG<br />
contains a file name, cc looks for the default configuration in that file. If CCG contains a directory,<br />
cc looks for the default configuration in a .ccg file in that directory. The base name of the .ccg<br />
file is the same as that of the executable. That is, if the executable is cc.exe, the default<br />
configuration is looked for in $CCG/cc.ccg and if the executable has been renamed c89.exe,<br />
the default configuration is looked for in $CCG/c89.ccg.<br />
To enter interactive mode, set the environment variable CCG to the value - or stdin. cc then<br />
reads its configuration file from its standard input. This is useful for debugging new configuration<br />
files: you can interactively enter <strong>com</strong>mands, dump cc's symbol table, and follow the execution of<br />
your cc program.<br />
COMMENTS<br />
A <strong>com</strong>ment starts with a # character and extends to the end of the line. This is the same<br />
convention as MKS Make, AWK, and the MKS KornShell.<br />
LITERALS<br />
306 of 457
cc can manipulate three types of objects: integers, strings, and arrays of strings or integers. Since<br />
arrays are limited to one dimension, they are also called vectors. Unlike AWK, cc does not support<br />
floating point numbers.<br />
Integers are written in the usual way. Here are some sample integers:<br />
123 -49 20000<br />
Strings are written with quotes around them, and cannot extend across a line. Empty strings are<br />
written as "". The following escape sequences are allowed within strings:<br />
\a alert (bell)<br />
\b backspace<br />
\h hard space<br />
\i hard tab<br />
\n newline<br />
\r carriage return<br />
\t horizontal tab<br />
\v vertical tab<br />
\\ escaped \<br />
\" embedded "<br />
\ooo ASCII character with octal value ooo<br />
Here are some sample strings:<br />
"hello" "\"embedded\" quotes"<br />
"\\escaped backslash, with tab\t and newline\n"<br />
A vector is list of integers or strings, separated by <strong>com</strong>mas and surrounded by braces, as in<br />
{ 1, 2, 3 }<br />
{ "strings", 1, "and numbers" }<br />
{ a++, ++c }<br />
{ }<br />
Because these are dynamic, the contents of the vector need not be constant expressions. For<br />
example, a++ is valid in a vector list. Empty vectors are written as {}. You indicate a vector's<br />
elements with the bracket [] operator.<br />
Indexable Objects<br />
Both strings and vectors can be indexed -- indexing is 0-origin. Indexable objects have an<br />
associated cursor that indicates the current position of the index. This means you can treat any<br />
307 of 457
indexable object as a stream. (The cursor is actually associated with the value of a variable rather<br />
than with the variable itself; if you assign a new value to a variable, the cursor is reset to the<br />
origin.) The rewind statement lets you rewind the stream to the start of an object. Several<br />
functions are provided for dealing with indexable objects -- read(), offset(), and tail().<br />
# Setup the string:<br />
stream="Alph" ;<br />
# Read and print the first 3 elements;<br />
# this prints "A l p"<br />
println read(stream), read(stream), read(stream);<br />
# Rewind the stream:<br />
rewind(stream);<br />
# Print the first two elements<br />
# and the index of the next ("A l 2"):<br />
println read(stream), read(stream), offset(a);<br />
# Print the remainder of the string ("ph"):<br />
println tail(stream);<br />
To look ahead on a stream, use indexing <strong>com</strong>bined with the offset. See String/Vector Operations<br />
for more information on the functions.<br />
VARIABLES<br />
A variable is a name with an associated value. The name follows the usual rules for C identifiers;<br />
the first character must be a letter or underscore (_), followed by zero or more letters, digits, or<br />
underscores.<br />
Variables are created as they are first seen in cc input. Any variable can have any type of value;<br />
the type changes automatically if a value of a different type is assigned.<br />
BUILT-IN VARIABLES<br />
Several variables have pre-assigned values at the start of a cc program. You can change these<br />
values. The variables are:<br />
ARGV<br />
DIRSEPSTR<br />
This variable is assigned a vector containing the strings that appeared on the <strong>com</strong>mand line<br />
that called cc. Note that the name of the program is not provided. ARGV is typically<br />
examined, and used to build new argument lists for the <strong>com</strong>piler or linker that is being used.<br />
308 of 457
ECHO<br />
Contains the characters that can be used to separate path names into the <strong>com</strong>ponent<br />
directories. On Windows systems, it is initially set to the string /\:. although the default<br />
startup.mk file modifies this based on the value of the SHELL environment variable. See<br />
the description of filepath().<br />
Originally assigned the empty (null) string, corresponding to a false expression. If it is later<br />
assigned a true value, the exec and ovl_exec operations (described later) print the<br />
<strong>com</strong>mands as they are about to be executed.<br />
NORUN<br />
Originally assigned the empty (null) string, corresponding to a false expression. If it is later<br />
assigned a true value, the exec and ovl_exec operations (described later) only echo their<br />
arguments, and exec returns as though the <strong>com</strong>mand succeeded, while ovl_exec<br />
terminates cc with a return value of 0. Setting NORUN in this way corresponds to running<br />
Make with the -n option. By assigning non-null values to both ECHO and NORUN, you can get<br />
cc to display the <strong>com</strong>mands that it attempts to execute to <strong>com</strong>pile a program.<br />
true<br />
Assigned the integer value 1, true is used internally by cc to denote a true expression. You<br />
should not change this value; if you change the value of true to be an expression that is<br />
considered false (see EXPRESSIONS), cc may not function correctly.<br />
PROGRAMS<br />
A cc program consists of a number of statements, each of which is read and then executed.<br />
During the reading of a statement, a syntax error causes cc to print a diagnostic message, and<br />
then cc goes on to the next statement. During the execution of a statement, an error causes cc to<br />
print a diagnostic message. If cc finds a syntax error as it is reading a statement, it prints a<br />
diagnostic message and goes on to the next statement. While executing a statement, if cc finds an<br />
error, it prints a diagnostic message; if an expression is being calculated, then the null string is<br />
returned as the value of the expression.<br />
STATEMENTS<br />
This section describes the statements that may be used in input to cc. In the following, the<br />
characters {} are used to indicate zero or more occurrences of the enclosed items. The characters<br />
[] indicate an optional occurrence of the enclosed items.<br />
The following table summarizes statements allowed in cc:<br />
<strong>Description</strong> Syntax<br />
309 of 457
Advance advance name ;<br />
Assignment name = expr ;<br />
name[expr1] = expr2 ;<br />
Assign & concatenate name |= expr ;<br />
name[expr1] |= expr2 ;<br />
Break loop break [expr] ;<br />
Close file close filename ;<br />
Delete file delete filename ;<br />
Dump debugging info dump ;<br />
Empty statement ;<br />
Execute <strong>com</strong>mand exec expr ;<br />
Exit exit ;<br />
For for (name in expr)<br />
do statements done<br />
For for (expr1; expr2; expr3)<br />
do statements done<br />
Functions function name([arg1{[,arg2]]})<br />
{ statements }<br />
If if (expr1) statements<br />
{ elif (expr2) statements }<br />
[ else statements ]<br />
fi<br />
Open file open filename ;<br />
Overlay file ovl_exec cmd_expr1 {,expr2} ;<br />
Print expression(s) print expr1 {,expr2} ;<br />
Print line println expr1 {,expr2} ;<br />
Print to file print expr1 {,expr2} -> filename;<br />
println expr1 {,expr2} -> filename;<br />
Rewind cursor rewind indexable_object<br />
While while (expr) do statements done<br />
Table 1: Summary of cc Statements<br />
In this definition, statements means a list of statements, and expr, expr1, and expr2 mean any<br />
legal expression as described a bit later. The expression value is used as a logical expression. See<br />
EXPRESSIONS for the description of what values are considered true and false.<br />
Empty statement<br />
An empty statement is written as a single semicolon (;). It has no effect.<br />
310 of 457
If statement<br />
An if statement has the form:<br />
if ( expression ) statements<br />
{ elif ( expression ) statements }<br />
[ else statements ]<br />
fi<br />
Note that fi is required to end the if statement. Any number of elif's can be inserted before the<br />
end of the if statement.<br />
While statement<br />
A while statement has the form:<br />
while ( expression ) do statements done<br />
The done is required to mark the end of the statements. The meaning is similar to the C while<br />
loop.<br />
For loop<br />
A for statement has one of these forms:<br />
for ( name in expression ) do statements done<br />
for ( expr1; expr2; expr3 ) do statements done<br />
In the first form, the name must be a variable name, and the expression must evaluate to a vector<br />
or string. If the vector is not empty, the statements are executed repeatedly; on each iteration,<br />
name is assigned each successive value in the vector. The second form is much more like the C<br />
language for loop. Usually, the first expression initializes some variable, the second expression<br />
tests it, and the third expression increments or decrements it.<br />
Advance<br />
An advance statement has the form:<br />
advance name ;<br />
where name is a variable name used in an enclosing for loop. This statement immediately<br />
assigns to name the value it would normally have been given in the next iteration of the for loop,<br />
and subsequent iterations skip this value.<br />
Break loop<br />
311 of 457
A break statement has the form:<br />
break [expr] ;<br />
where expr is the number of levels to break out of. If no expression is specified, break exits the<br />
current loop (expr is 1).<br />
Exit Program<br />
The exit statement has the form:<br />
exit expression ;<br />
This terminates cc with the integer-valued expression as its exit value.<br />
Dump Debugging Information<br />
The dump statement is a debugging aid.<br />
dump ;<br />
outputs the names and values of all variables currently defined to the standard output.<br />
Print Expression<br />
There are several printing statement forms.<br />
print expression { , expression } ;<br />
prints the values of the given expressions on the standard output. If more then one expression is<br />
given, they are printed with a single blank separating each item. print does not put a newline<br />
character at the end of the output.<br />
println expression { , expression } ;<br />
is similar to the previous format, but does print a newline at the end of the list of expressions.<br />
print expression { , expression } -> filename ;<br />
println expression { , expression } -> filename ;<br />
are similar to the other printing statements, but they print to the given file instead of to the standard<br />
output. The filename is given as a string-valued expression. If the file does not exist, it is created; if<br />
it already exists, output is appended to the end of the current contents.<br />
Close File<br />
312 of 457
To close a given file, use<br />
close filename ;<br />
The filename is given as a string-valued expression. If you use a printing statement to write to a<br />
file, it is important to close the file before cc runs a program that requires the contents of the file to<br />
be up-to-date.<br />
Delete File<br />
To delete a given file, use<br />
delete filename ;<br />
You can use this to get rid of temporary (work) files created by earlier statements in the cc<br />
program. The file name is given as a string-valued expression.<br />
Define Function<br />
You can define a function using the function statement, which has the form:<br />
function name ( [arg1{, arg2}] )<br />
{<br />
statements<br />
}<br />
Execute a <strong>com</strong>mand<br />
To execute a <strong>com</strong>mand, use<br />
exec expression { , expression } ;<br />
Each expression is converted into a string (if necessary) and then concatenated into a <strong>com</strong>mand<br />
string (with a single blank between each expression in the list). For example,<br />
exec "cp","infile","outfile" ;<br />
executes the <strong>com</strong>mand<br />
cp infile outfile<br />
The exec statement executes the <strong>com</strong>mand and then goes on to the next statement. (See the<br />
exec expression following for ways to get the return status of the executed <strong>com</strong>mand.) The<br />
behavior of exec can be changed by the values of the ECHO and NORUN variables.<br />
313 of 457
Overlay Execute<br />
The statement<br />
ovl_exec expression { , expression } ;<br />
is similar to an exec statement. In this case, the memory used by cc is overlaid with the <strong>com</strong>mand<br />
to be run, and cc is effectively terminated. This frees the memory space that cc is occupying for<br />
the executed program. The behavior of ovl_exec can be changed by the values of the ECHO and<br />
NORUN variables.<br />
Rewind Stream<br />
The rewind statement has the form:<br />
rewind indexable_object ;<br />
where indexable_object is a string or vector. This statement moves the cursor associated with<br />
indexable_object back to the origin. For more about indexable objects, see Indexable Objects.<br />
EXPRESSIONS<br />
Expressions are created by <strong>com</strong>bining literal strings, integers, vectors, and variables, with the<br />
operators listed a bit later.<br />
An expression has a type: integer, string, or vector. When an integer value is required and a string<br />
or vector is provided, some operators convert the vector into a string, and then interpret that string<br />
as an ASCII sequence representing a number. For example, "123" has the integer value 123<br />
when used in arithmetic operations. By the same token, if a string is required, an integer value is<br />
converted into a string in the same way.<br />
Some expressions are calculated by determining if operands are true or false. The following are<br />
considered false:<br />
● the integer 0<br />
● the null string ""<br />
● an empty vector { }<br />
Other objects are considered true. The built-in variable true can also be used as a condition.<br />
Operators are grouped in precedence classes that are similar to those of the C programming<br />
language. Each section that follows describes a group of operators in a single-precedence class.<br />
The order of the sections gives the order of precedence.<br />
314 of 457
Order of Operations<br />
A++ A-- ++A --A pre- and post-increment and decrement<br />
-A (A) V[a] unary minus, grouping, array element<br />
A*B A/B integer multiplication and division<br />
A+B A-B addition and subtraction<br />
A%B modulus<br />
:<br />
A==B A!=B equality <strong>com</strong>parison<br />
AB A=B relational <strong>com</strong>parison<br />
A&&B A||B !A logical AND, logical OR, logical negation<br />
,<br />
-> file redirection<br />
length(A) length operation<br />
A | B string/vector concatenation<br />
A=B A|=B assignment<br />
A and B are any expression.<br />
V is any vector expression.<br />
Primary Expressions<br />
These expressions have the highest precedence.<br />
- expression<br />
gives the negative of an integer expression.<br />
( expression )<br />
Table 2: cc Order of Operations<br />
gives the value of the expression inside the parentheses, and you use it to change the order of<br />
315 of 457
evaluation of expressions.<br />
indexable_object[expression]<br />
obtains the value of a specific indexable element. Indexable objects (vectors and strings) are<br />
indexed with 0-origin. If a vector subscript is out of range, an error message is displayed, and the<br />
null string is returned. As a special case, the 0-th element of a 0-length vector does not cause an<br />
error; instead, its value is the null string.<br />
Arithmetic Operators<br />
The standard multiplication operators are:<br />
expression1 * expression2<br />
expression1 / expression2<br />
expression1 % expression2<br />
representing integer multiplication, division, and the modulus. Non-integer operands are converted<br />
to integers in the usual way.<br />
The standard addition operators are:<br />
expression1 + expression2<br />
expression1 - expression2<br />
representing addition and subtraction. Non-integer operands are converted to integers in the usual<br />
way.<br />
Equality Operators<br />
The result of:<br />
expression1 == expression2<br />
is true if the two expressions have equal values.<br />
expression1 != expression2<br />
is true if the two expressions are not equal.<br />
In both cases, if either operand is an integer, the other is converted into an integer for the purposes<br />
of <strong>com</strong>parison; otherwise, both expressions are converted into strings, and then <strong>com</strong>pared.<br />
316 of 457
Relational Operators<br />
The relational operators are:<br />
expression1 > expression2<br />
expression1 < expression2<br />
expression1 >= expression2<br />
expression1
If expression is a vector, the value is the number of elements in the vector. If expression is a string,<br />
the value is the number of characters in the string; otherwise, the value is 0.<br />
String/Vector Operators<br />
The operator | concatenates strings or vectors. The form is<br />
expression1 | expression2<br />
where expression1 must be a string or vector. If expression1 is a string, the second argument is<br />
converted to a string and the two strings are concatenated for the result. For example, in<br />
X = "hello";<br />
X = X | " good" | "bye";<br />
the variable X is assigned the value<br />
"hello goodbye"<br />
You can use the shorthand notation |= to append to the end of an existing string, as in<br />
x = "hello";<br />
x |= " good" | "bye";<br />
which has the same result.<br />
If the first argument of the | operator is a vector, the second argument is added as a new<br />
<strong>com</strong>ponent to the vector. In this way, you can assign values to a vector incrementally. You can use<br />
the |= operator as a shorthand assignment. For example:<br />
x = {} # ensure x is a vector<br />
x |= 1; # x is now { 1 }<br />
x |= "so"; # x is now { 1, "so" }<br />
x |= 2 | 3; # x is now { 1, "so", "23" }<br />
# Remember, the '|' is applied to '2' and '3',<br />
# forming a string, that is then added<br />
x |= { 4, 5 }; # x is now { 1, "so", "23", 4, 5 }<br />
Assignments<br />
There are several assignment expressions.<br />
name = expression ;<br />
318 of 457
assigns the value of the expression to the given named variable.<br />
name[expression1] = expression2 ;<br />
assigns the value of expression2 to the element of the vector variable specified by expression1. It<br />
is an error to use an index greater then the length of the vector.<br />
name |= expression ;<br />
name[expression1] |= expression2 ;<br />
are concatenation assignments. The value of the right hand side is concatenated to the existing<br />
value of the left hand side. See String/Vector Operators for more about concatenation.<br />
Because assignments are expressions, rather than statements, they can be used anywhere. For<br />
example, this is valid:<br />
if (a = 2)<br />
println "true" ;<br />
fi<br />
String/Vector Operations<br />
There are a number of other string/vector operators, summarized in this table:<br />
Function <strong>Description</strong><br />
access(filename,[num|str]) return true if filename's mode is str or num<br />
cd(pathname) change to named directory<br />
cinclude(filename) include filename; return 0 if it does not exist<br />
exec(expression {,<br />
expression})<br />
execute <strong>com</strong>mand line<br />
filepath(expression) return vector containing path name <strong>com</strong>ponents<br />
getcwd() return current working directory path<br />
getenv(name) return value of environment variable name<br />
getopt([str[, optind]]) process options string<br />
include(filename) include filename; abort if filename does not exist<br />
index(str,expr) return index of first expr in str<br />
isatty(fileno) return true if fileno is a tty<br />
offset(indexable_object) return cursor offset in indexable_object<br />
ovl_exec() execute <strong>com</strong>mand line in overlaid memory<br />
319 of 457
putenv() alter value of environment variable<br />
read(indexable_object) return next token from indexable_object<br />
replace(str,old,new) return str with old replaced by new<br />
rindex(str,expr) return index of last expr in str<br />
strerror() return string corresponding to errno<br />
substr(expr,pos) return substring of expr starting at pos<br />
substr(expr,pos,len) return length len substring of expr starting at pos<br />
tail(indexable_object) return unread portion of indexable_object<br />
tempfile([dir_str,]<br />
pre_str)<br />
temporary file name<br />
tolower(expr) return expr in lowercase<br />
toupper(expr) return expr in uppercase<br />
Table 3: Summary of cc Functions<br />
access(filename, [mode])<br />
returns true if the access mode of filename is the same as the supplied mode. The mode<br />
should be passed as a string <strong>com</strong>posed of the characters r, w, x, or f (for read, write,<br />
execute, or file existence). If no mode is supplied, f is assumed.<br />
access("temp.af9","f") -- checks if temp.af9 exists<br />
access("temp.af9","rw") -- checks for read/write<br />
permission on temp.af9<br />
If the base operating system allows, mode can be passed as a number. This is non-portable, so<br />
you should use a string representation.<br />
cd(pathname)<br />
changes the current directory to the value of pathname.<br />
cinclude(filename)<br />
includes the specified file. No path search is performed. If filename is not an absolute path<br />
name, the current directory is searched. If the file does not exist, this function returns 0;<br />
otherwise, it returns 1.<br />
exec(expression {, expression})<br />
is similar to the exec statement. The value of an exec expression is the exit status of the<br />
last <strong>com</strong>mand executed. This is an integer.<br />
filepath(expression)<br />
returns a vector whose <strong>com</strong>ponents are the strings corresponding to the path name<br />
<strong>com</strong>ponents of the string expression. The built-in variable DIRSEPSTR is used to determine<br />
320 of 457
the <strong>com</strong>ponents of the path.<br />
getcwd()<br />
returns the current working directory path.<br />
getenv(name)<br />
returns the string value of the environment variable indicated by the string expression name.<br />
If the environment variable is not set, the null string "" is returned.<br />
getopt([optstr[, optind]])<br />
processes an option string; this simplifies the business of writing scripts that take options.<br />
optstr is a format string listing each option character; if the option character is followed by a<br />
colon, the option takes an argument. For example, the format string "aei:o:u" specifies<br />
that the options a, e, i, o, and u are valid, and the colons show that both i and o require<br />
arguments. The option being processed is stored in a variable; if there is an argument, it is<br />
stored in the global variable OPTARG.<br />
optstr only needs to be specified on the first call. Subsequent calls to getopt() continue<br />
processing the same ARGV argument string. Here is a bit of code that sets flag variables for<br />
each option called:<br />
while (opt = getopt("dl:rtx")) do<br />
if (opt == "d" ) d_flag++;<br />
elif (opt == "l" )<br />
l_flag++;<br />
l_arg = OPTARG;<br />
elif (opt == "r" ) r_flag++;<br />
elif (opt == "t" ) t_flag++;<br />
elif (opt == "x" ) x_flag++;<br />
fi<br />
done<br />
The getopt call does not remove items from the ARGV string, it just moves the OPTIND pointer<br />
through the ARGV vector. If you want to pass the tail of the argument string without the options, you<br />
can reset the value of ARGV with code like this:<br />
members = {};<br />
for (i=OPTIND; ARGV{i}; i++) do<br />
members |= { ARGV[i] );<br />
done<br />
ARGV = members;<br />
include(filename)<br />
321 of 457
includes the specified file. No path search is performed. If filename is not an absolute path<br />
name, the current directory is searched. If the file does not exist, the script aborts.<br />
Note:<br />
Expressions are <strong>com</strong>piled <strong>com</strong>pletely and then executed. As a result, if you use<br />
include in a function, the file is not included until an expression referencing the<br />
function is executed.<br />
index(expression, string-expression)<br />
returns the index of the first occurrence of string-expression in the expression If the first<br />
expression is a vector, it is first converted into a string. The index is 1-origin; a value of 0 is<br />
returned if the second expression is not a substring of the first.<br />
isatty(filenum\)<br />
returns true if filenum is a tty; filenum is an integer representing a file number. The values<br />
0, 1, and 2 represent standard input, standard output, and standard error, respectively.<br />
offset(indexable_object)<br />
returns the current stream offset in an indexable object.<br />
ovl_exec(expression {, expression})<br />
constructs a <strong>com</strong>mand line in the same way, and then overlays cc with that <strong>com</strong>mand. cc<br />
exits with the exit code returned by that <strong>com</strong>mand.<br />
putenv(string)<br />
where string is a string expression of the form name=value assigns value to the environment<br />
variable indicated by the string expression name and adds that variable to the current<br />
environment.<br />
read(indexable_object)<br />
reads the next item from indexable_object and returns it.<br />
replace(string, old, new)<br />
returns string with all occurrences of the first character of the string old replaced with the first<br />
character of the string new.<br />
rindex(expression, string-expression)<br />
is similar to index but returns the index of the last occurrence.<br />
strerror()<br />
Returns the string that corresponds to the current value of errno. If errno is not set,<br />
returns a null string.<br />
322 of 457
substr(expression, position)<br />
returns the substring of the first string, starting at the position given by the second argument<br />
(an integer expression). Strings are 1-origin; however, for convenience, if the value of<br />
position is 0, substr returns the substring beginning at 1. If position is negative, it is taken<br />
to be an offset from the end of the string. For example:<br />
substr("hello",0) = substr("hello",1) -> "hello"<br />
substr("hello",length("hello")) -> "o"<br />
substr("hello",-3) -> "llo"<br />
substr("hello",-1) -> "o"<br />
substr may also take three arguments, as in:<br />
substr(expression, position, length)<br />
The length argument is an integer expression, giving the desired number of characters in<br />
the substring. If this value is negative, the substring is obtained by advancing to the<br />
indicated position, marking that the end, and then retreating by the specified amount. For<br />
example:<br />
substr("hello",0,1) = substr("hello",1,1) -> "h"<br />
substr("hello",-1,-3) -> "llo"<br />
tail(indexable_object)<br />
returns the unread portion of an indexable_object.<br />
tempfile([dir_str], pre)<br />
returns a string guaranteed to be an unused temporary file name in the directory specified<br />
by dir_str. If no dir_str is provided, then the directory specified by TMPDIR is used; if<br />
TMPDIR is not set, the system default is used (usually /tmp. If pre is not an empty string, it<br />
is taken as a prefix for the name of the temporary file.<br />
tolower(expression)<br />
returns the string expression with all uppercase characters translated to lowercase.<br />
toupper(expression)<br />
does the opposite translation.<br />
AVAILABILITY<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
323 of 457
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cc<br />
324 of 457
diagnostics<br />
applicable to MKS Integrity Suite <strong>com</strong>mands<br />
DESCRIPTION<br />
The exit status values for MKS Integrity Suite <strong>com</strong>mands si, im, aa, integrity) can be used by<br />
event triggers for automating processes with Source Integrity or Integrity Manager. This reference<br />
page is provided as a guide to the exit status values you may see.<br />
DIAGNOSTICS<br />
Possible exit status values for MKS Integrity Suite <strong>com</strong>mands are:<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Successful <strong>com</strong>pletion.<br />
or<br />
No differences between the files being <strong>com</strong>pared (using si diff).<br />
Command usage error.<br />
Command was canceled by user. This does not include cancellations using CTRL-c, which<br />
overrides this exit status value. In those cases, the return code will be 130.<br />
Invalid element in the selection for the <strong>com</strong>mand.<br />
Sandbox specified was ambiguous (using an si <strong>com</strong>mand). Command not executed.<br />
Unable to create or utilize the selection for the <strong>com</strong>mand.<br />
Unable to continue with the selection for the <strong>com</strong>mand because the program cannot find the<br />
next element.<br />
325 of 457
10<br />
16<br />
17<br />
19<br />
128<br />
130<br />
255<br />
SEE ALSO<br />
Connection failed: a network error caused the <strong>com</strong>mand to terminate.<br />
diff <strong>com</strong>pared the files and found them to be different (using si diff).<br />
Failure due to any of the following (using si diff):<br />
❍ invalid <strong>com</strong>mand line argument<br />
❍ cannot open one of the input files<br />
❍ out of memory<br />
❍ read error on one of the input files<br />
❍ more than LINE_MAX characters between newlines<br />
At least one of the files is a binary file containing embedded NUL (\0) bytes (using<br />
si diff).<br />
General <strong>com</strong>mand failure.<br />
Command was canceled by the user using CTRL-c.<br />
Unknown exception or error code.<br />
Miscellaneous:<br />
ACL, options, preferences<br />
326 of 457
NAME<br />
envvar — standard environment variables<br />
SYNOPSIS<br />
export NAME=value<br />
set NAME=value<br />
echo $NAME<br />
DESCRIPTION<br />
envvar -- Miscellaneous Information<br />
When a process is executed, it inherits a set of strings called the environment. It is conventional for<br />
these strings to have the form:<br />
NAME=value<br />
The export <strong>com</strong>mand built into the MKS KornShell can be used to set the variable NAME into the<br />
environment of every child process. The set <strong>com</strong>mand built into <strong>com</strong>mand.<strong>com</strong> or cmd.exe does<br />
the same. The echo <strong>com</strong>mand prints the value of environment variable NAME inside the MKS<br />
KornShell.<br />
Note:<br />
The shell maintains additional shell variables that are not exported to child processes;<br />
because these variables are not passed on, they are not environment variables.<br />
The following environment variables are used throughout MKS Toolkit:<br />
COLUMNS<br />
If you set this variable to a numeric value, various <strong>com</strong>mands use its value as the width of<br />
the output device in columns. This overrides the default.<br />
COMSPEC<br />
The value of this variable must point to the standard <strong>com</strong>mand interpreter (<strong>com</strong>mand.<strong>com</strong> or<br />
cmd.exe), if you want to use that <strong>com</strong>mand interpreter in any way. This variable is called<br />
ComSpec under Windows NT/2000/XP/2003.<br />
ENV<br />
327 of 457
The value of this variable is the name of a file of MKS KornShell <strong>com</strong>mands, or else be null.<br />
When the MKS KornShell is invoked, the file named by ENV is executed before the MKS<br />
KornShell does anything else. Thus your ENV file may contain definitions of aliases, shell<br />
functions, and son on that may be used by shell scripts. Note that your ENV file is executed,<br />
whether or not the MKS KornShell is invoked as a login shell. This differs from older<br />
releases of the MKS KornShell.<br />
HASHBANG<br />
If this variable is set then the #! feature of the MKS KornShell is enabled.<br />
HOME<br />
This variable is set by the shell's default startup files. It contains the name of your home<br />
directory. Your home directory is the default directory for the cd <strong>com</strong>mand built into the MKS<br />
KornShell.<br />
LINES<br />
If you set this variable to a numeric value, various <strong>com</strong>mands use its value as the number of<br />
lines available on the output device. This overrides the default.<br />
LOGNAME<br />
This variable is set by the shell's default startup files. It holds the user name of the current<br />
user.<br />
MAILER<br />
For <strong>com</strong>mands that send mail, this variable points at a mail delivery program. If this variable<br />
is not set, then the default mailer, mailx is invoked.<br />
PATH<br />
This variable is set to a default value when you start the MKS KornShell. Normally, it is also<br />
set in your profile file. It lists the directories that are to be searched to find <strong>com</strong>mands, as<br />
described in sh.<br />
ROOTDIR<br />
Because Windows systems have a multi-device file system, it is necessary to provide the<br />
location of the standard root directory for system files (for example, /etc/profile.ksh<br />
and /tmp). This variable contains a device name and possibly a directory where such files<br />
are found.<br />
SHELL<br />
This variable contains the full path name of the current shell. Note that if SHELL is not<br />
defined, all <strong>com</strong>mands that require the full path name of the current shell use the contents of<br />
the environment variable COMSPEC.<br />
328 of 457
TERM<br />
This variable contains the terminal type.<br />
TK_NTLINKS_OFF<br />
MKS Toolkit supports hard links under Windows NT/2000/XP/2003 on NTFS file systems.<br />
There is a slight loss of performance for this support. If you do not require hard link support<br />
then you should set and export the environment variable TK_NTLINKS_OFF to disable this<br />
support.<br />
TK_NTSECURITYINFO_OFF<br />
MKS Toolkit supports Windows NT/2000/XP/2003 security information on NTFS file<br />
systems. There is a slight loss of performance for this support. If you do not require any<br />
security information then you should set and export the environment variable<br />
TK_NTSECURITYINFO_OFF to disable this feature.<br />
TK_NTSECURITYINFO_SID_TERSE<br />
Under Windows NT/2000/XP/2003, when using ls with the -l option, files having an<br />
associated SID, whose name cannot be determined, display the value of the SID instead.<br />
SID values are usually very large. You should set and export the<br />
TK_NTSECURITYINFO_SID_TERSE environment variable. This causes all SID values to<br />
be shortened by replacing all the subauthority values, except the last one, by the string "-...-<br />
".<br />
TK_PERL_USE_COMSPEC<br />
When set, this environment variable causes perl to use the contents of the environment<br />
variable COMSPEC as the full path name of the current shell, whether or not the<br />
environment variable SHELL is set.<br />
TMPDIR<br />
By default, MKS Toolkit <strong>com</strong>mands store temporary files under /tmp. To use a different<br />
directory for temporary files, set TMPDIR to the name of the directory you want to use.<br />
TZ<br />
Commands that print times (and dates) use this variable to determine the time zone. If the<br />
TZ variable is left undefined, the operating system's current time zone setting is used. See<br />
timezone for details. On Windows, the MKS Toolkit makes use of the built-in timezone<br />
support, and you should not set the TZ environment variable.<br />
PORTABILITY<br />
The standard names on Windows systems are a superset of those used by UNIX programs, with<br />
COMSPEC (ComSpec under Windows NT/2000/XP/2003), ROOTDIR and TK_* being the major<br />
329 of 457
additions.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cd, env, ls, sh<br />
Miscellaneous:<br />
timezone<br />
330 of 457
NAME<br />
makefile — format of MKS Make file<br />
DESCRIPTION<br />
makefile -- Miscellaneous Information<br />
This reference page offers a summary of the syntax of a makefile's contents, using a style similar<br />
to BNF (Backus Naur Form). Items enclosed in [ ] are optional, while items enclosed in { } can<br />
appear zero or more times.<br />
makefile<br />
→ { makefile-line }<br />
makefile-line<br />
→ macro-definition<br />
→ target-definition<br />
→ attribute-definition<br />
→ conditional<br />
A line is a possibly empty sequence of characters, terminated by a nonescaped newline character;<br />
that is, one not immediately preceded by a backslash (\). A line can be extended over several<br />
input lines by placing a \ at the end of each line to be continued.<br />
A <strong>com</strong>ment begins with a # and extends to the end of the line. In the following, an expression is<br />
defined as<br />
expression<br />
→ string<br />
→ string == string<br />
→ string != string<br />
where string is defined as a literal sequence of characters, or the sequence of characters resulting<br />
from the expansion of a macro.<br />
A conditional is defined as<br />
conditional →<br />
.IF expression<br />
makefile<br />
{ .ELSIF expression<br />
331 of 457
makefile<br />
}<br />
[ .ELSE<br />
makefile<br />
]<br />
.END<br />
A rule-definition is defined as<br />
rule-definition →<br />
targets [ attributes ] op [prerequisites] [ ; recipe ]<br />
recipe<br />
targets →<br />
target { target }<br />
A target may be a special-target.<br />
Any number of attributes may follow a target in a rule-definition.<br />
attribute<br />
→ .IGNORE<br />
→ .SILENT<br />
→ .PRECIOUS<br />
→ .LIBRARY<br />
→ .PROLOG<br />
→ .EPILOG<br />
→ .SETDIR=path<br />
An attribute-definition is like a rule-definition, except that a recipe is not allowed. An attributedefinition<br />
is given as<br />
attribute-definition<br />
→ attribute { attribute } : targets<br />
The op defines the type of rule.<br />
op → :<br />
→ ::<br />
→ :^<br />
→ :!<br />
→ :-<br />
→ :|<br />
332 of 457
The prerequisites are a list (possibly empty) of targets that must be brought up-to-date before<br />
making the current target. The prerequisites may optionally be followed by a semicolon (;) and a<br />
recipe.<br />
A recipe normally follows; it consists of a number of lines, all starting with at least one tab<br />
character, or a group-recipe, which is written between brackets ([ ]).<br />
recipe<br />
→ { [+@-] line }<br />
→ [[+@-]lines]<br />
A special-target is a keyword that is given as a target in a rule-definition. The following special<br />
targets are allowed:<br />
special-target<br />
→ .BRACEEXPAND<br />
→ .ERROR<br />
→ .EXPORT<br />
→ .GROUPEPILOG<br />
→ .GROUPPROLOG<br />
→ .IMPORT<br />
→ .INCLUDE<br />
→ .INCLUDEDIRS<br />
→ .MAKEFILES<br />
→ .NOAUTODEPEND<br />
→ .REMOVE<br />
→ .SOURCE<br />
→ .SOURCE.suffix<br />
→ .SUFFIXES<br />
→ .POSIX<br />
A macro-definition is recognized as a string followed by an = character. There are three forms of<br />
macros:<br />
macro = string<br />
assign string to macro<br />
macro := string<br />
expand macro definitions string, then assign<br />
macro += string<br />
append string to end of macro<br />
333 of 457
If string is empty, macro is assigned the null string (unless you use the += operator; in this case,<br />
the macros contents are not touched). White space on either side of the =, :=, or += is ignored.<br />
Macros are expanded by $(macro) or ${macro}. If a macro name is a single letter, it can also be<br />
expanded by $n, where n is the name.<br />
If the .BRACEEXPAND special target is set, make expands a token sequence (separated by white<br />
space) prepending a prefix string and appending a suffix string to each token:<br />
string1{ token-list }string2<br />
Future versions of MKS Make may not support this obsolescent feature.<br />
A macro can also be modified as it is expanded. The syntax for this is<br />
$(macro {:modifier})<br />
where any number of modifiers can be supplied, separated by :.<br />
modifier<br />
→b<br />
→d<br />
→f<br />
→l<br />
→ s/string/new_string/<br />
→ suffix_string=new_suffix_string<br />
→ t"string"<br />
→u<br />
→^"string"<br />
→+"string"<br />
The :s modifier is a substitute operator; occurrences of the given pattern that are matched are<br />
replaced by the indicated value. The :t modifier tokenizes the macro string definition, placing the<br />
given string between each name in the indicated string. That string may contain the following<br />
escape sequences:<br />
\" → "<br />
\\ → \<br />
\a → alert or <br />
\b → <br />
\f → <br />
\n → <br />
334 of 457
\r → <br />
\t → <br />
\v → <br />
The :u modifier maps all characters in the expansion to uppercase.<br />
The :l modifier maps all characters in the expansion to lowercase.<br />
The :^ modifier adds a prefix to all of the tokens in the expanded macro.<br />
The :+ modifier adds a suffix to all of the tokens in the expanded macro.<br />
A number of built-in macros are defined by MKS Make.<br />
$@ full target name<br />
$$@ dynamic expansion of $@<br />
$% full target name, or name of archive library<br />
$$% dynamic expansion of $%<br />
$* $@ without suffix; same as $(@:db)<br />
$$* dynamic expansion of $*<br />
$> library name for current target (library member)<br />
$$> dynamic expansion of $><br />
$? all recently changed prerequisites<br />
$< in normal rules, those prerequisites prompting<br />
execution of current rule; in inference rules, the<br />
prerequisite of the current rule<br />
$& all prerequisites<br />
$^ prerequisites in current rule<br />
MKS Make also uses control-macros, whose value is either maintained by make, or used to control<br />
the corresponding attribute.<br />
control-macros<br />
→ DIRSEPSTR<br />
→ .EPILOG<br />
→ GROUPFLAGS<br />
→ GROUPSHELL<br />
→ GROUPSUFFIX<br />
→ .IGNORE<br />
→ INCDEPTH<br />
→ MAKE<br />
→ MAKECMD<br />
335 of 457
→ MAKEDIR<br />
→ MAKEFLAGS<br />
→ MAKESTARTUP<br />
→ MFLAGS<br />
→ NULL<br />
→ .PRECIOUS<br />
→ .PROLOG<br />
→ PWD<br />
→ SHELL<br />
→ SHELLFLAGS<br />
→ SHELLMETAS<br />
→ .SILENT<br />
For example, the .SILENT macro is like the .SILENT attribute, except that using the macro<br />
assigns the .SILENT attribute to all targets.<br />
AVAILABILITY<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
make<br />
336 of 457
options<br />
applicable to MKS Integrity Suite <strong>com</strong>mands<br />
DESCRIPTION<br />
Some MKS Integrity Suite <strong>com</strong>mands (si, im, aa, integrity) share general options, while all take certain universal options. This<br />
reference page is provided as a guide to these <strong>com</strong>mon options.<br />
Source Integrity: Specifying Members, Sandboxes and Projects<br />
There are three types of Source Integrity <strong>com</strong>mands, and therefore the way you specify the member varies:<br />
1. Some <strong>com</strong>mands can only be executed on members in the context of a sandbox, because they manipulate the member's working file.<br />
These are noted as requiring a sandbox member..., such as si ci, si co, and si merge. These take a sandbox member, and you<br />
may not perform the operation against a project member. If you try to specify a project for these <strong>com</strong>mands, you will see an error<br />
message.<br />
2. Other <strong>com</strong>mands do not manipulate a member's working file, and therefore can be performed directly in the context of a project. If you<br />
specify a sandbox, it is simply used as a pointer to find the project itself. The fact that you specify the sandbox is only incidental.<br />
These are noted as requiring a project member..., and most of the <strong>com</strong>mands that say member... fall into this category; for example,<br />
si updaterevision, si updatearchive, and si addlabel.<br />
3. There are also some <strong>com</strong>mands that perform differently depending on whether they are given a sandbox or a project. Examples for<br />
this would be si diff and si edit.<br />
You can explicitly specify either -P or -S options for most <strong>com</strong>mands. For -<br />
P you must specify a project or subproject, the -P option does not accept the filename of a sandbox. For -<br />
S you must specify a sandbox or subsandbox, -S does not accept the filename of a project.<br />
Source Integrity also allows for implicit sandbox selection. This means that you can use <strong>com</strong>mands without explicitly specifying a -<br />
S sandbox option, and Source Integrity determines the sandbox to operate on based on the directory you're working in.<br />
For example, suppose you are working in the directory C:\test\sbx\sub1\sub2, and suppose you have a sandbox only in the \sbx<br />
directory. Using the -S option to explicitly specify the sandbox, you might enter the following to check in a file:<br />
si ci -S c:\test\sbx\project.pj header.c<br />
Using implicit sandbox location to check in a file, you might enter:<br />
si ci header.c<br />
If the sandbox is not specified explicitly through -<br />
S, Source Integrity tries to locate one by starting in the current working directory and seeing if there is a sandbox registered in that directory.<br />
If there isn't, it searches up the directory tree until it either finds one, or until it reaches the root of the drive. In the example provided, Source<br />
Integrity first determines there is no sandbox in \sub2, then \sub1, then finds the sandbox in \sbx and uses that sandbox.<br />
Now suppose you have sandboxes in each of \sbx, \sub1, and \sub2. This implicit sandbox selection allows you to work with multiple<br />
sandboxes in one <strong>com</strong>mand line entry, and without having to explicitly specify lengthy locations for each one. If you're working in the<br />
C:\test\sbx directory and decide to check in files to each sandbox, for example, you might enter:<br />
si ci header.c sub1\<strong>com</strong>p.c sub1\sub2\img.c<br />
This checks in the file header.c to the sandbox at C:\test\sbx , checks in the file <strong>com</strong>p.c to the sandbox at C:\test\sbx\sub1, and<br />
checks in the file img.c to the sandbox at C:\test\sbx\sub1\sub2.<br />
A requirement for implicit sandbox location to operate correctly is that there can be no more than one sandbox (or subsandbox) registered in<br />
a single directory. If you create two or more sandboxes in the same directory, the implicit sandbox location algorithm cannot unambiguously<br />
determine which sandbox to use in that directory, and it prompts you to clarify by specifying the name of the sandbox that you want to use in<br />
that case. In general, you shouldn't create multiple sandboxes in the same directory.<br />
Note:<br />
Certain si <strong>com</strong>mands do not operate on Build sandboxes, which are created as read-only for the purpose of building a programming<br />
artifact. Using inappropriate <strong>com</strong>mands with a Build sandbox causes error messages to appear.<br />
337 of 457
General Options<br />
Some MKS Integrity Suite <strong>com</strong>mands share the following general options.<br />
--devpath=path<br />
identifies the development path of a variant project. This is always paired with a -P project or -project=project.<br />
This is a label that was associated with a branch of the project by si createdevpath. It is mutually exclusive<br />
with the -S sandbox or --sandbox=sandbox option since a sandbox remembers any devpath.<br />
Note:<br />
Paths that include spaces must be enclosed by quotes. Additionally, the following characters may not be used in a<br />
development path: \n, \r, \t, :, [', '], #.<br />
--filter=filteroptions<br />
allows you to select members for all <strong>com</strong>mands that take a list of members, using filteroptions, which can be one or more of the<br />
following:<br />
archiveshared<br />
selects members that share another member's archive. This option is valid only with the database repository.<br />
attribute:name[=value]<br />
selects members based on an attribute name and, optionally, value.<br />
changed [:working|:sync|:newer|:size|:missing|:newmem|:all]<br />
selects changed members based on: changes to working files, those that are out of sync with the project, those where a newer<br />
revision exists in the project, or based on all changes.<br />
rule [:memberrevdiffers|:defined|:invalid]<br />
selects members based on a revision rule filter. :memberrevdiffers selects all members for which the rule does not match<br />
the member revision. :defined selects all members with a revision rule. :invalid selects all members for which the rule<br />
does not expand to any existing revision.<br />
file:expression<br />
selects members with a specific file name. This allows you to specify wild cards for file naming, such as the asterisk (*) to<br />
match any number of characters, and the question mark (?) to match a single character. For example, *.java or<br />
*RB.properties would be valid expressions.<br />
frozen<br />
selects frozen members.<br />
label[:name]<br />
selects any member whose member revision has the specified label.<br />
anylabel[:name]<br />
selects any member that contains a revision that has the specified label.<br />
locked[:name]<br />
selects all locked members or those locked by a particular user.<br />
state[:name]<br />
selects members based on state.<br />
format[:text|:binary]<br />
selects members based on storage format.<br />
workingbranch<br />
selects members where the working file is on a branch from a given development path that is not the trunk development path.<br />
Note: This filter applies only to sandboxes.<br />
deferred[:add|:addfromarchive|:checkin|:drop|:import|:move|:rename|:updaterevision|:all]<br />
selects deferred members based on: add, addfromarchive, checkin, drop, import, move, rename, updaterevision, or all<br />
operations.<br />
memberonbranch<br />
shows only members that are off the main development trunk.<br />
unresolvedmerges<br />
selects members affected by unresolved merges.<br />
pending[:add|:addfromarchive|:drop|:import|:movememberfrom|:movememberto|:renamefrom|:renameto|:update|:updaterevision|:all]<br />
selects pending members based on add, addfromarchive, drop, import, movememberfrom, movememberto, renamefrom,<br />
renameto, update, updaterevision, or all operations.<br />
workinprogress<br />
<strong>com</strong>bines the deferred (all), locked (all), and changed (all) filters to select members that are considered work in progress.<br />
sparsecontents<br />
shows only existing working files and deferred operations in a sparse sandbox.<br />
338 of 457
Using <strong>com</strong>mas between the filteroptions serves to build logical "OR" statements between them, allowing you to create powerful filters.<br />
You may also specify multiple -filter=filteroptions<br />
on the <strong>com</strong>mand line, which effectively creates logical "AND" statements between them.<br />
For example, you can resynchronize all modified JAVA files through:<br />
si resync --filter=changed --filter=file:*.java<br />
or you can resynchronize all files with label a or b through:<br />
si resync --filter=label:a,label:b<br />
You can also negate a filter using the ! character.<br />
For example, you can check out all JAVA files that are not labelled Beta by typing:<br />
si co --filter=file:*.java --filter=!label:Beta<br />
--hostname=server<br />
identifies the name of the host server where the Integrity Server is located.<br />
--password=password<br />
identifies the password to use for connecting to the Integrity Server.<br />
--port=number<br />
identifies the port on the host server where the Integrity Server is located.<br />
-P project<br />
--project=project<br />
specifies the location of a project. This option is mutually exclusive with -S sandbox|--sandbox =sandbox.<br />
Note:<br />
Locations that include spaces must be enclosed by quotes.<br />
--projectRevision=rev<br />
identifies a particular revision of a project. This option is always paired with -P project|project=project,<br />
and is mutually exclusive with -devpath.<br />
It is available on all project-based <strong>com</strong>mands allowing you to specify the revision of the build project you want to work with.<br />
-R<br />
--[no|confirm]recurse<br />
controls whether to recursively apply this <strong>com</strong>mand to any subprojects; used in all <strong>com</strong>mands which take a list of members.<br />
-r rev<br />
--revision=rev<br />
uses a specified revision for the member. rev can be a valid revision number or a label. You may also facilitate automation with<br />
special keyword identifiers, specified using a colon (:) prefix (except for the state keyword). Acceptable identifiers are:<br />
:head<br />
identifies the head revision.<br />
:member<br />
identifies the member revision.<br />
:locked<br />
identifies locked revisions.<br />
:master<br />
identifies the member revision in the master project. This option is only applicable to variant projects.<br />
:time:timestamp<br />
uses the most recent revision on any branch at the specified timestamp. For example, -rtime:December 22, 2004<br />
3:33:34 PM GMT-05:00. Source Integrity recognizes all current timezones whatever your locale (country), for example,<br />
CEST, CET, EDT, PST, or GMT+/-hours:minutes. The following examples illustrate North American and German timestamps<br />
recognized by Source Integrity:<br />
Example 1: US GMT -5 (where E is the day of the week, M is the month, d is the numerical day of the month, y is the year, h is<br />
the time in hours, m is the time in minutes, s is the time in seconds, a is Greenwhich Mean Time (GMT), z is the timezone<br />
difference from Greenwhich Mean Time.<br />
05:00<br />
EEEE, MMMM d, yyyy h:mm:ss a z | Wednesday, April 28, 2004 3:33:45 AM GMT-<br />
EEEE, MMMM d, yyyy h:mm:ss a z | Wednesday, April 28, 2004 3:33:45 AM GMT-<br />
339 of 457
05:00<br />
EEEE, MMMM d, yyyy h:mm:ss a | Wednesday, April 28, 2004 3:33:45 AM<br />
EEEE, MMMM d, yyyy h:mm a | Wednesday, April 28, 2004 3:33 AM<br />
MMMM d, yyyy h:mm:ss a z | April 28, 2004 3:33:45 AM GMT-05:00<br />
MMMM d, yyyy h:mm:ss a z | April 28, 2004 3:33:45 AM GMT-05:00<br />
MMMM d, yyyy h:mm:ss a | April 28, 2004 3:33:45 AM<br />
MMMM d, yyyy h:mm a | April 28, 2004 3:33 AM<br />
MMM d, yyyy h:mm:ss a z | Apr 28, 2004 3:33:45 AM GMT-05:00<br />
MMM d, yyyy h:mm:ss a z | Apr 28, 2004 3:33:45 AM GMT-05:00<br />
MMM d, yyyy h:mm:ss a | Apr 28, 2004 3:33:45 AM<br />
MMM d, yyyy h:mm a | Apr 28, 2004 3:33 AM<br />
M/d/yy h:mm:ss a z | 4/28/04 3:33:45 AM GMT-05:00<br />
M/d/yy h:mm:ss a z | 4/28/04 3:33:45 AM GMT-05:00<br />
M/d/yy h:mm:ss a | 4/28/04 3:33:45 AM<br />
M/d/yy h:mm a | 4/28/04 3:33 AM<br />
h:mm:ss a z | 3:33:45 AM GMT-05:00<br />
h:mm:ss a z | 3:33:45 AM GMT-05:00<br />
h:mm:ss a | 3:33:45 AM<br />
h:mm a | 3:33 AM<br />
EEEE, MMMM d, yyyy | Wednesday, April 28, 2004<br />
MMMM d, yyyy | April 28, 2004<br />
MMM d, yyyy | Apr 28, 2004<br />
M/d/yy | 4/28/04<br />
MMM d, yyyy - h:mm:ss a | Apr 28, 2004 - 3:33:45 AM<br />
MMM d, yyyy - h:mm a | Apr 28, 2004 - 3:33 AM<br />
Example 2: Germany CEST (where E is the day of the week, M is the month, d is the numerical day of the month, y is the year, H is<br />
the time in hours, m is the time in minutes, s is the time in seconds, Uhr 'z is Central European Summer Time (CEST).<br />
EEEE, d. MMMM yyyy H.mm' Uhr 'z | Montag, 26. Juli 2004 22.26 Uhr CEST<br />
EEEE, d. MMMM yyyy HH:mm:ss z | Montag, 26. Juli 2004 22:26:29 CEST<br />
EEEE, d. MMMM yyyy HH:mm:ss | Montag, 26. Juli 2004 22:26:29<br />
EEEE, d. MMMM yyyy HH:mm | Montag, 26. Juli 2004 22:26<br />
d. MMMM yyyy H.mm' Uhr 'z | 26. Juli 2004 22.26 Uhr CEST<br />
d. MMMM yyyy HH:mm:ss z | 26. Juli 2004 22:26:29 CEST<br />
d. MMMM yyyy HH:mm:ss | 26. Juli 2004 22:26:29<br />
d. MMMM yyyy HH:mm | 26. Juli 2004 22:26<br />
dd.MM.yyyy H.mm' Uhr 'z | 26.07.2004 22.26 Uhr CEST<br />
dd.MM.yyyy HH:mm:ss z | 26.07.2004 22:26:29 CEST<br />
dd.MM.yyyy HH:mm:ss | 26.07.2004 22:26:29<br />
dd.MM.yyyy HH:mm | 26.07.2004 22:26<br />
dd.MM.yy H.mm' Uhr 'z | 26.07.04 22.26 Uhr CEST<br />
dd.MM.yy HH:mm:ss z | 26.07.04 22:26:29 CEST<br />
dd.MM.yy HH:mm:ss | 26.07.04 22:26:29<br />
dd.MM.yy HH:mm | 26.07.04 22:26<br />
H.mm' Uhr 'z | 22.26 Uhr CEST<br />
HH:mm:ss z | 22:26:29 CEST<br />
HH:mm:ss | 22:26:29<br />
HH:mm | 22:26<br />
EEEE, d. MMMM yyyy | Montag, 26. Juli 2004<br />
d. MMMM yyyy | 26. Juli 2004<br />
dd.MM.yyyy | 26.07.2004<br />
dd.MM.yy | 26.07.04<br />
MMM d, yyyy - h:mm:ss a | Jul 26, 2004 - 10:26:29 PM<br />
MMM d, yyyy - h:mm a | Jul 26, 2004 - 10:26 PM<br />
:timeonbranch:timestamp@branchnumber<br />
uses the most recent revision on a specific branch at a specific timestamp. -rtimeonbranch:timestamp uses the most<br />
recent revision on the branch where the member revision currently resides. For example, -rtimeonbranch:December 22,<br />
2004 3:33:34 PM GMT-05:00. -rtimeonbranch:timestamp@branchnumber uses the most recent revision on the<br />
specified branch at the specified timestamp. For example, -rtimeonbranch:December 22, 2004 3:33:34 PM GMT-<br />
05:00@1.5.1.1. Source Integrity recognizes all current timezones whatever your locale (country), for example, CEST, CET,<br />
340 of 457
EDT, PST, or GMT+/-hours:minutes. For timestamp examples, see the :time:timestamp option.<br />
Note: Updating a revision by timestamp makes the most recent revision at the specified timestamp the member revision.<br />
:memberbranchtip<br />
identifies the tip revision on the member revision branch.<br />
:working<br />
identifies the working revision.<br />
:trunktip<br />
identifies the tip revision on the trunk.<br />
state:statename<br />
identifies the state, for example, Beta. This option is useful when you want to select revisions in a project that are in a specific<br />
state.<br />
For each project member, Source Integrity searches from the member revision on the development path to the root of the<br />
archive to find a revision that corresponds to the specified state. If the member revision is on a branch, Source Integrity starts<br />
from the tip revision and searches to the root of the archive; other branches in the archive are not searched. If no revision on<br />
the development path matches the specified state, the <strong>com</strong>mand fails, stating "Revision does not exist."<br />
devpath: devpathname<br />
identifies the development path. This keyword only operates on member <strong>com</strong>mands.<br />
build: revisionnumber<br />
identifies the build revision number, which must be a valid project revision number or project label in which a given member is<br />
contained. Must specify a registered project. This keyword only operates on member <strong>com</strong>mands.<br />
:rule<br />
identifies a rule defined with the si setmemberrule <strong>com</strong>mand.<br />
link:p=project[::d=devpath][::m=member][::recurse] [::b=buildrevnumber]<br />
allows you to set the member revision to whatever is the member revision for the corresponding member in a specific external<br />
project configuration (normal, variant, build). Links the project that the member belongs to (the target project) with the master<br />
project where:<br />
project is the master project<br />
devpath is the development path for the master project<br />
member is a member in the target project. If not provided, the project is searched for a member with the same backing archive.<br />
If recurse is specified, the search is recursive throughout the subprojects. There must be exactly one backing archive for each<br />
member.<br />
A possible application is to update all members to the same revision, even if they don't have the same backing archive.<br />
-S sandbox<br />
--sandbox=sandbox<br />
specifies the location of a sandbox. In some cases, the <strong>com</strong>mands that take this option do something with the sandbox contents<br />
themselves. In other cases, specifying the sandbox location is simply a way to locate, or "point to", the corresponding project file. This<br />
option is mutually exclusive with -P project|--project =project.<br />
Note:<br />
Locations that include spaces must be enclosed by quotes.<br />
--user=name<br />
identifies the user to use for connecting to the Integrity Server.<br />
Universal Options<br />
The following universal options apply to all MKS Integrity Suite <strong>com</strong>mands.<br />
--[no]batch<br />
controls batch mode. Batch mode forces the application to process <strong>com</strong>mands without prompting for responses.<br />
--cwd=directory<br />
acts as if the <strong>com</strong>mand is executed in the specified directory. In particular, any files and members in the selection are treated as being<br />
relative to that directory.<br />
Suppose you are working in the c:\sandbox directory and you want to issue the check out <strong>com</strong>mand so that the implicit sandbox<br />
selection will work in a subdirectory, rather than having to specify the <strong>com</strong>plete path for subdirectory sandbox names. You could use<br />
the --cwd option to do this, for example:<br />
si co --cwd=./demoapp/controls demoappctrl.c<br />
341 of 457
makes Source Integrity work in the c:\sandbox\demoapp\controls directory and follows implicit sandbox selection rules from<br />
there to find the appropriate sandbox, then checks out the demoappctrl.c file.<br />
-F file<br />
--selectionFile=file<br />
provides an alternative way to specify the selection. The specified file is a text file containing a list of file names, members, projects, or<br />
sandboxes, one per line. The <strong>com</strong>mand operates on all the listed files.<br />
Note:<br />
Be careful to avoid duplications. In some cases if a file, member, project or sandbox is listed twice in the file, the <strong>com</strong>mand may<br />
report an error.<br />
--forceConfirm=[yes|no]<br />
-N<br />
--no<br />
-Y<br />
--yes<br />
controls the responses of either "yes" or "no" to all prompts. Specifying "yes" or "no" can be an easy way to ac<strong>com</strong>plish the same<br />
thing as specifying other <strong>com</strong>mand options with [no|confirm] prefixes, for example the<br />
--[no|confirm]overwriteChanged option in the si co, si resync, and si revert <strong>com</strong>mands. Specifying<br />
--yes or --no ac<strong>com</strong>plishes the same thing for --overwriteChanged and -nooverwriteChanged,<br />
but further responds "yes" or "no" to all other questions asked.<br />
Note:<br />
Be careful to use specific options if you want variations in your responses to prompts. The<br />
--yes and -no<br />
options in particular are wide-ranging types of responses and should be used only in rare circumstances.<br />
-g<br />
--gui<br />
allows user interaction to happen through the GUI (graphical user interface).<br />
--width<br />
controls the width in pixels of the graphical user interface.<br />
--height<br />
controls the height in pixels of the graphical user interface.<br />
-x<br />
specifies the x location in pixels of the graphical user interface window.<br />
-y<br />
specifies the y location in pixels of the graphical user interface window.<br />
--quiet<br />
controls the status display to silence most information messages.<br />
--settingsUI=[gui|default]<br />
controls the GUI for <strong>com</strong>mand options.<br />
--status=[none|gui|default]<br />
controls the status display.<br />
-?<br />
--usage<br />
shows usage for the <strong>com</strong>mand.<br />
DIAGNOSTICS<br />
See the diagnostics reference page for possible exit status values.<br />
SEE ALSO<br />
Miscellaneous:<br />
ACL, diagnostics, preferences<br />
342 of 457
preferences<br />
preferences applicable to MKS Integrity Suite setprefs and viewprefs <strong>com</strong>mands<br />
DESCRIPTION<br />
The setprefs and viewprefs <strong>com</strong>mands refer to the same group of <strong>com</strong>mands and preference<br />
keys for the MKS Integrity Suite <strong>com</strong>ponent you are configuring (si, im, aa, integrity). This<br />
reference page is provided as a guide to the preferences you can configure. To see each<br />
<strong>com</strong>ponent's specific keys, simply append the <strong>com</strong>mand to the viewprefs <strong>com</strong>mand. For<br />
example,<br />
si viewprefs --<strong>com</strong>mand=co<br />
displays the following output:<br />
co: mergeType<br />
co: onMergeConflict<br />
co: allowImplicitIdentification<br />
co: branchIfVariant<br />
co: changePackageID<br />
co: cwd<br />
co: filter<br />
co: forceBranch<br />
co: forceConfirm<br />
co: includeFormers<br />
co: issueID<br />
co: keywordExpand<br />
co: lock<br />
co: merge<br />
co: onLock<br />
co: overwriteIfChanged<br />
co: overwriteIfUnchanged<br />
co: recurse<br />
co: restoreTimestamp<br />
co: revision<br />
co: sandboxName<br />
co: selectionFile<br />
co: updateMemberRev<br />
co: <strong>com</strong>mand.batchMode<br />
co: sandbox.allowProjectSelection<br />
co: sandbox.allowSandboxSelection<br />
co: server.credential<br />
co: server.hostname<br />
343 of 457
co: server.port<br />
co: server.user<br />
co: si.lastUsedChangePackageID<br />
co: socksProxyHost<br />
co: socksProxyPort<br />
co: status.popupDelay<br />
co: swing.lookAndFeel<br />
Preference Keys<br />
The preference keys you can specify for the above <strong>com</strong>mands are often similar, and some are<br />
global preferences such that when you change it for one <strong>com</strong>mand, it changes for all. The following<br />
are some <strong>com</strong>mon preference keys:<br />
allowImplicitIdentification<br />
controls whether to allow the implicit identification and selection of sandboxes. This means<br />
that you can use <strong>com</strong>mands without explicitly specifying a -S sandbox option, and Source<br />
Integrity determines the sandbox to operate on based on the directory you're working in.<br />
Valid values are true or false.<br />
cwd<br />
identifies a working directory for the <strong>com</strong>mand. In particular, any relative files and members<br />
in the selection are treated as being in that directory.<br />
<strong>com</strong>mand.batchMode<br />
a global key that controls batch mode. Batch mode forces the application to process<br />
<strong>com</strong>mands without prompting for responses. Valid values are false, true.<br />
developmentPath<br />
specifies a particular development path to use with the <strong>com</strong>mand all the time.<br />
filter<br />
specifies a filter to use with the <strong>com</strong>mand all the time.<br />
forceConfirm<br />
specifies whether to force the application to request confirmation for the particular<br />
<strong>com</strong>mand.<br />
includeFormers<br />
specifies whether to include members that have been dropped from the project.<br />
projectName<br />
specifies a particular Source Integrity project to work with all the time.<br />
projectRevision<br />
specifies a particular Source Integrity project revision to work with all the time.<br />
recurse<br />
controls whether to recurse into subprojects.<br />
sandbox.allowProjectSelection<br />
a global key that controls whether to allow Source Integrity project selection. Valid values<br />
are false, true.<br />
sandbox.allowSandboxSelection<br />
a global key that controls whether to allow sandbox selection. Valid values are false, true.<br />
344 of 457
sandboxName<br />
specifies a particular sandbox to be used all the time.<br />
selectionFile<br />
specifies a file that lists member files to work with.<br />
server.credential<br />
a global key that identifies the credential, or password, for logging into the Integrity Server.<br />
server.hostname<br />
a global key that identifies the hostname for the Integrity Server.<br />
server.port<br />
a global key that identifies the port for the Integrity Server.<br />
server.user<br />
a global key that identifies the user name for logging into the Integrity Server.<br />
socksProxyHost<br />
a global key that identifies the SOCKS proxy host.<br />
socksProxyPort<br />
a global key that identifies the SOCKS proxy port.<br />
status.popupDelay<br />
a global key that controls the duration, in milliseconds (ms), that the <strong>com</strong>mands status<br />
appears in the graphical user interface or the <strong>com</strong>mand line interface.<br />
swing.lookAndFeel<br />
a global key that controls the "look and feel" appearance of the graphical user interface.<br />
Valid values are System, Windows, Motif, Metal.<br />
SEE ALSO<br />
Miscellaneous:<br />
diagnostics, options<br />
345 of 457
csedit<br />
MKS Source Integrity editing facilities for descriptions and log messages<br />
DESCRIPTION<br />
Whenever MKS Source Integrity asks you to enter a description or log message, you may make<br />
use of editing <strong>com</strong>mands to help you enter the message. Editing <strong>com</strong>mands must be on a<br />
separate line and the first character of the line must be a tilde ~ character. Here are the recognized<br />
<strong>com</strong>mands:<br />
~?<br />
Displays a summary of editing <strong>com</strong>mands.<br />
~d<br />
Restore message from dead.let file.<br />
~e<br />
Writes the current message to a temporary file and invokes a text editor to edit that file. The<br />
name of the editor is taken from the EDITOR environment variable. If there is no such<br />
variable, ed is used. When you are finished editing the message, write it back out to the<br />
temporary file and quit the editor. You return to MKS Source Integrity.<br />
~p<br />
Displays the current text of the message.<br />
~q<br />
Copies the current message to a file named dead.let and quits.<br />
~r filename<br />
Reads the contents of the given file and appends them to the current message.<br />
~v<br />
Similar to ~e, except that it invokes the visual editor identified by the VISUAL environment<br />
variable. The default is vi. (You can only use vi if you have a UNIX system or the MKS<br />
Toolkit.)<br />
~w filename<br />
Writes the current message to the specified file.<br />
~! <strong>com</strong>mand<br />
Executes the given system <strong>com</strong>mand.<br />
If a line begins with a tilde, MKS Source Integrity assumes it is an editing <strong>com</strong>mand. If you want to<br />
enter a text line that begins with a tilde, type two, as in<br />
~~ This line begins with a single tilde.<br />
EXAMPLES<br />
346 of 457
These are the changes I have made:<br />
~r changes<br />
.<br />
reads in text from a file named changes and adds that text to the message being <strong>com</strong>posed. The<br />
period (.) to mark the end of the message is still required.<br />
ENVIRONMENT VARIABLES<br />
The MKS Source Integrity editing facilities use the following environment variables:<br />
EDITOR<br />
contains the name of the editor invoked by the ~e <strong>com</strong>mand.<br />
VISUAL<br />
contains the name of the editor invoked by the ~v <strong>com</strong>mand.<br />
PORTABILITY<br />
These facilities are extensions to traditional implementations of RCS and are non-portable.<br />
SEE ALSO<br />
Commands:<br />
si ci<br />
347 of 457
NAME<br />
ar — create and maintain library archives<br />
SYNOPSIS<br />
ar<br />
ar -d [-Ilv] archive member ...<br />
ar -m [-abIilsv] [posname] archive member ...<br />
ar -p [-Ilsv] archive [member ...]<br />
ar -q [-clsv] [-F format] archive member ...<br />
ar -r [-abcIilsuv] [-F format] [posname] archive member ...<br />
ar -t [-Ilsv] archive [member ...]<br />
ar -u [-abcIilsv] [-F format] [posname] archive member ...<br />
ar -x [-CIlsTv] archive [member ...]<br />
DESCRIPTION<br />
ar creates and maintains file archives. You can use ar to<br />
● create a new archive<br />
● add members to an existing archive<br />
● delete members from an archive<br />
● extract members from an archive<br />
● print a table of contents for an archive<br />
● rearrange the members of an existing archive<br />
● display the contents of an archive member<br />
These libraries may be in Intel Object Module Format (OMF) or Common Object File Format<br />
(COFF). On Windows systems, ar defaults to OMF format when creating a new library.<br />
This implementation takes UNIX-<strong>com</strong>patible options and arguments, but works with libraries in<br />
either the OMF format or the COFF format. ar tries to deduce the format of an existing archive; the<br />
default for a new library is OMF format. You may specify the format of a new library with the -F<br />
option. Only valid OMF or COFF .obj files may be members of a library.<br />
ar identifies each member in the archive by the final <strong>com</strong>ponent (basename) of its file name.<br />
When adding a file to an archive, you can use the full path name, but when storing the member or<br />
348 of 457
<strong>com</strong>paring a member name, ar uses only the final <strong>com</strong>ponent of the name.<br />
Options<br />
ar accepts the following options that represent its main functions:<br />
-d<br />
-m<br />
-p<br />
-q<br />
-r<br />
-t<br />
-x<br />
deletes each named member from the archive and regenerates the symbol table.<br />
moves the named archive member in the archive. You indicate the new position for the<br />
member with -a, -b, or -i and posname; if you do not specify a location, ar moves the<br />
member to the end of the archive.<br />
displays each specified member on the standard output. If you do not specify any members,<br />
ar displays all members.<br />
quickly appends the specified file to the archive. ar does not check to see if file is already a<br />
member of the archive.<br />
replaces or adds file to archive. If archive does not exist, ar creates it and prints a message.<br />
When ar replaces an existing member, it does not change the archive order. If file is not<br />
replacing a member, ar adds it to the end of the archive (unless you specify -a, -b, or -i).<br />
This option regenerates the symbol table.<br />
displays a table of contents that lists member or every member if you do not specify a<br />
particular member. ar displays a diagnostic for each member that it cannot find. Normally,<br />
ar displays only the member's name, but with the verbose (-v) option, ar displays more<br />
information about archive members using a format similar to ls -l.<br />
extracts each specified member from the archive and copies it to a file. If you specify<br />
member as a full path name, ar copies it to that path name. If you do not specify a member,<br />
ar extracts all members. The archive remains unchanged.<br />
The following options modify the behavior of the main functions:<br />
-a<br />
places file in archive after the member specified by posname. If you do not specify a<br />
349 of 457
-b<br />
-C<br />
-c<br />
member, ar adds file to the end of the archive.<br />
places file in archive before the member specified by posname. If you do not specify<br />
posname, ar adds file to the beginning of the archive.<br />
prevents ar from overwriting existing files with extracted files. You can only specify this<br />
option when extracting files with the -x option.<br />
suppresses the message ar normally prints when it creates a new archive file. You can only<br />
use this in conjunction with the -r and -q options.<br />
-F format<br />
specifies the archive format to be used by a new archive. Valid formats are omf and coff.<br />
You can only use this option when creating a new archive with the -r option or the -q<br />
option.<br />
-I<br />
-i<br />
-l<br />
-s<br />
-T<br />
When no format for a new library is specified, ar creates the new library using the format<br />
(OMF or COFF) of the first .obj file specified on the <strong>com</strong>mand line. If no .obj files exist on<br />
the <strong>com</strong>mand line, the library is created using the OMF format.<br />
ignores the case of letters when searching the archive for specified member names.<br />
Normally, the case is significant.<br />
inserts the file into the archive before the member specified by posname. If you do not<br />
specify posname, ar inserts file at the beginning of the archive. This option is the same as<br />
-b.<br />
puts any temporary files that ar generates in the current directory rather than the default<br />
temporary file directory.<br />
regenerates the symbol table regardless of whether the <strong>com</strong>mand modifies the archive.<br />
when used with -x, allows extraction of members with names longer than the file system<br />
supports; normally, this is an error, and ar does not extract the file. Most file systems<br />
truncate the file name to the appropriate length.<br />
350 of 457
-u<br />
-v<br />
replaces the member only if the modification time of the file member is more recent than the<br />
time of the archive member. -u implies -r, so it is not necessary to specify -r also.<br />
gives verbose output. With -d, -q, -r, and -x, this option displays the <strong>com</strong>mand letter and<br />
the member name affected before performing each operation. With -t, it prints more<br />
information about archive members using a format similar to ls -l. With -p, it displays the<br />
member name before the contents.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
2<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— inability to create the extracted file<br />
— an error writing to the extracted file<br />
— the requested module not found on appending<br />
— an error opening the module on appending<br />
— an invalid module on appending<br />
— inability to access the module on appending<br />
— a module not found on table/extraction<br />
Invalid <strong>com</strong>mand line arguments or options<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. Windows Me. Windows NT 4.0. Windows 2000. Windows<br />
XP. Windows Server 2003. All UNIX systems.<br />
On Windows systems, the archive format is either OMF, or the Common Object File Format<br />
(COFF). The options included in this implementation are the best possible approximation of those<br />
defined by the POSIX standard for the ar <strong>com</strong>mand, to make makefiles reasonably portable. For<br />
historical <strong>com</strong>patibility, you can omit the - preceding the options if the options appear only as the<br />
first argument after the <strong>com</strong>mand name.<br />
351 of 457
The following options are XPG extensions to the POSIX standard: -a, -b, -C, -i, -l, -m, -q, -s,<br />
and -T.<br />
The -F and -I options are extensions to the POSIX and XPG standards.<br />
AVAILABILITY<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cc, make<br />
352 of 457
•<br />
NAME<br />
cc, cxx<br />
cc, cxx — interfaces to Microsoft C and C++ <strong>com</strong>pilers<br />
SYNOPSIS<br />
cc [-c] [-C] [-Dname[=value]] [-e epsym] [-E] [-f[float]] [-g] [-Idirectory] [-llibrary] [-Ldirectory]<br />
[-m] [-mmodel] [-M] [-o output] [-O] [-P] [-s] [-S] [-static] [-U symname] [-VS num] [-Woption]<br />
[-x] [-Xc] files...<br />
cxx [-c] [-C] [-Dname[=value]] [-e epsym] [-E] [-g] [-Idirectory] [-llibrary] [-Ldirectory] [-m] [-M]<br />
[-o output] [-O] [-P] [-s] [-S] [-static] [-U symname] [-VS num] [-Woption] [-x] [-Xc] files...<br />
DESCRIPTION<br />
The cc and cxx <strong>com</strong>mands serve as interfaces to the Microsoft C <strong>com</strong>piler (cl). Versions 5.0 and<br />
higher of this <strong>com</strong>piler are supported. cc is for <strong>com</strong>piling C files, while cxx is for <strong>com</strong>piling C++<br />
files.<br />
Note:<br />
The behavior of cc depends upon whether or not you are working in the standard MKS<br />
Toolkit development environment or the development environment designed for use with the<br />
MKS Toolkit UNIX APIs.<br />
cxx is only available in the MKS Toolkit UNIX APIs development environment.<br />
These <strong>com</strong>mands are just wrappers that invoke the cl utility. If you are using MKS Toolkit<br />
for Professional Developers or MKS Toolkit for Developers, the presence of cl in PATH is<br />
checked for during installation. For other Toolkit products, you must ensure yourself that cl<br />
is in the PATH.<br />
Files with a .c suffix are taken to be C source files, files with a .cpp or .cxx extension are taken<br />
to be C++ source files, and files with a .asm extension are taken to be assembly language source<br />
files. The presence of source files with a .cpp or .cxx automatically causes the source files to be<br />
<strong>com</strong>piled as if the cxx <strong>com</strong>mand had been invoked instead.<br />
The cc and cxx <strong>com</strong>mands implicitly set the following Microsoft <strong>com</strong>piler switches (for Intel<br />
platforms only):<br />
353 of 457
Note:<br />
/D_X86_<br />
/D_NUTC_=0x430 (Value changes with each release)<br />
/Zl<br />
/Qifdiv-<br />
The /D_NUTC_=0x430 option is only set when working in the MKS Toolkit UNIX APIs<br />
development environment.<br />
The /Qifdiv- option is only set when working in the MKS Toolkit UNIX APIs development<br />
environment and is only available for Microsoft Visual Studio 2.1 or later.<br />
You can use the -W/option flag to pass options directly to cl. In doing this, be careful not to<br />
conflict with the options that this <strong>com</strong>mand sets. For example, the default <strong>com</strong>piler warning level is<br />
set to /W3. The option -W/Wn can be used to override this default. cl options specified with -W<br />
override cl options generated by other cc or cxx options.<br />
Options<br />
-c<br />
-C<br />
<strong>com</strong>piles only — does not link.<br />
This option be<strong>com</strong>es the /c option to cl.<br />
passes <strong>com</strong>ments through to preprocessor output.<br />
This option be<strong>com</strong>es the /C option to cl.<br />
-Dname[=value]<br />
defines a preprocessor symbol with an optional value.<br />
-E<br />
This option be<strong>com</strong>es the /Dname=value option to cl.<br />
sends all preprocessor output to standard output.<br />
This option be<strong>com</strong>es the /E option to cl.<br />
-e epsym<br />
sets entry point (passed through to linker).<br />
354 of 457
-ffloat<br />
specifies the floating point options that the <strong>com</strong>piler and linker use:<br />
Note:<br />
-g<br />
-f- no floating point required<br />
-f emulated floating point<br />
-fp hardware floating point (using 80x87 coprocessor)<br />
This option is obsolete and produces a warning. It is provided for backward <strong>com</strong>patibility and<br />
is not available with cxx or when working in the MKS Toolkit UNIX APIs development<br />
environment.<br />
produces debugging information in the <strong>com</strong>piled object modules.<br />
This option be<strong>com</strong>es the /Z7 option to cl.<br />
-I directory<br />
adds directory to the beginning of the list of directories to be searched for include files (the<br />
value of the %Include% environment variable). Any directories supplied on the <strong>com</strong>mand<br />
line are searched first, in the order in which they appear on the <strong>com</strong>mand line.<br />
This option be<strong>com</strong>es the /Idirectory option to cl.<br />
-l library<br />
if linking, adds the specified library to the list of libraries to be searched. In searching for<br />
libraries (for example, with -lfoo), each library directory is first searched for the UNIX-style<br />
archive name (that is, libfoo.a) and then for the Windows-style library name (that is,<br />
foo.lib).<br />
This option is passed through to the linker.<br />
-L directory<br />
if linking, adds the directory to the beginning of the list of directories that the linker searches<br />
for libraries (the value of the %Lib% environment variable). Any directories supplied on the<br />
<strong>com</strong>mand line are searched first, in the order in which they appear on the <strong>com</strong>mand line.<br />
-m<br />
This option is passed through to the linker.<br />
produces a link map.<br />
355 of 457
This option is passed through to the linker.<br />
-mmodel<br />
specifies the memory model that the <strong>com</strong>piler and linker use. The models may include:<br />
Note:<br />
-M<br />
-ms small model<br />
-mm medium model<br />
-ml large model<br />
-mf flat model (32-bit)<br />
-mc <strong>com</strong>pact model<br />
-mh huge model<br />
This option is obsolete and produces a warning. It is provided for backward <strong>com</strong>patibility and<br />
is not available with cxx or when working in the MKS Toolkit UNIX APIs development<br />
environment.<br />
<strong>com</strong>plains about multiply defined symbols.<br />
Note:<br />
This behavior is only available when working in the MKS Toolkit UNIX APIs<br />
development environment. Otherwise, -M is identical to the -m option.<br />
-o output<br />
specifies the name of the output file generated by the linker. This option is passed to the<br />
linker. If -c and -o are both specified, the -o option is ignored; however, you can specify a<br />
name for the oject file generated with -W/Foobj_file.<br />
-O<br />
Note:<br />
When working in the MKS Toolkit UNIX APIs development evironment, the -o option<br />
is not ignored. Instead, it behaves like -W/Foobj_file and specifies the name of the<br />
object file generated.<br />
File names specified with the -W/Fo option should have a .o or .obj extension. If the file<br />
name does not have such an extension, its current extension is replaced with .obj before<br />
invoking the linker. However, when -c is also specified, there are no restrictions on the<br />
extension of the specified file.<br />
instructs the <strong>com</strong>piler to generate optimized code.<br />
This option be<strong>com</strong>es the /Ox option to cl.<br />
356 of 457
-P<br />
-s<br />
-S<br />
stores preprocessor output to a file, where the file name is obtained by replacing the .c (or<br />
.cpp) extension with .i.<br />
when linking, strips debugging information from the output file.<br />
This option is passed through to the linker.<br />
produces an assembly code listing. The suffix for the listing file is .asm. This listing includes<br />
source and assembly code.<br />
This option be<strong>com</strong>es the /FAs option to cl.<br />
-static<br />
requests linking against the static C++ runtime libraries. This is not re<strong>com</strong>mended.<br />
When this option is not specified, the /MD to cl is the defaul for C++ and multithreaded<br />
DLLs are produced.<br />
-u symname<br />
when linking, adds an undefined reference to symname.<br />
This option is passed through to the linker.<br />
-U symname<br />
undefines the specified preprocessor symbol.<br />
This option be<strong>com</strong>es the /Usymname option to cl.<br />
-VS num<br />
passes through to the /VERSION linker option.<br />
-Wc++<br />
forces C++ linking.<br />
This option is passed through to the linker.<br />
Note:<br />
The C++ library paths are only available when working in the development<br />
357 of 457
-Wv<br />
environment for the MKS Toolkit UNIX APIs. If you are not working in this<br />
environment, you must specify these library paths with the -L option.<br />
selects verbose mode.<br />
This option is passed through to the linker.<br />
-W/option<br />
specifies an option that is to be passed either to the C <strong>com</strong>piler or to linker with the leading<br />
-W removed. The options — subsystem, def, base, entry, implib, machine, map, out,<br />
stack, and dll — are passed to the linker; all others are passed to the <strong>com</strong>piler.<br />
-x<br />
-Xc<br />
-Xa<br />
-Xs<br />
-Xt<br />
when linking, strips debugging information related to local symbols from the output file.<br />
This option is passed through to the linker.<br />
<strong>com</strong>piles with strict ANSI C conformance. Only symbols specified by the ANSI C<br />
specification are visible during <strong>com</strong>pilation.<br />
This option be<strong>com</strong>es the /D__STRICT_ANSI=1 and /D__STDC__=1 options to cl.<br />
<strong>com</strong>piles with non-strict ANSI C conformance. Only symbols specified by the ANSI C<br />
specification are visible during <strong>com</strong>pilation.<br />
This option be<strong>com</strong>es the /D__STDC__=0 to cl.<br />
While this reference page describes cc as an interface to the Microsoft C <strong>com</strong>piler, that is not the<br />
<strong>com</strong>plete truth. In truth, cc is a configurable interface to any C <strong>com</strong>piler and is designed for use<br />
with make. Theoretically, you can simply redefine cc on each system to work with that system's C<br />
<strong>com</strong>piler and by simply using cc in your makefiles, you can use those same makefile across<br />
different system.<br />
cc uses a <strong>com</strong>pilation configuration file to convert arguments on a standard <strong>com</strong>mand line into<br />
the arguments for the <strong>com</strong>mand or sequence of <strong>com</strong>mands needed to call your <strong>com</strong>piler or linker.<br />
If you want to change your <strong>com</strong>piler or linker, change the appropriate configuration file; do not<br />
change your makefile.<br />
358 of 457
The default configuration file for cc is<br />
ROOTDIR/etc/<strong>com</strong>piler.ccg<br />
You may chose a different configuration file by setting the environment variable CCG to point to the<br />
desired file. Interfaces to other <strong>com</strong>pilers may be available from MKS.<br />
If you want cc to temporarily use a different <strong>com</strong>piler, you can set the environment variable CCG to<br />
the name of the configuration file for the desired <strong>com</strong>piler.<br />
If you rename the cc executable, it attempts to find its default configuration in a .ccg file with the<br />
same base name as the renamed executable. For example, if you rename cc.exe to c89.exe,<br />
c89 looks for a default configuration file named c89.ccg in ROOTDIR/etc.<br />
If you use a <strong>com</strong>piler that does not have a configuration file, you can customize a given<br />
configuration file to use your <strong>com</strong>piler. Read the cc miscellaneous information reference page<br />
carefully, and modify an existing configuration to use your <strong>com</strong>piler.<br />
ENVIRONMENT VARIABLES<br />
CCG<br />
identifies the configuration file for the desired <strong>com</strong>piler. If CCG contains -, cc reads the<br />
default configuration from the standard input. If CCG contains a file name, cc uses that file<br />
as its default configuration file. If CCG contains a directory name, cc looks for the default<br />
configuration in the cc.ccg file in that directory. If the executable has been renamed, it<br />
looks for the default configuration in a .ccg file with the same name as the executable. For<br />
example, if cc.exe is renamed to c89.exe, it looks for the default configuration in<br />
$CCG/c89.ccg.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
>0<br />
Successful <strong>com</strong>pletion.<br />
An error occurred.<br />
AVAILABILITY<br />
359 of 457
The cc <strong>com</strong>mand is available with the following products:<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
The cxx <strong>com</strong>mand is available with the following products:<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
SEE ALSO<br />
Commands:<br />
ld, make<br />
Miscellaneous:<br />
cc<br />
360 of 457
NAME<br />
cmp — <strong>com</strong>pare two files<br />
SYNOPSIS<br />
cmp [-blsx] file1 file2 [seek1[seek2]]<br />
DESCRIPTION<br />
cmp<br />
cmp <strong>com</strong>pares two files. If either file name is -, cmp reads the standard input for that file. By<br />
default, cmp begins the <strong>com</strong>parison with the first byte of each file. If you specify seek1 and/or<br />
seek2, cmp uses it as a byte offset into file1 or file2 (respectively), and <strong>com</strong>parison begins at that<br />
offset instead of at the beginning of the files. The <strong>com</strong>parison continues (one byte at a time) until a<br />
difference is found, at which point the <strong>com</strong>parison ends and cmp displays the byte and line number<br />
where the difference occurred. cmp numbers bytes and lines beginning with 1.<br />
Options<br />
-b<br />
-l<br />
-s<br />
-x<br />
EXAMPLE<br />
<strong>com</strong>pares single blocks at a time. Normally, cmp reads large buffers of data into memory for<br />
<strong>com</strong>parison.<br />
causes the <strong>com</strong>parison and display to continue to the end. cmp displays the byte number (in<br />
decimal) and the differing bytes (in octal) for each difference found. cmp attempts no<br />
resynchronization.<br />
suppresses output and returns a non-zero status if the files differ.<br />
displays the differing bytes shown by the -l option in hex.<br />
To determine if prog.exe and prog.<strong>com</strong> are instances of the same program (generated, for<br />
example, by exe2bin)<br />
361 of 457
cmp prog.exe prog.<strong>com</strong> 512<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
2<br />
3<br />
Messages<br />
The files were identical.<br />
The files were not identical.<br />
Failure due to invalid <strong>com</strong>mand line argument or option.<br />
Failure because of an error opening or reading an input file.<br />
EOF on filename<br />
cmp reached end-of-file on the specified file before reaching end-of-file on the other file.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003. The -b and -x options and the seek pointers<br />
are extensions to the POSIX standard.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
362 of 457
SEE ALSO<br />
Commands:<br />
<strong>com</strong>m, diff, uniq<br />
363 of 457
NAME<br />
cp — copy files<br />
SYNOPSIS<br />
cp [-acfimPpSv] file1 file2<br />
cp [-acfimPpSv] file ... directory<br />
cp -R [-acfimPpSv] source... directory<br />
cp -r [-acfimPpSv] source... directory<br />
DESCRIPTION<br />
cp<br />
cp copies files to a target named by the last argument on its <strong>com</strong>mand line. If the target is an<br />
existing file, cp overwrites it; if it does not exist, cp creates it. If the target file already exists and<br />
does not have write permission, cp denies access and continues with the next copy.<br />
If you specify more than two path names, the last path name (that is, the target) must be a<br />
directory. If the target is a directory, cp copies the sources into that directory with names given by<br />
the final <strong>com</strong>ponent of the source path name.<br />
Normally, the destination file has its file mode (see chmod) set to 777 (that is, readable, writable,<br />
and executable by everyone) and sets the file modification time to the present. The -m and -p<br />
options can override this behavior.<br />
If a file being copied is a sparse file and the file system to which it is being copied does not support<br />
sparse files, cp warns that the resulting file will be larger. If the -i option was also specified, cp<br />
asks you if want to expand the file or skip it. The -S option overrides this behavior and expands all<br />
sparse files automatically when copying.<br />
Options<br />
-a<br />
-c<br />
copies the DACLs associated with the specified file along with the file itself.<br />
This option is only available on NTFS file systems.<br />
364 of 457
-f<br />
-i<br />
-m<br />
-P<br />
-p<br />
-R<br />
-r<br />
-S<br />
-v<br />
prompts you to change the diskette if there is insufficient room to <strong>com</strong>plete a copy operation.<br />
The parent directories must already exist on the new target diskette. This option has no<br />
effect on systems without floppy drives.<br />
attempts to replace files that do not have write permission.<br />
asks you if you want to overwrite an existing file, whether or not the file is read-only.<br />
sets the modification time, access time, and file mode (see chmod) of each destination file to<br />
those of the corresponding source file. The <strong>com</strong>pression and archive bits of the file mode<br />
are handled separately. The <strong>com</strong>pression bit for each destination file is always unset, while<br />
the archive bit is always set.<br />
prevents the -m and -p options from copying the file mode (see chmod). This option always<br />
sets the archive bit on the copied file.<br />
The behavior of this option is identical to setting the TK_CP_NOPRESERVE environment<br />
variable.<br />
is similar to the -m option, but also sets the owner and group of each destination file to the<br />
owner and group of the corresponding source file. Unlike the -m option, the archive bit of all<br />
destination files is always unset.<br />
reproduces the source trees. cp copies all files and subdirectories specified by source....<br />
into directory, making careful arrangements to duplicate special files (FIFO, block special,<br />
character special).<br />
reproduces the source trees, but makes no allowances for special files (FIFO, block special,<br />
character special). Consequently, cp attempts to read from a device rather than duplicate<br />
the special file. This is similar to, but less useful than, the preferred -R.<br />
automatically expands sparse files. This lets you make a non-sparse copy of a sparse file.<br />
prints file names to standard output as they are being processed.<br />
365 of 457
ENVIRONMENT VARIABLES<br />
TK_CP_NOPRESERVE<br />
when set, this variable prevents the -m and -p options from copying the file mode (see<br />
chmod). This option always sets the archive bit on the copied file.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
2<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— an argument had a trailing slash (/) but was not a directory<br />
— unable to find a file<br />
— unable to open an input file for reading<br />
— unable to create or open an output file<br />
— a read error occurred on an input file<br />
— a write error occurred on an output file<br />
— the input and output files were the same file<br />
— encountered a fatal error when using -r or -R<br />
Possible fatal -r or -R errors include:<br />
— inability to access a file<br />
— inability to change permissions on a target file<br />
— inability to read a directory<br />
— inability to create a directory<br />
— a target that is not a directory<br />
— source and destination directories are the same<br />
Failure due to any of the following:<br />
— an invalid <strong>com</strong>mand line option<br />
— too few arguments on the <strong>com</strong>mand line<br />
— a target that should be a directory but is not<br />
— no space left on target device<br />
— out of memory to hold the data to be copied<br />
— inability to create a directory to hold a target file<br />
366 of 457
cannot allocate target string<br />
cp has no space to hold the name of the target file. Try to free up some memory to give cp<br />
more space.<br />
"name" is a directory (not copied)<br />
You did not specify -r or -R, but one of the names you asked to copy was the name of a<br />
directory.<br />
"target name"?<br />
You are attempting to copy a file with the -i option, but there is already a file with the target<br />
name. If you have specified -f, you can write over the existing file by typing y and pressing<br />
ENTER; if you do not want to write over the existing file, type n and press ENTER. If you did<br />
not specify -f and the file is read only, you are not given the opportunity to overwrite it.<br />
source "name" and target "name" are identical<br />
The source and the target are actually the same file (for example because of links, on UNIX<br />
and POSIX-<strong>com</strong>pliant systems). In this case, cp does nothing.<br />
unreadable directory "name"<br />
cp cannot read the specified directory, for example, because you do not have appropriate<br />
permissions.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -c, -f, -m, and -v options are extensions to the POSIX standard. On Windows systems, the<br />
-R and -r options are equivalent since special files (FIFO, block special, character special) are not<br />
supported on Windows file systems.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
367 of 457
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cat, chmod, ln, mv, rm<br />
368 of 457
NAME<br />
date — set and display date and time<br />
SYNOPSIS<br />
date [-ctu] [timespec]<br />
date [-cu] [+format]<br />
DESCRIPTION<br />
date -- Command, KornShell Built-in<br />
date either displays the operating system's idea of the current date and time or sets it to a new<br />
value. The following example shows the default format of the date:<br />
Options<br />
-c<br />
-t<br />
-u<br />
Wed Feb 26 14:01:43 EST 1998<br />
sets or displays the date and time according to Greenwich Mean Time (Coordinated<br />
Universal Time) using CUT as the time zone name.<br />
specifies that the BSD format is used when setting the date and time.<br />
sets or displays the date and time according to Greenwich Mean Time (Coordinated<br />
Universal Time) using GMT as the time zone name.<br />
Setting Date and Time<br />
date also accepts an argument in one of two forms. If the argument does not begin with +, date<br />
assumes it is a timespec to set the date and time. The timespec can have the form<br />
or<br />
[[mm]dd]hhmm[.ss]<br />
mmddhhmmyy[.ss]<br />
369 of 457
where mm is the optional number of the month (01-12), dd is the optional day of the month, hh is<br />
the hour in 24 hour format (required) mm is the minutes (required), yy is the optional last 2 digits of<br />
the year, and ss is the optional seconds.<br />
date uses these values to set the date and time.<br />
Note:<br />
You must specify the hours and the minutes; other arguments are optional. The year can be<br />
specified only if you have specified the month and day.<br />
The -t option allows you to use the BSD date format, which is:<br />
[[[[cc]yy]mm]dd]hhmm[.ss]<br />
where cc is the optional first 2 digits of the year.<br />
Displaying Date and Time<br />
If the argument to date begins with a + character, date uses format to display the date. date<br />
writes all characters in format, with the exception of the % and the character which immediately<br />
follows it, directly to the standard output. After date exhausts the format string, it outputs a newline<br />
character. The % character introduces a special format field similar to the printf() function in the<br />
C library (see Field Descriptors).<br />
Field Descriptors<br />
%A<br />
%a<br />
%B<br />
%b<br />
%C<br />
%c<br />
%D<br />
the full weekday name in the current locale (for example, Sunday, in the POSIX locale).<br />
the abbreviation for the weekday in the current locale (for example, Sun, in the POSIX<br />
locale).<br />
the full month name in the current locale (for example, February, in the POSIX locale).<br />
the abbreviation for the month name in the current locale (for example, Feb, in the POSIX<br />
locale).<br />
the first two digits of the year (19 or 20).<br />
the appropriate representation of the date and time in the current locale.<br />
the date in the form mm/dd/yy.<br />
370 of 457
%d<br />
%e<br />
%H<br />
%h<br />
%I<br />
%j<br />
%M<br />
%m<br />
%n<br />
%p<br />
%R<br />
%r<br />
%S<br />
%T<br />
%t<br />
%U<br />
%u<br />
%V<br />
%W<br />
%w<br />
the two-digit day of the month as a number (01 to 31).<br />
the day of the month in a two-digit, right-justified, blank-filled field ( 1 to 31).<br />
the hour in the 24-hour clock representation (00 to 23).<br />
the same as %b.<br />
the hour in the 12-hour clock representation (01 to 12).<br />
the numeric day of the year (001 to 366).<br />
the minute (00 to 59).<br />
the month number (01 to 12).<br />
a newline character.<br />
the equivalent of AM or PM in the current locale.<br />
the 24-hour time (for example, 14:53).<br />
the 12-hour time in the current locale's equivalent of AM/PM notation (for example, 11:53:29<br />
AM in the POSIX locale).<br />
the seconds (00 to 61). Note that there is an allowance for two leap seconds.<br />
the 24-hour time (for example, 14:53:29).<br />
a tab character.<br />
the week number in the year, with Sunday being the first day of the week (00 to 53). All days<br />
before the first Sunday of the new year are in week 0.<br />
the weekday number with Monday being 1 and Sunday being 7.<br />
the week number in the year, with Monday being the first day of the week (01 to 53). If the<br />
week containing January 1 has four or more days in the new year, it is week 1 of the new<br />
year; otherwise it is week 53 of the previous year.<br />
the week number in the year, with Monday being the first day of the week (00 to 53). All<br />
days before the first Monday of the new year are in week 0.<br />
the weekday number, with Sunday being 0 and Saturday being 6.<br />
371 of 457
%X<br />
%x<br />
%Y<br />
%y<br />
%Z<br />
%z<br />
%%<br />
the appropriate time representation in the current locale.<br />
the appropriate date representation in the current locale.<br />
the four-digit number of the year (for example, 1998).<br />
the two-digit year (offset from %C).<br />
the time zone name (for example, EDT).<br />
equivalent to %Z.<br />
a percent-sign character.<br />
The date <strong>com</strong>mand also supports the following modified field descriptors to indicate a different<br />
format as specified by the locale indicated by LC_TIME. If the current locale does not support a<br />
modified descriptor, date uses the unmodified field descriptor value.<br />
%EC<br />
%Ec<br />
%EX<br />
%Ex<br />
%EY<br />
%Ey<br />
%Od<br />
%Oe<br />
%OH<br />
%OI<br />
%OM<br />
%Om<br />
the name of the base year (period) in the current locale's alternate representation.<br />
the current locale's alternate date and time representation.<br />
the current locale's alternate time representation.<br />
the current locale's alternate date representation.<br />
the full alternate year representation.<br />
the offset from %EC (year only) in the current locale's alternate representation.<br />
the day of month using the current locale's alternate numeric symbols.<br />
the day of month using the current locale's alternate numeric symbols in a two-character,<br />
right-justified, blank-filled field.<br />
the hour (24-hour clock) using the current locale's alternate numeric symbols.<br />
the hour (12-hour clock) using the current locale's alternate numeric symbols.<br />
the minutes using the current locale's alternate numeric symbols.<br />
the month using the current locale's alternate numeric symbols.<br />
372 of 457
%OS<br />
%OU<br />
%Ou<br />
%OV<br />
%OW<br />
%Ow<br />
%Oy<br />
the seconds using the current locale's alternate numeric symbols.<br />
the week number of the year (with Sunday as the first day of the week) using the current<br />
locale's alternate numeric symbols.<br />
the weekday number using the current locale's alternate numeric symbols with Monday<br />
being 1 and Sunday being 7.<br />
the week number in the year using the current locale's alternate numeric symbols, with<br />
Monday being the first day of the week. If the week containing January 1 has four or more<br />
days in the new year, it is week 1 of the new year; otherwise it is week 53 of the previous<br />
year.<br />
the week number of the year (with Monday as the first day of the week) using the current<br />
locale's alternate numeric symbols.<br />
the weekday as a number using the current locale's alternate numeric symbols with Sunday<br />
being 0 and Saturday being 6.<br />
the year (offset from %C) using the current locale's alternate numeric symbols.<br />
EXAMPLES<br />
The <strong>com</strong>mand<br />
date '+%a %b %e %T %Z %Y'<br />
produces the date in the default format. For example,<br />
Wed Feb 26 14:01:43 EST 1998<br />
ENVIRONMENT VARIABLES<br />
TZ<br />
gives the time zone for date to use when displaying the times. This is ignored if you specify<br />
either the -c or the -u option. For more information on this variable, see timezone.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
373 of 457
0<br />
1<br />
2<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— a bad date conversion<br />
— a formatted date that was too long<br />
— you do not have permission to set the date<br />
Usage error, including:<br />
— an invalid <strong>com</strong>mand line option<br />
— too many arguments on the <strong>com</strong>mand line<br />
Possible error messages include:<br />
Bad date conversion: "string"<br />
The date and/or time specified on the <strong>com</strong>mand line had an invalid format (for example, if<br />
the hour is greater than 24).<br />
Bad format character x<br />
A character following % in the format string was not in the list of field descriptors.<br />
No permission to set date<br />
The system has denied you the right to set the date.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -c option, the -t option, and the %z format specifier are extensions to both the POSIX and<br />
x/OPEN standards. The %R format specifier is an x/OPEN extension to the POSIX standard.<br />
On Windows NT/2000/XP/2003, you can specify the current locale using the Regional Settings<br />
item of the Control Panel.<br />
NOTES<br />
date is provided as both an external utility and a built-in MKS KornShell utility.<br />
374 of 457
On machines that have a time-of-day clock with battery backup, using date does not necessarily<br />
change this real-time clock. There is probably an operating system-specific <strong>com</strong>mand to achieve<br />
this.<br />
The date <strong>com</strong>mand supplied with MKS Toolkit should not be confused with the date <strong>com</strong>mand<br />
internal to the native <strong>com</strong>mand interpreters on Windows systems (that is, <strong>com</strong>mand.<strong>com</strong> and<br />
cmd.exe).<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
sh, touch<br />
Miscellaneous:<br />
timezone<br />
375 of 457
NAME<br />
diff, diffh, bdiff, vdiff32<br />
diff, diffh, bdiff, vdiff32 — <strong>com</strong>pare two text files and show differences<br />
SYNOPSIS<br />
diff [-BbefHhimnrsw] [-C n] [-c[n]] [-Difname] [-Mmark] [-U[b|B|l|L]] path1 path2<br />
diff [-BbefHhimnrsw] [-C n] [-c[n]] [-Difname] [-Mmark] [-U[b|B|l|L]] file... dir<br />
diffh [-Bbefimnrsw] [-C n] [-c[n]] [-Difname] [-Mmark] [-U[b|B|l|L]] path1 path2<br />
diffh [-Bbefimnrsw] [-C n] [-c[n]] [-Difname] [-Mmark] [-U[b|B|l|L]] file... dir<br />
bdiff [-Bbefimnrsw] [-C n] [-c[n]] [-Difname] [-Mmark] [-U[b|B|l|L]] path1 path2 [n]<br />
bdiff [-Bbefimnrsw] [-C n] [-c[n]] [-Difname] [-Mmark] [-U[b|B|l|L]] file... dir [n]<br />
vdiff32<br />
DESCRIPTION<br />
The diff <strong>com</strong>mand attempts to determine the minimal set of changes needed either to convert a<br />
file named path1 into path2 or the group of files indicated by file... into files of the same name<br />
found under the directory dir. Besides normal text files, diff also works on 16-bit Unicode files.<br />
Such files normally begin with a two-byte marker indicating whether the file's Unicode characters<br />
are big-endian or little-endian.<br />
If either (but only one) file name is -, diff reads that file from the standard input. If only two path<br />
names appear on the <strong>com</strong>mand line and one of path1 or path2 is a directory, diff uses a file in<br />
that directory with the same name as the other file name. If both are directories, diff <strong>com</strong>pares<br />
files with the same file names under the two directories. However, diff does not <strong>com</strong>pare files in<br />
subdirectories unless you specify the -r option. When <strong>com</strong>paring two directories, diff does not<br />
<strong>com</strong>pare block special files, character special files, or FIFO special files to any other files and does<br />
not <strong>com</strong>pare regular files to directories.<br />
If more than two path names appear on the <strong>com</strong>mand line, the last path name is assumed to be a<br />
directory and the preceding path names to be files. diff then <strong>com</strong>pares each file in the list to a file<br />
with the name under the specified directory.<br />
By default, output consists of descriptions of the changes in a style reminiscent of the ed text<br />
editor. A line indicating the type of change is given. The three types are a (append), d (delete), and<br />
c (change). The output is symmetric in the sense that a delete in path1 is the counterpart of an<br />
append in path2. diff prefixes each operation with a line number (or range) in path1 and suffixes<br />
376 of 457
each with a line number (or range) in path2. After the line giving the type of change, diff displays<br />
the deleted or added lines, prefixing lines from path1 with < and lines from path2 with >.<br />
When you call the <strong>com</strong>mand as diffh, it automatically uses the -h option.<br />
When you call it as bdiff, diff <strong>com</strong>putes the differences in chunks of n lines (default 3999). This<br />
lets you process arbitrarily large files and generally produces less output than the -h option.<br />
The vdiff32 <strong>com</strong>mand is a graphical version of diff, giving you the ability to <strong>com</strong>pare and view<br />
files from a graphical user interface. Complete instructions on using vdiff32 are available<br />
through its online help feature.<br />
Options<br />
-B<br />
-b<br />
-C n<br />
-c[n]<br />
uses diffb to <strong>com</strong>pare the files when binary files are detected.<br />
ignores white space at the end of each line (except the newline) and treats all consecutive<br />
strings of white space elsewhere in a line as equivalent (effectively, reducing all strings of<br />
white space to a single space for the purpose of <strong>com</strong>paring lines). For example if one file<br />
contained a string of three spaces and a tab at a given location while the other file contained<br />
a string of two spaces at the same location, diff would not report this as a difference.<br />
shows n lines of context before and after each change. diff marks lines removed from<br />
path1 with -, lines added to path2 with + and lines changed in both files with !. This option<br />
conflicts with the -e and -f options.<br />
is equivalent to -C n, but n is optional. The default value for n is 3. This option conflicts with<br />
the -e and -f options.<br />
-Difname<br />
displays output that is the appropriate input to the C preprocessor to generate the contents<br />
of path2 when ifname is defined, and the contents of path1 when ifname is not defined.<br />
-e<br />
-f<br />
writes out a script of <strong>com</strong>mands for the ed text editor that converts path1 to path2. diff<br />
sends the output to the standard output. This option conflicts with the -m, -c, and -C<br />
options.<br />
377 of 457
-H<br />
-h<br />
-i<br />
writes a script similar to the one produced under -e to the standard output, but with the<br />
<strong>com</strong>mand sequence reversed, the <strong>com</strong>mand form reversed, and the line-range separator a<br />
space, rather than a <strong>com</strong>ma. This option conflicts with the -m, -c, and -C options.<br />
uses the half-hearted (-h) algorithm only if the normal algorithm runs out of system<br />
resources.<br />
uses a fast, half-hearted algorithm instead of the normal diff algorithm. This algorithm can<br />
handle arbitrarily large files; however, it is not particularly good at finding a minimal set of<br />
differences in files with many differences.<br />
ignores the case of letters when doing the <strong>com</strong>parison.<br />
-Mmark<br />
describes the diff mark to be used in place of the vertical line character (|) when the -m<br />
option is also specified. mark can be any nroff/troff character or string. It can be as<br />
simple or <strong>com</strong>plex as you like. For example, specifying mark as 1 causes the diff mark to be<br />
the character 1. Specifying \(sq causes it to be an open square and specifying<br />
\s+6\fB\d~\u\fP\s0 causes the diff mark to be a bold-faced tilde (~) six points larger in<br />
size half a line below the current line.<br />
-m<br />
-n<br />
-r<br />
This option does not change the character used to indicate deleted lines. It remains the<br />
asterisk(*).<br />
produces the contents of path2 with extra formatter request lines interspersed to show which<br />
lines were added or changed and which were deleted.<br />
If you do not also specify the -M option, added, or changed lines are indicated by a vertical<br />
line character | in the right margin. If you do specify the -M option, diff uses the<br />
nroff/troff string given as mark to indicated additions or changes. Deleted lines are<br />
always indicated with an asterisk (*) in the right margin.<br />
These are nroff/ troff requests. This option conflicts with the -e and -f options.<br />
displays the differences in a form that is usable by MKS Source Integrity.<br />
<strong>com</strong>pares corresponding files under the directories, and recursively <strong>com</strong>pares<br />
378 of 457
-s<br />
corresponding files under corresponding subdirectories. You can use this option when you<br />
specify two directory names on the <strong>com</strong>mand line.<br />
<strong>com</strong>pares two directories, file by file, and prints messages for identical files between the two<br />
directories.<br />
-U[b|B|l|L]<br />
forces the specified files to be treated as Unicode files.<br />
-w<br />
By default, diff assumes that Unicode characters are little-endian. If a byte-order marker is<br />
present, that is used to determine the byte order for the characters. You can force Unicode<br />
characters to be treated as big-endian by specifying -Ub or -UB. Similarly, you can force<br />
them to be treated as little-endian by specifying -Ul or -UL.<br />
ignores white space (not including newlines) when making the <strong>com</strong>parison. For example,<br />
the following two lines are equivalent:<br />
a b c d<br />
abcd<br />
EXAMPLES<br />
The following example illustrates the output of the diff <strong>com</strong>mand. The following two files, price1<br />
and price2, are <strong>com</strong>pared with and without the use of the -c option.<br />
The contents of price1 are as follows:<br />
Company X Price List:<br />
$ 0.39 -- Package of Groat Clusters<br />
$ 5.00 -- Candy Apple Sampler Pack<br />
$ 12.00 -- Box of Crunchy Frog Chocolates<br />
$ 15.99 -- Instant Rain (Just Add Water)<br />
$ 20.00 -- Asparagus Firmness Meter<br />
$ 25.00 -- Package of Seeds for 35 Herbs<br />
$ 30.00 -- Child's Riding Hood (Red)<br />
$ 35.00 -- Genuine Placebos<br />
$ 45.00 -- Case of Simulated Soy Bean Oil<br />
$ 75.88 -- No-Name Contact Lenses<br />
$ 99.99 -- Kiddie Destructo-Bot<br />
$125.00 -- Emperor's New Clothes<br />
379 of 457
The contents of price2 are as follows:<br />
Company X Price List:<br />
$ 0.39 -- Package of Groat Clusters<br />
$ 5.49 -- Candy Apple Sampler Pack<br />
$ 12.00 -- Box of Crunchy Frog Chocolates<br />
$ 15.99 -- Instant Rain (Just Add Water)<br />
$ 17.00 -- Simulated Naugahyde Cleaner<br />
$ 20.00 -- Asparagus Firmness Meter<br />
$ 25.00 -- Package of Seeds for 35 Herbs<br />
$ 30.00 -- Child's Riding Hood (Red)<br />
$ 35.00 -- Genuine Placebos<br />
$ 45.00 -- Case of Simulated Soy Bean Oil<br />
$ 75.88 -- No-Name Contact Lenses<br />
$ 99.99 -- Kiddie Destructo-Bot<br />
The <strong>com</strong>mand<br />
diff price1 price2<br />
results in the following output:<br />
4c4<br />
< $ 5.00 -- Candy Apple Sampler Pack<br />
---<br />
> $ 5.49 -- Candy Apple Sampler Pack<br />
6a7<br />
> $ 17.00 -- Simulated Naugahyde Cleaner<br />
14d14<br />
< $125.00 -- Emperor's New Clothes<br />
The addition of the -c option, as in<br />
diff -c price1 price2<br />
results in the following output:<br />
*** price1 Wed Mar 04 10:08:40 1992<br />
--- price2 Wed Mar 04 10:09:10 1992<br />
***************<br />
*** 1,9 ****<br />
Company X Price List:<br />
$ 0.39 -- Package of Groat Clusters<br />
380 of 457
! $ 5.00 -- Candy Apple Sampler Pack<br />
$ 12.00 -- Box of Crunchy Frog Chocolates<br />
$ 15.99 -- Instant Rain (Just Add Water)<br />
$ 20.00 -- Asparagus Firmness Meter<br />
$ 25.00 -- Package of Seeds for 35 Herbs<br />
$ 30.00 -- Child's Riding Hood (Red)<br />
--- 1,10 ----<br />
Company X Price List:<br />
$ 0.39 -- Package of Groat Clusters<br />
! $ 5.49 -- Candy Apple Sampler Pack<br />
$ 12.00 -- Box of Crunchy Frog Chocolates<br />
$ 15.99 -- Instant Rain (Just Add Water)<br />
+ $ 17.00 -- Simulated Naugahyde cleaner<br />
$ 20.00 -- Asparagus Firmness Meter<br />
$ 25.00 -- Package of Seeds for 35 Herbs<br />
$ 30.00 -- Child's Riding Hood (Red)<br />
***************<br />
*** 11,14 ****<br />
$ 45.00 -- Case of Simulated Soy Bean Oil<br />
$ 75.88 -- No-Name Contact Lenses<br />
$ 99.99 -- Kiddie Destructo-Bot<br />
- $125.00 -- Emperor's New Clothes<br />
--- 12,14 ----<br />
diff -c marks lines removed from price1 with -, lines added to price1 with + and lines<br />
changed in both files with !. In the example, diff shows the default 3 lines of context around<br />
each changed line. One line was changed in both files (marked with !), one line was added to<br />
price1 (marked with +), and one line was removed from price1 (marked with -).<br />
Note:<br />
If there are no marks to be shown in the corresponding lines of the file being <strong>com</strong>pared, the<br />
lines are not displayed. Lines 12 to 14 of price2 are suppressed for this reason.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
No differences between the files <strong>com</strong>pared.<br />
diff <strong>com</strong>pared the files and found them to be different.<br />
381 of 457
2<br />
4<br />
Messages<br />
Failure due to any of the following:<br />
— invalid <strong>com</strong>mand line argument<br />
— cannot open one of the input files<br />
— out of memory<br />
— read error on one of the input files<br />
— more than LINE_MAX characters between newlines<br />
At least one of the files is a binary file containing embedded NUL (\0) bytes.<br />
file "filename": no such file or directory<br />
The specified filename does not exist. filename was either typed explicitly, or generated by<br />
diff from the directory of one file argument and the base name of the other.<br />
Files file1 and file2 are identical<br />
The -s option was specified and the two named files are identical.<br />
Common subdirectories: name and name<br />
This message appears when diff is <strong>com</strong>paring the contents of directories, but you have<br />
not specified -r. When diff discovers two subdirectories with the same name, it reports<br />
that the directories exist, but it does not try to <strong>com</strong>pare the contents of the two directories.<br />
Insufficient memory (try diff -h)<br />
diff ran out of memory for generating the data structures used in the file differencing<br />
algorithm (see LIMITS). The -h option of diff can handle any size of file without running<br />
out of memory.<br />
Internal error--cannot create temporary file<br />
diff was unable to create a working file that it needed. Ensure that you either have a /tmp<br />
directory or that the environment contains a variable TMPDIR that names a directory where<br />
diff may store temporary files. Also, ensure that there is sufficient file space in this<br />
directory.<br />
Missing #ifdef symbol after -D<br />
You did not specify a conditional label on the <strong>com</strong>mand line after the -D option.<br />
Only one file may be "-"<br />
Of the two input files normally found on the <strong>com</strong>mand line of diff, only one can be the<br />
standard input.<br />
382 of 457
Too many lines in "filename"<br />
A file of more than the maximum number of lines (see LIMITS) was given to diff.<br />
LIMITS<br />
The longest input line is 8192 on Windows and most UNIX systems. -h, files are limited to<br />
INT_MAX lines.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -D, -H, -h, -i, -m, -n, -s, and -w options; the n argument to the -c option; and the diffh<br />
and bdiff versions of the <strong>com</strong>mand are extensions to the POSIX and x/OPEN standard. The -f<br />
option is an x/OPEN extension to the POSIX standard.<br />
AVAILABILITY<br />
The diff, bdiff, and diffh utilities are available with the following products:<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
The vdiff32 utility is only available with the following products:<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
383 of 457
SEE ALSO<br />
Commands:<br />
cmp, <strong>com</strong>m, diff3, diffb, dircmp, patch<br />
384 of 457
NAME<br />
diffb<br />
diffb — <strong>com</strong>pare binary files and show differences<br />
SYNOPSIS<br />
diffb [-n] [-C n] [-c[n]] file1 file2<br />
DESCRIPTION<br />
The diffb utility indicates which bytes differ in the binary files file1 and file2. Output consists of<br />
descriptions of the changes in a style reminiscent of the ed text editor. Each description is headed<br />
by a line showing the type of change being performed. This line contains three pieces of<br />
information:<br />
● the location of the range of bytes in file1 affected by the change, represented as an offset<br />
from the beginning of the file;<br />
● the type of change: one of a (append), d (delete), and c (change);<br />
● the location of the range of bytes in file2 affected by the change.<br />
After the line giving the type of change, the deleted or added bytes are displayed. Non-printable<br />
bytes are represented by an escape sequence consisting of a backslash character (\), followed by<br />
the ASCII representation of the byte displayed as a three-digit octal number.<br />
The output of diffb resembles the output of diff, except that differences are ranges of bytes<br />
rather than ranges of lines. Each displayed set of bytes from file1 is prefixed by , and a > appears at the start of each new line in a set of<br />
bytes. If bytes from both file1 and file2 are being displayed, a line consisting of --- separates the<br />
two sets of bytes.<br />
Options<br />
-C n<br />
-c[n]<br />
-n<br />
is equivalent to -c n.<br />
displays n bytes of context before and after each difference. The default value for n is 3.<br />
displays the differences in a form usable by MKS Source Integrity.<br />
385 of 457
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
2<br />
LIMITS<br />
The files were identical.<br />
The files were <strong>com</strong>pared successfully and found to be different.<br />
Failure due to any of the following:<br />
— the inability to open an input file<br />
— a syntax error on the <strong>com</strong>mand line<br />
— the wrong number of arguments on the <strong>com</strong>mand line<br />
The set of differences produced by diffb is correct but may not be minimal.<br />
PORTABILITY<br />
Windows Me. Windows NT 4.0. Windows 2000. Windows XP. Windows Server 2003.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
386 of 457
diff<br />
387 of 457
NAME<br />
echo — display arguments<br />
SYNOPSIS<br />
echo argument...<br />
DESCRIPTION<br />
echo -- Command, KornShell Built-in<br />
echo writes its arguments to the standard output. echo accepts these C-style escape sequences:<br />
\a<br />
bell<br />
\b<br />
backspace<br />
\c<br />
removes any following characters including \n and \r<br />
\e<br />
escape character<br />
\E<br />
escape character<br />
\f<br />
formfeed<br />
\n<br />
newline<br />
\r<br />
carriage return<br />
\t<br />
horizontal tab<br />
\v<br />
vertical tab<br />
\xHH<br />
the character whose hexadecimal value is HH (on or two hex digits).<br />
\0num<br />
the byte with the numeric value specified by the zero to three digit octal num<br />
\\<br />
backslash<br />
echo follows the final argument with a newline unless it finds \c in the arguments. Arguments are<br />
388 of 457
subject to standard argument manipulation.<br />
Because echo interprets backslashes as the beginning of an escape sequence and path names<br />
can contain backslashes, echo can produce unusual results when attempting to display the value<br />
of PATH or any string may contain path names. To display such strings properly, you should use<br />
print -r instead of echo.<br />
EXAMPLES<br />
One use of echo is to expand file names on the <strong>com</strong>mand line, as in:<br />
echo *.[ch]<br />
This displays the names of all files with names ending in .c or .h, typically C source and header<br />
files. echo displays the names on a single line. If there are no file names in the current directory<br />
that end in .c or .h, echo simply displays the string *.[ch].<br />
echo is also handy for passing small amounts of input to other filters:<br />
echo 'this is\nreal handy' | banner<br />
DIAGNOSTICS<br />
echo always returns the status value:<br />
0<br />
Successful <strong>com</strong>pletion.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. UNIX System V. Windows Me. Windows NT 4.0. Windows<br />
2000. Windows XP. Windows Server 2003.<br />
The POSIX.2 standard does not include the escape sequences, so a strictly conforming application<br />
cannot use them. printf is suggested as a replacement.<br />
On older UNIX systems, the backslash escape sequences are not available; the -n option is<br />
equivalent to \c embedded in an argument.<br />
NOTE<br />
389 of 457
echo is provided as both an external utility and a built-in MKS KornShell utility. The echo<br />
<strong>com</strong>mand provided with MKS Toolkit should not be confused with the echo <strong>com</strong>mand provided<br />
with Windows.<br />
To gain access to this <strong>com</strong>mand on Windows systems, outside the MKS KornShell, do one of the<br />
following:<br />
● call echo with its full path name (usually, $ROOTDIR/mksnt/echo.exe)<br />
● copy echo.exe to another file name to avoid a clash with the built-in <strong>com</strong>mand<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
print, sh<br />
390 of 457
ident<br />
look for keywords in a file<br />
SYNOPSIS<br />
ident [-q] [-Ffile]... [file ...]<br />
DESCRIPTION<br />
ident searches the named files (or the standard input if you do not specify any files) for all<br />
occurrences of the pattern $keyword:...$, where keyword is one of the following MKS Source<br />
Integrity keywords:<br />
$Author$<br />
$Date$<br />
$Header$<br />
$Id$<br />
$Locker$<br />
$Log$<br />
$Name$<br />
$ProjectName$<br />
$ProjectRevision$<br />
$RCSfile$<br />
$Revision$<br />
$Source$<br />
$State$<br />
ident works on any file, but the file must have been checked out with keyword expansion turned<br />
on for the results to be meaningful.<br />
The ident <strong>com</strong>mand works on object files and dumps as well as text files. For example, if the C<br />
program in file f.c contains<br />
char rcsid[] = "$Header$";<br />
and f.c is <strong>com</strong>piled into f.o, the <strong>com</strong>mand<br />
displays<br />
ident f.c f.o<br />
391 of 457
f.c:<br />
f.o:<br />
Options<br />
-Ffile<br />
-q<br />
$Header$<br />
$Header$<br />
provides an alternate way to specify file names. The given file is a text file containing a list of<br />
file names, one file name per line. ident checks all the files named in file, using the options<br />
specified on the <strong>com</strong>mand line. Multiple -F options may be specified on the <strong>com</strong>mand line,<br />
and can either be grouped together or interspersed between options.<br />
suppresses the warning given if there are no keywords in a file.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
Successful <strong>com</strong>pletion.<br />
Failure due to an invalid <strong>com</strong>mand line argument, or inability to open input file.<br />
392 of 457
NAME<br />
more<br />
more, less — display files on a page-by-page basis<br />
SYNOPSIS<br />
more [-ceiSs] [-A|-u] [-n number] [-P prompt] [-p <strong>com</strong>mand] [-t tag] [-U[b|B|l|L]] [file ...]<br />
more [-ceiSs] [-A|-u] [-n number] [-P prompt] [-t tag] [+<strong>com</strong>mand] [-U[b|B|l|L]] [file ...]<br />
less [-ceiSs] [-A|-u] [-n number] [-P prompt] [-p <strong>com</strong>mand] [-t tag] [-U[b|B|l|L]] [file ...]<br />
less [-ceiSs] [-A|-u] [-n number] [-P prompt] [-t tag] [+<strong>com</strong>mand] [-U[b|B|l|L]] [file ...]<br />
DESCRIPTION<br />
The more <strong>com</strong>mand displays files one page at a time. It obtains the number of lines per page from<br />
the environment or from the -n option. If the standard output is not a terminal device, the number<br />
of lines per page is infinite. The less <strong>com</strong>mand is identical to the more <strong>com</strong>mand.<br />
If more than one file is specified, they are displayed one at a time. When more finishes displaying<br />
one file, it begins displaying the next one in the list. If you give - as one of the file names, more<br />
reads the standard input at that point in the sequence.<br />
Besides normal text files, more also works on 16-bit Unicode files. Such files normally begin with a<br />
two-byte marker indicating whether the file's Unicode characters are big-endian or little-endian.<br />
more allows paging forwards and backwards (if possible) and searching for strings.<br />
Options<br />
-A<br />
-c<br />
causes the display of all characters, including unprintable ones. Normally unprintable<br />
characters are displayed in a printable format. Further, ANSI escape sequences for display<br />
modes are processed. This option cannot be used with -u.<br />
Note:<br />
The character in the top left corner of the screen always appears in normal mode.<br />
clears the screen before displaying a new file. If at any time, the new screen to be displayed<br />
393 of 457
-e<br />
-i<br />
does not have any lines in <strong>com</strong>mon with the current screen, more does not scroll, but<br />
instead, redraws the screen one line at a time, starting from the top. more may ignore this<br />
option if the terminal does not support such operations.<br />
exits immediately after displaying the last line of the last file. Normally, if standard output is a<br />
terminal device, more stops after displaying the last line of the last file and prompts for a<br />
new <strong>com</strong>mand. If the <strong>com</strong>mand that displays text causes more to reach the end of the file<br />
again, more exits.<br />
ignores case during searches.<br />
-n number<br />
specifies the number of lines per page. This overrides any values obtained from the<br />
environment.<br />
-P string<br />
sets the prompt that appears at end of each page of text to string. The default prompt is<br />
[filename]. more normally displays the prompt in STANDOUT mode.<br />
-p <strong>com</strong>mand<br />
+<strong>com</strong>mand<br />
initially executes the more <strong>com</strong>mand on each file. If it executes successfully and <strong>com</strong>mand<br />
is a positioning <strong>com</strong>mand such as a line number or a regular expression search, more<br />
displays the resulting page; otherwise more displays the first page of the file. If both the -t<br />
and -p options are specified, the -t option is processed first.<br />
-S<br />
-s<br />
displays the prompt in normal mode rather than STANDOUT mode.<br />
replaces consecutive empty lines with a single empty line. Remember that all line numbers<br />
(for example, as specified with the p) will refer to the lines in the new file (that is, the file with<br />
the consecutive empty lines replaced).<br />
-t tag<br />
searches for the named tag and displays the page of text containing it. See ctags for more<br />
information.<br />
-U[b|B|l|L]<br />
forces the specified files to be treated as Unicode files.<br />
394 of 457
-u<br />
By default, more assumes that Unicode characters are little-endian. If a byte-order marker is<br />
present, that is used to determine the byte order for the characters. You can force Unicode<br />
characters to be treated as big-endian by specifying -Ub or -UB. Similarly, you can force<br />
them to be treated as little-endian by specifying -Ul or -UL.<br />
displays all backspaces as ^H. Normally characterbackspace_(underscore) displays<br />
character as underlined and characterbackspacecharacter displays character as boldfaced.<br />
-u also displays all carriage returns as ^M. This option cannot be used with -A.<br />
Interactive Commands<br />
more also accepts the following interactive <strong>com</strong>mands.<br />
[n]b<br />
[n]CTRL-B<br />
[n]PgUp<br />
moves backward n lines, with a default of one page. If n is more than the page size, more<br />
displays only the final page.<br />
[n]d<br />
[n]CTRL-D<br />
scrolls forward n lines, with a default of one half of the page size. If you specify n, it<br />
be<strong>com</strong>es the new default for subsequent d and u <strong>com</strong>mands.<br />
[n]f<br />
[n]CTRL-F<br />
[n]PgDn<br />
moves forward n lines, with a default of one page. At end-of-file, more continues with the<br />
next file in the list, or exits if the current file is the last one in the list.<br />
[n]G<br />
[n]g<br />
h<br />
[n]j<br />
[n]SPACE<br />
[n]ENTER<br />
goes to the nth line in the file. If you do not specify n, more advances to the end of the file.<br />
goes to the nth line in the file, with the default being the first line of the file.<br />
displays a summary of interactive <strong>com</strong>mands.<br />
395 of 457
[n]•<br />
[n]k<br />
[n]•<br />
scrolls forward n lines, with a default of one line for j, ENTER and •, and a default of one<br />
page for SPACE. This <strong>com</strong>mand displays the entire n lines even if n is more than the page<br />
size. At end-of-file, these <strong>com</strong>mands cause more to begin displaying the next file in the list,<br />
or to exit if the current file is the last one in the list.<br />
scrolls backward n lines, with a default of one line. This <strong>com</strong>mand displays the entire n lines<br />
even if n is more than the page size.<br />
mletter<br />
marks the current position with the lowercase letter. When you view a new file, all previous<br />
marks are lost.<br />
[n]N<br />
[n]n<br />
q<br />
:q<br />
ZZ<br />
R<br />
repeats the previous search, but in the opposite direction. If you specify n, more repeats the<br />
search n times.<br />
repeats the previous search. If you specify n, more repeats the search n times.<br />
For example, if there are eight occurrences of pattern in the file and /pattern found the<br />
second occurrence, a follow-up <strong>com</strong>mand of 5n finds and sets the current position to the 7th<br />
occurrence of pattern.<br />
exits more.<br />
refreshes the screen and discards any buffered input.<br />
r<br />
CTRL-L<br />
refreshes the screen.<br />
[n]s<br />
skips forward n lines (with a default of one line) and displays one page beginning at that<br />
point. If n would cause less than a full page to be displayed, more displays the last page in<br />
the file.<br />
396 of 457
[n]u<br />
[n]CTRL-U<br />
scrolls backward n lines, with a default of one half of the page size. If you specify n, it<br />
be<strong>com</strong>es the new default for subsequent d and u <strong>com</strong>mands.<br />
v<br />
invokes an editor to edit the current file. more uses the editor named by the environment<br />
variable EDITOR. The default editor is vi.<br />
'letter<br />
returns to the position marked with letter.<br />
''<br />
returns to the position where you last issued a movement <strong>com</strong>mand of greater than one<br />
page or the beginning of the file if you have issued no such <strong>com</strong>mands.<br />
:e [filename]ENTER<br />
stops viewing the current file and views filename instead. If you do not specify filename,<br />
more returns to the beginning of the current file. If filename is #, more returns to the last file<br />
viewed before the current one.<br />
[n]:n<br />
[n]:p<br />
views the next file from the list given on the <strong>com</strong>mand line. If you specify n, more views the<br />
nth next file from the list.<br />
views the previous file from the list given in the <strong>com</strong>mand line. If you specify n, more views<br />
the nth previous file from the list.<br />
:t tagname<br />
goes to tagname (see ctags).<br />
:w filename<br />
writes the contents of the current file to the file filename.<br />
!sh_cmd<br />
escapes to shell and executes sh_cmd as a shell <strong>com</strong>mand.<br />
=<br />
CTRL-G<br />
displays, where possible, the name of the file currently being viewed, its number (relative to<br />
the total number of files specified in the <strong>com</strong>mand line), the current line number, the current<br />
byte number, the total bytes to display and what percentage of the file has been displayed.<br />
397 of 457
[n]/[!]pattern<br />
searches forward in the file for the nth line containing pattern. n defaults to one if not<br />
specified. If pattern is the null regular expression (/), more uses the previous pattern. If the<br />
character ! precedes pattern, more searches for lines that do not contain pattern.<br />
[n]?[!]pattern<br />
searches backward in the file for the nth line containing pattern. The search begins at the<br />
line immediately before the top line displayed. n defaults to one if not specified. If pattern is<br />
the null regular expression (?), more uses the previous pattern. If the character ! precedes<br />
pattern, more searches for lines that do not contain pattern.<br />
HOME<br />
END<br />
goes to the first line in the file.<br />
goes to the last line in the file.<br />
ENVIRONMENT VARIABLES<br />
COLUMNS<br />
contains the maximum number of columns to display on one line.<br />
EDITOR<br />
contains the name of the editor that the v <strong>com</strong>mand invokes.<br />
LINES<br />
contains the number of lines in a page. This value takes precedence over the value provided<br />
by TERM; however, the -n value takes precedence over the LINES value.<br />
MORE<br />
contains a list of options (from those listed in the Options section) as they would appear on<br />
the <strong>com</strong>mand line. This variable takes preference over the TERM and LINES variables.<br />
TERM<br />
contains the name of the terminal type.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
398 of 457
0<br />
>0<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
PORTABILITY<br />
— filename not a text file<br />
— -n option too large<br />
— syntax error in regular expression<br />
— inability to create a file<br />
— inability to open input file<br />
— insufficient memory<br />
— invalid <strong>com</strong>mand<br />
— inability to access the terminal<br />
— missing string after -p option<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -A, -P and -S options, and the :w and ! <strong>com</strong>mands are extensions to the POSIX standard.<br />
The HOME, END, PgDn, PgUp, • and • <strong>com</strong>mands are extensions to traditional implementations of<br />
more, available only on terminal types that support these keys.<br />
NOTE<br />
The MKS more <strong>com</strong>mand should not be confused with any more <strong>com</strong>mands supplied with your<br />
operating system.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
399 of 457
SEE ALSO<br />
Commands:<br />
cat, ctags, pg, vi<br />
400 of 457
NAME<br />
ln — create a link to a file<br />
SYNOPSIS<br />
ln [-fiRrv] old new<br />
ln [-fiRrsv] old old ... dir<br />
DESCRIPTION<br />
ln<br />
ln creates a link to a file or set of files. A link is a new directory entry that refers to the same file,<br />
either in the directory that currently contains the file or in a different directory. The result is a new<br />
path name that refers to the file. You can access the file under the old path name or the new one;<br />
both path names are of equal importance. If you rm either name, the other one remains and the file<br />
contents are still available under that name. The contents of the file do not disappear until you<br />
remove the last link.<br />
Note:<br />
The link utility only works on NTFS file systems on Windows NT/2000/XP/2003.<br />
A file may have any number of links to it. Thus you can establish any number of different path<br />
names for any file.<br />
In the first form given in the synopsis, new be<strong>com</strong>es a new path name for the file old. In the second<br />
form, ln creates entries for all the old files under the directory dir. For example,<br />
ln yourdir/* mydir<br />
creates links under mydir to all the files under yourdir. The files have the same names under<br />
mydir that they had under yourdir. ln always assumes this directory form when the last<br />
operand on the <strong>com</strong>mand line is the name of a directory. In this case, none of the old names may<br />
be a directory.<br />
In some cases a file may have the same name as the link you are trying to set up. This file is<br />
referred to as the conflicting path name. To deal with a conflicting path name, ln follows these<br />
steps.<br />
● If you have specified -i, ln writes a prompt to standard error to ask if you want to remove<br />
401 of 457
the conflicting path name. If you answer affirmatively, ln attempts to remove it.<br />
● If you have specified -f, ln attempts to remove the conflict silently.<br />
● Otherwise, ln prints a diagnostic message.<br />
● If it is going to get rid of the conflicting path name, ln attempts to do so in the same way that<br />
rm does. ln deletes the file associated with the path name if this path name is the last link<br />
to the file. If ln can't get rid of the conflicting path name, it does not attempt to establish the<br />
new link; it simply prints an error message on the standard error and goes on to process any<br />
other files.<br />
● If ln successfully removes the conflicting path name, it then establishes the link.<br />
Options<br />
-f<br />
-i<br />
-R<br />
-r<br />
-s<br />
removes conflicting path names without asking for confirmation.<br />
checks with you before getting rid of conflicting path names. (Note that the -f option<br />
overrides the -i option.)<br />
links files recursively; that is, you can link an entire hierarchy of subdirectories at once.<br />
is identical to -R.<br />
creates a symbolic link. You can only create symbolic links on Windows 2000/XP/2003<br />
systems using the NTFS file system and only for directories on local drives. You cannot<br />
create a symbolic link for a file.<br />
Note:<br />
The -s option does not work with drives which use removable media (for example,<br />
CD drives and tape drives).<br />
A symbolic link is a pointer to the directory to which it is linked. Like a normal hard link, you<br />
can refer to the directory by either its original name or the name of the symbolic link. Unlike<br />
a normal hard link, deleting the original directory leaves a link pointing nowhere and the<br />
contents of the directory are gone. Deleting the original directory leaves a link pointing<br />
402 of 457
-v<br />
nowhere.<br />
Note:<br />
When using Explorer, selecting a symbolic link and dragging it to the Recycle Bin (or<br />
hitting the DELETE key) deletes just the symbolic link. Selecting a symbolic link and<br />
hitting the SHIFT-DELETE key <strong>com</strong>bination deletes both the symbolic link and the<br />
original directory and its contents (including any subdirectories). Using the Windows<br />
<strong>com</strong>mand line del <strong>com</strong>mand to delete a symbolic link deletes the symbolic link and<br />
the contents (excluding subdirectories and their contents) of the original directory, but<br />
not the original directory itself.<br />
shows file names as they are processed.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
2<br />
All requested links were established successfully.<br />
Failure due to any of the following:<br />
— an argument had a trailing / but was not the name of a directory<br />
— a file could not be found<br />
— an input file could not be opened for reading<br />
— an output file could not be created or opened for output<br />
— the new link file already exists<br />
— a link could not be established<br />
— a read error occurred on an input file<br />
— a write error occurred on an output file<br />
— the input and output files were the same file<br />
— inability to access a file when using -r<br />
— inability to read a directory when using -r<br />
— inability to create a directory when using -r<br />
— a target is not a directory when using -r<br />
— source and destination directory are the same when using -r<br />
Failure due to any of the following:<br />
— invalid <strong>com</strong>mand line option<br />
— too few arguments on the <strong>com</strong>mand line<br />
403 of 457
PORTABILITY<br />
— a target that should be a directory but isn't<br />
— no space left on target device<br />
— out of memory to hold the data to be copied<br />
— unable to create a directory to hold a target file<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows NT 4.0. Windows 2000.<br />
Windows XP. Windows Server 2003.<br />
Only the -f option is part of the POSIX standard.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cp, mv, rm<br />
404 of 457
NAME<br />
make<br />
make — maintain program-generated and interdependent files<br />
SYNOPSIS<br />
make [-EeiMnpqrstuVvx] [-k|-S] [-c dir] [-f file] [-D macro definition ...] [macro definition ...]<br />
[target ...]<br />
DESCRIPTION<br />
make is a <strong>com</strong>mand that helps you manage projects that contain a set of interdependent files.<br />
Typical examples would be a program with many source and object files, or a document that is built<br />
from source files, macro files, and so on. make keeps all the files up-to-date with one another: if<br />
one file changes, make updates all the other files that depend on the changed file.<br />
Note:<br />
Options<br />
-c dir<br />
This implementation of make features the .POSIX special target to provide maximum<br />
portability. When you specify this target, make processes the makefile as specified in the<br />
POSIX.2 standard. For details, see the description of .POSIX in the Special Target<br />
Directives section of this reference page.<br />
attempts to change to the specified directory upon startup. If make cannot change the<br />
directory, it displays an error message. This is useful for recursive makefiles when building<br />
in a different directory.<br />
-D macro definition<br />
defines macro on the <strong>com</strong>mand line before reading any makefile. Use the same form as a<br />
normal macro definition (macro=string). If you use this option, make assigns the value to the<br />
macro before reading the makefile; any definition of the same macro contained in the<br />
makefile supersedes this definition. Note that make uses any macros defined in this way<br />
before it reads any makefile, including the startup file. This allows you to define a startup file<br />
by providing a value for MAKESTARTUP on the <strong>com</strong>mand line:<br />
make -D MAKESTARTUP=$HOME/project/startup.mk<br />
405 of 457
-E<br />
-e<br />
-f file<br />
-i<br />
-k<br />
-M<br />
-n<br />
-p<br />
-q<br />
suppresses the reading of the environment <strong>com</strong>pletely.<br />
reads the environment after reading the makefile. If you do not specify -E or -e, make reads<br />
the environment before reading the makefile, except for the SHELL environment variable,<br />
which you must explicitly import. This option does not affect the value of MAKEFLAGS.<br />
uses file as the makefile, ignoring the makefiles specified as prerequisites to the<br />
.MAKEFILES special target. If you specify file as dash (-), make reads from standard input.<br />
ignores all errors and continues making other targets. This is equivalent to the .IGNORE<br />
attribute or macro.<br />
makes all independent targets, even if an error occurs. If you specify -k, make ignores the<br />
error and continue to make as much as possible. make does not attempt to update anything<br />
that depends on the target that was being made when the error occurred.<br />
does not copy macro definitions from the <strong>com</strong>mand line and the MAKEFLAGS environment<br />
variable to the MAKEFLAGS macro.<br />
displays the <strong>com</strong>mands that make would execute to update the chosen targets, but does not<br />
actually execute any recipe lines unless they have a plus sign (+) <strong>com</strong>mand prefix. make<br />
displays recipe lines with an at sign (@) <strong>com</strong>mand prefix on the standard output.<br />
With group recipes, make displays the <strong>com</strong>mands it uses to update a give target, but it also<br />
executes the <strong>com</strong>mands.<br />
If make finds the string $(MAKE) in a recipe line, it expands it, adds -n to the MAKEFLAGS,<br />
and then executes the recipe line. This allows you to see what recursive calls to make do.<br />
The output correctly shows line breaks in recipes that are divided into several lines of text<br />
using the \ sequence.<br />
displays the digested makefile, including macro and target definitions, in a human readable<br />
form useful for debugging. make itself cannot read this output as an input file.<br />
406 of 457
-r<br />
-S<br />
-s<br />
-t<br />
-u<br />
-V<br />
-v<br />
-x<br />
Targets<br />
checks whether the target is up-to-date. If it is, make exits with a status of 0; otherwise, it<br />
exits with a status of 1 (typically interpreted as an error by other software). make does not<br />
run <strong>com</strong>mands associated with the target unless they start with a plus sign (+) <strong>com</strong>mand<br />
prefix.<br />
does not read the default rules from the startup file.<br />
terminates make if an error occurs when bringing a target up-to-date (opposite of -k). This<br />
is the default.<br />
does not display recipe <strong>com</strong>mands, warning messages, or touch messages (see the -t<br />
option). This is equivalent to the .SILENT attribute or macro.<br />
touches the targets to mark them as up-to-date, but only execute <strong>com</strong>mands to change a<br />
target if the target has a plus sign (+) <strong>com</strong>mand prefix. make does not touch up-to-date<br />
targets or targets that have prerequisites but do not have recipes. make displays a message<br />
for each touched target file indicating the file name.<br />
forces an unconditional update: make behaves as if all the prerequisites of the given target<br />
are out-of-date.<br />
displays the version number of make and a list of built-in rules.<br />
displays a detailed account of make's progress, including files read, definition and<br />
redefinition of each macro, meta-rule and suffix rule searches, and other information.<br />
exports all macro definitions to the environment. This happens before make begins making<br />
targets (but after it reads the entire makefile).<br />
A target is normally a file that you want to ensure is up-to-date with the files that it is dependent on.<br />
For example, you may want to check to see if a is based on the most recent version of the<br />
corresponding source code and if not, re<strong>com</strong>pile the source code to get an up-to-date version. In<br />
this case, the <strong>com</strong>piled program file is the target and the corresponding source code files are<br />
407 of 457
prerequisites (that is, the files a target is dependent on).<br />
make updates all targets that are specified on the <strong>com</strong>mand line. If you do not specify any target,<br />
make updates the targets in the first rule of the makefile. A target is out-of-date if it is older than<br />
any of its prerequisites (based on modification times) or if it does not exist. To update a target,<br />
make first recursively ensures that all the target's prerequisites are up-to-date, processing them in<br />
the order they appear in the rule. If the target itself is out-of-date, make then executes the recipe<br />
associated with the target. If the target has no associated recipe, make considers it up-to-date.<br />
make also supports another form of targets, known as special targets, described in the following<br />
Special Target Directives section.<br />
Makefiles<br />
A makefile is a text file that describes the dependencies between various files. A makefile normally<br />
contains a list of targets and identifies the prerequisites each depends on. It also contains a series<br />
of instructions, called recipes that describe the actions to be taken if a given target is out-of-date<br />
with its prerequisites.<br />
By default, if you do not specify the -f option, make looks for a file in your current directory named<br />
makefile. If make does not find this file, and if your file system supports mixed case file names, it<br />
searches your current directory for a file named Makefile. If make finds either file, it uses this file<br />
as your makefile.<br />
You can change the default makefiles with the .MAKEFILES special target. This target is already<br />
specified in the startup.mk file. See the following Special Target Directives section for more<br />
information.<br />
Macro Definitions<br />
Macro definitions may take several forms.<br />
macro = string<br />
is the usual form. If string contains macro references, make does not expand them when the macro<br />
is defined, but when the macro is itself expanded.<br />
macro := string<br />
expands macros inside string before assigning the value to macro.<br />
macro += string<br />
408 of 457
appends string to the previous value of macro.<br />
You can use any amount of white space on both sides of macro operators. make defines the name<br />
macro to have the value string and replaces it with that value whenever it is used as $(macro or<br />
${macro} within the makefile. It is possible to specify a $(macro_name or ${macro_name}<br />
macro expansion where macro_name contains more $(...) or ${...} macro expansions itself.<br />
Normally, make does not include white space at the beginning and end of string in the definition of<br />
macro; however, it never strips white space from macros imported from the environment.<br />
If you want to include white space in a macro definition specified on the make <strong>com</strong>mand line, you<br />
must enclose the definition in quotes (" ").<br />
make defines macros in the following order:<br />
Note:<br />
1. Macro definitions in the built-in rules.<br />
2. Macro definitions on the <strong>com</strong>mand line associated with the -D option.<br />
3. Macro definitions in startup files.<br />
4. Contents of the environment.<br />
5. Macro definitions in the makefiles (in the order they appear).<br />
6. Macro definitions on the <strong>com</strong>mand line without the -D option.<br />
If you specify the -e option, make reads the makefiles before reading the contents of the<br />
environment. If you specify the -E option, make does not read the contents of the<br />
environment.<br />
If a macro is already defined when make encounters a new definition for it, the new definition<br />
replaces the old one. For example, a macro definition for name on the <strong>com</strong>mand line (without -D)<br />
overrides a definition for name in the makefile. You can use the -v option to display macro<br />
assignments, as make performs them.<br />
Macro Modifiers<br />
MKS Make supports macro expansions of the form:<br />
$(macro_name:modifier_list:modifier_list:...)<br />
Possible modifiers are:<br />
^"string"<br />
prefix tokens<br />
409 of 457
+"string" suffix tokens b file portion of all path names, without suffix d directory portion of all<br />
path names f file portion of all path names, including suffix l all characters mapped to<br />
lowercase s/pat/string/ simple pattern substitution; any character can be used to separate<br />
the pattern from the substitution text suffix=string suffix replacement t"separator"<br />
tokenization with given separator. u all characters mapped to uppercase<br />
You may specify macro modifiers in either uppercase or lowercase.<br />
For example, the following macro assignment<br />
test = D1/D2/d3/a.out f.out d1/k.out<br />
produces the following expansions:<br />
$(test:d) -> D1/D2/d3 . d1<br />
$(test:b) -> a f k<br />
$(test:f) -> a.out f.out k.out<br />
${test:DB} -> D1/D2/d3/a f d1/k<br />
${test:s/out/in/} -> D1/D2/d3/a.in f.in d1/k.in<br />
$(test:f:t"+") -> a.out+f.out+k.out<br />
$(test:t"+") -> D1/D2/d3/a.out+f.out+d1/k.out<br />
$(test:u) -> D1/D2/D3/A.OUT F.OUT D1/K.OUT<br />
$(test:l) -> d1/d2/d3/a.out f.out d1/k.out<br />
$(test:^"/rd/") -> /rd/D1/D2/d3/a.out /rd/f.out /rd/d1/k.out<br />
$(test:+".Z") -> D1/D2/d3/a.out.Z f.out.Z d1/k.out.Z<br />
Run-time Macros<br />
Run-time macros can take on different values for each target.<br />
$@<br />
When building a normal target, this macro evaluates to the full name of the target. When<br />
building a library, it expands to the name of the archive library. For example, if the target is<br />
mylib(member)<br />
$@ expands to<br />
$%<br />
mylib.<br />
When building a normal target, this macro evaluates to the full name of the target. When<br />
building a library, it expands to the name of the archive member. For example, if the target is<br />
410 of 457
mylib(member)<br />
$% expands to<br />
$><br />
$*<br />
$&<br />
$?<br />
$^<br />
$<<br />
member<br />
The name of the library if the current target is a library member.<br />
The target name with no suffix ($(%:db)) or the value of the stem in a meta-rule.<br />
The list of all prerequisites, in all rules that apply to the target. In :: rules, this macro<br />
produces a value identical to the $^ macro.<br />
The list of all prerequisites that are newer than the target or do not yet exist and need to be<br />
built. In rules using the :: rule operator, this macro expands to the same value as $
The construct may be modified:<br />
fred.obj : $$(@:b).c<br />
If you are building a library, $$% stands for the name of the archive member being made. If you are<br />
building a normal target, $$% stands for the name of the target currently being made.<br />
$$* stands for the name of the current target being made, but with no suffix.<br />
If you are building a library, $$> stands for the name of the archive library being made. If you are<br />
not building a library, its use is invalid.<br />
Comments<br />
Comments begin with the number sign (#) character and extend to the end-of-line. make discards<br />
all <strong>com</strong>ment text.<br />
Makefile Contents<br />
Inside makefiles, you can split long lines over several lines of text. To do this, put a backslash (\)<br />
at the very end of the line. You can use this technique to extend <strong>com</strong>ments as well as recipe lines<br />
and macro definitions for example.<br />
If a rule or macro definition must contain a # character, use \#; otherwise, make mistakes the # for<br />
the beginning of a <strong>com</strong>ment. Also, if a macro definition must contain a single $ character, use $$.<br />
File names that contain a colon (:) must always be enclosed in quotes (" "):<br />
"a:target" : "a:prereq"<br />
Rules<br />
The general format of a rule is<br />
targets [attributes] ruleop [prerequisites] [;recipe]<br />
{ recipe}<br />
The parts of the rule are described as follows.<br />
targets<br />
one or more target names.<br />
attributes<br />
412 of 457
a list, possibly empty, of attributes to apply to the list of targets.<br />
ruleop<br />
an operator token, usually :, that separates the target names from the prerequisite names<br />
and may also affect the processing of the specified targets.<br />
prerequisites<br />
a list of zero or more names the specified targets depend on.<br />
recipe<br />
<strong>com</strong>mand to execute to update targets. It may follow on the same line as the prerequisites,<br />
separated from them by a semicolon (;). If such a recipe is present, make takes it as the<br />
first in the list of recipe lines defining how to make the named targets. Additional recipe lines<br />
may follow the first line of the rule. Each subsequent recipe line must begin with a tab<br />
character.<br />
The possible rule operators are described here:<br />
targets : prereqs<br />
simple rule definition. For explicit targets, at most one simple rule may have a recipe, in<br />
contrast with the :: rule operator, whose description follows.<br />
targets :! prereqs<br />
executes the recipe for the associated targets once for each out-of-date prerequisite. In<br />
simple rules, the recipe is executed only once, for all out-of-date prerequisites at the same<br />
time. The $< macro expands to the current prerequisite if it appears in rules with this rule<br />
operator.<br />
targets :^ prereqs<br />
inserts the specified prerequisites before any other prerequisites already associated with the<br />
specified targets.<br />
targets :- prereqs<br />
clears the previous list of prerequisites before adding the new prerequisites.<br />
targets :: prereqs<br />
is used for multiple rules applying to the same target. Each rule can specify a different set of<br />
prerequisites with a different recipe for updating the target. Each rule is treated<br />
independently; the target is remade for each rule with out-of-date prerequisites, using the<br />
corresponding recipe.<br />
targets :| prereqs<br />
can only be used in meta-rules. It tells make to treat each meta-dependency as an<br />
413 of 457
independent meta-rule. For example:<br />
%$O :| archive/%.c rcs/%.c /srcarc/RCS/%.c<br />
recipe...<br />
is equivalent to<br />
%$O : archive/%.c<br />
recipe...<br />
%$O : rcs/%.c<br />
recipe...<br />
%$O : /srcarc/rcs/%.c<br />
recipe...<br />
This operator is particularly useful for searching for MKS Source Integrity archives. If the<br />
RCSPATH variable used by MKS Source Integrity is defined as<br />
archive/%f;rcs/%f;/srcarc/rcs/%f<br />
then the meta-rule<br />
% :| $(RCSPATH:s/%f/%/:s/;/ /)<br />
co -l $<<br />
searches the path looking for an RCS file and checks it out.<br />
Circular Dependencies<br />
There are two types of circular dependencies: within-rule and between-rule. A within-rule circular<br />
dependency occurs when the target's name is included in the list of prerequisites for that target.<br />
For example,<br />
c.o : a.o b.o c.o<br />
is a within-rule circular dependency. make detects a within-rule circular dependency when it is<br />
parsing the makefile to build the dependency tree.<br />
A between-rule circular dependency occurs when you have two targets, each of which includes the<br />
other's name in its prerequisite list. For example,<br />
a.o : b:o<br />
b:o : a.o<br />
414 of 457
is a between-rules circular dependency. make detects a between-rule circular dependency when it<br />
is processing the dependency tree built during the parse phase.<br />
Normally make only detects circular dependencies for those targets actually being built. When a<br />
circular dependency is encountered, make issues a warning message, removes the offending<br />
prerequisite from the list, and continues parsing the makefile. The .CYCLECHECK special target<br />
can be used to alter make's treatment of circular dependencies. For details, see the Special Target<br />
Directives section of this reference page.<br />
Recipes<br />
You can use a target that has prerequisites but no recipes to add the given prerequisites to that<br />
target's list of prerequisites.<br />
You may preface any recipe line with a <strong>com</strong>mand prefix immediately following the character<br />
(-, @, + or all three). - indicates that make is to ignore non-zero exit values when it executes this<br />
recipe line. @ indicates that make is not to display the recipe line before executing it. + tells make to<br />
always execute this line, even when -n, -q, or -t is specified.<br />
Group recipes begin with [ in the first non-white space position of a line, and end with ] in the first<br />
non-white space position of a line. Recipe lines in a group recipe need not have a leading tab.<br />
make executes a group recipe by feeding it as a single unit to a shell. If you immediately follow the<br />
[ at the beginning of a group recipe with one of -, @ or +, they apply to the entire group in the<br />
same way that they apply to single recipe lines.<br />
Inference Rules<br />
With inference rules, you can specify general rules for building files rather than creating a specific<br />
rule for each target.<br />
MKS Make provides two forms of inference rules: suffix rules and meta-rules. MKS Make includes<br />
suffix rules to ensure <strong>com</strong>patibility with older makefiles. Meta-rules, however, provide a more<br />
general mechanism for specifying make's default behavior. They provide a superset of the<br />
functionality of suffix rules. make searches all meta-rules before using suffix rules.<br />
make uses the inference rules to infer how it can bring a target up to date. A list of inference rules<br />
defines the <strong>com</strong>mands to be executed. The default startup.mk contains a set of inference rules<br />
for the most <strong>com</strong>mon targets. You can specify additional rules in the makefile.<br />
When make finds no explicit target rule to update a target, it checks the inference rules. If make<br />
finds an applicable inference rule with an out-of-date prerequisite, it executes that rule's recipe.<br />
(See also the section describing the .DEFAULT special target).<br />
Meta-rules<br />
415 of 457
Meta-rules have one target with a single percent symbol % that matches an arbitrary string called<br />
the stem. The % in a dependency stands for the stem.<br />
The inference rule to update a target matching pattern p1%s1, where p1 and s1 are prefix and<br />
suffix strings of the target, having a prerequisite p2%s2, where % is the stem from the target, is<br />
specified as follows:<br />
p1%s1 : p2%s2 ; recipe...<br />
Either the prefix or suffix string may be empty.<br />
Transitive Closure<br />
Meta-rules provide a mechanism that allows several meta-rules to chain together to eventually infer<br />
all the needed prerequisites to create the target.<br />
This is called transitive closure. For example, suppose you have the following two meta-rules<br />
%$O : %.c<br />
... rule body...<br />
%.c : %.y<br />
... rule body ...<br />
When you specify<br />
make file.obj<br />
make uses the first meta-rule to look for file.c. If it cannot find an explicit rule to build file.c, it<br />
again looks through the meta-rules for a rule to build %.c. It finds such a rule in<br />
%.c : %.y<br />
Thus, make can rebuild file.obj from file.y.<br />
make considers each meta-rule only once when performing transitive closure to avoid a situation<br />
where it loops forever. For example, if you have the rule<br />
% : %.c<br />
the <strong>com</strong>mand<br />
... rule body ...<br />
416 of 457
make file<br />
causes make to look for file.c. If the meta-rules were not restricted and file.c did not exist,<br />
then make would look for file.c.c, and then file.c.c.c, and so on. Because make uses each<br />
meta-rule only once, this cannot happen.<br />
make <strong>com</strong>putes transitive closure once for each meta-rule head the first time the pattern matches a<br />
target. When transitive closure is <strong>com</strong>puted, make adds all the <strong>com</strong>puted rules to the rule set for<br />
that meta-rule head. For example, if you have the rules<br />
%$E : %$O<br />
recipe 1...<br />
%$O : %c<br />
recipe 2...<br />
and you are making file.exe, this target matches successfully against %$E causing make to<br />
<strong>com</strong>pute transitive closure for %$E. As a result of this <strong>com</strong>putation, a new rule is created:<br />
%$E : %.c<br />
recipe 2...<br />
recipe 1...<br />
.REMOVE target recipe for %$O, if not .PRECIOUS<br />
make executes this rule if file$O.obj does not exist. When make finishes the <strong>com</strong>putation for the<br />
rule head, it marks the rule head as transitive closure <strong>com</strong>puted. Since make adds all possible new<br />
rules to the rule set the first time the <strong>com</strong>putation is done, it is not necessary to do it again --<br />
nothing new is added.<br />
The best way to understand how this works is to experiment with little make files with the -v option<br />
specified. This shows you in detail what rules are being searched, when transitive closure is<br />
calculated and what rules are added.<br />
Order of Rule Generation<br />
Since transitive closure allows make to generate new rules, it is important to understand the order<br />
this is done in:<br />
1. make searches for explicit rules in the order they appear, so explicit rules always take<br />
precedence.<br />
2. make reads meta-rules in the order they appear in the makefile. The first rule that appears in<br />
the makefile is the first one checked.<br />
3. New explicit meta-rules (as distinct from meta-rules generated by transitive closure) replace<br />
old ones. In other words, if your makefile contains an explicit rule like this one, it replaces<br />
417 of 457
the default rule in startup.mk:<br />
%$O : %.c<br />
rule1<br />
If you use the -v option, make prints a warning when it replaces a meta-rule.<br />
4. When transitive closure is calculated, the new meta-rules generated are added to the end of<br />
the list of possible meta-rules. Thus, make always finds the explicit rules first, so they take<br />
precedence over generated rules. You can use the -v option to see what rules make<br />
generates and the order they appear in.<br />
5. make performs two passes through the rules. On the first pass it attempts to find a match<br />
with an explicit rule in the makefile; if this does not succeed, make performs a second pass<br />
to find a match with an existing file.<br />
Suffix Rules<br />
make treats targets that begin with a period and contain no slashes or percent signs as suffix rules.<br />
If there is only one period in the target, it is a single-suffix inference rule. Targets with two periods<br />
are double-suffix inference rules. Suffix rules do not have prerequisites but do have <strong>com</strong>mands<br />
associated with them.<br />
When make finds no explicit rule to update a target, it checks the suffix of that target (.s1) against<br />
the suffix rules. make examines a prerequisite based on the base name of the target with the<br />
second suffix (.s2) appended, and if the target is out-of-date with respect to this prerequisite, make<br />
executes the recipe for that inference rule.<br />
If the target to be built does not contain a suffix and there is no rule for the target, make checks the<br />
single suffix inference rules. The single suffix inference rules define how to build a target 'br 'ne 5v<br />
if make finds a rule with one of the single suffixes appended. A rule with one suffix .s2 defines how<br />
to build target from target.s2.<br />
Any suffixes used in a suffix rule must appear as a prerequisite of the special target .SUFFIXES.<br />
The order that the suffixes appear in the .SUFFIXES rule determines the order make checks the<br />
suffix rules in. New suffixes and suffix rules are added to the existing list. To turn off the suffix<br />
rules, place<br />
.SUFFIXES:<br />
in your makefile. This clears the prerequisites of the .SUFFIXES target and prevents the enaction<br />
of any suffix rules.<br />
The search algorithm used for suffix rules depends on whether or not the .POSIX special target is<br />
418 of 457
specified. When .POSIX is specified, the following steps describe the search algorithm for suffix<br />
rules:<br />
1. Extract the suffix from the target. If that target has no suffix, go to step 6.<br />
2. Is it in the .SUFFIXES list? If not, then quit the search.<br />
3. If it is in the .SUFFIXES list, look for a double suffix rule that matches the target suffix.<br />
4. If you find one, then extract the base name of the file, add on the second suffix and see if<br />
the resulting file exists. If it does not, then keep searching the double suffix rules. If it does<br />
exist, then use the recipe for this rule.<br />
5. If no successful match is made, then the inference has failed.<br />
6. If the target did not have a suffix, then check the single suffix rules in the order that the<br />
suffixes are specified in the .SUFFIXES target.<br />
7. For each single suffix rule, add the suffix to the target name and see if the resulting file<br />
name exists.<br />
8. If the file exists, then execute the recipe associated with that suffix rule. If the file does not<br />
exist, continue trying the rest of the single suffix rules.<br />
9. If no successful match is made, then the inference has failed.<br />
When the .POSIX special target is not specified, make handles suffix rules in the same manner as<br />
traditional implementations of make. The following steps describe the search algorithm for suffix<br />
rules in this situation.<br />
1. Extract the suffix from the target. If that target has no suffix, go to step 8.<br />
2. Is it in the .SUFFIXES list? If not, then quit the search.<br />
3. If it is in the .SUFFIXES list, look for a double suffix rule that matches the target suffix.<br />
4. If you find one, then extract the base name of the file, add on the second suffix and see if<br />
the resulting file exists. If it does, go to step 7. If not, continue with step 5.<br />
5. Is there an inference rule for the resulting file? If yes, execute the recipe associated with that<br />
rule (that should describe how to make the file exist) and go to step 7.<br />
6. Search for the next double suffix rule that matches the target suffix and return to step 4. If<br />
the double suffix rules are exhausted then the inference has failed.<br />
7. Use the recipe for the target rule.<br />
8. If the target did not have a suffix, then check the single suffix rules in the order that the<br />
suffixes are specified in the .SUFFIXES target.<br />
9. For each single suffix rule, add the suffix to the target name and see if the resulting file<br />
name exists.<br />
10. If the file exists, then execute the recipe associated with that suffix rule. If the file does not<br />
exist, continue trying the rest of the single suffix rules.<br />
11. If no successful match is made, then the inference has failed.<br />
MKS Make also provides a special feature in the suffix rule mechanism for archive library handling,<br />
useful mainly for <strong>com</strong>patibility with System V Make. If you specify a suffix rule of the form<br />
.suf.a:<br />
419 of 457
ecipe<br />
the rule matches any target specified as a library member, regardless of what the actual library<br />
suffix is. For example, suppose your makefile contains the following rules:<br />
.SUFFIXES: .a .obj<br />
.obj.a:<br />
echo adding $< to library $@<br />
If mem.obj exists, then the following <strong>com</strong>mand<br />
make -r "mylib(mem)"<br />
causes make to print this message:<br />
adding mem.obj to library mylib<br />
Refer to Making Libraries in the User's Guide for more information about libraries.<br />
Attributes<br />
make defines several target attributes. Attributes may be assigned to a single target, a group of<br />
targets, or to all targets in the makefile. Attributes affect what make does when it needs to update a<br />
target. You can associate attributes with targets by specifying a rule of the following form:<br />
attribute_list : target ...<br />
This assigns the attributes in attribute_list to the given targets. If you do not specify any targets, the<br />
attributes apply to every target in the makefile. You can also put attributes inside a normal rule, as<br />
in:<br />
targets attribute_list : prerequisite ...<br />
These are the recognized attributes:<br />
.EPILOG<br />
Insert shell epilog code when executing a group recipe associated with any target having<br />
this attribute set.<br />
.IGNORE<br />
Ignore an error when trying to make any target with this attribute set.<br />
420 of 457
.LIBRARY<br />
Target is a library.<br />
.PRECIOUS<br />
Do not remove this target under any circumstances. Any automatically inferred prerequisite<br />
inherits this attribute.<br />
.PROLOG<br />
Insert shell prolog code when executing a group recipe associated with any target having<br />
this attribute set.<br />
.SETDIR<br />
Change current working directory to specified directory when making associated targets.<br />
The syntax of this attribute is .SETDIR=path, where path is the path name of desired<br />
working directory. If path contains any colon (:) characters, the entire attribute string must<br />
be quoted, not just the path name.<br />
.SILENT<br />
Do not echo the recipe lines when making any target with this attribute set, and do not issue<br />
any warnings.<br />
You can use any attribute with any target, including special targets.<br />
Special Target Directives<br />
Special Target Directives are called targets because they appear in the target position of rules;<br />
however, they are really keywords, not targets. The rules they appear in are directives that control<br />
the behavior of make.<br />
The special target must be the only target in a special rule--you cannot list other normal or special<br />
targets.<br />
Some special targets are affected by some attributes. Any special target can be given any<br />
attribute, but often the <strong>com</strong>bination is meaningless and the attribute has no effect.<br />
.BRACEEXPAND<br />
This target may have no prerequisites and no recipe associated with it. If set, the target<br />
enables the outdated brace expansion feature used in older versions of MKS Make. (This<br />
target is ignored if the .POSIX special target is set.) Older versions of make use brace<br />
expansion to expand a token list of this form:<br />
string1{token_list}string2<br />
421 of 457
make adds string1 to the front, and string2 to the end, of each token in the token_list. To include<br />
brace brackets while this target is set, use {{ and }}; you cannot include literal brace brackets in<br />
the token list. You can achieve the same kind of brace expansion in modern versions of make by<br />
using macro expansion with prefix and suffix modifiers:<br />
$(TOKEN_BASE:^"prefix":+"suffix")<br />
Note that the double quotes are required. Future versions of MKS Make may dispense with brace<br />
expansion <strong>com</strong>pletely.<br />
.CYCLECHECK<br />
This special target may have no prerequisites and no recipe associated with it. If set, it<br />
determines how make treats circular dependencies (for more information, see the Circular<br />
Dependencies section of this reference page). You can specify one of five attributes with<br />
this target. If you specify more than one attribute, an error message results. The five<br />
attributes are:<br />
.SILENT<br />
make remains silent about any within-rule and between-rule circular dependencies, removes<br />
the offending dependency from the list of prerequisites, and continues.<br />
.WARNTARG<br />
make issues warnings for named targets with circular dependencies. If the name of the<br />
dependency is the same as the named target, it is removed from the list of prerequisites and<br />
make continues. This is the default behavior if .CYCLECHECK is not specified or is specified<br />
with no attributes.<br />
.WARNALL<br />
make issues warnings for all within-rule circular dependencies regardless of whether the<br />
target is being built or not and for all between-rule circular dependencies for the named<br />
targets. The offending dependency is removed from the list of prerequisites and make<br />
continues.<br />
.FATALTARG<br />
make treats all circular dependencies for named targets as fatal errors. It issues an error<br />
message and exits.<br />
.FATALALL<br />
make treats all within-rule circular dependencies as fatal errors whether the target is being<br />
built or not. It also treats all between-rule circular dependencies for named targets as fatal<br />
errors. make issues an error message and exits.<br />
For example, to set the circular dependency check to make's default, use the rule:<br />
422 of 457
.CYCLECHECK .WARNTARG:<br />
.DEFAULT<br />
This target has no prerequisites, but it does have a recipe. If make can apply no other rule to<br />
produce a target, it uses this rule if it has been defined.<br />
.ERROR<br />
make executes the recipe associated with this target whenever it detects an error condition.<br />
.EXPORT<br />
All prerequisites associated with this target that correspond to macro names are exported to<br />
the environment at the point in the makefile where this target appears. If you do not specify<br />
any prerequisites for this target, all macros are exported.<br />
.GROUPEPILOG<br />
make adds the recipe associated with this target after any group recipe for a target that has<br />
the .EPILOG attribute.<br />
.GROUPPROLOG<br />
make adds the recipe associated with this target before any group recipe for a target that<br />
has the .PROLOG attribute.<br />
.IMPORT<br />
make searches in the environment for prerequisite names specified for this target and<br />
defines them as macros with their value taken from the environment. If the prerequisite<br />
.EVERYTHING is given, make reads in the entire environment (also, see the -e and -E<br />
options).<br />
.INCLUDE<br />
make reads one or more additional makefiles (specified in the prerequisite list), as if their<br />
contents had been inserted at this point. If the prerequisite list contains more than one file,<br />
make reads them in order from left to right.<br />
make uses the following rules to search for extra makefiles:<br />
● If a relative file name is enclosed in quotes, or is not enclosed with angle brackets (<<br />
and >), make looks in the current directory. If the file is not present, make then looks<br />
for it in each directory specified by the .INCLUDEDIRS special target.<br />
● If a relative name is enclosed with angle brackets (< and >), make only searches in<br />
the directories specified by the .INCLUDEDIRS special target.<br />
● If an absolute path name is given, make looks for that file, and ignores the list<br />
associated with the .INCLUDEDIRS special target.<br />
423 of 457
.INCLUDEDIRS<br />
The list of prerequisites specified for this target defines the set of directories to search when<br />
including a makefile.<br />
.MAKEFILES<br />
The list of prerequisites is the set of files to try to read as the user makefile. These files are<br />
made in the order they are specified (from left to right) until one is found to be up to date.<br />
This is the file that is used.<br />
.NOAUTODEPEND<br />
Disable the autodependency feature when building libraries. When this special target is<br />
used, only library members that have been explicitly given as dependents are considered<br />
prerequisites.<br />
.POSIX<br />
Process the makefile as specified in the POSIX.2 draft standard. This special target must<br />
appear before the first non-<strong>com</strong>ment line in the makefile, and may have no prerequisite list,<br />
or recipe, associated with it. The target does the following:<br />
● causes make to use the shell when executing all recipe lines; make invokes one shell<br />
per line, regardless of the setting of SHELLMETAS.<br />
● disables brace expansion (the .BRACEEXPAND special target is ignored).<br />
● disables meta-rule inferencing.<br />
● disables conditionals.<br />
● disables dynamic prerequisites generation for libraries.<br />
● disables group recipes.<br />
● disables library autodependency.<br />
● make does not check for the string $(MAKE) when run with the -n options specified.<br />
● make always prints a message if no work is done.<br />
● When attempting to do suffix rule inference, the inference succeeds only if the<br />
inference prerequisite file exists.<br />
.REMOVE<br />
make uses the recipe of this target to remove any intermediate files that it creates if an error<br />
is encountered before creating the final target. This .REMOVE target only deletes a file that<br />
satisfies all of the following criteria:<br />
● the file did not exist when make began running<br />
● the file is named as an intermediate target, produced by invoking a meta-rule that<br />
was produced by transitive closure<br />
● the file is not explicitly named in the makefile<br />
● the generated target does not have the .PRECIOUS attribute<br />
● the file is a prerequisite of a rule that is actually used<br />
.SOURCE<br />
The prerequisite list of this target defines a set of directories to check when trying to locate a<br />
424 of 457
target file name.<br />
.SOURCE.x<br />
Same as .SOURCE, except that make searches the .SOURCE.x list first when trying to<br />
locate a file matching a target with a name that ends in the suffix .x.<br />
.SUFFIXES<br />
make appends the prerequisite list of this target to the set of suffixes used when trying to<br />
infer a prerequisite for making a target using suffix rules. If you specify no prerequisites,<br />
make clears the list of suffixes, effectively disabling suffix rules from that point on.<br />
Control Macros<br />
make defines a number of control macros that, like special target directives and attributes, alter its<br />
behavior. A control macro that has the same function as a special target or attribute also has the<br />
same name.<br />
Macros that are said to be defined internally are automatically created by make and you can use<br />
them with the usual $(name construct. For example, you can use $(PWD) to obtain the current<br />
directory name.<br />
Recognized control macros are:<br />
DIRSEPSTR<br />
Contains the characters used to separate parts in a path name and can be set by the user.<br />
make uses the first character in this string to build path names when necessary.<br />
Note:<br />
The DIRSEPSTR macro must be set in your environment before running make, so that<br />
the MAKEDIR macro is aware of its value. This is necessary because MAKEDIR is set<br />
before the makefile or <strong>com</strong>mand-line flags are looked at.<br />
.EPILOG<br />
If assigned a non-empty value, the .EPILOG attribute is given to every target.<br />
GROUPFLAGS<br />
Specifies options to pass to GROUPSHELL when make invokes it to execute a group recipe.<br />
GROUPSHELL<br />
Gives the path name of the <strong>com</strong>mand interpreter (shell) that make calls to process group<br />
recipes.<br />
GROUPSUFFIX<br />
425 of 457
Specifies a string for make to use as a suffix when creating group recipe files to be handed<br />
to the <strong>com</strong>mand interpreter. This must be .bat (for <strong>com</strong>mand.<strong>com</strong>) or .cmd (for cmd.exe).<br />
.IGNORE<br />
If this is assigned a non-null value, make assigns the .IGNORE attribute to every target.<br />
INCDEPTH<br />
The current depth of makefile inclusion. This is set internally.<br />
MAKE<br />
This is set by the startup file and may be changed by the user. The standard startup file<br />
defines it as<br />
$(MAKECMD) $(MFLAGS)<br />
The MAKE macro is not used by make itself, but the string $(MAKE) is recognized when using the<br />
-n option for single line recipes.<br />
MAKECMD<br />
The name that make was invoked with.<br />
MAKEDIR<br />
Full path name of the initial directory where make began execution.<br />
MAKEFLAGS<br />
The MAKEFLAGS macro contains all the options and macros specified in the MAKEFLAGS<br />
environment variable plus all the options specified on the <strong>com</strong>mand line, with the following<br />
exceptions:<br />
● The options -c, -D, -f, and -p are silently ignored if they are found in the<br />
MAKEFLAGS environment variable.<br />
● Any of options -c, -D, -f, -p, -v, or -V, when specified on the <strong>com</strong>mand line, are<br />
not added to the MAKEFLAGS macro.<br />
● When the -M option is specified, macro definitions from the MAKEFLAGS<br />
environment variable are not added to the MAKEFLAGS macro.<br />
added<br />
Options in the MAKEFLAGS environment variable may have leading minus signs and can<br />
be separated by spaces. These are stripped out when the MAKEFLAGS macro is<br />
constructed.<br />
Note:<br />
make always reads the MAKEFLAGS environment variable before reading the<br />
makefile. The -E and -e options do not affect this.<br />
426 of 457
MAKESTARTUP<br />
Has the default value ROOTDIR/etc/startup.mk on Windows systems. (On UNIX and<br />
POSIX systems, the $ROOTDIR is omitted.) To change this value, you can set the<br />
MAKESTARTUP environment variable before running make. You can also specify a value<br />
for this control macro on the <strong>com</strong>mand line, if you use the -D option:<br />
make -DMAKESTARTUP=$HOME/project/startup.mk<br />
MFLAGS<br />
Same as MAKEFLAGS, except that it includes the leading switch character.<br />
NULL<br />
OS<br />
Permanently defined to be the empty string.<br />
Name of the operating system that this version of make is <strong>com</strong>piled for.<br />
NT on Windows NT/2000/XP/2003<br />
unix on UNIX systems<br />
POSIX on POSIX systems<br />
.PRECIOUS<br />
If this is assigned a non-empty value, make assigns the .PRECIOUS attribute to every<br />
target.<br />
.PROLOG<br />
If this is assigned a non-empty value, make assigns the .PROLOG attribute to every target.<br />
PWD<br />
Full path name of the current directory where make is executing.<br />
SHELL<br />
Specifies the full path name of the <strong>com</strong>mand interpreter that make calls to process single<br />
line recipes if they contain one or more of the characters given in SHELLMETAS. Otherwise,<br />
make executes these <strong>com</strong>mands directly. By default, the value of the SHELL environment<br />
variable does not affect the value of this macro; however, you can use the .IMPORT special<br />
target to assign the environment variable's value to this macro. You can also use the<br />
EXPORT special target to assign this macro's value to the SHELL environment variable.<br />
SHELLFLAGS<br />
Specifies options to pass to the shell when invoking it to execute a single line recipe.<br />
427 of 457
SHELLMETAS<br />
Specifies a list of metacharacters that can appear in single recipe lines. If make finds any<br />
metacharacter, it invokes the recipe using the shell specified by SHELL; otherwise, it<br />
executes the recipe without the shell.<br />
.SILENT<br />
If this is assigned a non-empty value, make assigns the .SILENT attribute to every target.<br />
SWITCHAR<br />
The character currently being used to mark options in <strong>com</strong>mand lines.<br />
Making Libraries<br />
A library is a file containing a collection of object files. To make a library, you specify it as a target<br />
with the .LIBRARY attribute and list its prerequisites. The prerequisites should be the object<br />
members that are to go into the library. When make makes the library target, it looks for the<br />
prerequisites in the library if it cannot find an appropriate object file.<br />
When make finds lib(member), it declares the lib portion as a target with the .LIBRARY attribute<br />
and automatically declares the member portion as a prerequisite of the lib target. When make finds<br />
lib((entry)), it declares the lib portion as a target with the .LIBRARY attribute and automatically<br />
declares the module defining entry as lib's associated prerequisite.<br />
This autodependency can be turned off by the .NOAUTODEPEND special target. Since<br />
autodependency is not POSIX <strong>com</strong>patible, it is also disabled by the .POSIX special target.<br />
Conditionals<br />
Conditional expressions use the following form:<br />
.IF expression<br />
... if text ...<br />
{.ELSIF expression2<br />
... elsif text ...}<br />
[.ELSE<br />
... else text ...]<br />
.END<br />
You can nest the conditionals (that is, the text may contain another conditional). The .IF, .ELSE,<br />
.ELSIF, and .END must start in the first column of the line. expression or expression 2 can have<br />
one of three forms:<br />
string<br />
428 of 457
is true if the given string is non-empty,<br />
string == string<br />
is true if the two strings are equal, and<br />
string != string<br />
is true if the two strings are not equal.<br />
Typically, one or both strings contain macros that make expands before <strong>com</strong>paring. make also<br />
discards white space at the start and end of the text portion before the <strong>com</strong>parison. This means<br />
that a macro that expands to nothing but white space is considered an empty value for the purpose<br />
of the <strong>com</strong>parison. If a macro expression needs to be <strong>com</strong>pared to an empty string, <strong>com</strong>pare it to<br />
the value of the macro NULL for readability.<br />
The text enclosed in the conditional construct must have the same format that it would have<br />
outside the conditional. In particular, make assumes that anything that starts with a tab inside the<br />
conditional is a recipe line. This means that you cannot use tabs to indent text inside the<br />
conditional (except, of course, for recipe lines that always begin with tabs).<br />
Functions<br />
make supports the following function:<br />
$(shell shell_cmd)<br />
performs the same function that backquotes (`shell_cmd`) do in most shells. That is, it<br />
performs <strong>com</strong>mand substitution, returning the output of the specified shell <strong>com</strong>mand,<br />
shell_cmd and subsituting it into the surrounding text, after first replacing each newline or<br />
carrige-return/newline pair with a single space and removing any trailing newline or carriagereturn/newline<br />
pair.<br />
The <strong>com</strong>mand specified with the shell function is run when the the function call is<br />
expanded. Because this function involves spawning a new shell, you should carefully<br />
consider the performance implications of using the shell function within recursively<br />
expanded variables as opposed to simply expanded variables.<br />
Software Configuration Management Integration<br />
make provides integration with a variety of Software Configuration Management (SCM)<br />
applications.<br />
The SCM environment variable determines not only if SCM integration is enabled, but also which<br />
429 of 457
SCM application is to be used. The following are the valid values for SCM:<br />
CC Rational Clearcase<br />
CVS CVS (Concurrent Versions System)<br />
RCS RCS (Revision Control System)<br />
SIE Source Integrity Enterprise<br />
SS Microsoft SourceSafe<br />
If SCM is unset or set to a value other than those listed, no SCM integration is used.<br />
make uses the $ROOTDIR/etc/makescm.ksh script and the built-in rules in<br />
$ROOTDIR/etc/startup.mk to determine if a possible prerequisite file name is a versioned<br />
object in the current SCM repository. When SCM integration is enabled, make checks out and uses<br />
the most recent version of each prerequisite file on the appropriate branch in the current SCM<br />
repository. However, if a writable version of the prerequisite file exists in the working directory, a<br />
newer version is not checked out. To help the SCM application determine the most recent version<br />
of versioned files, the UPDFLAGS variable in $ROOTDIR/etc/startup.mk can be set to a string<br />
of options to be used with the SCM application's <strong>com</strong>mand for retrieving file versions.<br />
ENVIRONMENT VARIABLES<br />
COFLAGS<br />
specifies the options to be used with the RCS co <strong>com</strong>mand when RCS integration is<br />
enabled with the HAVERCS environment variable. This variable is supported primarily for<br />
backwards <strong>com</strong>patibility with earlier versions of make. You should use the SCM and<br />
UPDFLAGS environment variables as described in the Software Configuration Management<br />
Integration section.<br />
HAVERCS<br />
when set to yes, enables RCS integration. This variable is supported primarily for<br />
backwards <strong>com</strong>patibility with earlier versions of make. You should use the SCM and<br />
UPDFLAGS environment variables as described in the Software Configuration Management<br />
Integration section.<br />
Note:<br />
You should not have both the HAVERCS variable set to yes and the SCM variable<br />
set to a valid value as this may lead to unexpected results.<br />
MAKEFLAGS<br />
contains a series of make options that are used as the default options for any make<br />
<strong>com</strong>mand. You may specify the options with or without leading minus signs (-) and blanks<br />
430 of 457
etween them. It may also include macro definitions of the form usually found on the<br />
<strong>com</strong>mand line.<br />
MAKESTARTUP<br />
contains the path name of the make startup file. By default, make uses the file<br />
ROOTDIR/etc/startup.mk as its startup file. To use a different file, set this environment<br />
variable before running make.<br />
SCM<br />
when set to an appropriate value, enables Software Configuration Management Integration<br />
and specifies which SCM application to use. For details on SCM integration and appropriate<br />
values for this environment variable, see the Software Configuration Management<br />
Integration section.<br />
Note:<br />
You should not have both the HAVERCS variable set to yes and the SCM variable<br />
set to a valid value as this may lead to unexpected results.<br />
SHELL<br />
contains the name of a <strong>com</strong>mand interpreter. To assign this value to the control macro<br />
SHELL, use the .IMPORT special target. You can also use the .EXPORT special target to<br />
assign the value of the SHELL macro to this environment variable for <strong>com</strong>mands run from<br />
recipes.<br />
UPDFLAGS<br />
when SCM integration is enabled, helps the SCM application specified by the SCM<br />
environment variable determine the most version of a version of version files. This variable<br />
is set in $ROOTDIR/etc/startup.mk and contains a string of options to be used with the<br />
SCM application's <strong>com</strong>mand for retrieving file versions. For details on SCM integration, see<br />
the Software Configuration Management Integration section.<br />
make automatically imports all other environment variables, unless you specify the -E option.<br />
FILES<br />
ROOTDIR/etc/makescm.ksh<br />
is used in conjunction with the built-in rules in ROOTDIR/etc/startup.mks to implement<br />
SCM integration. See the Software Configuration Management Integration for details.<br />
ROOTDIR/etc/startup.mk<br />
default startup file containing default rules.<br />
431 of 457
DIAGNOSTICS<br />
If a <strong>com</strong>mand in a recipe line fails (exits with a non-zero status), Make returns the exit status of the<br />
failed <strong>com</strong>mand. Since most <strong>com</strong>mands use exit statuses between 0 and 10, Make uses exit<br />
status values below 10 only for failures that do not run recipe lines.<br />
Possible exit status values for Make are:<br />
0<br />
1<br />
2<br />
126<br />
127<br />
128<br />
Successful <strong>com</strong>pletion.<br />
Returned if you specified -q and file is not up to date.<br />
Failure due to any of the following:<br />
— unknown <strong>com</strong>mand-line option<br />
— missing argument to option, such as no file name for -f<br />
Recipe <strong>com</strong>mand not executable.<br />
Recipe <strong>com</strong>mand not found.<br />
Make called a program that crashed.<br />
129-254<br />
Make, or a program that Make called, was interrupted by a signal; the error code is the<br />
signal number OR'ed with 128. For example, SIGINT ( CTRL-C) is frequently signal 1: the<br />
return code from Make is 128|1, or 129.<br />
255<br />
Failure because of any of the following:<br />
— Macro cannot be redefined<br />
— Macro variables must be assigned with :=<br />
— Special target cannot be a prerequisite<br />
— Too many makefiles specified<br />
— Configuration file not found<br />
— No makefile present<br />
432 of 457
— Missing .END for .IF<br />
— No target<br />
— Unable to return to directory<br />
— Too many open files<br />
— Open failed<br />
— File not found<br />
— Unable to change directory<br />
— No more memory<br />
— Line too long<br />
— Detected circular macro definition<br />
— Unterminated pattern string<br />
— Unterminated replacement string<br />
— Token separator string must be quoted<br />
— Unterminated separator string<br />
— Expansion too long<br />
— Suffix too long<br />
— Unmatched quote<br />
— .IF nesting too deep<br />
— .ELSE without .IF<br />
— Unmatched .END<br />
— Inference rules result in circular dependency<br />
— No macro name specified<br />
— Write error on temp file<br />
— Target not found, and cannot be made<br />
— Do not know how to make <br />
—
PORTABILITY<br />
— Include file NAME, not found<br />
— NAME ignored on special target<br />
— Attributes possibly ignored<br />
— Cannot find member defining symbol ((NAME)<br />
— Invalid library format<br />
— Cannot touch library member<br />
— SHELL macro not defined<br />
— Too many arguments<br />
— Could not export NAME<br />
— Cannot open file<br />
— Detected circular dependency<br />
— Unable to stat /<br />
— Unable to stat .<br />
— Cannot open ..<br />
— Read error in ..<br />
— Metarule too long: "rule"<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The following features of MKS Make are enhancements to POSIX.2:<br />
● The options; -c dir, -D macro_def'n, -E, -M, -u, -V, -v, -x.<br />
● The -n option has enhanced functionality not covered by the standard; for more information<br />
see the explanations of the -n option and the .POSIX special target in this reference page.<br />
● The run-time macros: $&, $^, $>.<br />
● The dynamic prerequisites: $$%, $$>, $$*, $$@.<br />
● All macro expansion modifiers except for suffix replacement.<br />
● Macro assignments of the following forms:<br />
● Brace expansion.<br />
● Backslash continuation.<br />
macroname := stringassigned<br />
macroname += stringassigned<br />
● The quoting mechanism, as in the following example:<br />
"a:target" : "a:prerequisite"<br />
● All rule operators except the colon (:).<br />
● Conditionals.<br />
434 of 457
● Meta-Rules.<br />
● All MKS Make attributes except .IGNORE, .PRECIOUS, .SILENT.<br />
● All MKS Make special targets except .DEFAULT, .POSIX, .SUFFIXES.<br />
● All MKS Make control macros except SHELL (referred to in POSIX.2 as control macros).<br />
● The search algorithm for suffix rule follows the POSIX.2 rules when the .POSIX special<br />
target is specified, but behaves like traditional implementations when it is not specified.<br />
LIMITS<br />
The maximum length of a script line is 16834 characters.<br />
In some environments, the length of an argument string is restricted. For example, <strong>com</strong>mand-line<br />
arguments cannot be longer than 128 bytes if you are using the standard <strong>com</strong>mand.<strong>com</strong> <strong>com</strong>mand<br />
interpreter.<br />
NOTES<br />
When the .SETDIR special target is used, MKS Make checks the file attributes of targets and<br />
prerequisites on every pass through a rule. This can significantly increase the number of file<br />
system accesses.<br />
AVAILABILITY<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Miscellaneous:<br />
makefile<br />
Using MKS Make<br />
435 of 457
NAME<br />
manstrip<br />
manstrip — strip the unprintable sequences out of online reference pages<br />
SYNOPSIS<br />
manstrip<br />
DESCRIPTION<br />
manstrip is a filter. It takes text redirected from a file, or piped into it, and outputs that text to<br />
standard output, without any ANSI color escape sequences or ^H control sequences.<br />
This <strong>com</strong>mand can be used to produce standard text versions of the online man pages for printing.<br />
EXAMPLE<br />
To convert the sh reference page to a regular text file, type the following <strong>com</strong>mand:<br />
man sh.1 | manstrip > sh.txt<br />
PORTABILITY<br />
Windows Me. Windows NT 4.0. Windows 2000. Windows XP. Windows Server 2003.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
436 of 457
SEE ALSO<br />
Commands:<br />
man<br />
437 of 457
NAME<br />
mv — rename and move files and directories<br />
SYNOPSIS<br />
mv [-adfiv] file1 file2<br />
mv [-fiv] file ... directory<br />
mv -r [-fiv] directory1 directory2<br />
DESCRIPTION<br />
mv<br />
mv renames files or moves them to a different directory. If you specify multiple files, the target (that<br />
is, the last path name on the <strong>com</strong>mand line) must be a directory. mv moves the files into that<br />
directory and gives them names that match the final <strong>com</strong>ponents of the source path names. When<br />
you specify a single source file and the target is not a directory, mv moves the source to the new<br />
name, by a simple rename if possible.<br />
If a destination file exists and you do not have write permission for it, mv prompts with the name of<br />
the existing file. If you answer y or yes, it deletes the destination and then moves the source.<br />
If the file being moved is a sparse file and the file system to which it is being moved does not<br />
support sparse files, mv warns that the resulting file will be larger. If the -i option was also<br />
specified, mv asks you if want to expand the file or skip it.<br />
Options<br />
-a<br />
moves the ACLs associated with the specified file along with the file itself. When used with<br />
-p, permissions are moved as well.<br />
This option is only available on NTFS file systems.<br />
Note:<br />
When you use mv to do a simple rename (that is, simply move it on the same device),<br />
ACLs are automatically moved with the file and the -a option is not required.<br />
However, when you use mv to move a file to another device, you must specify the -a<br />
option or the ACLs are not moved with the file.<br />
438 of 457
-d<br />
-f<br />
-i<br />
-r<br />
-v<br />
delays moving the specified files until the system is rebooted.<br />
On Windows Me, the destination file name must be a short file name. The destination<br />
directory may have a long file name but the file name must be short.<br />
This option relies upon the underlying operating system's capability to perform the action at<br />
reboot time.<br />
does not ask if you want to overwrite an existing destination without write permission; it<br />
automatically behaves as if you answered yes. If you specify both -f and -i, mv uses the<br />
option that appears last on the <strong>com</strong>mand line.<br />
always prompts before overwriting an existing file, whether or not the file is read-only. If you<br />
specify both -f and -i, mv uses the option that appears last on the <strong>com</strong>mand line.<br />
moves directory and all its contents (files, subdirectories, files in subdirectories, and so on).<br />
For example, mv -r dir1 dir2 moves the entire contents of dir1 to dir2/dir1. mv<br />
creates any directories that it needs.<br />
prints file names to standard output as they are being processed.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— argument had trailing slash (/) but was not a directory<br />
— file could not be found<br />
— input file could not be opened for reading<br />
— output file could not be created or opened for output<br />
— read error occurred on an input file<br />
— write error occurred on an output file<br />
439 of 457
2<br />
— input and output files were the same file<br />
— input file could not be unlinked<br />
— input file could not be renamed<br />
— fatal error was encountered when using the -r option<br />
Possible fatal -r errors include the following:<br />
— inability to access a file<br />
— inability to read a directory<br />
— inability to remove a directory<br />
— inability to create a directory<br />
— a target that is not a directory<br />
— the source and destination directories are the same<br />
Failure due to any of the following:<br />
— invalid <strong>com</strong>mand line option<br />
— too few arguments on the <strong>com</strong>mand line<br />
— a target that should be a directory but is not<br />
— no space left on the target device<br />
— out of memory to hold the data to be copied<br />
— the inability to create a directory to hold a target file<br />
cannot allocate target string<br />
mv has no space to hold the name of the target file. Try to free up some memory to give mv<br />
more space.<br />
filename read only?<br />
You are attempting to move a file, but there is already a file with the target name and the file<br />
is read-only. If you really want to write over the existing file, type y and press ENTER. If you<br />
do not want to write over the existing file, type n and press ENTER.<br />
source "name" and target "name" are identical<br />
The source and the target are actually the same file (for example, because of links on UNIX<br />
and POSIX-<strong>com</strong>pliant systems). In this case, mv does nothing.<br />
unreadable directory "name"<br />
mv cannot read the specified directory (for example, because you do not have appropriate<br />
permissions).<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
440 of 457
The -d, -r, and -v options are extensions to the POSIX standard. The -d and -s options are only<br />
available on Windows.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cp, ln, pending, rm<br />
441 of 457
NAME<br />
nm<br />
nm — display symbol table of object, library, or executable file<br />
SYNOPSIS<br />
nm [-AaefgnoPprsuvx] [-t format] file ...<br />
DESCRIPTION<br />
nm displays the symbol table associated with an object, archive library of objects, or executable file.<br />
nm recognizes several different file types that may contain symbol tables:<br />
● object files ending in .obj. These files may be Intel OMF (Object Module Format) files or<br />
COFF (Common Object File Format) files.<br />
● library files, which normally end in .lib and contain one or more OMF or COFF files.<br />
● Windows executable files, which normally end in .exe, that contain a symbol table<br />
<strong>com</strong>patible with those produced by PLINK86, the Microsoft Linker, the Wat<strong>com</strong> Linker, or<br />
the Borland Linker.<br />
● A symbol table may be created from a .map file (such as those produced by Microsoft<br />
link) by using unstrip to create a symbol table <strong>com</strong>patible with PLINK86.<br />
Note that nm does not list entry points in a DLL, unless there is a symbol table associated with it.<br />
By default, nm lists the symbols in file in alphabetical order by name and provides the following<br />
information on each:<br />
● File or object name (if you specified -A)<br />
● Symbol name<br />
● Symbol type:<br />
Note:<br />
A<br />
a<br />
Not all of these symbol types are available on all systems. For instance, not all<br />
systems support the ability to determine different segment information.<br />
absolute symbol, global<br />
442 of 457
B<br />
b<br />
D<br />
d<br />
F<br />
l<br />
N<br />
n<br />
S<br />
s<br />
T<br />
t<br />
U<br />
?<br />
absolute symbol, local<br />
uninitialized data (bss), global<br />
uninitialized data (bss), local<br />
initialized data, global<br />
initialized data, local<br />
file name<br />
line number entry (see -a option)<br />
no defined type, global; this is an unspecified type, <strong>com</strong>pared to the undefined type U<br />
no defined type, local; this is an unspecified type, <strong>com</strong>pared to the undefined type U<br />
section symbol, global<br />
section symbol, local<br />
text symbol, global<br />
text symbol, local (static)<br />
undefined symbol<br />
443 of 457
● Symbol value<br />
unknown symbol<br />
● Symbol size, if applicable<br />
Options<br />
-A<br />
-a<br />
-e<br />
-f<br />
-g<br />
-n<br />
-o<br />
-P<br />
prefixes each line with the file name or archive member name.<br />
displays all symbols, including line number entries on systems which support them.<br />
displays only global (external) and static symbols.<br />
displays full output. This is the default, since this implementation does not suppress any<br />
output.<br />
displays only global symbols.<br />
is equivalent to -v.<br />
displays output in octal (same as -t o).<br />
displays output in a portable POSIX-<strong>com</strong>pliant format, with blanks separating the output<br />
fields. If you specified -A and file is not a library, the format is<br />
file: name type value size<br />
If you specified -A and file is a library, the format is<br />
file[object_file]: name type value size<br />
where object_file is the object file in the library which contains the symbol being described. If you<br />
did not specify -A, the format is<br />
444 of 457
name type value size<br />
If you did not also specify the -t option, nm displays value and size in hexadecimal.<br />
If you did not specify -A and the <strong>com</strong>mand line contains more than one file, or file is a library, nm<br />
displays a line preceding the list of symbols for each specified file or each object file in a specified<br />
library. If file is a library, this line has the following format:<br />
file[object_file]:<br />
If file is not a library, the format is simply<br />
-p<br />
-r<br />
-s<br />
file:<br />
does not sort output.<br />
reverses sort order.<br />
includes symbol size for each symbol.<br />
-t format<br />
defines the numeric value formatting base. The format shall be one of d, o, or x, for decimal,<br />
octal, or hexadecimal, respectively. If this option is not used, numbers are displayed in<br />
decimal.<br />
-u<br />
-v<br />
-x<br />
displays only undefined symbols.<br />
sorts output by value.<br />
displays information in hexadecimal (same as -t x).<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
445 of 457
1<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— invalid <strong>com</strong>mand line option<br />
— missing file name<br />
— unknown symbol table type<br />
— invalid library file<br />
— end-of-file found in library<br />
— bad record in the library<br />
— out of memory<br />
If a file does not contain a symbol table, nm displays a warning and goes to the next file, but this is<br />
not considered an error.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -a, -e, -f, -n, -o, -p, -r, -s and -x options are not part of the POSIX standard.<br />
The -a, -n, -p, -r, -s options and -t d are not part of the x/OPEN standard.<br />
NOTE<br />
On Windows systems, data (D, d) and uninitialized data (B, b) are not currently recognized in<br />
executable files, as this involves trying to guess segment types. All such symbols <strong>com</strong>e out as text<br />
(T, t) symbols.<br />
AVAILABILITY<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
446 of 457
SEE ALSO<br />
Commands:<br />
ar, size, strip<br />
447 of 457
NAME<br />
rm — remove files<br />
SYNOPSIS<br />
rm [-fiRrv] [-d|s] file ...<br />
DESCRIPTION<br />
rm -- Command, KornShell Built-in<br />
rm removes each specified file argument (provided that it is a valid path name). If you specify<br />
either . or .. as the final <strong>com</strong>ponent of the path name for a file, rm displays an error message,<br />
and moves onto the next file. If you specify a file you do not have write permission for, rm asks you<br />
for confirmation. Type the yes expression defined in LC_MESSAGES (the English expression is<br />
typically y or yes) if you really want it deleted.<br />
Options<br />
-d<br />
-f<br />
-i<br />
-R<br />
delays the removal of the specified files until the system is rebooted. This option and the -s<br />
option are mutually exclusive.<br />
This option relies upon the underlying operating system's capability to perform the action at<br />
reboot time.<br />
deletes read-only files immediately, without asking for confirmation. When you specify this<br />
option and a file does not exist, rm does not display an error message and does not modify<br />
the exit status. If you specify both -f and -i, rm uses the option that appears last on the<br />
<strong>com</strong>mand line.<br />
prompts for confirmation (from standard input) before deleting each file or confirmation<br />
before entering a subdirectory if either the -r or -R option is specified. If you specify both<br />
-f and -i, rm uses the option that appears last on the <strong>com</strong>mand line.<br />
recursively removes the entire directory structure if file is a directory.<br />
448 of 457
-r<br />
-s<br />
-v<br />
is equivalent to -R.<br />
saves the file for undeletion if possible. An attempt is made to put the file in the Recycle Bin<br />
and if this attempt fails then the file is quietly deleted. This option and the -d option are<br />
mutually exclusive.<br />
prints file names to standard output as they are being processed.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
2<br />
NOTE<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— inability to remove a file<br />
— tried to remove directory without specifying -r or -R<br />
— inability to find file information when using -r or -R<br />
— inability to read directory when using -r or -R<br />
Failure due to any of the following:<br />
— invalid <strong>com</strong>mand line option<br />
— no files specified<br />
rm is provided as both an external utility and a built-in MKS KornShell utility.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
The -d, -s, and -v options are extensions to the POSIX standard. The -d and -s options are only<br />
449 of 457
available on Windows.<br />
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cp, mv, pending, rmdir, sh<br />
450 of 457
NAME<br />
touch — change file modification date<br />
SYNOPSIS<br />
touch<br />
touch [-acm] [-f agefile] [-r agefile] [[-t] time] file ...<br />
touch [-acm] time file ...<br />
DESCRIPTION<br />
The touch <strong>com</strong>mand changes certain dates for each file argument. By default, touch sets both<br />
the date of last file modification and the date of last file access to the current time. This is useful for<br />
maintaining correct release times for software and is particularly useful in conjunction with the MKS<br />
Make software development facility.<br />
Options<br />
-a<br />
-c<br />
-m<br />
sets only the access time.<br />
does not create any files that do not already exist. Normally, touch creates such files.<br />
sets only the modification time.<br />
If you do not specify -a or -m, touch behaves as though you specified both.<br />
To tell touch to use a time other than the current, use one of the following options:<br />
-f agefile<br />
is an obsolete version of the POSIX-<strong>com</strong>pliant -r option.<br />
-r agefile<br />
sets the access and modification times (as indicated by the other options) to those kept for<br />
agefile.<br />
-t time<br />
specifies a particular time using this format:<br />
[[[[cc]yy]MM]dd]hhmm[.ss]<br />
451 of 457
where cc is the optional first 2 digits of the year, yy is the optional last 2 digits of the year, MM is<br />
the optional number of the month (01-12), dd is the optional day of the month, hh is the hour in 24<br />
hour format (required), mm is the minutes (required), ss is the optional seconds.<br />
An obsolete (but still supported) version of this <strong>com</strong>mand lets you omit the -t, but the format is:<br />
MMddhhmmyy[yy]<br />
EXAMPLES<br />
touch newfile<br />
sets the modification time of newfile to the present.<br />
touch -t 8001031305 oldfile<br />
sets the modification time of oldfile to 13:05 on January 3, 1980.<br />
touch -r oldfile newfile<br />
sets the modification time of newfile to that of oldfile.<br />
ENVIRONMENT VARIABLES<br />
TZ<br />
contains the time zone that touch is to use when interpreting times.<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
Successful <strong>com</strong>pletion.<br />
Failure due to any of the following:<br />
— inability to access the desired file<br />
— system cannot support such an early date<br />
452 of 457
2<br />
Messages<br />
— inability to create a file<br />
— inability to change a file's times<br />
Failure that resulted in a usage message, including:<br />
— unknown <strong>com</strong>mand line option<br />
— only one of -t, -f, or -r is allowed<br />
— -r was missing the agefile<br />
— -t was missing its argument<br />
— invalid date string (bad date conversion)<br />
Age file inaccessible<br />
indicates that time could not be found for the file given with the -f or -r option either<br />
because that file does not exist or because the requesting user is not granted the<br />
appropriate permission for the file.<br />
Missing age file argument<br />
You specified -f or -r, but did not give a file name after it.<br />
Years earlier than year invalid<br />
Your system only recognizes dates back to the given year. touch does not accept dates<br />
before that time.<br />
Bad date conversion<br />
Only one -r(-f) or -t flag allowed<br />
Missing date/time argument<br />
Self-explanatory.<br />
PORTABILITY<br />
POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows Me. Windows NT 4.0.<br />
Windows 2000. Windows XP. Windows Server 2003.<br />
NOTE<br />
touch is provided as both an external utility and a built-in MKS KornShell utility.<br />
On the extended FAT file system, the earliest date accepted is 1980. On the NTFS file system, the<br />
earliest date accepted is 1970.<br />
The touch utility does not accept dates and times past 11:59.59 pm on December 31, 2099.<br />
453 of 457
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
cp, date, sh<br />
454 of 457
NAME<br />
which, whereis<br />
which, whereis — display full path name for executable <strong>com</strong>mand<br />
SYNOPSIS<br />
which [-a] <strong>com</strong>mand ...<br />
whereis <strong>com</strong>mand ...<br />
DESCRIPTION<br />
Windows systems use the PATH environment variable to determine which directories are searched<br />
to find programs. If PATH is not found under Windows NT/2000/XP/2003, which then searches for<br />
Path. For each <strong>com</strong>mand, which looks through the directories in the search path, and displays the<br />
name of the first executable file that matches <strong>com</strong>mand.<br />
which uses the PATHEXT environment variable to determine which files are considered<br />
executable. As which searches each directory in the search path, it appends each of the<br />
extensions in the list, in turn, to <strong>com</strong>mand name to see if it matches a file name in that directory. If<br />
a match exists, that file is considered to be executable.<br />
If PATHEXT is not defined, which only considers files with a .exe, .<strong>com</strong>, .bat, or .cmd<br />
extension to be executable.<br />
Because which is intended primarily for use when working from the Windows <strong>com</strong>mand prompt, it<br />
always searches the current directory first before consulting the search path in the same way that<br />
Windows <strong>com</strong>mand interpreters (such as <strong>com</strong>mand.<strong>com</strong> and cmd.exe) do.<br />
Note:<br />
When running which from the Windows <strong>com</strong>mand prompt, not all executable files reported<br />
may be directly executable from the prompt. Such files may require the use of an additional<br />
program (such as a shell) to execute it. The program to use can normally be determined by<br />
the file's extension. For example, files with a .sh extension should be executed using the<br />
MKS KornShell.<br />
The whereis <strong>com</strong>mand is equivalent to specifying which -a.<br />
Options<br />
455 of 457
-a<br />
displays all matching executable files from every directory in PATH (on Windows Me) or in<br />
Path (on Windows NT/2000/XP/2003), not just the first match. This can help you find<br />
conflicts between two executables of the same name.<br />
ENVIRONMENT VARIABLES<br />
PATH<br />
contains a list of directories for which to search when looking for <strong>com</strong>mand.<br />
PATHEXT<br />
contains a list of file extensions (separated by semicolons) for executable <strong>com</strong>mands. By<br />
default, PATHEXT, has the value of Windows NT/2000/XP/2003's PATHEXT variable with<br />
.<strong>com</strong>;.exe;.bat;.sh;.ksh;.csh;.sed;.awk;.pl appended (omitting any<br />
extensions already represented in PATHEXT).<br />
DIAGNOSTICS<br />
Possible exit status values are:<br />
0<br />
1<br />
An appropriate executable file can be found with the current PATH.<br />
Failure due to any of the following:<br />
PORTABILITY<br />
— an appropriate executable file cannot be found<br />
— invalid <strong>com</strong>mand line option<br />
Available on some UNIX systems. Windows Me. Windows NT 4.0. Windows 2000. Windows XP.<br />
Windows Server 2003.<br />
NOTE<br />
This <strong>com</strong>mand does not know about shell keywords, aliases, functions, and so forth. For this<br />
reason, whence is re<strong>com</strong>mended when you are using the MKS KornShell.<br />
456 of 457
AVAILABILITY<br />
MKS Toolkit for Power Users<br />
MKS Toolkit for System Administrators<br />
MKS Toolkit for Developers<br />
MKS Toolkit for Interoperability<br />
MKS Toolkit for Professional Developers<br />
MKS Toolkit for Enterprise Developers<br />
MKS Toolkit for Enterprise Developers 64-Bit Edition<br />
MKS AlertCentre<br />
MKS Source Integrity Standard<br />
MKS Source Integrity Enterprise<br />
SEE ALSO<br />
Commands:<br />
<strong>com</strong>mand, sh, whence<br />
457 of 457