Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / week_2005_09_11.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
4 <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta name="generator" content="Movable Type 5.2.3" />
7
8    <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles-site.css" type="text/css" />
9    <link rel="alternate" type="application/atom+xml" title="Atom" href="http://defaria.com/blogs/Status/atom.xml" />
10    <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://defaria.com/blogs/Status/index.xml"$>" />
11
12    <title>Status for Andrew DeFaria: September 11, 2005 - September 17, 2005 Archives</title>
13
14    <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15    <link rel="prev" href="http://defaria.com/blogs/Status/archives/week_2005_09_04.html" title="September  4, 2005 - September 10, 2005" />
16    <link rel="next" href="http://defaria.com/blogs/Status/archives/week_2005_09_18.html" title="September 18, 2005 - September 24, 2005" />
17 </head>
18 <body class="layout-one-column">
19    <div id="container">
20       <div id="container-inner" class="pkg">
21
22          <div id="banner">
23             <div id="banner-inner" class="pkg">
24                <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
25                <h2 id="banner-description">Searchable status reports and work log</h2>
26             </div>
27          </div>
28
29          <div id="pagebody">
30             <div id="pagebody-inner" class="pkg">
31                <div id="alpha">
32                   <div id="alpha-inner" class="pkg">
33                      
34                      <p class="content-nav">
35                         <a href="http://defaria.com/blogs/Status/archives/week_2005_09_04.html">&laquo; September  4, 2005 - September 10, 2005</a> |
36                         <a href="http://defaria.com/blogs/Status/">Main</a>
37                         | <a href="http://defaria.com/blogs/Status/archives/week_2005_09_18.html">September 18, 2005 - September 24, 2005 &raquo;</a>
38                      </p>
39                      
40                      
41                      
42
43                      <h2 class="date-header">September 16, 2005</h2>
44                      <a id="a000423"></a>
45                      <div class="entry" id="entry-423">
46                         <h3 class="entry-header">Evil Twin/Performance</h3>
47                         <div class="entry-content">
48                            <div class="entry-body">
49                               <ul>
50   <li>Implemented Evil Twin trigger. Have not yet tested nor installed trigger yet</li>
51
52   <li>Meeting with Naga Re:
53     <ul>
54       <li>Binary Merge problem</li>
55
56       <li>RM_EMPTY_BRANCH/EVIL_TWIN triggers</li>
57
58      <li>Lock project problem</li>
59   </ul>
60
61   <li>Reviewing both Philip and Chin's performance testing</li>
62
63   <li>Struggling with Cisco VPN client at home!</li>
64 </ul>
65                               
66                               <h3>Evil Twin Trigger</h3>
67
68 <p>Evil twins are a well known phenomena in Clearcase circles. It is not recommended that you try to stop them by convention rather by Clearcase trigger. I have a trigger that does just that. The code uses cleartool ls so that it works for both dynamic views and snapshot views. The trigger also respects case sensitivity. This means that creating an element named "foo" and another element named "Foo" is allowed.</p>
69
70 <p>Evil twins should not be allowed in any vob because, as you rightly point out, it causes merging problems.</p>
71
72 <p>Shall I add this trigger to all vobs?</p>
73
74 <h3>Performance Scripts</h3>
75
76 <p>Both Philip and Chin have their own Clearcase performance testing scripts. In general performance of Clearcase is a huge topic. These scripts a relatively simple, just timing some basic Clearcase operations. Still this is a good metric from a user's perspective.</p>
77
78 <p>We should consolidate these tests and make them more flexible by having them self contained (both creating and tearing down the environment that they need) and generalize them so that new Clearcase operations can be easily added and timed.</p>
79
80 <p>These scripts should produce a data file that can be later consumed by say a PHP script to present the results in a readable manner on a web page somewhere.</p>
81
82 <p>Also, these scripts need to set up various different environments such as using local/remote snapshot views, dynamic views. These scripts can be used to measure performance of the old (ccase-rmna-1) environment as well as newer environements (ccase-rmna-3 and/or the new Linux server).</p>
83
84 <p>Finally it should be made such at adding new tests, i.e. make new baseline, can easily be incorporated into the test suite.</p>
85                               
86                               <p class="entry-footer">
87                                  <span class="post-footers">Posted by  at 12:04 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000423.html">Permalink</a>
88                                  
89                                  
90                               </p>
91                            </div>
92                         </div>
93                      </div>
94                      
95                      
96
97                      <h2 class="date-header">September 15, 2005</h2>
98                      <a id="a000422"></a>
99                      <div class="entry" id="entry-422">
100                         <h3 class="entry-header">Binary Merge/CVS/Clearquest Web</h3>
101                         <div class="entry-content">
102                            <div class="entry-body">
103                               <ul>
104   <li>Inveistigated binary merge problem</li>
105
106   <li>Worked with Mukund regarding CVS access</li>
107
108   <li>Helped Shivdutt with a Clearquest Web problem. User reports that Clearquest Web not working in IE! Suspect the problem is due to configuration issues, specifically JRE. Did some research and sent URLs to user</li>
109 </ul>
110                               
111                               <h3>Binary Merge</h3>
112
113 <p>Clearcase's diffmerge utility has understandable problems attempting to merge files that are binary (Clearcase searches for NUL characters \000 in the file to determine if it is binary). Sometimes Clearcase can merge such files, if it determines that the merge merely entails a wholesale replace of one version with another. But in non trival merges this is not possible.</p>
114
115 <p>Developers and managers here use a series of Perl scripts to help automate common trasks, one of which is to merge to and from different branches. The problem is when delivering a large set of changes there is a chance that some of the files will be binary and that it will not be possible to automatically merge them. Often a developer will start a merge and let it run over night. Sometimes, somewhere in the middle, the merge will prompt with a dialog box saying that it cannot merge this binary file. The result is that the merge is 1/2 done!</p>
116
117 <p>The Perl script uses cleartool findmerge to find and merge both directories and files. It also uses the -merge option to say "automatically merge things". Unfortunately when it hits a non trival binary file merge it cannot continue.</p>
118
119 <p>We propose to modify the Perl script to call findmerge without the -merge option then obtain the list of files that needs merging and itterate through the list calling cleartool merge for each file with a -abort. This tells merge to automatically merge things if it can, otherwise not to merge and return a status code that that merge was not possible in an automatic mode.</p>
120
121 <p>The script would then collect the names of all the files that could not be automatically merged and store that in a file somewhere.<p>
122
123 <p>We believe there are 3 possible ways to merge a non trival merge of a binary file (this assumes a simple merge between two different versions of a binary file. A merge with multiple contributors would obviously present N+1 possibilities...):
124
125 <ol type="A">
126   <li>Result of merge is a copy of the first contributor</li>
127
128   <li>Result of merge is a copy of the second contributor</li>
129
130   <li>Binary file needs to be rebuilt combining both A and B</li>
131 </ol>
132
133 <p>A process could be written to read the saved file of non automatic binary merges and present the user with the choices listed above. The user then selects which choice is appropriate. The process then performs the necessary actions to accomplish what the user requested (i.e. if they select A then a merge arrow is drawn from B -> the checked out copy of A. If they select B then a merge arrow is drawn from A to the checked out copy of B). If any C options are choosen then the file remains unmerged.</p>
134
135 <p>In this way when the user performs his normal merge, upon completion, if merge conflicts exist in binary files the user is presented, <b>at the end of merging everything else</b> a dialog box allowing them to resolve the binary merge problems right now. The benefit here is that all of the other merging has already been completed and they are only dealing with the <i>problem</i> merges now. If they do not wish to correct these now they can always correct them later (issues about where this saved file will reside and how to restart the binary merge resolver are still open).</p>
136                               
137                               <p class="entry-footer">
138                                  <span class="post-footers">Posted by  at  6:31 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000422.html">Permalink</a>
139                                  
140                                  
141                               </p>
142                            </div>
143                         </div>
144                      </div>
145                      
146                      
147
148                      <h2 class="date-header">September 14, 2005</h2>
149                      <a id="a000421"></a>
150                      <div class="entry" id="entry-421">
151                         <h3 class="entry-header">CQ/Triggers/Binary merge/CVS</h3>
152                         <div class="entry-content">
153                            <div class="entry-body">
154                               <ul>
155   <li>Met with Chris Rumf regarding Clearquest and int impending upgrade/merge of DBs. Chris told us of his trials and tribulations with a 3 month project to merge CQ databases and move them to San Diego.</li>
156
157   <li>Fixed mktriggers to properly specify the path for the trigger script in both Windows and Unix implementations.</li>
158
159   <li>Worked with Shivdutt to try to reproduce the problems with merging binary files.</li>
160
161   <li>I was assigned a ticket to give a user CVS repository access. I still do not have proper login access to Irvine nor do I have permissions to perform this task</li>
162 </ul>
163                               
164                               <h3>Clearquest issues</h3>
165
166 <p>In all likelihood we will be faced with a merging of DBs and probable writing of Perl scripts to massage and otherwise transform the database. This will take time. Additionally Vinh is leaving Broadcom.</p>
167
168 <p>Chris warned that he faced a situation where the new version of Clearquest brings in the concept of internationalization by use of a code page and that he had many problems with users copying and pasting things from MS Word which ended up outside of the normal character set.</p>
169
170 <p>Also, Irvine seems to have Clearquest 2001 version which has the old, ASP based Clearquest Web which is decidedly inferior to the new 2003 Apache/RWP/Java based Clearquest Web. He also pointed us to some valuable information about performance tuning the various Clearquest Web pieces. This will be useful if we are to support a large number of users from Isreal.</p>
171
172 <h3>Triggers</h3>
173
174 <p>Looked over most of the currently implemented triggers. I can probably add them to my mktriggers.pl script. One problem is that the ADD_EXECUTE trigger is merely a cleartool protect command to add execute permissions to newly created elements. I'm not sure why one would want to do this to every element as most elements are not executable (even though some OSes seem to think so). The mktriggers.pl script is oriented to only adding Perl based triggers. This could be solved by making it a simple Perl script. Also ADD_EXECUTE is added to all vobs except the \Docs vobs. It we can add it to all vobs it would be easier.</p>
175
176 <p>Current triggers use -exec and specify a Windows UNC path. This means that if we have any Unix clients they will not be able to execute any of these triggers! Fixed mktriggers.pl to add -execwin and -execunix options with proper pathnames.</p>
177
178 <h3>CVS</h3>
179
180 <p>Depending on the CVS situation, Broadcom might be interested in a Web application I had made that manages CVS users. From a web page a user can manage his user (able to change his password, add an email address/phone number, etc). If the user is in a cvsadm group they can add/change/delete other CVS users. With such a web app the help desk could resolve such CVS requests on the spot.</p>
181                               
182                               <p class="entry-footer">
183                                  <span class="post-footers">Posted by  at  6:00 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000421.html">Permalink</a>
184                                  
185                                  
186                               </p>
187                            </div>
188                         </div>
189                      </div>
190                      
191                      
192
193                      <h2 class="date-header">September 13, 2005</h2>
194                      <a id="a000420"></a>
195                      <div class="entry" id="entry-420">
196                         <h3 class="entry-header">Remedy/Irvine Access/P4 ticket</h3>
197                         <div class="entry-content">
198                            <div class="entry-body">
199                               <ul>
200   <li>Finally got Remedy access. Turns out I had it all along just my username was ADEFARIA instead of adefaria!</li>
201
202   <li>Looked into P4 ticket. I am unable to perform the action because I don't have a login to Irvine. P4 stuff gets performed in Irvine and I don't have an account there. Actually I have an account but didn't know the password. Actually I figured out the password - it was my initial password when I came to Broadcom and was never set. The Help desk had me set my password in the beginning but that was in the San Jose domain. I've now set it for Irvine too. There are two problems with my Linux login:
203
204   <ol>
205     <li>In Irvine I have no home directory! As a result I cannot create ~/public_html and write web pages as well as I cannot set up my startup scripts, etc. I put in a ticket for this. Hopefully they will set up Irvine like San Jose in that my home directory will be share amoungst all three areas.</li>
206
207     <li>My default shell is (yuck) csh! I asked for that to be changed to bash.</lI
208   </ol>
209   </li>
210
211   <li>Worked with Shivdutt on disk space problem on ccase-rmna-3</li>
212
213   <li>Added RM_EMPTY_BRANCH trigger to vobs on ccase-rmna-3</li>
214
215   <li>Investigating other triggers to include them in mktriggers.pl</li>
216 </ul>
217                               
218                               <h3>San Jose/Irvine Domains</h3>
219
220 <p>Here in Broadcom there are multiple NIS domains here including sanjose and irvine. For example, ssh'ing into xserver.sj works for me and puts me in /home/adefaria. Insterestingly /home/adefaria corresponds with my Windows home directory. IOW if I touch file on Linux I can see file in my home directory in Windows. Cool. The world is as it should be!</p>
221
222 <p>However in Irvine I have no home directory at all. It seems that home directories are automounted from the NIS auto_home map and that San Jose home directories come from fs-sj1-* while Irivine home direcrtories come from fs-irva-*. Ugh!</p>
223                               
224                               <p class="entry-footer">
225                                  <span class="post-footers">Posted by  at 10:50 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000420.html">Permalink</a>
226                                  
227                                  
228                               </p>
229                            </div>
230                         </div>
231                      </div>
232                      
233                      
234
235                      <h2 class="date-header">September 12, 2005</h2>
236                      <a id="a000418"></a>
237                      <div class="entry" id="entry-418">
238                         <h3 class="entry-header">Backup Registry Server/Triggers</h3>
239                         <div class="entry-content">
240                            <div class="entry-body">
241                               <ul>
242   <li>Investigated how to setup, configure and failover Clearcase backup registry</li>
243
244   <li>Working with Shivdutt to set up new Clearquest server software</li>
245
246   <li>Ported mktriggers.pl and RemoveEmptyBranch.pl. Added RM_EMPTY_BRANCH to vobs on ccase-rmna-1</li>
247 </ul>
248                               
249                               <h2>Clearcase Backup Registry</h2>
250
251 <p>I've looked into how to setup a Clearcase Backup Registry as well as how it is supposed to function when a failure occurs and a switchover is necessary.</p>
252
253 <h3>Introduction</h3>
254
255 <p>Clearcase provides a mechanism to set up a backup registry server in the event that the primary registry server fails. If done properly switching over to the backup registry server is quick and easy. It is not, however, without it's potential problems<sup>1</sup>.</p>
256
257 <h3>Setup</h3>
258
259 <p>To setup a Clearcase Backup Registry Server you must first define which servers will be the primary and secondary register servers<sup>2</sup>. Let's assume rgy1 is the primary and rgy2 is the backup. Next you configure rgy1 to tell it that the backup registry server is rgy2 by adding a line to /var/adm/rational/clearcase/rgy/rgy_hosts.conf.</p>
260
261 <h3>Normal Operation</h3>
262
263 <p>In normal operation Clearcase runs a scheduled job called Daily Registry Backup on all hosts. On all hosts except the designated backup registry server this job does little if anything.</p>
264
265 <blockquote>
266   <p><font class="dim">I have a note that when run on a Windows client it will ask what the backup registry server is and if found and if different, will store that value in the Windows registry, thus Windows clients are self configuring. This should be tested however.</font></p>
267 </blockquote>
268
269 <p>On the backup registry host the job will obtain a snapshot of the registry from the primary registry server. By default 3 days worth of copies are kept.
270
271 <h3>Switchover</h3>
272
273 <p>If the primary registry server fails all that needs to be done is to run rgy_switchover which will promote the backup registry server to be a primary registry server. It will also inform all clients of the change. When the primary comes back it is configured as a backup of the new primary and optionally rgy_switchover'd to be a primary again</p>
274
275 <h3>Notes</h3>
276   <ol>
277     <li>There is no guarantee that rgy_switchover will be able to successfully switch over all clients. Clients may not be available on the network, for example. It will report which clients were not switched over and they can be fixed manually.</li>
278
279     <li>What are our registry servers? The Clearcase Admin Console shows me the following:<br>
280     <blockquote>
281       <ol>
282         <li>ccase-atla-1</li>
283         <li>ccase-gera-1</li>
284         <li>ccase-irva-2</li>
285         <li>ccase-rmna-3</li>
286         <li>ccase-sdoa-1</li>
287         <li>ccase-sj1-1</li>
288         <li>ccase-sj1-3</li>
289         <li>ccase-sj1-4</li>
290         <li>ccase-sj1-5</li>
291         <li>ccase-sj1-7</li>
292         <li>ccase-sj1-8</li>
293         <li>ldt-sdoa-013</li>
294       </ol>
295    </blockquote>
296
297     <p>It seems as if multiple registry servers were used instead of using one global registry and dividing things up by Clearcase regions. In any event, which of these primary registry servers need to be backed up and to where?</p>
298
299     <p>Also, it is not a good practice to put your registry on the same box as your other Clearcase objects (i.e. views or vobs). Say, for example, ccase-rmna-3 blows a disk drive and will be down for quite some time. Sure ccase-rmna-2 might be it's backup registry server and we could switch over the clients, etc. However what good would that do if the vob data they wish to get to is on ccase-rmna-3! Answer: No good at all. That machine is down - period.</p>
300
301     <p>I would recommend that we have one global registry server and a backup server. The backup server can be a vob machine or some other machine which houses important Clearcase data. The theory here is that, as a backup server, it's service time is limited - IOW it's only going to be functioning as a primary registry server for the time that the primary is out. While slightly risky it's only used for a limited time and when there's an emergency.</p>
302   </ol>
303
304 <h3>Mktriggers.pl & RemoveEmptyBranch.pl</li>
305
306 <p>Shivdutt and I feel that the problem that check_full_baseline is hitting is initially caused by having elements that have a 0 element on a branch. This is a common problem as I've explained before - a user checks out a file, it is branched and a 0 element is created as well as a checked out element:</p>
307
308 <img src="/Images/CheckedOut.jpg">
309
310 <p>If the user then cancels the checkout then we are left with:</p>
311
312 <img src="/Images/AfterCancellingCheckout.jpg">
313
314 <p>There is no difference between /main/1 and /main/andys_branch/0. Both /main/andys_branch/0 and /main/andys_branch can be safely removed. I believe that check_full_baseline corrects this situation by creating yet another identical version /main/andys_branch/1 and checking in yet another identical version.</p>
315
316 <p>The RemoveEmptyBranch.pl trigger corrects this condition at uncheckout (rmver and rmbranch) time by detecting this situation and removing both /main/andys_branch/0 and /main/andys_branch. It will only do so if the 0 element is the only thing there. If there are labels attached to the 0 element it will not remove it.</p>
317
318 <p>In order to implement this trigger I had to get the code working here at Broadcom. The RemoveEmptyBranch.pl trigger runs right out of the box, however things must be placed the proper places here at Broadcom. Additionally this trigger should be added to all vobs. Suffice to say, as a Clearcase Admin, I've hit this problem before.</p>
319
320 <p>My solution is a mktriggers.pl script which adds (or replaces) triggers on all public vobs in a region based on data in a data file which describes triggers. Mktriggers.pl is smart to skips private vobs and UCM project vobs.</p>
321
322 <p>Finally, mktriggers.pl uses a module of mine called Display.pm, which provides a consistent way of displaying messages.</p>
323
324 <p>To this regard I have created/ported the following files in //fs-rmna-01/Projects-V0/cc4:</p>
325
326 <blockquote><p>
327   <b>bin/mktriggers.pl:</b> Script to make/replace triggers in all vobs based on triggers.dat<br>
328   <b>etc/triggers.dat:</b> Data file describing triggers (currently only describing RM_EMPTY_BRANCH)<br>
329   <b>triggers/RemoveEmptyBranch.pl:</b> The RM_EMPTY_BRANCH trigger<br>
330   <b>lib/Display.pm:</b> Perl module for displaying messages, errors, warnings consistently<br>
331   <b>lib/Logger.pm:</b> Perl Object for handling creating and manipulating log files (Not used yet)<br>
332 </p></blockquote>
333
334 <p>Here's a usage for mktriggers.pl:</p>
335 <div class="code"><pre>
336     $ mktriggers.pl -u
337     Usage mktriggers.pl: [-u] [-n] [-a] [-r] [-v] [ -vobs <vob tag list> ]
338     Where:
339             -u      Displays this usage
340             -n      No execute mode - just echo out what would have been done
341             -r      Perform only replacements of triggers
342             -a      Perform only adds of triggers that are missing
343             -v      Verbose
344             -d      Debug
345             -vobs   List of vob tags to apply triggers to (default all vobs)
346 </pre></div>
347
348 <p>As you can see there is a no execute mode which just shows what would have been done. Add -v for verbose and it will also echo out the commands that would have been performed. You can also limit mktriggers.pl to only doing additions (-a) or replacements (-r).</p>
349
350 <p>Mktrigger.pl's data files is in etc/triggers.dat. It's format is relatively simple:</p>
351 <div class="code"><pre>
352     # Triggers
353     #################################################################################
354     #
355     # File:         triggers.dat
356     # Description:  Describes the triggers to be implemented.
357     # Author:       Andrew@DeFaria.com
358     # Created:      Mon Mar 15 08:48:24 PST 2004
359     # Language:     None
360     #
361     # (c) Copyright 2004, Andrew@DeFaria.com, all rights reserved.
362     #
363     ################################################################################
364     #
365     # Only the following keywords are currently recognized:
366     #
367     #       Trigger:        Introduces the trigger and gives it its name
368     #       Description:    Used for the trigger type's comment
369     #       Type:           Type of trigger (so far they're all -element -all)
370     #       Opkinds:        Operation kinds that will cause the trigger to fire
371     #       ScriptEngine:   Currently only supporting ccperl (C:\Program
372     #                       Files\Rational\ClearCase\bin\ccperl)
373     #       Script:         Script to run (under triggers)
374     #       Vobs:           Can be either base, ucm, all or a list of vob tags.
375     #                       If base is specified then the trigger is applied to
376     #                       all base Clearcase vobs. If ucm is specified then the
377     #                       trigger is applied to all ucm vobs. If all is
378     #                       specified (or if Vobs is not present) then the trigger
379     #                       is applied to all vobs (base and ucm). Otherwise the
380     #                       value is considered a space separated list of vob tags
381     #                       (without the leading "\") and the trigger is applied
382     #                       only to those vobs.
383     #       EndTrigger      Ends this trigger definition.
384     #
385     ################################################################################
386     Trigger:        RM_EMPTY_BRANCH
387     Description:    Remove empty branches after uncheckout, rmver or rmbranch
388     Type:           -element -all
389     Opkinds:        -postop rmbranch,rmver,uncheckout
390     ScriptEngine:   Perl
391     Script:         RemoveEmptyBranch.pl
392     EndTrigger
393 </pre></div>
394
395 <p>Next I applied the triggers to ccase-rnma-1 since this is our replicated backup of production and here's the output:</p>
396
397 <div class="code"><pre>
398     bash-2.05b$ bin/mktriggers.pl -v
399     Adding trigger RM_EMPTY_BRANCH to vob /vobs/A1... done
400     Adding trigger RM_EMPTY_BRANCH to vob /vobs/CommEngine... done
401     Adding trigger RM_EMPTY_BRANCH to vob /vobs/NewTest... done
402     Adding trigger RM_EMPTY_BRANCH to vob /vobs/OnePhone... done
403     Adding trigger RM_EMPTY_BRANCH to vob /vobs/SpiceBoxSW... done
404     Adding trigger RM_EMPTY_BRANCH to vob /vobs/TrainCommEngine... done
405     Adding trigger RM_EMPTY_BRANCH to vob /vobs/alpha_video... done
406     Adding trigger RM_EMPTY_BRANCH to vob /vobs/bfc_systems... done
407     Adding trigger RM_EMPTY_BRANCH to vob /vobs/cablex... done
408     Adding trigger RM_EMPTY_BRANCH to vob /vobs/cablex_tools... done
409     Adding trigger RM_EMPTY_BRANCH to vob /vobs/docs... done
410     Adding trigger RM_EMPTY_BRANCH to vob /vobs/ldx_apps... done
411     Adding trigger RM_EMPTY_BRANCH to vob /vobs/ldx_dev... done
412     Adding trigger RM_EMPTY_BRANCH to vob /vobs/ldx_hausware... done
413     Adding trigger RM_EMPTY_BRANCH to vob /vobs/ldx_tools... done
414     Adding trigger RM_EMPTY_BRANCH to vob /vobs/lucentexcel... done
415     Adding trigger RM_EMPTY_BRANCH to vob /vobs/netro_apps... done
416     Adding trigger RM_EMPTY_BRANCH to vob /vobs/phonex... done
417     Adding trigger RM_EMPTY_BRANCH to vob /vobs/prot_callctrl... done
418     Adding trigger RM_EMPTY_BRANCH to vob /vobs/prot_h248... done
419     Adding trigger RM_EMPTY_BRANCH to vob /vobs/prot_mgcp... done
420     Adding trigger RM_EMPTY_BRANCH to vob /vobs/prot_openssl... done
421     Adding trigger RM_EMPTY_BRANCH to vob /vobs/prot_tools... done
422     Adding trigger RM_EMPTY_BRANCH to vob /vobs/rmna_projects... done
423     Adding trigger RM_EMPTY_BRANCH to vob /vobs/sec_uHSMnCipher... done
424     Adding trigger RM_EMPTY_BRANCH to vob /vobs/telecan... done
425     Adding trigger RM_EMPTY_BRANCH to vob /vobs/test_comp1... done
426     Adding trigger RM_EMPTY_BRANCH to vob /vobs/test_docs... done
427     Adding trigger RM_EMPTY_BRANCH to vob /vobs/test_pvob... done
428     Adding trigger RM_EMPTY_BRANCH to vob /vobs/test_trp_vob... done
429     Adding trigger RM_EMPTY_BRANCH to vob /vobs/voice_res_gw... done
430     Adding trigger RM_EMPTY_BRANCH to vob /vobs/widcomm_bluetooth... done
431     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_common... done
432     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_drivers... done
433     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_qa... done
434     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_qa_cbx... done
435     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_qa_ipp... done
436     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_qa_ldx... done
437     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_qa_op... done
438     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xchg_qa_xme... done
439     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xme... done
440     Adding trigger RM_EMPTY_BRANCH to vob /vobs/xme_sa... done
441     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_Nucleus... done
442     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_TCL... done
443     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_VxWorks... done
444     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_cygwin... done
445     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_eCos... done
446     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_gnu_mips_elf... done
447     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_misc... done
448     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_psos... done
449     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_ti54x... done
450     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_vc... done
451     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_x86... done
452     Adding trigger RM_EMPTY_BRANCH to vob /vobs/zOEMtools_zsp... done
453 </pre></div>
454
455 <p>When neither add (-a) or replace (-r) is specified mktriggers.pl both adds and/or replaces triggers. If run again with only -a (meaning only add missing triggers) no additional triggers are added. This is a good way to check that no new vobs have been created that are missing triggers or to only add triggers to a vob you just created. You could also specify something like mktriggers.pl -a -vobs /vobs/newvob. Combined with no execute mode and you can easily check if there are any missing triggers without adding them (i.e. mktriggers.pl -n -a).</p>
456                               
457                               <p class="entry-footer">
458                                  <span class="post-footers">Posted by  at 12:54 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000418.html">Permalink</a>
459                                  
460                                  
461                               </p>
462                            </div>
463                         </div>
464                      </div>
465                      
466                   </div>
467                </div>
468             </div>
469          </div>
470       </div>
471    </div>
472 </body>
473 </html>