RVDE7

VDE
VDE
Reference Manual



 q
Previous[ Contents] Index


S

POPULATE STREAM



DPopulates a development stream with generations from another stream.

,Requires PERFREP privilege.




Format

8

POPULATE STREAM stream-name [, stream-name...]




Parameter



stream-name

HThe name of a target stream to be populated with the module generations Hfrom another stream. You can populate more than one stream at a time by Husing wildcard characters in the stream name. The percent sign (%) in a Fname matches any single character in the position it occupies and the @asterisk (*) matches zero or more characters in the position it Coccupies. Those streams whose names match the wildcard pattern are populated.



Description

EThe POPULATE STREAM command populates a specified development stream D(the target stream) with the latest generations from another stream C(the source stream). The target stream is specified with a command Cparameter and the source stream is specified with the /FROM_STREAM Hqualifier. The latest generation of each module in the source stream is Ginserted into the target stream and any modules not represented in the Dsource stream are removed from the target stream. After the command Fcompletes, the target stream contains exactly the same generations as the source stream.

EUsing the CREATE STREAM command to create a new stream with the same Econtents as a parent stream can be a time-consuming operation if the ;VDE library is large. Using the POPULATE STREAM command to Bupdate an existing stream whose contents are already close to the Gdesired source stream is generally a much faster way to make a copy of Fa stream. This command allows you to create new base-level streams by Freusing old base-level streams that are no longer needed, thus saving both time and database space.

;The POPULATE STREAM command updates only the VDE database. FIt does not insert the updated generations into the CMS class for the Gstream, not even if the attribute to maintain the CMS class is set for >the target stream. Neither does the command update the source Hdirectories for the stream. If such operations are needed, they must be <done manually outside of VDE. Alternatively you can use the DINSERT GENERATION command to insert generations into a stream while Gmaintaining CMS classes and stream source directories. Because it does Gmore work, the INSERT GENERATION command is generally much slower than the POPULATE STREAM command.

<VDE populates the target streams in three phases. First, it ?determines what streams to populate using a read-only database Ftransaction. Second, it determines the differences between the source Dand target streams for one target stream. This step is done using a =read-only transaction. Third, VDE loops over the differences Hit found to update the generation membership of the target stream. This Dphase gives the target stream the same generation membership as the Esource stream had during the preceding read-only transaction. During ;this phase, VDE updates 20 modules at a time (by default), Gcommits the transaction, and repeats the process until all modules are <updated. VDE uses multiple short read-write transactions in Corder not to lock the database against other users more than a few ?seconds at a time. After the target stream is fully populated, 8VDE loops to populate the next stream until none remain.

FYou can only populate an open stream if the populate Hattribute is set for the stream. If this attribute is not set, you must Hset it with the MODIFY STREAM /POPULATE command before you can populate 9the stream. You can only populate a frozen stream if the Cpopulate attribute is set and you have the FROZEN /privilege. You cannot populate a closed stream.




Qualifiers



/COMMIT_LIMIT=number

<Specifies the maximum number of modules VDE will update in, Dinsert into, or remove from the target stream before committing the 9database transaction and starting a new transaction. The Hnumber parameter must be an integer value in the range from 1 to 1,000,000.

GSpecification of a smaller value reduces the interval during which the Ddatabase is locked, allowing access to the database by other users. GSpecification of a larger value does reduce the overhead involved with Frecycling locks and repeated commits, but restricts the access to the database by other users.

2By default, VDE commits and restarts a read-write !transaction for every 20 modules.

/CONFIRM



/NOCONFIRM (default)

<Controls whether VDE asks you to confirm that you want each ;target stream populated. The /CONFIRM qualifier causes VDE Gto print a message for each stream asking whether you want that stream Gpopulated. If you answer YES (or Y), that stream is populated from the Hsource stream. If you answer NO (or N), the stream is not populated. If ;you enter a stream name with a wildcard specification, VDE Casks you to confirm the populate action for each stream whose name Dmatches the wildcard specification. The /NOCONFIRM qualifier causes 9VDE to populate the specified streams without asking for confirmation.!

/FROM_STREAM=stream-name

BSpecifies the source stream from which the target stream is to be =populated. VDE makes the generation membership of the target Bstream identical to that of this source stream. This qualifier is :required; if you omit it, VDE prompts you for the name of the source stream.

/LOG (default)



/NOLOG

EControls whether log messages are printed after each stream has been Epopulated. The /LOG qualifier causes such messages to be printed and Bthe /NOLOG qualifier suppresses them. These messages indicate the Fnumber of modules to update, insert, or remove to populate the target Gstream, that the stream has been populated from the source stream, and 9that the database transaction has successfully committed.



Examples

 6    
#1

 
-VDEä POPULATE STREAM BLD_12/FROM_STREAM=BIRCHI%VDE-I-STRMPOPCOUNT, populate module counts: update 5, insert 2, remove 19%VDE-I-STRMPOP, stream BLD_12 populated from stream BIRCH>%VDE-I-COMMIT, database transaction has successfully committedVDEä      


DIn this example, stream BLD_12 is populated from stream BIRCH. Five Gmodule generations in stream BLD_12 are updated, two are inserted, and @one is removed to make the generation membership of that stream Hidentical to stream BIRCH. The log messages confirm that the stream was Cpopulated and that the database transaction successfully completed.


T

REJECT REPLACEMENT



<Marks a queued replacement as rejected in the VDE database. FYou can only mark a replacement as rejected if you are a reviewer for that replacement.

+Requires RESREP privilege.




Format

@

REJECT REPLACEMENT rep-name [, rep-name...] ["remark"]




Parameter



rep-name

CThe name of a queued replacement to be marked as rejected. You can Hreject more than one replacement at a time by using wildcard characters Din the replacement name. The percent sign (%) in a name matches any Bsingle character in the position it occupies and the asterisk (*) Cmatches zero or more characters in the position it occupies. Those Fqueued replacements whose names match the wildcard pattern are marked as rejected.

"remark"

GSpecifies a one-line remark for the replacement. Typically this remark :summarizes why you reject the replacement. Specifying the Bremark parameter is equivalent to specifying the H/REMARK qualifier after the REJECT REPLACEMENT keywords. This parameter Dor the /REMARK qualifier is required; if you do not specify either, $VDE prompts you for a remark string.



Description

;The REJECT REPLACEMENT command updates the VDE database to record thatEyou have reviewed the code changes in a specified queued replacement Eand that you judge those changes not acceptable for replacement into =the VDE library. You must be a reviewer for a replacement in order to mark it as rejected.

FThe REJECT REPLACEMENT command allows you to attach a comment file to Dthe queued replacement. The comment file typically explains why you Ereject the replacement. If you have already created such a file, use Fthe /INPUT qualifier to copy it to the replacement's staging area. If =you omit the /INPUT qualifier, VDE asks you whether you want Dto edit a comment file for the replacement. If you respond YES (the =default answer), VDE invokes your preferred editor to create ?the comment file. If you specify both the /INPUT and the /EDIT :qualifier, VDE copies the input file to the replacement's Gstaging area and then invokes your editor to further modify that file. GIf you have already created a comment file for the replacement with an 9earlier ACCEPT or REJECT command, VDE lets you edit that Ffile again. This capability is useful if you change your mind or want to add more information.

@If you wish to mark a replacement as acceptable, use the ACCEPT FREPLACEMENT command. If you wish to see the review status of a queued .replacement, use the SHOW REPLACEMENT command.




Qualifiers



/CONFIRM



/NOCONFIRM (default)

<Controls whether VDE asks you to confirm that you want each ;replacement rejected. The /CONFIRM qualifier causes VDE to Gprint a message for each replacement asking whether you want to reject Gthat replacement. If you answer YES (or Y), that replacement is marked Das rejected. If you answer NO (or N), the replacement status is not Hchanged. If you enter a replacement name with a wildcard specification, :VDE asks you to confirm the rejection of each replacement Hwhose name matches the wildcard specification. The /NOCONFIRM qualifier :causes VDE to mark the specified replacements as rejected without asking for confirmation.

/EDIT

:Specifies that VDE should invoke your preferred editor so Dthat you can edit your comment file for each queued replacement. If Gsuch a comment file already exists (due to a previous ACCEPT or REJECT CREPLACEMENT command for the same replacement) or if you specify an Einput file with the /INPUT qualifier, the editor modifies that file. FOtherwise, the editor creates a new file in the replacement's staging ?directory. Its file name is your OpenVMS username and its file Gextension is VDE$COMMENT. The comment file typically contains comments for the2author of the replacement and the other reviewers.

;This qualifier is ignored if you are running in batch mode.

/INPUT=file-spec

9Specifies a comment file for the queued replacement. VDE Freads the text file given by the file-spec parameter Eand writes its contents into a new file in the replacement's staging 9directory. The file name of the new file is your OpenVMS Ausername and its file extension is VDE$COMMENT. The comment file !typically contains remarks to theAauthor of the replacement or information for the other reviewers.

/LOG (default)



/NOLOG

EControls whether log messages are printed after each replacement has Gbeen marked as rejected. The /LOG qualifier causes such messages to be Aprinted and the /NOLOG qualifier suppresses them. These messages Findicate that the replacement has been rejected and that the database 'transaction has successfully committed.

/REMARK="string"

GSpecifies a one-line remark for the replacement. Typically this remark Hsummarizes why you reject the replacement. For longer comments, you may Fcreate a comment file with the /INPUT or /EDIT qualifier. The /REMARK Aqualifier (or the remark parameter at the end of the command) is :required; if you do not specify it, VDE prompts you for a remark string.

/USERNAME=username

BSpecifies that the replacement be marked as rejected on behalf of Danother user. The username parameter specifies the AOpenVMS username of the other user. That user must be a reviewer Ffor the specified replacement. You must have the USERNAME privilege touse this qualifier.



Examples

 6    
#1

 
8VDEä REJECT REPLACEMENT BROWN-3 "Bug found in sort code"D%VDE-I-REPREJECT, replacement BROWN-3 marked as rejected in database>%VDE-I-COMMIT, database transaction has successfully committedGDo you wish to edit a comment file for replacement BROWN-3 ? [Yes]: YES !   ...Comment file edited here... VDEä      


DThis command marks that the current user rejects queued replacement DBROWN--3. The remark string indicates the reason for the rejection. 9Since the /INPUT qualifier is omitted, VDE asks the user Ewhether he or she wants to edit a comment file. The user answers YES $and is placed in an editing session.

 6    
#2

 
6VDEä REJECT REPLACEMENT SMITH-1/INPUT=COMMENT_FILE.TXT;Please supply required information for replacement SMITH-1:MEnter a remark for the rejection: Code does not conform to coding conventionsD%VDE-I-REPREJECT, replacement SMITH-1 marked as rejected in database>%VDE-I-COMMIT, database transaction has successfully committedVDEä      


EIn this example, the user marks replacement SMITH--1 as rejected and Fprovides a comment file that gives additional information to the user Gwho queued the replacement. The comment file may explain, for example, Ewhat defects in the code caused it to be rejected. Since the /REMARK 6qualifier is omitted, VDE prompts for a remark string.


R

REMOVE GENERATION



HRemoves a module from a specified development stream so that the module 0no longer has a latest generation in the stream.

-Requires PERFREP privilege. 




Format

4

REMOVE GENERATION mod-name [, mod-name...]




Parameter



mod-name

EThe name of a source module whose latest generation is to be removed Ffrom the specified development stream. The module name consists of an Goptional facility name enclosed in square brackets, a module name, and Han optional type name preceded by a period, such as [FACIL]MOD1.MAR. If Fno facility name is specified, the default facility is assumed. If no Htype name is specified, the latest generations of all source modules of <the specified module name in the given facility are removed.

FYou can remove more than one module from the stream by using wildcard Bcharacters in any of the three components of the module name. The Hpercent sign (%) in a name matches any single character in the position Hit occupies and the asterisk (*) matches zero or more characters in the 9position it occupies. VDE removes each module whose name -matches the wildcard pattern from the stream.




Description

@The REMOVE GENERATION command removes a specified module from a Gspecified development stream so that the module no longer has a latest Cgeneration in that stream. The result is that the module no longer A"belongs" to that stream and can no longer be fetched, !reserved, or built in the stream.

;The removed generation remains in the VDE database and the :VDE library, and it can still be the latest generation of Ethe module for some other stream. The REMOVE GENERATION command thus Gbreaks the association between the module generation and the specified *stream but does not delete the generation.

GIf the specified module is currently reserved in the specified stream, 7VDE terminates that reservation since it is based on a Bmodule generation that no longer is the latest generation for the <stream. VDE sends a mail message to notify the owner of the )reservation that the reservation is lost.




Qualifiers



/CONFIRM



/NOCONFIRM (default)

<Controls whether VDE asks you to confirm that you want each 9generation removed. The /CONFIRM qualifier causes VDE to Dprint a message for the latest generation of each module giving the Aname of the generation and asking whether you want to remove the Hgeneration. If you answer YES (or Y), the generation is removed. If you @answer NO (or N), the generation is not removed. The /NOCONFIRM 7qualifier causes VDE to remove each generation without asking for confirmation.

/LOG (default)



/NOLOG

HControls whether log messages are printed after generations are removed Hfrom streams. The /LOG qualifier causes such messages to be printed and H/NOLOG suppresses them. The messages indicate that the generations have @been removed from the specified development stream and that the 0database transaction has successfully committed.

/REMARK="string"

GSpecifies a remark string that explains why you removed the generation Efrom the specified stream. The quoted remark string can be up to 132 characters long.

/STREAM=stream-name

ESpecifies that the generation be removed from the development stream Ggiven by the stream-name parameter. If this qualifier 0is omitted, VDE prompts you for the stream name.



Examples

 6    
#1

 
4VDEä REMOVE GENERATION [FACIL]MODNAM.C /STREAM=MANGOH%VDE-I-GENREM, generation [FACIL]MODNAM.C;4(4) removed from stream MANGO>%VDE-I-COMMIT, database transaction has successfully committedVDEä      


EThis example removes the latest generation of module [FACIL]MODNAM.C Hfrom stream MANGO. The log message shows that generation 4 had been the Dlatest generation of the module in that stream, and is now removed. HAfter the command has completed, no generation of the module belongs to stream MANGO.


H

REPLACE



?Returns each specified module to the library and creates a new >generation of the module. Each module must be a source module -previously reserved with the RESERVE command.

+Requires RESREP privilege.




Format

5

REPLACE mod-name [, mod-name...] ["remark"]




Parameter



mod-name

HSpecifies a reserved source module to be replaced into the library. The Emodule name consists of an optional facility name enclosed in square Hbrackets, a module name, and an optional type name preceded by a period G(such as [FACIL]MOD1.MAR). If the facility name is omitted, the module Bis assumed to belong to the default facility. If the type name is Homitted, all source modules with the specified module name in the given facility are replaced.

EYou can replace more than one module by using wildcard characters in Hany of the three components of the module name. The percent sign (%) in Ha name matches any single character in the position it occupies and the @asterisk (*) matches zero or more characters in the position it <occupies. VDE replaces the source modules whose names match the wildcard pattern.

BYou can also replace multiple modules by specifying the name of a Fsource group instead of a module name. Source groups are created with Hthe CREATE GROUP command. If you specify a group name, each module that %is a member of the group is replaced.

GIf you use the /SESSION qualifier, those reservations that are members Eof the specified reservation session are replaced. In this case, you Dmust omit the mod-name parameters from the command.

"remark"

:Specifies a remark string for the replacement. VDE stores Hthis remark string with each module generation that the REPLACE command Hcreates. Specifying the remark parameter is equivalent >to specifying the /REMARK qualifier after the REPLACE keyword.



Description

FFor each module you have specified, the REPLACE command creates a new Bgeneration of the module by transferring a file from your default <directory to the current VDE library, possibly by way of an intermediate staging area.EThis new generation becomes the most recent generation of the source Gmodule in the default development stream (or the stream specified with Ethe /STREAM qualifier) and receives a new generation number. The new Fgeneration number is formed by adding 1 to the number of the previous Bgeneration. After creating the new module generation, the REPLACE Ecommand terminates the reservation of that module unless you specify the /RESERVE qualifier.

:After the reserved module is replaced in the VDE library, ;VDE may delete the file used to create the module (as well Has any earlier versions of the file in the same directory). The file is Fonly deleted if the library administrator has defined a NOKEEP script ;for your VDE library and the specified development stream. ;If you specify either the /KEEP or the /RESERVE qualifier, 8VDE does not delete the file even if a NOKEEP script is defined.

EThe file in your default directory normally has the same name as the 6module in the library. However, you can direct VDE to Dreplace a file with a different name or a file in another directory ?than your default directory by specifying the /INPUT qualifier.

9VDE stores the following information about the file that Ecreates the new generation: the creation date and time, the revision Hdate and time, the record format, and other record attributes. When you 5fetch or reserve a generation of a module from a VDE @library, the file that is placed in your directory has the same Ecreation and revision times, record format, and record attributes as Fthe file that was used to create the generation that you are fetching or reserving.

GIf you specify the /QUEUE qualifier or one of the streams that you are Ereplacing the module into has the queued-replacement attribute, then Fthe REPLACE command does not actually perform the replacement of your Fmodule. Instead it copies your files to a "staging area" on 8disk and queues the replacement in the VDE database. An Aauthorized user must then enter a subsequent PERFORM REPLACEMENT Gcommand in order to actually perform the replacement. In this case, it >is the PERFORM REPLACEMENT command the creates the new module 1generation and terminates the module reservation.

GIf you have more than one concurrent reservation of a module, you must Gspecify the exact reservation to be replaced using the /IDENTIFICATION =qualifier. Use the SHOW RESERVATION command to determine the #identification of each reservation.

CIf you or another user has a concurrent reservation for the module Hbeing replaced and that reservation covers at least one stream affected >by your replacement, then the REPLACE command terminates that =reservation. VDE sends a mail message to notify the owner of .that reservation that the reservation is lost.

BTo replace another user's reservation, you must have the USERNAME =privilege and use the /USERNAME qualifier to specify OpenVMS username of that user.

cSource Tracking and Statistics Collection


6VDE can collect replacement statistics and associated Echange-related information, including the reason for the change, the Gproject the change is associated with, and can also be asked to add an =entry to the source code tracking (SCT) DEC Notes conference describing the change.

DStatistics collection is enabled or disabled on a library basis. If Fcollection is enabled and the information is not provided via REPLACE 9qualifiers, VDE will prompt the user for the information !during the replacement operation.

HFor further information, see the /FOLD, /OTHER, and /SCT qualifiers, as well as the /PROJECT qualifier.

[Change Propagation to other Streams


>Replacing a module makes the new module generation the latest Egeneration in the default development stream or the stream specified Gwith the /STREAM qualifier. That generation is thus the generation you Dget by default in a subsequent FETCH or RESERVE command, and is the Fgeneration that is compiled when you build your system in that stream.

GIf the specified stream has successors, the REPLACE command propagates Dthe new module generation to all successor streams. For example, if Hstream V2 is a successor of stream V1, then any module that is replaced Finto stream V1 is also replaced in stream V2 automatically. If stream AV2 has additional successors (such as stream V3), the new module Ageneration is propagated to those streams, and so on recursively.

FPropagation works as follows. If the latest generations of the module Hfor the original stream and the successor stream are the same, then the Hnew module generation created by the REPLACE command becomes the latest Fgeneration for both streams. Both streams are thus equally up-to-date Hwith respect to the changes made to that module. However, if the latest Ggenerations of the module differ for the two streams, which means that <the module has diverged between those two streams, VDE does Anot propagate the new module generation to the successor stream. HInstead, it creates a "fold" record in the database to remind Fthe developer that the change made to the module for the first stream ?must be manually "folded" into the successor stream. DOutstanding folds can be displayed with the SHOW FOLD command and a 4fold record is deleted with the CANCEL FOLD command.

mReplacing a Module with History or Notes Information


EIf you reserve a generation of a module with an embedded history and Cthen replace it, the REPLACE command ignores the history; that is, ,VDE does not copy the history into your VDE Glibrary. If you add text to the file in or above the history (relative Ato #B), or in or below the history (relative to #H), the REPLACE @command issues an error message and the command is not executed.

CIf you reserve a file with embedded notes and then replace it, the <REPLACE command does not copy the notes to the VDE library. HIf, while editing the file, you insert text that looks like an embedded 5note, that text is deleted when the file is replaced.




Qualifiers



/CONFIRM



/NOCONFIRM (default)

<Controls whether VDE asks you to confirm that you want each <module replaced. The /CONFIRM qualifier causes VDE to print Ga message for each specified module asking whether you want to replace Hthat module into the library. If you answer YES (or Y), it is replaced. FIf you answer NO (or N), it is not replaced. The /NOCONFIRM qualifier ;causes VDE to replace each specified module without asking for confirmation.'

/DEFECTS_CORRECTED=error-count



/NODEFECTS_CORRECTED

ESpecifies the number of defects corrected by this replacement: these Edefects could due to problems with the specification, design, logic, @implementation and/or testing. The error-count @parameter is a value indicating the number of defects corrected.

B/NODEFECTS_CORRECTED sets the number of defects corrected to zero.

AThis qualifier is part of the statistics collection component of 7VDE. Statistics collection is enabled or disabled on a ?library basis, using the MODIFY LIBRARY/STATISTICS command. If Dstatistics collection is disabled, these qualifiers are ignored and Hhave no adverse effects. This command is required when certain nkeywords are specified on the /REASONS qualifier; see Table 3-2 for further information.

FIf statistics collection is enabled on the current library and you do Anot specify the /REASONS qualifier, you will be prompted for the information.

/FOLD[=fold-ident]

CSpecifies that a fold record be cancelled when this replacement is Dperformed. The fold-ident parameter gives the fold Fidentifier of a fold record for the module being replaced and for the 6stream in which the replacement takes place. When VDE Cperforms the replacement, it will cancel this fold record from the ;VDE database. You can omit the fold-ident Hparameter if there is only one fold record for the specified module and Fstream. You should use the /FOLD qualifier if the current replacement ;is done to satisfy an existing fold record in the database.




 q
PreviousX Next[ Contents] Index