Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / 2005 / 12 / get-views-for-s.html
1 <!DOCTYPE html>
2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
3   <head>
4     <meta charset="utf-8">
5     <meta name="description" content=" Found and fixed bug in get_views_for_stream Fixed bug in create_dev_snapview.pl::ParseBaselines...">
6     <meta name="generator" content="Movable Type 5.2.3">
7     <title>get_views_for_stream/create_dev_snapview.pl - Status</title>
8     <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9     <link rel="canonical" href="http://defaria.com/blogs/Status/2005/12/get-views-for-s.html">
10     <meta name="viewport" content="width=device-width,initial-scale=1">
11     <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
12     <!--[if lt IE 9]>
13     <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14     <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
15     <![endif]-->
16     
17     <link rel="start" href="http://defaria.com/blogs/Status/">
18
19     <link rel="prev" href="http://defaria.com/blogs/Status/2005/12/cvsism.html" title="cvsims">
20     <link rel="next" href="http://defaria.com/blogs/Status/2005/12/cq-webrebasegna.html" title="CQ Web/Rebase/GNATS Access">
21     <!-- Open Graph Protocol -->
22     <meta property="og:type" content="article">
23     <meta property="og:locale" content="en-us">
24     <meta property="og:title" content="get_views_for_stream/create_dev_snapview.pl">
25     <meta property="og:url" content="http://defaria.com/blogs/Status/2005/12/get-views-for-s.html">
26     <meta property="og:description" content=" Found and fixed bug in get_views_for_stream Fixed bug in create_dev_snapview.pl::ParseBaselines...">
27     <meta property="og:site_name" content="Status">
28     <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
29     <!-- Metadata -->
30     <meta itemprop="description" content=" Found and fixed bug in get_views_for_stream Fixed bug in create_dev_snapview.pl::ParseBaselines...">
31     <link itemprop="url" href="http://defaria.com/blogs/Status/2005/12/get-views-for-s.html">
32     <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
33     
34   </head>
35   <body>
36     <div id="container">
37       <div id="container-inner">
38         <header id="header" role="banner">
39           <div id="header-inner">
40             <div id="header-content">
41               <h1>
42                 <a href="http://defaria.com/blogs/Status/">
43
44                   Status
45
46                 </a>
47               </h1>
48               
49             </div>
50
51             <nav role="navigation">
52           <ul>
53             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
54
55
56           </ul>
57         </nav>
58
59           </div>
60         </header>
61         <div id="content">
62           <div id="content-inner">
63             <ul class="breadcrumb breadcrumb-list">
64               <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65               <li class="breadcrumb-list-item">get_views_for_stream/create_dev_snapview.pl</li>
66             </ul>
67             <div id="individual-main" class="main" role="main">
68               <article id="entry-1760" class="entry entry-asset asset hentry">
69                 <div class="asset-header">
70                   <h2 itemprop="name" class="asset-name entry-title">get_views_for_stream/create_dev_snapview.pl</h2>
71                   <footer class="asset-meta">
72                     <ul class="asset-meta-list">
73                       <li class="asset-meta-list-item">Posted on <time datetime="2005-12-14T13:48:32-08:00" itemprop="datePublished">December 14, 2005</time></li>
74                       <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
75
76   
77                       <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/broadcom/">Broadcom</a></li>
78   
79
80                    </ul>
81                 </footer>
82                 </div>
83                 <div class="entry-content asset-content" itemprop="articleBody">
84                   <ul>
85   <li>Found and fixed bug in get_views_for_stream</li>
86
87   <li>Fixed bug in create_dev_snapview.pl::ParseBaselines
88 </ul>
89                   <h2>get_views_for_stream</h2>
90
91 <p>Hi Naga. I'm writing you this because I believe there's a bug, possibly with Clearcase, but that seems to manifest itself in code I believe you wrote. I came across this implementing enhancements to create_dev_snapview.pl for Andrew Feltham. In essence Andrew wants to be able to have multiple views in a stream. I've implemented a -reuse_stream parm to allow this. If -reuse_stream is used then the code will skip recreating the stream and effectively just make another view in that same stream. If -reuse_stream is not specified then the stream is removed - along with any views that that stream has.</p>
92
93 <p>It appears as if the code was coded to attempt to handle the case where a stream has multiple views however it fails due to a possible but with lsstream. When calling create_stream the code checks to see if the stream exists and if it does it attempts to recreate the stream by determining the view(s) in the stream, deleting them, deleting the stream and creating the stream anew.</p>
94
95 <p>To determine the view(s) in the stream get_views_for_stream is called. Here's the original function:</p>
96
97 <div class="code"><pre>
98 sub get_views_for_stream {
99     my $sel_pvob = $_[0];
100     my $sel_stream = $_[1];
101
102     my @views = split(/\n/, `cleartool lsstream -fmt \"\%\[views\]p\\n\" stream:$sel_stream\@\\$sel_pvob`);
103     return @views;
104 }
105 </pre></div>
106
107 <p>Essentially it does an lsstream asking for only the views, separated by newlines. The problem is that lsstream (with that format) does not return the views separated by newlines:</p>
108
109 <div class="code"><pre>
110 P:\>cleartool lsstream -fmt "%[views]p\n" stream:Build_rmnaNT_adefaria_LTSJCA-ADEFARIA_sv_ldx_2.3@\rmna_projects
111 adefaria_test adefaria_test2 adefaria_test3
112
113 P:\>
114 </pre></div>
115
116 <p>As you can see adefaria_test, adefaria_test2 and adefaria_test3 all appear on the same line. The code then splits the line on \n and effectively always returns a 1 entry array with possibly multiple view names in the first entry separated by spaces. Needless to say this will fail later on when remove_view is called and it generates a "cleartool rmview -force &lt;view names&gt;".</p>
117
118 <p>Here's my proposed fix:</p>
119
120 <div class="code"><pre>
121 sub get_views_for_stream {
122     my $sel_pvob = $_[0];
123     my $sel_stream = $_[1];
124     # Modified Wed Dec 14 11:25:09 PST 2005 Andrew@DeFaria.com
125     #
126     # Note: The format -fmt "%[views]p\n" below does not work! What is
127     # expected to be returned is:
128     #
129     # view1
130     # view2
131     # view3
132     #
133     # However what is actually returned is:
134     #
135     # view1 view2 view3
136     #
137     # Therefore the old spilt of /\n/ always returned a single entry
138     # array with possibly multiple view names in the first
139     # entry. Changed to use / / for split and not append a \n.
140     my @views = split(/ /, `cleartool lsstream -fmt \"\%\[views\]p\" stream:$sel_stream\@\\$sel_pvob`);
141     return @views;
142 }
143 </pre></div>
144
145 <p>Is this acceptable to you?</p>
146                 </div>
147                 <nav class="page-navigation entry-navigation pagination content-nav">
148                   <ul class="page-navigation-list">
149
150                     <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2005/12/cvsism.html" title="cvsims">Previous entry</a></li>
151
152
153                     <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2005/12/cq-webrebasegna.html" title="CQ Web/Rebase/GNATS Access">Next entry</a></li>
154
155                   </ul>
156                 </nav>
157                 <!--
158 <aside id="zenback" class="zenback feedback">
159   Please paste Zenback script code here.
160 </aside>
161 -->
162                 
163                 
164               </article>
165             </div>
166             <aside class="widgets related" role="complementary">
167               <nav class="widget-search widget">
168   <div class="widget-content">
169     <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
170       <div>
171         <input type="text" name="search" value="" placeholder="Search...">
172
173         <input type="hidden" name="IncludeBlogs" value="8">
174
175         <input type="hidden" name="limit" value="20">
176         <button type="submit" name="button">
177           <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
178         </button>
179       </div>
180     </form>
181   </div>
182 </nav>
183 <nav class="widget-archive-category widget">
184   <h3 class="widget-header">Categories</h3>
185   <div class="widget-content">
186     
187       
188     <ul class="widget-list">
189       
190       
191       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
192       
193       
194       </li>
195       
196     
197       
198       
199       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
200       
201       
202       </li>
203       
204     
205       
206       
207       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
208       
209       
210       </li>
211       
212     
213       
214       
215       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
216       
217       
218       </li>
219       
220     
221       
222       
223       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
224       
225       
226       </li>
227       
228     
229       
230       
231       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
232       
233       
234       </li>
235       
236     
237       
238       
239       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
240       
241       
242       </li>
243       
244     
245       
246       
247       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
248       
249       
250       </li>
251       
252     
253       
254       
255       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
256       
257       
258       </li>
259       
260     
261       
262       
263       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
264       
265       
266       </li>
267       
268     
269       
270       
271       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
272       
273       
274       </li>
275       
276     
277       
278       
279       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
280       
281       
282       </li>
283       
284     </ul>
285       
286     
287   </div>
288 </nav>
289   
290
291 <nav class="widget-archive-dropdown widget">
292   <h3 class="widget-header">Archives</h3>
293   <div class="widget-content">
294     <select>
295       <option>Select a Month...</option>
296     
297       <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
298     
299   
300     
301       <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
302     
303   
304     
305       <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
306     
307   
308     
309       <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
310     
311   
312     
313       <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
314     
315   
316     
317       <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
318     
319   
320     
321       <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
322     
323   
324     
325       <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
326     
327   
328     
329       <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
330     
331   
332     
333       <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
334     
335   
336     
337       <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
338     
339   
340     
341       <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
342     
343   
344     
345       <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
346     
347   
348     
349       <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
350     
351   
352     
353       <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
354     
355   
356     
357       <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
358     
359   
360     
361       <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
362     
363   
364     
365       <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
366     
367   
368     
369       <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
370     
371   
372     
373       <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
374     
375   
376     
377       <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
378     
379   
380     
381       <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
382     
383   
384     
385       <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
386     
387   
388     
389       <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
390     
391   
392     
393       <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
394     
395   
396     
397       <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
398     
399   
400     
401       <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
402     
403   
404     
405       <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
406     
407   
408     
409       <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
410     
411   
412     
413       <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
414     
415   
416     
417       <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
418     
419   
420     
421       <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
422     
423   
424     
425       <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
426     
427   
428     
429       <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
430     
431   
432     
433       <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
434     
435   
436     
437       <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
438     
439   
440     
441       <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
442     
443   
444     
445       <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
446     
447   
448     
449       <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
450     
451   
452     
453       <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
454     
455   
456     
457       <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
458     
459   
460     
461       <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
462     
463   
464     
465       <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
466     
467   
468     
469       <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
470     
471   
472     
473       <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
474     
475   
476     
477       <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
478     
479   
480     
481       <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
482     
483   
484     
485       <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
486     
487   
488     
489       <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
490     
491   
492     
493       <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
494     
495   
496     
497       <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
498     
499   
500     
501       <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
502     
503   
504     
505       <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
506     
507   
508     
509       <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
510     
511   
512     
513       <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
514     
515   
516     
517       <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
518     
519   
520     
521       <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
522     
523   
524     
525       <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
526     
527   
528     
529       <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
530     
531   
532     
533       <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
534     
535   
536     
537       <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
538     
539   
540     
541       <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
542     
543   
544     
545       <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
546     
547   
548     
549       <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
550     
551   
552     
553       <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
554     
555   
556     
557       <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
558     
559   
560     
561       <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
562     
563   
564     
565       <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
566     
567   
568     
569       <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
570     
571   
572     
573       <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
574     
575   
576     
577       <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
578     
579   
580     
581       <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
582     
583     </select>
584   </div>
585 </nav>
586     
587   
588
589 <div class="widget-syndication widget section">
590   <div class="widget-content">
591     <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
592
593   </div>
594 </div>
595
596             </aside>
597           </div>
598         </div>
599         <footer id="footer" role="contentinfo">
600           <div id="footer-inner">
601             <div id="footer-content">
602   <nav role="navigation">
603           <ul>
604             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
605
606
607           </ul>
608         </nav>
609
610   <p class="license">&copy; Copyright 2016.</p>
611   <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
612 </div>
613           </div>
614         </footer>
615       </div>
616     </div>
617     <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
618     <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>
619   </body>
620 </html>