cvs2cl bugs/requests

1 option to Parse full_path_name Using RCS File closed medium MAIL
      The patch adds a '--rcs' option which tells it to parse the
      full_path_name based on the RCS file name rather than the Working file
      name.  The reason for this, is that when run on the server it uses
      rlog as it is operating on the repository directly, rather than in a
      working directory.  The Working file name is always listed without a
      path, however the RCS filename has the path.

      This was fixed by the patch for bug#36, which is really a duplicate of
      this bug.
    
2 automatically Recognize Individual Items in a Log Entry open large MAIL
      We have a great deal of CVS files with multi-line Commit-Comments akin
      to,

        + new feature BLAH added
        + source stripped from FOO
        + user FREAK accounted for

      etc.

      some start with '+', some with '-' others with '*' and yet more with
      nothing but new sentences.

      Here's my question, if I run cvs2cl.pl on what's noted above I get ONE
      paragraph with all the '+' jumbled inside something akin to

        * AUTHORS, TODO, dict_admin.cgi, dict_create.pl, dict_header.pl,
        dict_lib.pl, dict_main.cgi: + Added reconfirm password change (for
        admin) + Added hidden/setting attributes + Extracted all the embed
        files to _header + Added ability to create db.tables by a different
        user (if need be) + Corrected dict_main typos in

      Not very readable -- it would be best if it was something like this
      instead,

        * AUTHORS, TODO, dict_admin.cgi, dict_create.pl, dict_header.pl,
          dict_lib.pl, dict_main.cgi:
          + Added reconfirm password change (for admin)
          + Added hidden/setting attributes
          + Extracted all the embed files to _header
          + Added ability to create db.tables by a different user (if
            need be)
          + Corrected dict_main typos in

      Note continuation of line starts under first letter of line (ie. below
      'A' not below '*' or '+' to give a flowing feel to it).
    
3 --accum option keeps adding same logs closed medium MAIL
      Every time I run cvs2cl entries are added to the ChangeLog file. There
      were no changes in the meantime and the added changes were already
      there. The added changes are all but the last log messages of today (4
      of the 5 logs). When running cvs2cl without the --utc everything works
      as expected.
    
4 show only log messages NOT matching a certain regular expression closed small MAIL
5 -W fails to handle argument '0' closed small MAIL
      perl ~/cvs2cl.pl -t -W 0

      And was surprised to find

      "-W needs argument."
    
6 ignore-tag option patch_supplied medium MAIL
      The history is that I was looking to generate a log of changes since the
      instance of the tag, but the date system is unusable, since tags are not
      related to dates.  Using the -r option to cvs log helps, but not
      completely, since it includes the checkin that made up the tag.
    
7 cvs2cl spins on directories called '0' closed small MAIL
      I have discovered a strange bug in cvs2cl which will only show up in a
      VERY specific situation. If you have a directory called '0' (The number
      0) anywhere in a directory tree where you are running cvs2cl, you will
      get into an infinite loop in the lines at about line 1208, 1209 (I may
      have screwed up the line numbers in my hacking).
    
8 delta option for trimming log to between two tags closed medium MAIL
      This patch adds a '--delta' flag to cvs2cl - this is a simplistic
      implementation that determines the last seen time for the two tags you
      give it and trims the ChangeLog output based on those dates.

      There's a possibility that this could yield too much or not enough log
      info if a subset of the tags have been moved. (Or, conceivably, if you
      hit the inherent race condition in a date-based algorithm, but thinking
      about that makes my head hurt. ;)

      One could write a dissertation on the problems with cvs' tagging scheme
      - files that were deleted at a specific revision just aren't tagged, so
      it's impossible to get complete information on the state of the
      repository at the time of any given release. For files that are missing
      one or both tags, you can only guess at the proper state based on the
      latest tagged date. This implementation uses that date as the criteria
      for *all* files, though.

      Nonetheless, it should work for 90/99% of cases...
    
9 deleted Subdirectories Disappear open medium MAIL
      One problem is that, if you delete a subdirectory (delete all the
      files then cvs update -P), then cvs log stops looking at it.  So the
      changelog essentially rewrites history as if those files had never
      existed.
    
10 only generate logs for revisions on a branch closed large MAIL
      List only the revisions occurring on a branch, not ancestors (or
      descendents?) to the branch.
    
11 log tags with date the tag first occurred closed medium MAIL
      The patch adds the following command line option:

        -T, --tagdates             Show tags in output on their first occurance


      This allows for easy tracking of what changes occured before / after a
      certain tag was made. A lot more understandable than to have the tag
      listed on each file separately..


      Example:


      2002-04-25 16:31  flavio

              * templates/html/pptpconn.html: fixed reload of parent window on
              pptpconn.html

      2002-03-27 22:15  tag V2_4

      2002-03-27 22:15  henrik

              * templates/firewall: Fixup local firewalling for multilink
    
12 deleted file between tags causes 'no revision in CVSROOT' error open medium MAIL
      Context :
      FileA present in branch and have Tag A, B and C
      FileB earlier present but now deleted (between B and C)

      cvs2cl.pl -l -rA:: is OK

      but cvs2cl.pl -l -C:: say me "cvs log: warning: no revision `B in
      CVSROOT" and the log appear in changeLog.
    
13 Option to unify by author & time-window open large MAIL
      Example: I have the following ChangeLog

      2002-05-24 19:21  hartge

              * lib/keenspot: updated wendy release cycle

      2002-05-24 19:11  hartge

              * lib/keenspot: update to wendy and cutewendy

      2002-05-24 18:13  elliotglaysher

              * ChangeLog, debian/changelog, lib/comicspage, lib/helen: Sizer's
              patches

      2002-05-24 17:57  hartge

              * MANIFEST: added bf

      2002-05-24 17:55  hartge

              * Makefile.PL, lib/bf: Makefile.PL, lib/bf: added module for German
              Userfriendly (Benutzerfreundlich)

      2002-04-25 23:26  hochstrb

              * ChangeLog, lib/animation_express: added support for mini-animated
              gifs at animiation express

      2002-04-15 14:27  hochstrb

              * Netcomics/Util.pm, Netcomics/HTML/Page.pm,
              Netcomics/HTML/Theme.pm, Netcomics/HTML/Themes/CleanRound.pm,
              doc/Comic_Module-HOWTO.html: support for embedded objects


      I would like it better to have an output like the follwing:

      2002-05-24  hartge

              * lib/keenspot: updated wendy release cycle
              * lib/keenspot: update to wendy and cutewendy
              * MANIFEST: added bf
              * Makefile.PL, lib/bf: Makefile.PL, lib/bf: added module for German
              Userfriendly (Benutzerfreundlich)

      2002-05-24  elliotglaysher

              * ChangeLog, debian/changelog, lib/comicspage, lib/helen: Sizer's
              patches

      2002-04-25  hochstrb

              * ChangeLog, lib/animation_express: added support for mini-animated
              gifs at animiation express
              * Netcomics/Util.pm, Netcomics/HTML/Page.pm,
              Netcomics/HTML/Theme.pm, Netcomics/HTML/Themes/CleanRound.pm,
              doc/Comic_Module-HOWTO.html: support for embedded objects

      As you see, for every day, there is a summary of every users checkins.
    
14 Conflict with --accum and -D closed medium MAIL
      I have problems with 'cat filelist | xargs cvs2cl.pl --accum' when we
      have a realy long file list!  cvs2cl will run 'cvs log
      -D>newesdateinchangelog ...' cmd and filter out needed changelogs! ck

      I prevent this bei using --stdin option, but i changed a view lines in
      the script which seemed to be wrong or not general:
    
15 Overlap with -r and -b open medium MAIL
      using: cvs2cl.pl -t --no-wrap -S  -r -b

      causes the branch label to overwrite the revision number in ChangeLog as
      follows:

      2002-08-12 13:40  jons

               * Mem_access.cpp (tags: JSRS3043) (JSRS3005B1.11):

      whereas using: cvs2cl.pl -t --no-wrap -S -r gets:

      2002-08-12 13:40  jons

               * Mem_access.cpp (1.11.2.11, JSRS3043):
    
16 There is a difference in using --stdin with rlog format input open medium MAIL
      I tried cvs rlog foo | cvs2cl --stdin --stdout
      and found out there is a slight difference between
      log and rlog:

      RCS file: /usr/local/cvs/cvsroot/packages/web/help/platoon/support/Makefile,v
      Working file: packages/web/help/platoon/support/Makefile

      in the rlog case becomes:

      RCS file: /dsk/lv02/cvs/cvsroot/packages/web/help/platoon/support/Makefile,v

      without the "Working file" which causes major problems
      with the line
      if ((! (defined $file_full_path)) and /^Working file: (.*)/)

      RCS file: ... perhaps does not look nice but works.

      It would be nice with support for the rlog-format.
    
17 Add option to specify encoding name for XML closed small MAIL
      I have made a modification to specify the langage in xml header
      <?xml version="1.0" encoding="latin1"?>
      Now, cvs2cl accepts the -e (or --encoding) command parameter following
      by the langage specification.
      cvs2cl -e latin1 --xml ...
    
18 Spurious 'Malformed UTF-8 character' warnings emitted closed small MAIL
      This issue occurs only under perl5.8.0 on some platforms (specifically
      RedHat 8)
    
19 Carriage Returns Wreak Havoc on Windoze closed small MAIL
      "binmode LOG_SOURCE" is deadly on Windows platforms running newer
      versions of ActiveState perl.

      Reported against 2.44
    
20 Limit Revisions Logged to Latest Entry Only open medium MAIL
      And we are interested in finding files in their latest revisions only
      (not all the revisions) that have got a token in the message log when
      commited (using regexp option);
    
21 Sort output by Filename open small MAIL
      get the ouput sorted by file (not by date)
    
22 Extra Square Brackets appeared on revision numbers closed small MAIL
      Old versions of cvs2cl (2.38) would print the revision numbers of a
      single file as x.y.z.a, but of multiple files on the same branch as
      x.y.z.[a,b.c].  The new version prints even the singleton revision as
      x.y.z.[a].  It would be good if there was at least an option to prevent
      this, as it makes lots of spurious diffs appear in ChangeLogs.
    
23 Perl Version Hardwired closed small MAIL
      older cvs2cl's did the clever `use /bin/sh then exec perl trick' which
      meant the perl path didn't matter, the new one hard wires in
      /usr/bin/perl (which is not always right on, say, older versions of
      Solaris).
    
24 Option to not print HH:MM on timestamps closed small MAIL
      Emacs C-x 4 a doesn't generate the HH:MM in ChangeLogs:

      2003-01-15 19:51  Foo Bar <foo@bar.org>

      so I added a --no-times switch to cvs2cl to make it behave the same
      way.
    
25 Option to write output in chronologically ascending order closed small MAIL
      This patch allows cvs2cl to write its output chronologically, rather
      than in reverse-chronological order as is the default.
    
26 Option to limit tags used to those specified closed medium MAIL
      We recently needed a --show-tag option which works contrary to the
      --ignore-tag option, i.e. which displays only revisions with a certain
      tag. We need this because of our product release policy where we tag a
      release and during the testing phase move tags on files which had bug
      fixes. So we want to see only revisions which have been changed after a
      certain date and which have a certain tag. With "cvs log" options alone
      this is not possible because new files (which do not have the tag at
      all) still get displayed.
    
27 Squash Duplicate Filenames closed small MAIL
      Quick'n'dirty patch that replaces entries such as:

              * reference/: libidn-docs.sgml, libidn-docs.sgml:

              Reorder.

      with

             * reference/: libidn-docs.sgml:

              Reorder.
    
28 Add --no-common-dir option closed small MAIL
      It would be nice to be able to disable the common_dir stuff, the
      colon in the line confuses Emacs' font-lock which makes it highlight
      badly.
   
29 Add --FSF option closed medium MAIL
      Perhaps the defaults should be set up to generate ChangeLog's according
      to the FSF Coding Standard.  I.e., make --no-times --no-common-dir the
      default.
   
30 Revert use of common dir when only one filename reported open medium MAIL
      Hm, now that I see the entry, I see that it doesn't handle reverting
      back to "reference/libidn-docs.sgml" when there is only one filename:

             * reference/libidn-docs.sgml:

              Reorder.

      Argh.  But when there are more than one file, or if it is in the top
      directory, it works.  Maybe the second version isn't as bad.
    
31 Collect version numbers for repeated files open medium MAIL
      In the following output from

        bperl bin/cvs2cl -r --stdin --stdout --utc < data/1.log

      the version numbers for Persistent.java should be collected together.

      2000-04-14 18:03  tdraier

              * Persistent.java (1.34), Persistent.java (1.6.2.31): debugged
              setNew()

      2000-04-14 17:36  tdraier

              * Persistent.java (1.33), Persistent.java (1.6.2.30): debugged
              setNew()

      2000-04-13 18:06  tdraier

              * Persistent.java (1.32), Persistent.java (1.6.2.29): debugged the
              setRestoring state

    
32 Add --gecos, --domain options closed medium MAIL
      The attached patch add automatic email address creation and GECOS
      information listing support.  New commandline options are fully
      documented as well.

      Sample output (cvs2cl.pl -G -D orbis-terrarum.net):
      2003-02-22 20:23  Robin Johnson  <robbat2@orbis-terrarum.net>

              * LICENSE: License docs

      2003-02-22 20:23  Robin Johnson  <robbat2@orbis-terrarum.net>

              * Make.rules, Makefile, Makefile.dep, Makefile.inc: Make scripts
    
33 --delta flag undocumented closed small MAIL
      In this case, I found that cvs2pl is even better than I had known from
      earlier use.  I was browsing the buglist when I saw the messages about
      --delta.  Cool!  Very handy.  I simply observe to you that the option
      isn't listed in the usage message.
    
34 Minimize File Lists with Shell Syntax open medium MAIL
      Occasionally in the changelog for the "wine" package you see an entry
      like this:

              * include/*.h, dlls/comctl32/*.c:
              Eric Kohl <ekohl@abo.rhein-zeitung.de>
              Added xxx_Unregister() functions to all common controls.

      I like the include/*.h, dlls/comctl32/*.c notation when several files in
      a directory have changed.
    
35 Expand usernames based on passwd file closed small MAIL
      Simple but debian-specific enhancement - upstream might try and be more
      portable by making the /etc/mailname lookup something that an argument
      can set, but it is actually right for debian in the simple case (and in
      the complex case, well, you've already got -U.)  Adds this as --passwd
      option.  Could also be extended to do NIS (via ypmatch) or LDAP
      (ldapsearch), though using nss instead would be better; could at least
      use some CPAN package for passwd access, even the getpwnam/getpwent
      builtin would do.  Mostly this is a 3 minute hack that was useful for
      me, but that's more expressive than just asking :-)
    
36 Add --rcs option closed small MAIL
      Hi, this patch adds an --rcs option as suggested in the BUGS file, which
      allows cvs2cl to be used like

      cvs -d /foo rlog bar | cvs2cl --stdin --rcs /foo

      to generate ChangeLogs without needing a working copy.
    
37 Add --show-dead option closed medium MAIL
      I modified the script to record the cvs state of each file in
      $qunk{'cvsstate'}. This is then used in xml output. A new --dead (or -D)
      switch reports when a commit has sent a file to the attic for normal
      ChangeLog output. Not sure if you'll like the output format, but that's
      easy enough to change. Modified script is attached.
    
38 Add --no-ancestors option closed small MAIL
      Extend cvs2cl.pl to include the ability to follow changes from the
      branch node forward when used in conjunction with the -F option.
    
39 Add --update option open medium MAIL
      The first is an "--update" option, which is similar to, and based upon,
      "--accum", except that it lists only those files that have been changed
      since the last time it was run.  There is a quirk, however.  The last
      checkin listed is always a repeat.  I have had no problem with my
      userbase once I explained the quirk to them.  I have thought of a way to
      deal with this - if you think that "--update" should operate without
      the repeats, please let me know.
    
40 Add --summary option closed large MAIL
      The second is a "--summary" option, intended for reviewing checkins.
      This sorts the files in a checkin group into added, deleted, and changed
      files, and prints the change details for the changed files.  Note that
      Summary mode does not do text wrapping - this is deliberate, as human
      readbility is severely impaired by text wrapping in this output style -
      generally, a very wide window is needed.
    
41 RCS File unrecognized on Windoze boxen closed small MAIL
      I like the --rcs option, but, under Windows, and I guess depending on
      how one defines/specifies the CVSROOT value, the "RCS file:" record may
      contain forward and backward slashes
    
42 --chrono flag not documented closed small MAIL
      Also, I noticed the option '--chrono' is not displayed in the subroutine
      usage().
    
43 --mailname handling is inconsistent/nonsensical closed small MAIL
      The message from cvs2cl.pl --help says that --mailname is 'only used
      with --passwd'.  But why should this be?  Doesn't it make sense to
      specify a domain name for email addresses without looking up real names
      in the passwd file?

      OTOH, if you want to keep the current rule that it makes no sense to
      give --mailname and not --passwd, there should be an error message when
      this happens.
    
44 End-of-line whitespace being generated closed small MAIL
      Here's another patch: it removes some trailing whitespace on lines in
      the ChangeLog, which is quite annoying if you use an emacs mode which
      highlights trailing whitespace.  Hopefully it will apply even though the
      line numbers are fuzzy.
    
45 Awkward wrapping on two-space sentence gap closed small MAIL
      I wasn't able to pinpoint any change that caused the following to
      happen, before:

      2003-02-19  Simon Josefsson <simon@josefsson.org>

              * profiles.c: Don't normalize or map ASCII space for XMPP nodeprep.
              Tiny patch from Travis Shirk <TShirk@jabber.com>.

      now:

      2003-02-19  Simon Josefsson <simon@josefsson.org>

              * profiles.c: Don't normalize or map ASCII space for XMPP nodeprep.
               Tiny patch from Travis Shirk <TShirk@jabber.com>.

      I.e., there is a spurious SPC after the \n\t.  The CVS log entry is
      "...prep.  Tiny...".
    
46 Cosmetic Improvement to Indenting closed small MAIL
      when you have alot of files in one commit and get that list wrapped you
      end up with stg like this:


      ---snip---

      2003-05-12 20:07  marko

              * ExpEdit/EditLampe.php, ExpEdit/InputExperiment.php,
              ExpEdit/InputKat.php, ExpView/Experiment.php,
              ExpView/Kategorie.php, ExpView/Lampe.php:

              vergessene relative Pfade ergaenzt

      ---snip---

      Would it look nice to indent the wrapped lines according to the indent of
      the first line like:

      ---snip---

              * ExpEdit/EditLampe.php, ExpEdit/InputExperiment.php,
                ExpEdit/InputKat.php, ExpView/Experiment.php,
                ExpView/Kategorie.php, ExpView/Lampe.php:

      ---snip---
    
47 Don't show log entries for branch-file addition closed small MAIL
      We ran across an issue which, from what I could tell, wasn't addressed
      by any of the existing commandline switches on cvs2cl.pl.  I was
      wondering if you could provide feedback and/or accept a patch to correct
      it.

      The problem that we saw is that files that get added on a branch get a
      dead 1.1 revision on the trunk.  When you use cvs2cl to follow just the
      trunk, these files show as dead.  For various reasons we need to show
      dead files in the output.  The problem is that the files in question are
      not nor have ever been part of the trunk and thus in my opinion
      shouldn't be seen in the change log at all.

      To this end, I hacked in a new command line switch to hide these
      files. I've attached my modified 2.48 cvs2cl.pl.  All of my changes are
      marked with my initials: KML.  My perl skills aren't the best, so if
      there is a better way to do this, feel free.  Just let me know if you'll
      accept this change as it would be nice not to have to run a hacked
      version.
    
48 Change Tracking Format open large MAIL
      The scenario is I need the file name, with a revision with a tag. Then I
      need any new files and revisions for the next tag.

      Example:

      Counter  Filename  Old Release(tag) /Revsion  New Release(tag)/Revision
      1        foo.c     Release1_1_8 revision 1.4  Release2_0_0 revision 1.5

      I'm trying to track specific revisions from one release to the next and
      print it out in the above format.
    
49 interpret "[user@]host:/file/whatever" in -U option closed small MAIL
      This patch lets you use "[user@]host:/file" syntax to refer to remote
      user files in -U. I needed this to support "-U `cat
      CVS/Root`/CVSROOT/users", and think it might be slightly useful to
      others.
    
50 inverted --no-ancestors options closed small MAIL
      It seems that the new --no-ancestors option works backward.  Running
       cvs2cl.pl -F branch
      causes only the changes on that branch (no ancestors) to be included in
      the change log

       cvs2cl.pl -F branch --no-ancestors
      causes the branch and all ancestors to be included in the log.

      The fix looks to be trivial; the one place where $No_Ancestors is used
      need to be inverted:

                 elsif ((length ($branch_number)) > (length ($revision))
                        and
                        !$No_Ancestors)
    
51 Additional newline present at end of msg in XML output closed small MAIL
      The XML outputted by "--xml" has some bugs. For example, see this log
      entry:

      <entry>
      <date>2003-08-05</date>
      <weekday>Tuesday</weekday>
      <time>12:39</time>
      <author>Author</author>
      <file>
      <name>filename</name>
      <cvsstate>Exp</cvsstate>
      <revision>1.1</revision>
      </file>
      <msg>Commit message here.
      </msg>
      </entry>

      Note the additional newline at the end of <msg>...</msg>. A
      XML file is like a database, and all characters between tags are
      evaluated. A standard XML parser doesn't ignore newlines or blank spaces
      (except if configured to do so), because it can damage the data inside
      tags.
    
52 Add option to make cvs2cl XML namespace optional closed small MAIL
      A second problem is in the <changelog> tag. It is printed as:

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

      But there is no namespace on http://www.red-bean.com/xmlns/cvs2cl/.
      Also, a root tag like this can confuse xsltproc (when using XSLT to
      transform the XML output), so it's best to change this line to

      <changelog>

      Or add a "--noxmlns" option to disable this if nedeed.

    
53 Add option to group authors on a single day open large MAIL
      However, I'd like to get daily CVS commit output sorted by person.
      Currently, when a person commits multiple changes in a day, they appear
      one by one, like this:

      * 2003-07-30 21:11 - Jeroen Coumans
      Evil update to all files - disable IE smarttags and the stupid image toolbar

      * 2003-07-30 18:50 - Jeroen Coumans
      Add the LFS RSS file. Until Rob whips up a perl script, this will have
      to be maintained manually from the lfs/news page.

      * 2003-07-30 18:29 - Jeroen Coumans
      Fix some validation issues and HTML abuse in the FAQ.

      * 2003-07-30 18:05 - Jeroen Coumans
      Updated the FAQ links to the mail archives.

      Instead, I'd like them all grouped together like this:

      * 2003-07-30 21:11 - Jeroen Coumans
      - Evil update to all files - disable IE smarttags and the stupid image
      toolbar
      - Add the LFS RSS file. Until Rob whips up a perl script, this will have
      to be maintained manually from the lfs/news page.
      - Fix some validation issues and HTML abuse in the FAQ.
      - Updated the FAQ links to the mail archives.
    
54 Add options to cvs2cl to directly implement filters open medium MAIL
      Currently filters may be applied to the log output only via -l to get
      cvs log to do the work.  However, this relies on the semantics of cvs
      log, which is not always perfectly flexible or intuitive.  Therefore
      some filters could be added directly; e.g., filter by date, and/or
      author, or filename regex, or...
    
55 Add support for function-name after filename open medium MAIL
      Following GNU Chanlog standards, is there a mean to append the
      function/class name after the file name with cvs2cl :

      * sort.el (sort-subr): Return nil.

      If I my commit message is

      (sort-subr): Return nil.

      I get

      * sort.el: (sort-subr): Return nil.
    
56 Unitialized value warnings with --gecos closed small MAIL
      When I use --gecos option as "cvs2cl.pl --gecos" I get lots of
      messages as follows.

      Use of uninitialized value in substitution (s///) at ./cvs2cl.pl.org line 610,
      +<LOG_SOURCE> line 201.
    
57 Remove Attic/ path from --rcs input closed small MAIL
      When using --rcs for piping a raw rcs log from cvs rlog, there's no
      'Working file:' line for each file in the input log. I noticed you've
      already got this case covered. However, if a file is in the attic, the
      changelog output from cvs2cl has .../Attic/... in the filename. All I
      did was add the following line to zap Attic in filenames

        $new_full_path =~ s/Attic\///;

      This way, you get the same output as when cvs2cl runs without --rcs.
    
58 Mode for following multiple branches in one pass open medium MAIL
      I don't use RCS either, just CVS. It's easy enough to create a raw rcs
      log:

         cvs -d/your/repository rlog < module > rawlog

      then shove it into cvs2cl

         cvs2cl.pl --stdin --rcs /your/repository/module < rawlog

      I do it like this so that I can run cvs2cl several times to create
      changelogs for individual cvs branches with --follow, while only
      generating the log data once.
    
59 Handle branch-added filenames with spaces in the name closed small MAIL
      I've found another tiny bug. This time flagged up by spaces in file
      names (who puts file names with spaces in CVS?). Here's the culprit:

          unless ($Hide_Branch_Additions and $msg_txt =~ /file \S+ was
      initially added on branch \S+./) {

      It doesn't (appear to) account for a filename with a space. I must
      confess I don't actually know what \S matches. Anyway, replacing '\S+'
      with '.*' seems to fix things for me. I'm sure you can come up with a
      more robust regexp.
    
60 Add ISO Date in XML Output closed small MAIL
      For any kind of XML post-processing, an ISO-formatted date is fairly
      useful (and also clarifies any ambiguity over local time or UTC). This
      patch adds one in, as an 'isoDate' element.
    
61 Add examples of sue of -l -d closed small MAIL
      I would find it very useful to give sample valid date formats in the
      usage documentation, since it is really a pain to find out the correct
      one to launch cvs2cl.pl for a given date range (due to the internal
      escaping of parameters probably)
    
62 Add by-tag change collation open large MAIL
      I am interested in the feature of displaying in the Changelog the tag
      names used on a repository, chronologically.  The idea is to be able to
      use tha tags extracted from 'cvs status -v' to mark the point in time
      where a tag was applied, so a Changelog will implicitly better separate
      changes between different tags (which could be used to mark official
      releases).
    
63 Group all changes within a date partial medium MAIL
      I regularly use cvs2cl.pl to produce a ChangeLog for a project of mine
      and it's a great script, the only thing i'm missing is the possibility
      to have the date +listed only once, so that if I use "--no-times", all
      the items from that date be listed +under the same date.
    
64 Option to remove indentation of change text closed medium MAIL
      I wanted to use cvs2cl but only to collect cvs log messages without
      processing them by any other means. I found --summary, which does
      basically what I want except that it prints info on the files and
      indents the log messages by a tab.

      The first problem can be solved by allowing the use of --hide-filenames
      together with --summary. Well, it degrades --summary to almost nothing,
      but the user should know what he does...

      To solve my second problem I added a new command line option
      --no-indent, which, if used, disables prepending tab characters to the
      lines.
    
65 No Manpage closed medium MAIL
      cvs2cl has no manpage, and this really should change.  I took the
      liberty of converting the output of cvs2cl --help to a manual page.  You
      can find it at

      https://cvs.noreply.org/cgi-bin/viewcvs.cgi/cvs2cl/debian/cvs2cl.1?view=markup

      Maybe you find it useful and can include it in cvs2cl's repository.
    
66 -no-indent indents even with --hide-filenames & --no-wrap closed small MAIL
      I have called the script with the following parameters:

      cvs2cl.pl --FSF --utc --no-indent --no-wrap -S -U user.db
      --hide-filenames --window 60 -F B_PHPTODO_R1_00_KAMA

      I got the following output:
      -----------------------------
      2004-01-08  Karl-Heinz Marbaise <karl-heinz@minkenberg-medien.de>

              * - ChangeLog hinzu gekommen
      - Release 0.61.26

      2004-01-08  Karl-Heinz Marbaise <karl-heinz@minkenberg-medien.de>

              * - Branch Wechsel

      2004-01-07  Karl-Heinz Marbaise <karl-heinz@minkenberg-medien.de>

              * - PHPDocumentor Eintr?ge ?berarbeitet
        - Einordnung in Lib / PTL etc.
      - Release 0.61.25
      ------------------------------
    
67 Summary Doesn't Wrap closed medium MAIL
      Just make sure you have some that are long enough to need to be wrapped.

      Run this:

      cvs2cl.pl --summary --fsf

      It doesn't wrap the lines, which I feel it should. If you don't want
      wrapping, I figured you'd specify --no-wrap. If you did want wrapping,
      under the old code, I don't see any way to make that happen.
    
68 (Debian bug #233672) fails with Perl warning when called with --tags and --branch closed small MAIL
      $ cvs2cl -b -t --stdout
      Can't use an undefined value as an ARRAY reference at /usr/bin/cvs2cl.orig line 475.
    
69 Gecos parsing fails for authors missing a column in gecos field closed small MAIL
      For any authors whose gecos entry lacks a comma, cvs2cl warns of

      Exiting subroutine via next at /usr/users/tst_s000/cvs2cl.pl line 2033, <LOG_SOURCE> line 303.

      and fails.  For auhors missing in gecos field, cvs2cl errors complaining
      of trying to call '->gecos' on an undef.
    
70 uninitialized values with --follow closed small MAIL
      with cvs2cl.pl 2.52 I get lots of the following errors
      when trying to use --follow BRANCH:

      Use of uninitialized value in substr at /home/js/src/other/cvs2cl/cvs2cl.pl line 1987,
      +<LOG_SOURCE> line 784198.
      Use of uninitialized value in length at /home/js/src/other/cvs2cl/cvs2cl.pl line 1987,
      +<LOG_SOURCE> line 784198.
    
71 cvs2cl does not return an error code when failing with certain errors open medium MAIL
      Current cvs2cl doesn't exits with error status if cvs fails:

      $ cvs2cl; echo $?
      cvs log: No CVSROOT specified!  Please use the `-d' option
      cvs [log aborted]: or set the CVSROOT environment variable.
      0
      $

      Thus, I can't detect reliably if it fails from my scripts. Note that cvs
      does exit with nonzero status on error:

      $ cvs log; echo $?
      cvs log: No CVSROOT specified!  Please use the `-d' option
      cvs [log aborted]: or set the CVSROOT environment variable.
      1
      $

      I browsed the source, but I don't know perl, so I don't know how to
      detect the exit status of a piped comand. Perhaps it could be done at
      line 649, before the "close (LOG_SOURCE);".
    
72 --delta flag should take square brackets closed small MAIL
      --delta regex for tags should include [,]
    
73 Add --lines-modified option closed small MAIL
      I've attached a simple patch which adds a new command line flag to
      cvs2cl, "--lines-modified". This instructs cvs2cl to emit information
      (in the XML output mode only) describing the # of lines added and
      removed for a given commit.
    
74 Add --follow-only option closed large MAIL
      Option required that acts like --follow but ignores sub-branches.
    
75 CVS log date output format changed (CVS 1.12.9) closed small MAIL
      Hi there,

      CVS 1.12.9 uses a new date format in its log output. I had to patch my
      copy of cvs2cl.pl (2.55) to get it working again. I have attached the
      patch in case you're interested.
    
76 Undefined function call with -d closed small MAIL
      Here is the output of cvs2cv -d:
      rzyj@rzyj:~/projekty/speagram$ cvs2cl -d
      cvs log: Logging .
      cvs log: Logging src
      Undefined subroutine &CVS::Utils::ChangeLog::FileEntry::fileparse called at /usr/bin/cvs2cl line 1799, <LOG_SOURCE> line 19.                               rzyj@rzyj:~/projekty/speagram$ cvs [log aborted]: received broken pipe signal
      Write failed flushing stdout buffer.
      write stdout: Broken pipe
    
77 --gecos Parsing Uses getpwnam Incorrectly closed small MAIL
      I'm currently installing cvs2cl with a couple of other programs related
      to cvs in our research group here at the Met Office. I would like to use
      cvs2cl with it's --gecos option to have nicer ChangeLog with the real
      names of the programmers.  This did work nice in an older version of
      cvs2cl, but since I downloaded the recent version (2.55) from your web
      page, I get the following error message:

        Can't call method "gecos" without a package or object reference at
        /home/fr1210/frcm/bin/cvs2cl line 2212, <LOG_SOURCE> line 14.

      I believe this is due to an error within the
      read_date_author_and_state() function. I have attached a patch that
      seems to fix the problem for me (but I'm certainly not a born perl
      programmer, so there will be better ways to do that).
    
78 Create xml-header option open small MAIL
      Add --xml-header option akin to --header, but inserting it's contents
      within the XML header area in XML mode.
    
79 --prune stopped working closed small MAIL
80 Single quotes don't work on Windoze closed medium MAIL
      Unfortunately Windows don't understand command arguments enclosed in
      single quotes as cvs2cl.pl v2.57 does. I offer following fix at line
      #2608 in parse_options():

       #push @log_source_command, map "'$_'", @ARGV;
       push @log_source_command, map "\"$_\"", @ARGV;

      I believe double-quotes enclosement should work for Unix also.
    
81 --ignore should take regex closed small MAIL
      The manual page is quite clear on this:

             -I REGEXP, --ignore REGEXP
                 Ignore files whose names match REGEXP.  This option may be
                 used multiple times.

      Although there is no REGEXP asked but the full filename path, according
      to this code snippet from cvs2cl in line 2128:

          if ( grep index($path, $_) > -1, @Ignore_Files ) {
      According to "perldoc -f grep" it works "grep EXPR,LIST", $path is the
      path including the filename within the repository and @Ignore_Files is
      filled with the (multiple) --ignore value(s).

      So, I guess this could either need a code change (I would truly
      appreciate it, because real REGEXP would be very very neat in here!) or
      at least a documentation change (then you might consider leaving it open
      as wishlist, pretty please).
    
82 _revision_in_branch is wrong for branches with 10+ revisions closed small MAIL
      If you look in the subroutine _revision_is_wanted, and search for the
      comment "Trivial case", then just below that there is a conditional that
      seems wrong to me.

      # Trivial case: is this revision on the branch?  (Compare this way to
      # avoid regexps that screw up Emacs indentation, argh.)
      if ( substr($revision, 0, (length($branch_number) + 1))
           eq
           ($branch_number . ".") ) {
        if ( $followsub ) {
          return 1;
        } elsif (length($revision) == length($branch_number)+2 ) {
          return 1;    # THIS IS NOT COMPLETE FOR REVISION NUMBERS WITH
                       # FINAL DIGITS > 9
        }

      But what happens if the revision on the branch is two digits? E.g
      revision is 1.16.2.10 and the branch is 1.16.2 Then what was ok for
      1.16.2.9 no longer works.
    
83 Add tag dates to XML output closed small MAIL
      The cvs2cl --xml output doesn't contain date of tags though.  I think
      is useful, so I create the following patch.  What do you think?
    
Translated by SAXON 7.4 from Michael Kay