<?xml version="1.0"?>

<changelog xmlns="http://www.red-bean.com/xmlns/cvs2cl/">

<entry>
<date>2001-02-13</date>
<weekday>Tuesday</weekday>
<time>04:55</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.10</revision>
</file>
<msg>(log): Use new "--accum" option.
</msg>
</entry>

<entry>
<date>2001-02-13</date>
<weekday>Tuesday</weekday>
<time>04:54</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.9</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>2.38</revision>
</file>
<msg>* cvs2cl.pl: New `--accum' option.
* Makefile (log, changelog, ChangeLog): new rule and aliases.
</msg>
</entry>

<entry>
<date>2001-01-10</date>
<weekday>Wednesday</weekday>
<time>01:15</time>
<author>kfogel</author>
<file>
<name>index.html</name>
<revision>1.6</revision>
</file>
<msg>Describe cvs2html a bit more.
</msg>
</entry>

<entry>
<date>2001-01-04</date>
<weekday>Thursday</weekday>
<time>06:31</time>
<author>sussman</author>
<file>
<name>Makefile</name>
<revision>1.8</revision>
</file>
<msg>Added Mike Sussman to people.html
</msg>
</entry>

<entry>
<date>2000-12-29</date>
<weekday>Friday</weekday>
<time>08:19</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.37</revision>
</file>
<msg>Better fsf-style formatting, but still not perfect.

Sheesh.  Who would have thought this was such a problem?
</msg>
</entry>

<entry>
<date>2000-12-29</date>
<weekday>Friday</weekday>
<time>07:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.36</revision>
</file>
<msg>Grinding it down, just a little tweak left.
</msg>
</entry>

<entry>
<date>2000-12-29</date>
<weekday>Friday</weekday>
<time>06:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.35</revision>
</file>
<msg>In-progress checkpoint, working on that pesky formatting bug.
</msg>
</entry>

<entry>
<date>2000-12-26</date>
<weekday>Tuesday</weekday>
<time>09:26</time>
<author>kfogel</author>
<file>
<name>tests/Makefile</name>
<revision>1.8</revision>
</file>
<msg>Show context diffs for test failures.
</msg>
</entry>

<entry>
<date>2000-12-26</date>
<weekday>Tuesday</weekday>
<time>09:21</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.34</revision>
</file>
<msg>(derive_change_log): reset %symbolic_names to avoid spurious re-uses
of revision numbers; Hendrik Ruijter &lt;hendrik.ruijter@axis.com&gt;'s
patch.
</msg>
</entry>

<entry>
<date>2000-12-14</date>
<weekday>Thursday</weekday>
<time>08:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.33</revision>
</file>
<msg>(pretty_file_list): fix regexp so we keep all digits of the revision
number.  Thanks to Alan Barrett &lt;apb@cequrux.com&gt; for the patch.
</msg>
</entry>

<entry>
<date>2000-12-14</date>
<weekday>Thursday</weekday>
<time>08:09</time>
<author>kfogel</author>
<file>
<name>changelog-xml-schema.xdr</name>
<revision>1.1</revision>
</file>
<file>
<name>changelog.dtd</name>
<revision>1.1</revision>
</file>
<file>
<name>index.html</name>
<revision>1.5</revision>
</file>
<msg>Added David Carlson's &lt;davidwcarlson@hotmail.com&gt; draft XML dtd and
schema.
</msg>
</entry>

<entry>
<date>2000-11-14</date>
<weekday>Tuesday</weekday>
<time>11:31</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.32</revision>
</file>
<msg>(wrap_log_entry): Removed the experimental blank-line handling.
</msg>
</entry>

<entry>
<date>2000-11-14</date>
<weekday>Tuesday</weekday>
<time>11:29</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.31</revision>
</file>
<msg>(wrap_log_entry): handle leading spaces specially.
This commit also includes some experimental blank-line handling, which
I will remove in a moment.
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>06:27</time>
<author>kfogel</author>
<file>
<name>get-rev.cgi</name>
<revision>2.3</revision>
</file>
<msg>Remove tmp file.
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>06:22</time>
<author>kfogel</author>
<file>
<name>get-rev.cgi</name>
<revision>2.2</revision>
</file>
<msg>work
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>06:14</time>
<author>kfogel</author>
<file>
<name>get-rev.cgi</name>
<revision>2.1</revision>
</file>
<msg>script for checking out a specific revision
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>05:43</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.30</revision>
</file>
<msg>Update home page url.
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>05:16</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.7</revision>
</file>
<msg>Doc fix.
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>04:17</time>
<author>kfogel</author>
<file>
<name>index.html</name>
<revision>1.4</revision>
</file>
<msg>Fix links to sample ChangeLogs.
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>04:15</time>
<author>kfogel</author>
<file>
<name>index.html</name>
<revision>1.3</revision>
</file>
<msg>fix image link
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>04:14</time>
<author>kfogel</author>
<file>
<name>changelogs.html</name>
<revision>1.2</revision>
</file>
<file>
<name>index.html</name>
<revision>1.2</revision>
</file>
<msg>White backgrounds.
</msg>
</entry>

<entry>
<date>2000-11-08</date>
<weekday>Wednesday</weekday>
<time>04:13</time>
<author>kfogel</author>
<file>
<name>.cvsignore</name>
<revision>1.2</revision>
</file>
<file>
<name>Makefile</name>
<revision>1.6</revision>
</file>
<file>
<name>changelogs.html</name>
<revision>1.1</revision>
</file>
<file>
<name>index.html</name>
<revision>1.1</revision>
</file>
<file>
<name>make-samples.sh</name>
<revision>1.1</revision>
</file>
<msg>Moving cvs2cl home page out of kfogel and into generic repository;
make web stuff live directly and statically here too.
</msg>
</entry>

<entry>
<date>2000-09-07</date>
<weekday>Thursday</weekday>
<time>01:57</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.5</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>2.29</revision>
</file>
<file>
<name>tests/out-4a.txt</name>
<revision>1.5</revision>
</file>
<file>
<name>tests/out-4b.txt</name>
<revision>1.5</revision>
</file>
<file>
<name>tests/out-5b.txt</name>
<revision>1.2</revision>
</file>
<msg>Okay, *really* make `-S' and `--fsf' cooperate this time.

Tests adjusted accordingly.
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>13:42</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.28</revision>
</file>
<file>
<name>tests/Makefile</name>
<revision>1.7</revision>
</file>
<file>
<name>tests/out-4a.txt</name>
<revision>1.4</revision>
</file>
<file>
<name>tests/out-4b.txt</name>
<revision>1.4</revision>
</file>
<file>
<name>tests/out-5b.txt</name>
<revision>1.1</revision>
</file>
<msg>Handle the case where both `-S' and `--fsf' were passed.
Added test for same.
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>08:13</time>
<author>kfogel</author>
<file>
<name>tests/.cvsignore</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/Makefile</name>
<revision>1.6</revision>
</file>
<file>
<name>tests/log-5.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-1a.txt</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-1a.xml</name>
<revision>1.3</revision>
</file>
<file>
<name>tests/out-2a.xml</name>
<revision>1.3</revision>
</file>
<file>
<name>tests/out-3a.txt</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-3b.txt</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-4a.txt</name>
<revision>1.3</revision>
</file>
<file>
<name>tests/out-4b.txt</name>
<revision>1.3</revision>
</file>
<file>
<name>tests/out-4c.txt</name>
<revision>1.3</revision>
</file>
<file>
<name>tests/out-5a.txt</name>
<revision>1.1</revision>
</file>
<commondir>tests/</commondir>
<msg>Change all tests and outputs to UTC (at Ian Robertson's suggestion).

(test-5): yet another test of the `--fsf' option.  This log was known
to cause problems before recent fixes.
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>08:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.27</revision>
</file>
<msg>(derive_change_log): oops, compensate for After_Header setting outside
all loops.
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>07:35</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.26</revision>
</file>
<msg>(derive_change_log): compensate for After_Header setting.
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>06:16</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.25</revision>
</file>
<msg>Incorporate new custom FSF-style wrapping into derive_change_log().
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>05:50</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.24</revision>
</file>
<msg>(wrap_log_entry): done.  Works perfectly now.
</msg>
</entry>

<entry>
<date>2000-09-06</date>
<weekday>Wednesday</weekday>
<time>04:27</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.23</revision>
</file>
<msg>(wrap_log_entry): rewritten following the shower inspiration.
Almost perfect now.
</msg>
</entry>

<entry>
<date>2000-09-05</date>
<weekday>Tuesday</weekday>
<time>10:20</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.22</revision>
</file>
<msg>Revert everything having to do with custom wrapping.
</msg>
</entry>

<entry>
<date>2000-09-05</date>
<weekday>Tuesday</weekday>
<time>10:19</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.21</revision>
</file>
<msg>More work on custom wrap, but doesn't actually work yet.
</msg>
</entry>

<entry>
<date>2000-09-05</date>
<weekday>Tuesday</weekday>
<time>08:52</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.20</revision>
</file>
<msg>Temporarily revert, to continue working on custom wrapping.
</msg>
</entry>

<entry>
<date>2000-09-05</date>
<weekday>Tuesday</weekday>
<time>08:51</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.19</revision>
</file>
<msg>Custom wrapping in progress (committing for archival purposes only).
</msg>
</entry>

<entry>
<date>2000-08-30</date>
<weekday>Wednesday</weekday>
<time>07:50</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.18</revision>
</file>
<msg>Much better explanatory comment about FSF-style.
</msg>
</entry>

<entry>
<date>2000-08-30</date>
<weekday>Wednesday</weekday>
<time>07:31</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.17</revision>
</file>
<file>
<name>tests/Makefile</name>
<revision>1.5</revision>
</file>
<file>
<name>tests/log-4.txt</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-4a.txt</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-4b.txt</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-4c.txt</name>
<revision>1.2</revision>
</file>
<msg>Added --fsf option, conditionally handle all of FSF ChangeLog style:

* cvs2cl.pl ($FSF_Style): new var.
(parse_options): set above new var if --fsf flag seen.
(pretty_msg_text, derive_change_log): respectively add and remove
shims, but only if $FSF_Style.

* Makefile: don't forget to run test-4, duh.
(test-4): add new --fsf option, and also add -S for looks.

* log-4.txt: added a real barn-burner of a log entry from JimB.
* out-4a.txt, out-4c.txt, out-4c.txt: adjusted for new data.
</msg>
</entry>

<entry>
<date>2000-08-29</date>
<weekday>Tuesday</weekday>
<time>09:49</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.16</revision>
</file>
<msg>Doc fix.
</msg>
</entry>

<entry>
<date>2000-08-29</date>
<weekday>Tuesday</weekday>
<time>09:42</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.15</revision>
</file>
<file>
<name>tests/Makefile</name>
<revision>1.4</revision>
</file>
<file>
<name>tests/log-4.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-4a.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-4b.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-4c.txt</name>
<revision>1.1</revision>
</file>
<msg>Added heuristics for standard the paren-grouping convention used in
log entries, and tests for same:

(pretty_msg_text): add an extra newline before the paren group, to
prevent wrapping.
(derive_change_log): remove the extra newline, after the wrap() call.
</msg>
</entry>

<entry>
<date>2000-08-22</date>
<weekday>Tuesday</weekday>
<time>13:13</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.14</revision>
</file>
<msg>Note about fixing standard syntax.
</msg>
</entry>

<entry>
<date>2000-08-22</date>
<weekday>Tuesday</weekday>
<time>03:39</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.4</revision>
</file>
<msg>Added `install' rule.
</msg>
</entry>

<entry>
<date>2000-08-17</date>
<weekday>Thursday</weekday>
<time>00:27</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.3</revision>
</file>
<msg>Tell the truth.
</msg>
</entry>

<entry>
<date>2000-08-17</date>
<weekday>Thursday</weekday>
<time>00:26</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.13</revision>
</file>
<msg>(pretty_file_list): init $common_dir to undef; adjust later
conditionals to distinguish undef value from "", the latter meaning
that no common directory prefix is possible.

This fixes the bug with filenames and directory prefixes reported by
Shlomo Reinstein &lt;shlomo.reinstein@intel.com&gt;.
</msg>
</entry>

<entry>
<date>2000-08-17</date>
<weekday>Thursday</weekday>
<time>00:22</time>
<author>kfogel</author>
<file>
<name>tests/Makefile</name>
<revision>1.3</revision>
</file>
<file>
<name>tests/log-3.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-3a.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-3b.txt</name>
<revision>1.1</revision>
</file>
<commondir>tests/</commondir>
<msg>Added tests from Shlomo Reinstein's log.
</msg>
</entry>

<entry>
<date>2000-08-15</date>
<weekday>Tuesday</weekday>
<time>00:59</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.12</revision>
</file>
<msg>Handle even the [allegedly impossible] case of an undefined dir
prefix.
</msg>
</entry>

<entry>
<date>2000-08-15</date>
<weekday>Tuesday</weekday>
<time>00:52</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.11</revision>
</file>
<msg>Be more careful about setting $common_dir.

This hopefully fixes a two-char eats problem reported by Shlomo
Reinstein &lt;shlomo.reinstein@intel.com&gt;; Shlomo's patch is included in
a comment (search for "shlomo") for reference, in case this doesn't
work.  Only Shlomo can test right now, although if this doesn't work
I'll just ask him for his log info.
</msg>
</entry>

<entry>
<date>2000-07-08</date>
<weekday>Saturday</weekday>
<time>04:12</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.10</revision>
</file>
<file>
<name>tests/out-1a.xml</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/out-2a.xml</name>
<revision>1.2</revision>
</file>
<msg>Set an XML namespace if --xml.
</msg>
</entry>

<entry>
<date>2000-07-08</date>
<weekday>Saturday</weekday>
<time>01:20</time>
<author>kfogel</author>
<file>
<name>tests/log-2.txt</name>
<revision>1.2</revision>
</file>
<msg>revert to Olivier's exact version
</msg>
</entry>

<entry>
<date>2000-07-08</date>
<weekday>Saturday</weekday>
<time>00:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.9</revision>
</file>
<file>
<name>tests/Makefile</name>
<revision>1.2</revision>
</file>
<file>
<name>tests/log-2.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-2a.xml</name>
<revision>1.1</revision>
</file>
<msg>Fix branch-number bug reported by Olivier Vit &lt;ovit@reef.com&gt;.

I think this fix compensates for some hand-created weirdness in his
RCS files -- for example, the symbolic-names list in his log (see
tests/log-2.txt) was prefixed with spaces instead of tab, and there
was a branch number of the form 1.7.2 instead of 1.7.0.2.
Nevertheless, it is possible to compensate for these things without
impairing the rest of cvs2cl.pl, and who knows, others may have
similar things going on in their repositories.
</msg>
</entry>

<entry>
<date>2000-07-05</date>
<weekday>Wednesday</weekday>
<time>04:19</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.2</revision>
</file>
<msg>wording tweak
</msg>
</entry>

<entry>
<date>2000-07-05</date>
<weekday>Wednesday</weekday>
<time>04:18</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.8</revision>
</file>
<msg>More branch-number parsing fixes, this time from Ken Olstad
&lt;kolstad@netperceptions.com&gt;.
</msg>
</entry>

<entry>
<date>2000-07-05</date>
<weekday>Wednesday</weekday>
<time>04:06</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.7</revision>
</file>
<msg>Ignore comment lines and lines without colons in usermap file (bug
report and patch from Eric Maryniak &lt;e.maryniak@pobox.com&gt;).
</msg>
</entry>

<entry>
<date>2000-07-05</date>
<weekday>Wednesday</weekday>
<time>04:00</time>
<author>kfogel</author>
<file>
<name>Makefile</name>
<revision>1.1</revision>
</file>
<msg>Run tests from here too.
</msg>
</entry>

<entry>
<date>2000-07-05</date>
<weekday>Wednesday</weekday>
<time>03:56</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.6</revision>
</file>
<msg>Checked in fix from Mike Stead &lt;mstead@reef.com&gt; for overeager
digit-matching in branch/rev calculations.

(Note: also reported by Olivier Vit &lt;ovit@reef.com&gt;).
</msg>
</entry>

<entry>
<date>2000-07-05</date>
<weekday>Wednesday</weekday>
<time>03:51</time>
<author>kfogel</author>
<file>
<name>tests/Makefile</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/log-1.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-1a.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>tests/out-1a.xml</name>
<revision>1.1</revision>
</file>
<commondir>tests/</commondir>
<msg>started test suite
</msg>
</entry>

<entry>
<date>2000-06-29</date>
<weekday>Thursday</weekday>
<time>05:15</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.5</revision>
</file>
<msg>Applied Ying Zhang &lt;ying@zippydesign.com&gt;'s patch adding the
"--hide-filenames" option.
</msg>
</entry>

<entry>
<date>2000-04-20</date>
<weekday>Thursday</weekday>
<time>03:06</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.4</revision>
</file>
<msg>Do xml-escaping on author once only, in outer loop not inner, to avoid
compounded escaping.  (Thanks to Peter Karlsson &lt;peter@opera.no&gt; for
the bug report.)
</msg>
</entry>

<entry>
<date>2000-01-28</date>
<weekday>Friday</weekday>
<time>15:02</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.3</revision>
</file>
<msg>Applied directory separator fix from David Goldfarb &lt;deg@2am.com&gt;.
</msg>
</entry>

<entry>
<date>2000-01-26</date>
<weekday>Wednesday</weekday>
<time>01:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.2</revision>
</file>
<msg>Added --no-wrap option.

Also, stop wrapping log message body when XML output.
</msg>
</entry>

<entry>
<date>2000-01-05</date>
<weekday>Wednesday</weekday>
<time>08:33</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.1</revision>
</file>
<msg>Downcase all XML tags (DTD to be formalized soon).
</msg>
</entry>

<entry>
<date>2000-01-01</date>
<weekday>Saturday</weekday>
<time>03:11</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>2.0</revision>
</file>
<msg>bump version to 2.0
</msg>
</entry>

<entry>
<date>2000-01-01</date>
<weekday>Saturday</weekday>
<time>03:01</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.175</revision>
</file>
<msg>Removed "BETA" designation.
</msg>
</entry>

<entry>
<date>1999-12-30</date>
<weekday>Thursday</weekday>
<time>02:19</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.174</revision>
</file>
<msg>Applied fix from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;.  She correctly
fixed the entry-order/time-unification bug, as opposed to my previous
fix, which merey broke things in a different way.
</msg>
</entry>

<entry>
<date>1999-12-29</date>
<weekday>Wednesday</weekday>
<time>13:09</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.16</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.173</revision>
</file>
<msg>Finally fixed the entry-order/time-unification bug!

It was due to over-liberality about nearby commit times during the
hash twist phase, which was probably the wrong time to notice such
things anyway -- better to catch them during the qunk-storing phase,
by comparing both commit time and message contents.  This is what we
now do.
</msg>
</entry>

<entry>
<date>1999-12-29</date>
<weekday>Wednesday</weekday>
<time>00:41</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.172</revision>
</file>
<msg>Print XML meta header first, and enclose everything in
&lt;CHANGELOG&gt;...&lt;/CHANGELOG&gt; to avoid illegal multirootedness, all on
the advice of Ramon Felciano &lt;felciano@ingenuity.com&gt;.
</msg>
</entry>

<entry>
<date>1999-12-29</date>
<weekday>Wednesday</weekday>
<time>00:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.171</revision>
</file>
<msg>(pretty_file_list): unify XML-related code, for readability.
</msg>
</entry>

<entry>
<date>1999-12-28</date>
<weekday>Tuesday</weekday>
<time>09:34</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.170</revision>
</file>
<msg>Tweak usage.
</msg>
</entry>

<entry>
<date>1999-12-28</date>
<weekday>Tuesday</weekday>
<time>09:31</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.169</revision>
</file>
<msg>Add note to usage message, regarding promiscuity of --xml option.
</msg>
</entry>

<entry>
<date>1999-12-28</date>
<weekday>Tuesday</weekday>
<time>09:26</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.168</revision>
</file>
<msg>If doing XML output, then include day of week unconditionally.
</msg>
</entry>

<entry>
<date>1999-12-28</date>
<weekday>Tuesday</weekday>
<time>09:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.167</revision>
</file>
<msg>Finished XML output ("--xml" option), suggested by Ramon Felciano
&lt;felciano@ingenuity.com&gt;.
</msg>
</entry>

<entry>
<date>1999-12-24</date>
<weekday>Friday</weekday>
<time>10:29</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.166</revision>
</file>
<msg>progress on --xml output, though still not complete
</msg>
</entry>

<entry>
<date>1999-12-24</date>
<weekday>Friday</weekday>
<time>10:05</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.165</revision>
</file>
<msg>started implementing --xml output; not done yet!
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>15:39</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.164</revision>
</file>
<msg>added --easy-parse-format option
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>14:49</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.15</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.163</revision>
</file>
<msg>fixed tag unification bug
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>14:23</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.14</revision>
</file>
<msg>record useful debugging command
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>14:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.162</revision>
</file>
<msg>more output format description
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>14:09</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.13</revision>
</file>
<msg>noticed new bug
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>14:08</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.161</revision>
</file>
<msg>Added -C, --case-insensitive option (suggestion from
Todd Denniston &lt;Todd.Denniston@ssa.crane.navy.mil&gt;)
</msg>
</entry>

<entry>
<date>1999-12-18</date>
<weekday>Saturday</weekday>
<time>13:21</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.160</revision>
</file>
<msg>added informal format description
</msg>
</entry>

<entry>
<date>1999-12-11</date>
<weekday>Saturday</weekday>
<time>03:44</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.12</revision>
</file>
<msg>reprioritize
</msg>
</entry>

<entry>
<date>1999-12-07</date>
<weekday>Tuesday</weekday>
<time>12:55</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.159</revision>
</file>
<msg>Transmogrify Windows filenames to Unix-style.
Fix due to Frank Stockinger &lt;F.Stockinger@plettac-electronics.de&gt;,
who noticed the problem because he runs cvs2cl.pl with ActiveState
Perl under Windows NT.
</msg>
</entry>

<entry>
<date>1999-12-07</date>
<weekday>Tuesday</weekday>
<time>12:51</time>
<author>kfogel</author>
<file>
<name>a-subdir/foo.txt</name>
<revision>1.2.2.3</revision>
<branch>Brancho_Gratuito</branch>
</file>
<file>
<name>a-subdir/test.txt</name>
<revision>1.2.2.4</revision>
<branch>Brancho_Gratuito</branch>
</file>
<commondir>a-subdir/</commondir>
<msg>just a test change
</msg>
</entry>

<entry>
<date>1999-12-07</date>
<weekday>Tuesday</weekday>
<time>12:39</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.158</revision>
</file>
<msg>fix typo: it's --follow, not --follow-branch
Thanks to G. Paul Ziemba &lt;paul@mayannetworks.com&gt; for reporting this.
</msg>
</entry>

<entry>
<date>1999-11-10</date>
<weekday>Wednesday</weekday>
<time>06:45</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.11</revision>
</file>
<msg>Entered reproduction recipe (log data) for entry order bug.
</msg>
</entry>

<entry>
<date>1999-11-07</date>
<weekday>Sunday</weekday>
<time>12:50</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.10</revision>
</file>
<msg>Removed all of Doug Finkle's recent bugs.  Now that's what I call a
good night!
</msg>
</entry>

<entry>
<date>1999-11-07</date>
<weekday>Sunday</weekday>
<time>12:22</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.157</revision>
</file>
<msg>More robust option parsing: exit with error if a required argument is
absent.
</msg>
</entry>

<entry>
<date>1999-11-07</date>
<weekday>Sunday</weekday>
<time>12:09</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.156</revision>
</file>
<msg>Handle "-F trunk" (also "-F TRUNK") with a special case, thus giving
a way to follow the trunk alone, ignoring any branches.

This is okay because no would ever, ever be crazy enough to name a
branch "trunk", right?  Right.
</msg>
</entry>

<entry>
<date>1999-11-07</date>
<weekday>Sunday</weekday>
<time>11:40</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.155</revision>
</file>
<msg>Fixed Doug Finkle's bug where by spurious branch information would
appear in his ChangeLog entries.  However, the cure is (unavoidably)
only slightly preferable to the disease.  Read on...

Suppose we see a log entry like this:

   ----------------------------
   revision 1.1
   date: 1999/10/17 [etc etc]
   branches:  1.1.2;
   Log message begins here.
   ----------------------------

The question is, how we can tell the difference between that log
message and a *two*-line log message whose first line is

   "branches:  1.1.2;"

See the problem?  The output of "cvs log" is inherently
ambiguous. For now, we punt: we liberally assume that people don't
write log messages like that, and just toss a "branches:"
line if we see it but are not showing branches.  I hope no
one ever loses real log data because of this.  Sigh.
</msg>
</entry>

<entry>
<date>1999-11-07</date>
<weekday>Sunday</weekday>
<time>11:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.154</revision>
</file>
<msg>Fix bug in which the file separators terminating files with no
revisions (from "cvs -d DATE" output, for example) were not noticed.
</msg>
</entry>

<entry>
<date>1999-11-04</date>
<weekday>Thursday</weekday>
<time>00:59</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.9</revision>
</file>
<msg>more stuff from Doug Finkle
</msg>
</entry>

<entry>
<date>1999-09-28</date>
<weekday>Tuesday</weekday>
<time>00:34</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.8</revision>
</file>
<msg>added Doug's bugs
</msg>
</entry>

<entry>
<date>1999-09-20</date>
<weekday>Monday</weekday>
<time>16:04</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.153</revision>
</file>
<msg>Bug fix from Marcin Kasperski &lt;Marcin.Kasperski@softax.com.pl&gt;:

If $common_dir is "./", then just set it to "".  This fixes the
occasional two-char-eats problem.
</msg>
</entry>

<entry>
<date>1999-09-20</date>
<weekday>Monday</weekday>
<time>13:04</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.152</revision>
</file>
<msg>simplified common_dir code, a couple of other things
</msg>
</entry>

<entry>
<date>1999-09-20</date>
<weekday>Monday</weekday>
<time>05:04</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.151</revision>
</file>
<msg>consistency in usage message
</msg>
</entry>

<entry>
<date>1999-09-19</date>
<weekday>Sunday</weekday>
<time>16:03</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.7</revision>
</file>
<msg>removed old items
</msg>
</entry>

<entry>
<date>1999-09-19</date>
<weekday>Sunday</weekday>
<time>15:58</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.150</revision>
</file>
<msg>Added --gmt/--utc and -w/--day-of-week options.
</msg>
</entry>

<entry>
<date>1999-09-19</date>
<weekday>Sunday</weekday>
<time>15:29</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.149</revision>
</file>
<msg>Common dir prefix unification done.
</msg>
</entry>

<entry>
<date>1999-09-19</date>
<weekday>Sunday</weekday>
<time>14:33</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.148</revision>
</file>
<msg>commit with 'Speedy' code in, for kicks; will revert immediately
</msg>
</entry>

<entry>
<date>1999-09-18</date>
<weekday>Saturday</weekday>
<time>14:16</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.147</revision>
</file>
<msg>abstracted out common dir detection, but still punting
</msg>
</entry>

<entry>
<date>1999-09-18</date>
<weekday>Saturday</weekday>
<time>14:05</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.146</revision>
</file>
<msg>fixed undefined hash reference bug
</msg>
</entry>

<entry>
<date>1999-09-18</date>
<weekday>Saturday</weekday>
<time>13:30</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.145</revision>
</file>
<msg>small reformatting of usage
</msg>
</entry>

<entry>
<date>1999-09-17</date>
<weekday>Friday</weekday>
<time>01:01</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.144</revision>
</file>
<msg>Fix usage bug, rearrange usage
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>13:05</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.143</revision>
</file>
<msg>format usage more clearly
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>13:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.142</revision>
</file>
<msg>oops, fix typo from last change
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>12:59</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.141</revision>
</file>
<msg>no more default header -- only print header on request
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>12:34</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.140</revision>
</file>
<msg>mark as beta
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>12:31</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.139</revision>
</file>
<msg>use scalar instead of $#
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>12:20</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.138</revision>
</file>
<msg>document new stuff
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>11:59</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.137</revision>
</file>
<msg>-F / --follow-branches working
</msg>
</entry>

<entry>
<date>1999-09-16</date>
<weekday>Thursday</weekday>
<time>11:43</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.136</revision>
</file>
<msg>Branch-following detection code working.

Has no effect yet -- the conditionals are all there, but their
consequents are empty.
</msg>
</entry>

<entry>
<date>1999-09-15</date>
<weekday>Wednesday</weekday>
<time>05:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.135</revision>
</file>
<msg>reverted previous non-working change -- it was just for storage
</msg>
</entry>

<entry>
<date>1999-09-15</date>
<weekday>Wednesday</weekday>
<time>05:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.134</revision>
</file>
<msg>progress on Follow_Branches
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>12:53</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.133</revision>
</file>
<msg>continuing implementation of Follow_Branches
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>12:40</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.132</revision>
</file>
<msg>oops, don't clear overenthusiastically
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>12:38</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.131</revision>
</file>
<msg>fixed single-file bug, started implementing Follow_Branches
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>10:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.130</revision>
</file>
<msg>Accurify comments.
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>10:35</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.129</revision>
</file>
<msg>Unify common directories.
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>10:04</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.128</revision>
</file>
<msg>Unify tags even when branches are present.
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>09:22</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.127</revision>
</file>
<msg>Use hashes instead of lists in pretty_file_list(), for efficiency.
</msg>
</entry>

<entry>
<date>1999-09-14</date>
<weekday>Tuesday</weekday>
<time>00:11</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.126</revision>
</file>
<msg>added todo comment
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>15:58</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.6</revision>
</file>
<msg>updated
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>15:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.125</revision>
</file>
<msg>implemented -I / --ignore option
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>15:16</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.124</revision>
</file>
<msg>fixed another buglet
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>15:14</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.123</revision>
</file>
<msg>fixed some buglets
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>14:59</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.122</revision>
</file>
<msg>fix regexp gate to behave in the expected way, finally!
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>14:49</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.121</revision>
</file>
<msg>New unifying/summarizing output format.

Needs testing, though.

Branch roots are still recorded, but are not included in the new
output format.  Should ask if there's any demand for them, as they're
probably not critical to most people.
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>13:54</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.120</revision>
</file>
<msg>revert previous interim revision
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>13:53</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.119</revision>
</file>
<msg>interim revision, toward new release; will revert
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>12:58</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.5</revision>
</file>
<msg>added request from Doug Finkle
</msg>
</entry>

<entry>
<date>1999-09-13</date>
<weekday>Monday</weekday>
<time>11:16</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.118</revision>
</file>
<msg>mild comment changes
</msg>
</entry>

<entry>
<date>1999-07-30</date>
<weekday>Friday</weekday>
<time>12:56</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.4</revision>
</file>
<msg>new items
</msg>
</entry>

<entry>
<date>1999-07-30</date>
<weekday>Friday</weekday>
<time>12:19</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.117</revision>
</file>
<msg>tweak usage
</msg>
</entry>

<entry>
<date>1999-07-30</date>
<weekday>Friday</weekday>
<time>12:18</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.116</revision>
</file>
<msg>Added -W / --window option to control $Max_Checkin_Duration (the
window of time within which log entries get unified).
</msg>
</entry>

<entry>
<date>1999-07-30</date>
<weekday>Friday</weekday>
<time>12:08</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.115</revision>
</file>
<msg>Dear cvs2cl users,

Okay, okay, you win. :-) I have added an option to expand usernames to
email addresses, from a user-supplied map file.  The map file's format
is the same as CVSROOT/users in the repository (see the Cederqvist),
and in fact you might want to actually use that file, because I still
do plan to add an option to "cvs log" to expand directly in the log
output based on that file.  In an ideal world, cvs2cl would not depend
on a local copy of that file, but I realize we do not live in an ideal
world.

The option is -U / --usermap.
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>16:09</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.3</revision>
</file>
<msg>add item about cumulative updates
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>16:04</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.2</revision>
</file>
<msg>clarify
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>15:38</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.114</revision>
</file>
<msg>really, truly fix leading .// problem
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>15:30</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.113</revision>
</file>
<msg>really fix leading .// problem
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>15:23</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.112</revision>
</file>
<msg>fix leading .// problem
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>14:45</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.111</revision>
</file>
<msg>Finished partial reversion to 1.107.

Thus, the difference from 1.107 to now is that unless revisions were
specified, branches will be shown as Branch_Name, not Branch_Name.N.

This change is from Avi Kivity &lt;Avi@avionitek.com&gt;, whose patch also
included the interesting feature of listing the branch only once for
all the files on that branch in that commit.  See the log message
1.108 for why I haven't yet permanently incorporated that part of his
patch.
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>14:40</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.110</revision>
</file>
<msg>partial reversion to 1.107; see log message at 1.108 for reasons
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>14:38</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.109</revision>
</file>
<msg>fixed buglet in regexp, before partial reversion of previous change
</msg>
</entry>

<entry>
<date>1999-07-25</date>
<weekday>Sunday</weekday>
<time>14:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.108</revision>
</file>
<msg>Merged in all of Avi Kivity &lt;Avi@avionitek.com&gt;'s patch to unify
branch listings if revisions and tags aren't being included.

Will revert part of this change immediately.  I'm not sure the whole
thing should be done yet, because in the new output, it's impossible
to distinguish between N files with the same log message in the same
commit on the same branch, and N files with the same log message on
the same commit but with only the last file on the branch.  So far,
the output of cvs2cl has always been unambiguous; if that's going to
change, it should at least be by request (i.e., by option) only.

However, Avi is totally right about branches being displayed as
Branch_Name, not Branch_Name.N, when revisions were not requested.
</msg>
</entry>

<entry>
<date>1999-07-24</date>
<weekday>Saturday</weekday>
<time>01:37</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.107</revision>
</file>
<msg>handle empty ChangeLog headers gracefully
</msg>
</entry>

<entry>
<date>1999-07-23</date>
<weekday>Friday</weekday>
<time>17:06</time>
<author>kfogel</author>
<file>
<name>TODO</name>
<revision>1.1</revision>
</file>
<msg>My stack is so high I actually need to write it down.
Sigh.
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>13:09</time>
<author>kfogel</author>
<file>
<name>a-subdir/foo.txt</name>
<revision>1.2.2.2</revision>
<branch>Brancho_Gratuito</branch>
<tag>FISHTAG</tag>
</file>
<file>
<name>a-subdir/test.txt</name>
<revision>1.2.2.3</revision>
<branch>Brancho_Gratuito</branch>
</file>
<file>
<name>a-subdir/subsubdir/test.txt</name>
<revision>1.2.2.2</revision>
<branch>Brancho_Gratuito</branch>
</file>
<commondir>a-subdir/</commondir>
<msg>change piles upon change
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>13:05</time>
<author>kfogel</author>
<file>
<name>a-subdir/test.txt</name>
<revision>1.2.2.2</revision>
<branch>Brancho_Gratuito</branch>
</file>
<msg>new change
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>13:05</time>
<author>kfogel</author>
<file>
<name>a-subdir/foo.txt</name>
<revision>1.2.2.1</revision>
<branch>Brancho_Gratuito</branch>
</file>
<file>
<name>a-subdir/test.txt</name>
<revision>1.2.2.1</revision>
<branch>Brancho_Gratuito</branch>
</file>
<file>
<name>a-subdir/subsubdir/test.txt</name>
<revision>1.2.2.1</revision>
<branch>Brancho_Gratuito</branch>
</file>
<commondir>a-subdir/</commondir>
<msg>change them on the branch
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>13:04</time>
<author>kfogel</author>
<file>
<name>a-subdir/foo.txt</name>
<revision>1.2</revision>
</file>
<msg>meaningless change
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>13:03</time>
<author>kfogel</author>
<file>
<name>a-subdir/foo.txt</name>
<revision>1.1</revision>
</file>
<msg>a truly pointless file -- exploring branches
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>01:09</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.106</revision>
</file>
<msg>note stdin behavior of --header
</msg>
</entry>

<entry>
<date>1999-07-17</date>
<weekday>Saturday</weekday>
<time>00:04</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.105</revision>
</file>
<msg>Change from Avi Kivity &lt;Avi@avionitek.com&gt;:

Offer new "--header" option to control ChangeLog header (patch
rewritten slightly to use slurp_file(), in anticipation of future
need).
</msg>
</entry>

<entry>
<date>1999-07-02</date>
<weekday>Friday</weekday>
<time>00:58</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.104</revision>
</file>
<msg>Only compile $Regexp_Gate once.
</msg>
</entry>

<entry>
<date>1999-07-02</date>
<weekday>Friday</weekday>
<time>00:56</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.103</revision>
</file>
<msg>Match against author too when doing -R/--regexp
</msg>
</entry>

<entry>
<date>1999-06-16</date>
<weekday>Wednesday</weekday>
<time>13:09</time>
<author>kfogel</author>
<file>
<name>mywrap.pl</name>
<revision>1.2</revision>
</file>
<msg>skeleton
</msg>
</entry>

<entry>
<date>1999-06-16</date>
<weekday>Wednesday</weekday>
<time>09:36</time>
<author>kfogel</author>
<file>
<name>mywrap.pl</name>
<revision>1.1</revision>
</file>
<msg>initial import
</msg>
</entry>

<entry>
<date>1999-05-26</date>
<weekday>Wednesday</weekday>
<time>14:01</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.102</revision>
</file>
<msg>Added long note about wrap() bug at end
</msg>
</entry>

<entry>
<date>1999-05-26</date>
<weekday>Wednesday</weekday>
<time>13:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.101</revision>
</file>
<msg>improved previous improvement
</msg>
</entry>

<entry>
<date>1999-05-26</date>
<weekday>Wednesday</weekday>
<time>12:16</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.100</revision>
</file>
<msg>Improve output by improving decisions about which newlines to strip
off: now leaves alone indented and lines beginning with a mail-quote
character ("&gt;").
</msg>
</entry>

<entry>
<date>1999-05-23</date>
<weekday>Sunday</weekday>
<time>11:31</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.99</revision>
</file>
<msg>expand comment
</msg>
</entry>

<entry>
<date>1999-05-22</date>
<weekday>Saturday</weekday>
<time>12:19</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.98</revision>
</file>
<msg>trivial change to bump version number for PAUSE
</msg>
</entry>

<entry>
<date>1999-05-22</date>
<weekday>Saturday</weekday>
<time>07:34</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.97</revision>
</file>
<msg>categorize in Version_Control/CVS
</msg>
</entry>

<entry>
<date>1999-05-22</date>
<weekday>Saturday</weekday>
<time>04:16</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.96</revision>
</file>
<msg>test regexp against the whole entry, not just msg_txt
</msg>
</entry>

<entry>
<date>1999-05-22</date>
<weekday>Saturday</weekday>
<time>04:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.95</revision>
</file>
<msg>Treat non-options as filename arguments for 'cvs log'
</msg>
</entry>

<entry>
<date>1999-05-22</date>
<weekday>Saturday</weekday>
<time>02:59</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.94</revision>
</file>
<msg>update PAUSE info
</msg>
</entry>

<entry>
<date>1999-05-21</date>
<weekday>Friday</weekday>
<time>14:15</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.93</revision>
</file>
<msg>Fixed yet another bug in branch root tracing, by tweaking a regexp again.

Added the -R / --regexp feature.

(The bugfix is unrelated to the new feature.)
</msg>
</entry>

<entry>
<date>1999-05-21</date>
<weekday>Friday</weekday>
<time>05:45</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.92</revision>
</file>
<msg>Accept -P for --prune, like CVS
</msg>
</entry>

<entry>
<date>1999-05-20</date>
<weekday>Thursday</weekday>
<time>15:54</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.91</revision>
</file>
<msg>Fixed some regular expressions.  This takes care of the branch-tracing
bug reported by John Cavanaugh &lt;cavanaug@sr.hp.com&gt;.
</msg>
</entry>

<entry>
<date>1999-05-20</date>
<weekday>Thursday</weekday>
<time>05:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.90</revision>
</file>
<msg>mention perl-indent-level after all
</msg>
</entry>

<entry>
<date>1999-05-20</date>
<weekday>Thursday</weekday>
<time>05:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.89</revision>
</file>
<msg>Change from William A. Hoffman &lt;hoffman@crd.ge.com&gt;:

Invoke perl in a path-independent manner (subtitled: "Karl learns
about the -x option to Perl and is appropriately awed").
</msg>
</entry>

<entry>
<date>1999-05-20</date>
<weekday>Thursday</weekday>
<time>04:58</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.88</revision>
</file>
<msg>Patch from Johannes Stezenbach &lt;johannes.stezenbach@propack-data.de&gt;:

Handle the possibility that no revisions are shown for a given file
(this can happen with "cvs log -d&lt;DATE&gt;", for example).
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>13:43</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.87</revision>
</file>
<msg>make -b useful even without -r
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>13:12</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.86</revision>
</file>
<msg>if showing branches, show latest ancestor as such
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>11:58</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.85</revision>
</file>
<msg>removed debugging statements; better comment
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>11:52</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.84</revision>
</file>
<msg>Added -b / --branches option.

This implements John Cavanaugh &lt;cavanaug@sr.hp.com&gt;'s suggestion to
substitute branch names into revision numbers where possible.
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>06:29</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.83</revision>
</file>
<msg>fixed; undid previous reversion
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>06:12</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.82</revision>
</file>
<msg>reverted to 1.79 to debug problems in previous two revisions
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>06:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.81</revision>
</file>
<msg>clean but broken; will revert to 1.79 and incrementally return to this
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>05:37</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.80</revision>
</file>
<msg>Avoid using `if' and `unless' in postfix style.
Plus a few other minor cleanups.
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>05:21</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.79</revision>
</file>
<msg>perfectify comment
</msg>
</entry>

<entry>
<date>1999-05-13</date>
<weekday>Thursday</weekday>
<time>05:18</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.78</revision>
</file>
<msg>Changes from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Use "defined $foo" instead of "$foo", to protect against files name
"0" and such.

Don't even hint at ignoring "revision" lines anymore (even though
ignoring was happening after the revision had already been grabbed).

Remember to skip to next line once revision is grabbed, and clear out
the $revision variable after the loop.

Removed unnecessary curly braces.
</msg>
</entry>

<entry>
<date>1999-04-19</date>
<weekday>Monday</weekday>
<time>15:14</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.77</revision>
</file>
<msg>Changes from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Use \d instead of 0-9 in regexps.
Don't use double-quotes where not necessary.
</msg>
</entry>

<entry>
<date>1999-04-14</date>
<weekday>Wednesday</weekday>
<time>07:29</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.76</revision>
</file>
<msg>Match exact length of $file_separator and $log_separator, thus
avoiding identical-prefix-bugs like the following:

==============================================================================

or perhaps

-----------------------------

See?  Both of those had one extra "=" or "-" than an actual separators
do.  So if this is all one log entry, then the bug is fixed.
</msg>
</entry>

<entry>
<date>1999-04-14</date>
<weekday>Wednesday</weekday>
<time>06:26</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.75</revision>
</file>
<msg>comment accurification
</msg>
</entry>

<entry>
<date>1999-04-13</date>
<weekday>Tuesday</weekday>
<time>23:33</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.74</revision>
</file>
<msg>removed BETA designation
</msg>
</entry>

<entry>
<date>1999-04-13</date>
<weekday>Tuesday</weekday>
<time>23:30</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.73</revision>
</file>
<msg>Change from Avi Kivity &lt;Avi@avionitek.com&gt;:

Be liberal about matching symbolic names -- just take anything
preceding the colon.  Enforcing restrictions on tag names is CVS's
responsibility, not ours.
</msg>
</entry>

<entry>
<date>1999-04-10</date>
<weekday>Saturday</weekday>
<time>14:35</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.72</revision>
</file>
<msg>Made POD documentation, for the Perl Scripts Archive
</msg>
</entry>

<entry>
<date>1999-04-10</date>
<weekday>Saturday</weekday>
<time>01:09</time>
<author>kfogel</author>
<file>
<name>README</name>
<revision>1.3</revision>
</file>
<msg>Reverted previous change, which was only made to test public CVS
access anyway.
</msg>
</entry>

<entry>
<date>1999-04-10</date>
<weekday>Saturday</weekday>
<time>00:53</time>
<author>melissa</author>
<file>
<name>README</name>
<revision>1.2</revision>
</file>
<msg>Trivial change (about to be reverted).

This is not Melissa, this is really Karl.  I'm just testing the new
`pubcvs' system, with melissa as the first user.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>10:22</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.71</revision>
</file>
<msg>Oops, fixed previous fix to implementation of "-t" / "--tags".
Now remembers to clear out %symbolic_names after use.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>09:15</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.70</revision>
</file>
<msg>Fixed implementation of "-t" / "--tags": now correctly handles
multiple symbolic names on the same revision number.

Thanks, Melissa, for the autovivication lesson.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>08:54</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.69</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
</file>
<msg>Use "$VERSION" instead of "$Version", for compatibility with the Perl
Scripts Archive, to which this will soon be submitted.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>06:54</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.68</revision>
<tag>post-tag-name-changes</tag>
</file>
<msg>Implemented "-t" / "--tags" option.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>04:14</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.67</revision>
<tag>pre-tag-name-changes</tag>
</file>
<msg>Changed "Insure" to "Ensure" in comment.

From: "Melissa O'Neill" &lt;oneill@cs.sfu.ca&gt;
Subject: English Usage and Future Features
To: Karl Fogel &lt;kfogel@red-bean.com&gt;
Date: Thu,  8 Apr 1999 11:14:23 -0700

You wrote:
&gt; Okay, it's out; I just sent an announcement to info-cvs.
&gt;
&gt; Thanks for all the patches; I've pretty much kept my grubby little
&gt; paws off them and applied them as they were (see ChangeLog for
&gt; details).
&gt;
&gt; In fact, I think the only change I reverted was the spelling fix
&gt; "Insure" --&gt; "Ensure".  :-) These seem to be synonymous in common
&gt; usage and are also the same (in this sense) according to the
&gt; OED... which is only an authority insofar as it reflects usage
&gt; accurately, I guess, but I trust them to have done their research
&gt; anyway.  Believe it or not, this exact question, involving these two
&gt; words used in the same sense, came up in a paper I was editing
&gt; recently.

I'd recommend you check out Lyn Dupre's _BUGS in Writing_. This is an
excellent book, aimed pretty squarely at Computer Science folks writing
papers (although much more widely applicable). It's funny, and very
readable, and has been very well received.

Segment 45, ``Ensure, Assure, Insure'' covers this very issue. Lyn writes

    The terms ensure, assure and insure have notably different denotations.
    To avoid embarrassment, you should distinguish among them.

    You should use ensure to mean to make sure of a state of affairs or to
    guarantee that an event occurs.

        BAD:	Jim was careful to insure that the project went smoothly.
	GOOD:	Carol was careful to ensure that the party went smoothly.

	BAD:	Using this software will assure that you pay your taxes on time.
	GOOD:	Using this software will ensure that you pay your rent on time.

    You should use insure to mean to take insurance out on

        BAD:	I need to ensure my car before I drive it
	GOOD:	I need to insure my car before I drive it

	BAD:	Max was disappointed to discover that assuring his hard-disk
		had not protected the company against an earthquake-induced
		crash.
	GOOD:	Max was delighted to find that he had insured his laptop
		computer before it was stolen.

    You should use assure to mean  give assurance or reassure.

	BAD:	To ensure yourself that all is well, turn on the lights and
		check under the bed.
	GOOD:	To assure yourself that the proof is correct, you should take
		the time to work through it.
	GOOD:	To insure yourself, call a reliable company such as Lloyds of
		London.

    SPLENDID:	Rest assured that I have insured your home to ensure your peace
    		of mind.
    SPLENDID:	Before I can insure your business, you must assure me that you
    		can ensure that your programmers do careful quality assurance.

I quoted (slightly cut down) a chunk of the book, not so much to show
this particular point, but more to give you a taste of Lyn's book.  Ever
since it was recommended to me by a reviewer of one of my papers (Chris
Okasaki), I've been recommending it to just about everyone.

Of course, you can find out answers to matters of English style on the
Web for nothing, but it's not nearly as fun as Lyn's book. Some other
resources would be:

The Guide to Grammar and Style by Jack Lynch &lt;http://http://newark.rutgers.edu/~jlynch/Writing/index.html&gt; writes:

    Assure, Ensure, Insure.

      While ensure and insure aren't quite so clear cut, assure is very
      different from both. You assure a person that things will go right by
      making him confident. Never use assure in the sense of "Assure that
      the wording is correct"; you can only assure somebody that it's
      correct.

      Ensure and insure are sometimes used interchangeably, but it may be
      better to keep them separate. Insuring is the business of an insurance
      company, i.e., setting aside resources in case of a loss. Ensure means
      make sure, as in "Ensure that this is done by Monday."

The Curmudgeon's Stylebook &lt;http://www.theslot.com/part1.html&gt; covers
similar ground:

    ASSURE, ENSURE, INSURE

      The words are close in meaning, but they're not interchangeable.
      Ensure is usually the correct word; it means to make sure: Before
      starting the car, I ensure the baby is buckled in. Assure doesn't
      work that way; you assure another person of something: After
      ensuring the baby was buckled in, I assured her mother things
      were fine. One meaning of insure is to ensure, but better
      publications use the word only in references to the business of
      insurance: Even if the baby isn't buckled in, her life is insured
      for $100,000.

Paul Brians' Common Errors in English &lt;http://www.wsu.edu:8080/~brians/errors/&gt;
is another good resource, which states:

    ASSURE/ENSURE/INSURE

	To "assure" a person of something is to make him or her confident
	of it. According to Associated Press style, to "ensure" that
	something happens is to make certain that it does, and to "insure"
	is to issue an insurance policy. Other authorities, however,
	consider "ensure" and "insure" interchangeable. To please
	conservatives, make the distinction. However, it is worth noting
	that in older usage these spellings were not clearly distinguished.

	European "life assurance" companies take the position that all
	policy-holders are mortal and someone will definitely collect,
	thus assuring heirs of some income. American companies tend to
	go with "insurance" for coverage of life as well as of fire,
	theft, etc.

All of these sites are good resources for settling questions about English
usage, as are the FAQs posted to alt.usage.english.

&gt; It may just be a British vs. American spelling difference, now that I
&gt; think about it.  Do you use British normally?

The only significant difference between UK and US usage here is that
Brits talk about `life assurance' (because you're going to die, one
day), and Americans talk about `life insurance' (because no one really
wants to believe they're mortal).

An an Englishwoman living in Canada, my spelling is annoyingly midatlantic.
I've always (even in England) initialized arrays, rather than initialised
them, but I use coloured pens rather than colored ones.  But most of my
professional writing is for US publications, so I have to adopt US
conventions most of the time.

&gt;&gt; - Spotting when a log message is applied to every file in the distribution.
&gt;
&gt; Ahh... so we could use a special string "all files: blah blah blah"
&gt; for the log entry?

Yes, or even no files list at all.  For example, in the EGS changelog, there
is the following entry:

    Sun Mar 14 02:38:07 PST 1999 Jeff Law  (law@cygnus.com)

            * egcs-1.1.2 Released.

&gt;&gt; - Improving the formatting of ChangeLog entries. Long, carefully formatted,
&gt;&gt;   entries are currently rather trampled by the wrapping code. (Probably needs
&gt;&gt;   a command-line option.)
&gt;
&gt; I've just been thinking about this too.  May just modify some code
&gt; from Text::Wrap.  I'll bet we can guess right w/o a command-line
&gt; option most of the time.  I think a good strategy would be to only add
&gt; newlines, never remove any.  So long lines get auto-wrapped, but then
&gt; the next line (in the original) doesn't move up, it stays on its own
&gt; line.  And of course, this only goes for the message portion, not the
&gt; filenames.
&gt;
&gt; This way, text that tries to make lists would stay readable.  For
&gt; example:
&gt;
&gt; (parse_options): parse the --fish option.
&gt; (stirfry): if `fish' is set, behave appropriately.  Adjust call to allergies(), and lower cooking heat based on reference in heat_table.
&gt; (allergies): adjust for fish if `fish' is set.
&gt;
&gt; would get turned into this:
&gt;
&gt; (parse_options): parse the --fish option.
&gt; (stirfry): if `fish' is set, behave appropriately.  Adjust call to
&gt; allergies(), and lower cooking heat based on reference in heat_table.
&gt; (allergies): adjust for fish if `fish' is set.
&gt;
&gt; instead of this:
&gt;
&gt; (parse_options): parse the --fish option.  (stirfry): if `fish' is
&gt; set, behave appropriately.  Adjust call to allergies(), and lower
&gt; cooking heat based on reference in heat_table.  (allergies): adjust
&gt; for fish if `fish' is set.

Yes, that seems like a good way to go.

    Melissa.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>01:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.66</revision>
</file>
<msg>Put Melissa's name up near the top
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>01:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.65</revision>
</file>
<msg>Implemented -r / --revisions option.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:49</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.64</revision>
</file>
<msg>Put "(BETA)" in version string, because the recent slew of changes
has only been tested by Melissa and myself.

Untabified, indented everything.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:45</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.63</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Modified algorithm and data layout to collect multiple ChangeLog
messages for a given author over a sliding window of time.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.62</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Fixed transposition in explanation (author and message were swapped).
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:35</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.61</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Moved output of date and author up one loop level.  Now ChangeLog
entries can have multiple parts (different log messages for different
files).  The hash twisting/time merging code will almost never
generate data this way, however.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:28</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.60</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Oops.  Forgot seconds in parse_date_and_author.
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:25</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.59</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Major rewrite of the core code. Now parse_date_and_author returns a
time (i.e., seconds since the epoch) and author, rather than an
textual date and author. The whole structure of what we store has been
changed. No more building keys from concatenated strings (i.e., D.A.M.
keys), instead we use multi-level hashes. This change should reduce
memory use.

Previously, $Max_Checkin_Duration had an effective granularity of 60
seconds, due to the dropping of seconds from dates in
parse_date_and_author. Because parse_date_and_author now groks dates
to the second, it would now be okay to set $Max_Checkin_Duration to ten
seconds, whereas previously that would be identical to setting it to
zero.

(Melissa, I made some mods to this patch, first to get it to apply,
then to get it to run.  The upshot is: everything is untabified now,
hunk #7 was applied by hand [this was from patch #15], and since
apparently can't do "my (undef,...)" on line 304, I changed it to "my
($ignore,...)"  instead.  Maybe the original way is legal in a higher
version of Perl or something?  -kff)
</msg>
</entry>

<entry>
<date>1999-04-09</date>
<weekday>Friday</weekday>
<time>00:00</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.58</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Modified output loop to use `each' instead of `keys'.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:54</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.57</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Eliminate $ignore_me.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:52</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.56</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Eliminated use of File::Copy in favor of rename.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:46</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.55</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Fixed various uses of "" that really meant `undefined' to use undefined.

Only work out names for temporary files if we will actually be using
them.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:44</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.54</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Converted logfile header to be a global variable (in future, we might
allow the header to be omitted or altered).  It now uses a `here
document' too.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:42</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.53</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Fixed pretty_file_list to use join rather than a home-grown equivalent.
(Doh!  Thanks, Melissa!  -kff)
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:36</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.52</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Removed the last of the `_reffy' stuff and needless hash copying.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>23:31</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.51</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Use a `here document' for the help message.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>07:49</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.50</revision>
<tag>spurious-tag-at-1_50</tag>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Switched from using "" to mean undefined to using undefined to mean
undefined.  (Some other cases remain, we'll do them later.)

Removed some superfluous tests from conditionals (it's true that they
make it clear what is true at that point, but that could be expressed
in a comment, rather than in executed code).  (Unfortunately, this
meant that I outdented a fairly large chunk of code, making the diff
look like a more extensive change than it really is.)

Eliminated a test for /^$file_separator/o by saving the result from
the earlier test.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>07:41</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.49</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Simplified subhash code down to one line.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>07:37</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.48</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Added /o to separator regexps.
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>07:34</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.47</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Avoid using Date::Parse. We now use timegm (from Time::Local) to do
date -&gt; time conversions, and perform the time parsing ourselves
(given that dates are always in a pretty standard from).
</msg>
</entry>

<entry>
<date>1999-04-08</date>
<weekday>Thursday</weekday>
<time>07:26</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.46</revision>
</file>
<msg>Change from Melissa O'Neill &lt;oneill@cs.sfu.ca&gt;:

Added support for checkins that are not on the same minute by adding a
new loop to detect nearby dates.
</msg>
</entry>

<entry>
<date>1999-03-23</date>
<weekday>Tuesday</weekday>
<time>14:48</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.45</revision>
</file>
<msg>Heh, fix typo in version() -- it's "cvs2cl.pl, not "cvs2pl.cl", which
would be a very different program!
</msg>
</entry>

<entry>
<date>1999-03-23</date>
<weekday>Tuesday</weekday>
<time>09:40</time>
<author>kfogel</author>
<file>
<name>COPYING</name>
<revision>1.1</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
<tag>post-tag-name-changes</tag>
<tag>pre-tag-name-changes</tag>
</file>
<msg>ship GPL too
</msg>
</entry>

<entry>
<date>1999-03-23</date>
<weekday>Tuesday</weekday>
<time>09:35</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.44</revision>
</file>
<msg>Added warning of auto-generation to output.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>14:07</time>
<author>kfogel</author>
<file>
<name>README</name>
<revision>1.1</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
<tag>post-tag-name-changes</tag>
<tag>pre-tag-name-changes</tag>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.43</revision>
</file>
<msg>Meaningful error codes on exit.
Added README in case anyone stumbles by chance upon this directory.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>13:03</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.42</revision>
</file>
<msg>Don't double slashes in debug message.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>13:02</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.41</revision>
</file>
<msg>Better debugging output.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>12:57</time>
<author>kfogel</author>
<file>
<name>a-subdir/test.txt</name>
<revision>1.2</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
<tag>post-tag-name-changes</tag>
<tag>spurious-tag-for-testing-tag-name-support</tag>
<tag>pre-tag-name-changes</tag>
</file>
<file>
<name>a-subdir/subsubdir/test.txt</name>
<revision>1.2</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
<tag>post-tag-name-changes</tag>
<tag>spurious-tag-for-testing-tag-name-support</tag>
<tag>pre-tag-name-changes</tag>
</file>
<file>
<name>b-subdir/test.txt</name>
<revision>1.2</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
<tag>post-tag-name-changes</tag>
<tag>spurious-tag-for-testing-tag-name-support</tag>
<tag>pre-tag-name-changes</tag>
</file>
<utag>pre-tag-name-changes</utag>
<utag>post-tag-name-changes</utag>
<utag>spurious-tag-for-testing-tag-name-support</utag>
<utag>spuriousduplicatetag5</utag>
<utag>spurious_duplicate_tag_4</utag>
<utag>spurious-duplicate-tag-1</utag>
<utag>spurious-duplicate-tag-2</utag>
<utag>spurious-duplicate-tag-3</utag>
<msg>[no log message]
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>12:56</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.40</revision>
</file>
<msg>Put ampersands on calls to debug().
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>12:45</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.39</revision>
</file>
<msg>Ooops, fixed the filename-resetting bug.
Added undocumented --debug flag and the debug() routine.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>11:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.38</revision>
</file>
<msg>Fixed capitalization.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:57</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.37</revision>
</file>
<msg>Totally clean up usage() and parse_options().  Now it errors if
unknown options.
Also, restored "." prefix to bak files (oops).
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:45</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.36</revision>
</file>
<msg>Rewrite "The Plan" to reflect the new two-level hash structure.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:40</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.35</revision>
</file>
<msg>Clean up some other inconsistencies in usage message.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:39</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.34</revision>
</file>
<msg>In usage message, note that "--distributed" now works.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:38</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.33</revision>
</file>
<msg>Fitz and I are pleased.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:28</time>
<author>kfogel</author>
<file>
<name>a-subdir/test.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>a-subdir/subsubdir/test.txt</name>
<revision>1.1</revision>
</file>
<file>
<name>b-subdir/test.txt</name>
<revision>1.1</revision>
</file>
<msg>This is only test data, please ignore it.

Feel free to modify it and commit whenever you need to generate
another change message.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>10:21</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.32</revision>
</file>
<msg>Well, the --distributed option seems to be working now.
Time to run sanity tests.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>01:28</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.31</revision>
</file>
<msg>Document the plan for --distributed, get everything in place; ready to
implement.

Better var names too.
</msg>
</entry>

<entry>
<date>1999-03-20</date>
<weekday>Saturday</weekday>
<time>01:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.30</revision>
</file>
<msg>Prettifications, no code changes.
</msg>
</entry>

<entry>
<date>1999-03-19</date>
<weekday>Friday</weekday>
<time>11:49</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.29</revision>
</file>
<msg>Reinstate -f/--file option, because we'll need it again when the
-d/--distributed option is finished.

Make tmp file name include PID.

Better option contradiction checking.
</msg>
</entry>

<entry>
<date>1999-03-19</date>
<weekday>Friday</weekday>
<time>09:06</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.28</revision>
</file>
<msg>implementation of --distributed option in progress
</msg>
</entry>

<entry>
<date>1999-03-19</date>
<weekday>Friday</weekday>
<time>08:27</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.27</revision>
</file>
<msg>Implemented all proposed options except --distributed, ahhh.
</msg>
</entry>

<entry>
<date>1999-03-16</date>
<weekday>Tuesday</weekday>
<time>09:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.26</revision>
</file>
<msg>sanify some more comments
</msg>
</entry>

<entry>
<date>1999-03-16</date>
<weekday>Tuesday</weekday>
<time>09:14</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.25</revision>
</file>
<msg>sanify some comments
</msg>
</entry>

<entry>
<date>1999-03-16</date>
<weekday>Tuesday</weekday>
<time>09:05</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.24</revision>
</file>
<msg>added note about --prune option
</msg>
</entry>

<entry>
<date>1999-03-16</date>
<weekday>Tuesday</weekday>
<time>06:37</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.23</revision>
</file>
<msg>correct comment
</msg>
</entry>

<entry>
<date>1999-03-16</date>
<weekday>Tuesday</weekday>
<time>06:28</time>
<author>kfogel</author>
<file>
<name>long-log.out</name>
<revision>1.3</revision>
</file>
<file>
<name>short-log.out</name>
<revision>1.2</revision>
</file>
<msg>no need for these files now
</msg>
</entry>

<entry>
<date>1999-03-16</date>
<weekday>Tuesday</weekday>
<time>06:17</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.22</revision>
</file>
<msg>slight changes to usage
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>15:51</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.21</revision>
</file>
<msg>oops, don't run usage
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>15:50</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.20</revision>
</file>
<msg>include usage
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>15:07</time>
<author>kfogel</author>
<file>
<name>.cvsignore</name>
<revision>1.1</revision>
<tag>spuriousduplicatetag5</tag>
<tag>spurious_duplicate_tag_4</tag>
<tag>spurious-duplicate-tag-3</tag>
<tag>spurious-duplicate-tag-2</tag>
<tag>spurious-duplicate-tag-1</tag>
<tag>post-tag-name-changes</tag>
<tag>pre-tag-name-changes</tag>
</file>
<file>
<name>ChangeLog</name>
<revision>1.12</revision>
</file>
<msg>no need to keep a derived ChangeLog in the repository
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>15:06</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.11</revision>
</file>
<msg>about to remove ChangeLog
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>11:03</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.19</revision>
</file>
<msg>better separator comments
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>10:59</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.10</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.18</revision>
</file>
<msg>oops, be truer to GNU ChangeLog style
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:56</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.9</revision>
</file>
<msg>[no log message]
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:56</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.17</revision>
</file>
<msg>backup in .ChangeLog.bak, not ChangeLog.bak
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:54</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.8</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.16</revision>
</file>
<msg>comment the msg_txt prettifier better
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:41</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.7</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.15</revision>
</file>
<msg>detect official CVS empty log messages too
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:39</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.6</revision>
</file>
<msg>[no log message]
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:38</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.14</revision>
</file>
<msg>include author
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:37</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.13</revision>
</file>
<msg>include revision number
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:34</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.5</revision>
</file>
<msg>ChangeLog now reflects previous bugfix, heh
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:34</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.4</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.12</revision>
</file>
<msg>okay, preserve paragraphs
</msg>
</entry>

<entry>
<date>1999-03-13</date>
<weekday>Saturday</weekday>
<time>02:20</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.11</revision>
</file>
<msg>Wrap more compactly, by eliminating lone newlines in the message text.
Thus, for example, a paragraph like this one will be all together, but
the following paragraph will still be its own paragraph.  Let's see if
this works right, though.

Use "no log message" on conceptually empty log messages, not just
empty strings.  Not that this log message would be one of those,
nooooo, it's quite long.

See?
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>16:35</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.3</revision>
</file>
<msg>Hmmm, beginning to realize I'll always be one behind...
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>16:27</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.2</revision>
</file>
<msg>added comment about keeping ChangeLog
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>16:23</time>
<author>kfogel</author>
<file>
<name>ChangeLog</name>
<revision>1.1</revision>
</file>
<msg>Well, might as well keep a ChangeLog then!
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>16:18</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.10</revision>
</file>
<msg>better comment
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>16:10</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.9</revision>
</file>
<msg>smokin'
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>15:55</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.8</revision>
</file>
<msg>ready to smoke
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>15:29</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.7</revision>
</file>
<file>
<name>short-log.out</name>
<revision>1.1</revision>
</file>
<msg>basic functionality done, needs auto-fill though
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>11:06</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.6</revision>
</file>
<msg>progress
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>10:52</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.5</revision>
</file>
<msg>get date and author too
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>10:30</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.4</revision>
</file>
<msg>knows filenames
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>10:23</time>
<author>kfogel</author>
<file>
<name>long-log.out</name>
<revision>1.2</revision>
</file>
<file>
<name>cvs2cl.pl</name>
<revision>1.3</revision>
</file>
<msg>better data, previous was bad due to just-discovered cvs log bug!
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>09:34</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.2</revision>
<tag>spurious-tag-for-testing-tag-name-support</tag>
</file>
<msg>document The Plan
</msg>
</entry>

<entry>
<date>1999-03-12</date>
<weekday>Friday</weekday>
<time>09:13</time>
<author>kfogel</author>
<file>
<name>cvs2cl.pl</name>
<revision>1.1</revision>
</file>
<file>
<name>long-log.out</name>
<revision>1.1</revision>
</file>
<msg>initial imports
</msg>
</entry>

</changelog>
