2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
5 <meta name="description" content="I've updated cvs_report.pl to be more parameterized and flexible. One goal was to make it smart enough to produce a report showing the ECRs between two labels. This is helpful when one wants to get the ECRs that were picked...">
6 <meta name="generator" content="Movable Type 5.2.3">
7 <title>cvs_report.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/01/cvs-reportpl.html">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
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>
17 <link rel="start" href="http://defaria.com/blogs/Status/">
19 <link rel="prev" href="http://defaria.com/blogs/Status/2005/01/built-012405.html" title="Built 012405">
20 <link rel="next" href="http://defaria.com/blogs/Status/2005/01/cvs-corruption.html" title="CVS corruption">
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="cvs_report.pl">
25 <meta property="og:url" content="http://defaria.com/blogs/Status/2005/01/cvs-reportpl.html">
26 <meta property="og:description" content="I've updated cvs_report.pl to be more parameterized and flexible. One goal was to make it smart enough to produce a report showing the ECRs between two labels. This is helpful when one wants to get the ECRs that were picked...">
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">
30 <meta itemprop="description" content="I've updated cvs_report.pl to be more parameterized and flexible. One goal was to make it smart enough to produce a report showing the ECRs between two labels. This is helpful when one wants to get the ECRs that were picked...">
31 <link itemprop="url" href="http://defaria.com/blogs/Status/2005/01/cvs-reportpl.html">
32 <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
37 <div id="container-inner">
38 <header id="header" role="banner">
39 <div id="header-inner">
40 <div id="header-content">
42 <a href="http://defaria.com/blogs/Status/">
51 <nav role="navigation">
53 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
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">cvs_report.pl</li>
67 <div id="individual-main" class="main" role="main">
68 <article id="entry-1563" class="entry entry-asset asset hentry">
69 <div class="asset-header">
70 <h2 itemprop="name" class="asset-name entry-title">cvs_report.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-01-27T16:11:05-08:00" itemprop="datePublished">January 27, 2005</time></li>
74 <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
77 <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks</a></li>
83 <div class="entry-content asset-content" itemprop="articleBody">
84 <p>I've updated cvs_report.pl to be more parameterized and flexible. One goal was to make it smart enough to produce a report showing the ECRs between two labels. This is helpful when one wants to get the ECRs that were picked up in this build.</p>
85 <p>Here's the usage:</p>
87 <div class="code"><pre>
89 Usage: cvs_report.pl [-u] [-email-to <<i>list</i>>] [-email-cc <<i>list</i>>]
90 -from <<i>tag</i>> -to <<i>tag</i>> -m <<i>cvs_module</i>>
95 -email-to: Comma separated list of email addresses
96 to send the report to (Default: Report sent to STDOUT)
97 -email-cc: Comma separated list of email addresses
99 -from: CVS tag used as the base (Default: Extracted from CVS
100 area - error if no CVS area)
101 -to: CVS tag used as the delta (Default: HEAD)
102 -m: CVS module to process
105 <p>Notice that there are options for -email-to and -email-cc. If no email options are specified then cvs_report just outputs the report to STDOUT. This can be used to capture what was picked up. For example, to pickup the ECRs that were incorporated between Lion_lynxos_120604 and Lion_lynxos_012405 one could:</p>
107 <div class="code"><pre>
108 $ cvs_report.pl -from Lion_lynxos_120405 -to Lion_lynxos_012405 -m lynxos > /tmp/ECRs.log
111 <p>Note that if -to is not specified then it defaults to HEAD. So the following cronjob could be configured:</p>
113 <div class="code"><pre>
114 * 4 * * * /it/bin/cvs_report.pl -email-to <<i>email alias</i>>
117 <p>(It would be best if email aliases were used to control who the report is normally sent to).</p>
119 <p>You may notice that there is no -from in the cronjob. This is possible because of another optimization change to cvs_report. The old cvs_report.pl would check out a module into a temporary directory based on a tag then do an update capturing and processing the output from cvs update as the files that have changed. Then it would remove that temporary area. This is a waste as the next night the CVS area is created again from the same -from or base tag. The new cvs_report will also create the temporary area by using $module.cvsr (e.g. lynxos.cvsr). Additionally it will create a file in $module.cvsr named .cvsr containing the -from tag. Subsequent runs of cvs_report without a -from will use the .cvsr file to ascertain what base level the CVS area is at. Thus it does not need to "refresh" the CVS area again and can instead proceed to the cvs update step. This saves several minutes of processing time.</p>
121 <p>Finally, even the cronjob does not need to ever be changed (except if we change the -email-to parameter, which, again, should be an email alias thus we would not change the cronjob rather we would change the email alias - think of people subscribing to receive the CVS report). When we go from Lion_lynxos_012405 -> the next tag all that need be done in a shell window is:</p>
123 <div class="code"><pre>
124 $ cvs_report.pl -from <<i>new tag</i>> -m lynxos
127 <p>Since -from is specified, cvs_report will refresh the lynxos.cvs area and update the .cvsr file to reflect the change. The nightly cronjob will automatically sense the change and just work!</p>
129 <p>Oh, and in passing, I make a change such that new files, files who were not present at the -from tag, are tagged with an "*" to indicate that this file is new file in CVS.</p>
131 <nav class="page-navigation entry-navigation pagination content-nav">
132 <ul class="page-navigation-list">
134 <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2005/01/built-012405.html" title="Built 012405">Previous entry</a></li>
137 <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2005/01/cvs-corruption.html" title="CVS corruption">Next entry</a></li>
142 <aside id="zenback" class="zenback feedback">
143 Please paste Zenback script code here.
150 <aside class="widgets related" role="complementary">
151 <nav class="widget-search widget">
152 <div class="widget-content">
153 <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
155 <input type="text" name="search" value="" placeholder="Search...">
157 <input type="hidden" name="IncludeBlogs" value="8">
159 <input type="hidden" name="limit" value="20">
160 <button type="submit" name="button">
161 <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
167 <nav class="widget-archive-category widget">
168 <h3 class="widget-header">Categories</h3>
169 <div class="widget-content">
172 <ul class="widget-list">
175 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
183 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
191 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
199 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
207 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
215 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
223 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
231 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
239 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
247 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
255 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
263 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
275 <nav class="widget-archive-dropdown widget">
276 <h3 class="widget-header">Archives</h3>
277 <div class="widget-content">
279 <option>Select a Month...</option>
281 <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
285 <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
289 <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
293 <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
297 <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
301 <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
305 <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
309 <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
313 <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
317 <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
321 <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
325 <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
329 <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
333 <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
337 <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
341 <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
345 <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
349 <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
353 <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
357 <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
361 <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
365 <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
369 <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
373 <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
377 <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
381 <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
385 <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
389 <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
393 <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
397 <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
401 <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
405 <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
409 <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
413 <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
417 <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
421 <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
425 <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
429 <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
433 <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
437 <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
441 <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
445 <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
449 <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
453 <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
457 <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
461 <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
465 <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
469 <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
473 <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
477 <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
481 <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
485 <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
489 <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
493 <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
497 <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
501 <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
505 <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
509 <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
513 <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
517 <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
521 <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
525 <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
529 <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
533 <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
537 <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
541 <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
545 <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
549 <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
553 <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
557 <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
561 <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
565 <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
573 <div class="widget-syndication widget section">
574 <div class="widget-content">
575 <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>
583 <footer id="footer" role="contentinfo">
584 <div id="footer-inner">
585 <div id="footer-content">
586 <nav role="navigation">
588 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
594 <p class="license">© Copyright 2016.</p>
595 <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
601 <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
602 <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>