2001-02-13 04:55 kfogel * Makefile (1.10): (log): Use new "--accum" option. 2001-02-13 04:54 kfogel * Makefile (1.9), cvs2cl.pl (2.38): * cvs2cl.pl: New `--accum' option. * Makefile (log, changelog, ChangeLog): new rule and aliases. 2001-01-10 01:15 kfogel * index.html (1.6): Describe cvs2html a bit more. 2001-01-04 06:31 sussman * Makefile (1.8): Added Mike Sussman to people.html 2000-12-29 08:19 kfogel * cvs2cl.pl (2.37): Better fsf-style formatting, but still not perfect. Sheesh. Who would have thought this was such a problem? 2000-12-29 07:10 kfogel * cvs2cl.pl (2.36): Grinding it down, just a little tweak left. 2000-12-29 06:36 kfogel * cvs2cl.pl (2.35): In-progress checkpoint, working on that pesky formatting bug. 2000-12-26 09:26 kfogel * tests/Makefile (1.8): Show context diffs for test failures. 2000-12-26 09:21 kfogel * cvs2cl.pl (2.34): (derive_change_log): reset %symbolic_names to avoid spurious re-uses of revision numbers; Hendrik Ruijter 's patch. 2000-12-14 08:17 kfogel * cvs2cl.pl (2.33): (pretty_file_list): fix regexp so we keep all digits of the revision number. Thanks to Alan Barrett for the patch. 2000-12-14 08:09 kfogel * changelog-xml-schema.xdr (1.1), changelog.dtd (1.1), index.html (1.5): Added David Carlson's draft XML dtd and schema. 2000-11-14 11:31 kfogel * cvs2cl.pl (2.32): (wrap_log_entry): Removed the experimental blank-line handling. 2000-11-14 11:29 kfogel * cvs2cl.pl (2.31): (wrap_log_entry): handle leading spaces specially. This commit also includes some experimental blank-line handling, which I will remove in a moment. 2000-11-08 06:27 kfogel * get-rev.cgi (2.3): Remove tmp file. 2000-11-08 06:22 kfogel * get-rev.cgi (2.2): work 2000-11-08 06:14 kfogel * get-rev.cgi (2.1): script for checking out a specific revision 2000-11-08 05:43 kfogel * cvs2cl.pl (2.30): Update home page url. 2000-11-08 05:16 kfogel * Makefile (1.7): Doc fix. 2000-11-08 04:17 kfogel * index.html (1.4): Fix links to sample ChangeLogs. 2000-11-08 04:15 kfogel * index.html (1.3): fix image link 2000-11-08 04:14 kfogel * changelogs.html (1.2), index.html (1.2): White backgrounds. 2000-11-08 04:13 kfogel * .cvsignore (1.2), Makefile (1.6), changelogs.html (1.1), index.html (1.1), make-samples.sh (1.1): Moving cvs2cl home page out of kfogel and into generic repository; make web stuff live directly and statically here too. 2000-09-07 01:57 kfogel * Makefile (1.5), cvs2cl.pl (2.29), tests/out-4a.txt (1.5), tests/out-4b.txt (1.5), tests/out-5b.txt (1.2): Okay, *really* make `-S' and `--fsf' cooperate this time. Tests adjusted accordingly. 2000-09-06 13:42 kfogel * cvs2cl.pl (2.28), tests/Makefile (1.7), tests/out-4a.txt (1.4), tests/out-4b.txt (1.4), tests/out-5b.txt (1.1): Handle the case where both `-S' and `--fsf' were passed. Added test for same. 2000-09-06 08:13 kfogel * tests/: .cvsignore (1.1), Makefile (1.6), log-5.txt (1.1), out-1a.txt (1.2), out-1a.xml (1.3), out-2a.xml (1.3), out-3a.txt (1.2), out-3b.txt (1.2), out-4a.txt (1.3), out-4b.txt (1.3), out-4c.txt (1.3), out-5a.txt (1.1): 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. 2000-09-06 08:00 kfogel * cvs2cl.pl (2.27): (derive_change_log): oops, compensate for After_Header setting outside all loops. 2000-09-06 07:35 kfogel * cvs2cl.pl (2.26): (derive_change_log): compensate for After_Header setting. 2000-09-06 06:16 kfogel * cvs2cl.pl (2.25): Incorporate new custom FSF-style wrapping into derive_change_log(). 2000-09-06 05:50 kfogel * cvs2cl.pl (2.24): (wrap_log_entry): done. Works perfectly now. 2000-09-06 04:27 kfogel * cvs2cl.pl (2.23): (wrap_log_entry): rewritten following the shower inspiration. Almost perfect now. 2000-09-05 10:20 kfogel * cvs2cl.pl (2.22): Revert everything having to do with custom wrapping. 2000-09-05 10:19 kfogel * cvs2cl.pl (2.21): More work on custom wrap, but doesn't actually work yet. 2000-09-05 08:52 kfogel * cvs2cl.pl (2.20): Temporarily revert, to continue working on custom wrapping. 2000-09-05 08:51 kfogel * cvs2cl.pl (2.19): Custom wrapping in progress (committing for archival purposes only). 2000-08-30 07:50 kfogel * cvs2cl.pl (2.18): Much better explanatory comment about FSF-style. 2000-08-30 07:31 kfogel * cvs2cl.pl (2.17), tests/Makefile (1.5), tests/log-4.txt (1.2), tests/out-4a.txt (1.2), tests/out-4b.txt (1.2), tests/out-4c.txt (1.2): 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. 2000-08-29 09:49 kfogel * cvs2cl.pl (2.16): Doc fix. 2000-08-29 09:42 kfogel * cvs2cl.pl (2.15), tests/Makefile (1.4), tests/log-4.txt (1.1), tests/out-4a.txt (1.1), tests/out-4b.txt (1.1), tests/out-4c.txt (1.1): 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. 2000-08-22 13:13 kfogel * cvs2cl.pl (2.14): Note about fixing standard syntax. 2000-08-22 03:39 kfogel * Makefile (1.4): Added `install' rule. 2000-08-17 00:27 kfogel * Makefile (1.3): Tell the truth. 2000-08-17 00:26 kfogel * cvs2cl.pl (2.13): (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 . 2000-08-17 00:22 kfogel * tests/: Makefile (1.3), log-3.txt (1.1), out-3a.txt (1.1), out-3b.txt (1.1): Added tests from Shlomo Reinstein's log. 2000-08-15 00:59 kfogel * cvs2cl.pl (2.12): Handle even the [allegedly impossible] case of an undefined dir prefix. 2000-08-15 00:52 kfogel * cvs2cl.pl (2.11): Be more careful about setting $common_dir. This hopefully fixes a two-char eats problem reported by Shlomo Reinstein ; 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. 2000-07-08 04:12 kfogel * cvs2cl.pl (2.10), tests/out-1a.xml (1.2), tests/out-2a.xml (1.2): Set an XML namespace if --xml. 2000-07-08 01:20 kfogel * tests/log-2.txt (1.2): revert to Olivier's exact version 2000-07-08 00:00 kfogel * cvs2cl.pl (2.9), tests/Makefile (1.2), tests/log-2.txt (1.1), tests/out-2a.xml (1.1): Fix branch-number bug reported by Olivier Vit . 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. 2000-07-05 04:19 kfogel * Makefile (1.2): wording tweak 2000-07-05 04:18 kfogel * cvs2cl.pl (2.8): More branch-number parsing fixes, this time from Ken Olstad . 2000-07-05 04:06 kfogel * cvs2cl.pl (2.7): Ignore comment lines and lines without colons in usermap file (bug report and patch from Eric Maryniak ). 2000-07-05 04:00 kfogel * Makefile (1.1): Run tests from here too. 2000-07-05 03:56 kfogel * cvs2cl.pl (2.6): Checked in fix from Mike Stead for overeager digit-matching in branch/rev calculations. (Note: also reported by Olivier Vit ). 2000-07-05 03:51 kfogel * tests/: Makefile (1.1), log-1.txt (1.1), out-1a.txt (1.1), out-1a.xml (1.1): started test suite 2000-06-29 05:15 kfogel * cvs2cl.pl (2.5): Applied Ying Zhang 's patch adding the "--hide-filenames" option. 2000-04-20 03:06 kfogel * cvs2cl.pl (2.4): Do xml-escaping on author once only, in outer loop not inner, to avoid compounded escaping. (Thanks to Peter Karlsson for the bug report.) 2000-01-28 15:02 kfogel * cvs2cl.pl (2.3): Applied directory separator fix from David Goldfarb . 2000-01-26 01:10 kfogel * cvs2cl.pl (2.2): Added --no-wrap option. Also, stop wrapping log message body when XML output. 2000-01-05 08:33 kfogel * cvs2cl.pl (2.1): Downcase all XML tags (DTD to be formalized soon). 2000-01-01 03:11 kfogel * cvs2cl.pl (2.0): bump version to 2.0 2000-01-01 03:01 kfogel * cvs2cl.pl (1.175): Removed "BETA" designation. 1999-12-30 02:19 kfogel * cvs2cl.pl (1.174): Applied fix from Melissa O'Neill . She correctly fixed the entry-order/time-unification bug, as opposed to my previous fix, which merey broke things in a different way. 1999-12-29 13:09 kfogel * TODO (1.16), cvs2cl.pl (1.173): 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. 1999-12-29 00:41 kfogel * cvs2cl.pl (1.172): Print XML meta header first, and enclose everything in ... to avoid illegal multirootedness, all on the advice of Ramon Felciano . 1999-12-29 00:36 kfogel * cvs2cl.pl (1.171): (pretty_file_list): unify XML-related code, for readability. 1999-12-28 09:34 kfogel * cvs2cl.pl (1.170): Tweak usage. 1999-12-28 09:31 kfogel * cvs2cl.pl (1.169): Add note to usage message, regarding promiscuity of --xml option. 1999-12-28 09:26 kfogel * cvs2cl.pl (1.168): If doing XML output, then include day of week unconditionally. 1999-12-28 09:17 kfogel * cvs2cl.pl (1.167): Finished XML output ("--xml" option), suggested by Ramon Felciano . 1999-12-24 10:29 kfogel * cvs2cl.pl (1.166): progress on --xml output, though still not complete 1999-12-24 10:05 kfogel * cvs2cl.pl (1.165): started implementing --xml output; not done yet! 1999-12-18 15:39 kfogel * cvs2cl.pl (1.164): added --easy-parse-format option 1999-12-18 14:49 kfogel * TODO (1.15), cvs2cl.pl (1.163): fixed tag unification bug 1999-12-18 14:23 kfogel * TODO (1.14): record useful debugging command 1999-12-18 14:17 kfogel * cvs2cl.pl (1.162): more output format description 1999-12-18 14:09 kfogel * TODO (1.13): noticed new bug 1999-12-18 14:08 kfogel * cvs2cl.pl (1.161): Added -C, --case-insensitive option (suggestion from Todd Denniston ) 1999-12-18 13:21 kfogel * cvs2cl.pl (1.160): added informal format description 1999-12-11 03:44 kfogel * TODO (1.12): reprioritize 1999-12-07 12:55 kfogel * cvs2cl.pl (1.159): Transmogrify Windows filenames to Unix-style. Fix due to Frank Stockinger , who noticed the problem because he runs cvs2cl.pl with ActiveState Perl under Windows NT. 1999-12-07 12:51 kfogel * a-subdir/: foo.txt, test.txt (Brancho_Gratuito.[3,4]): just a test change 1999-12-07 12:39 kfogel * cvs2cl.pl (1.158): fix typo: it's --follow, not --follow-branch Thanks to G. Paul Ziemba for reporting this. 1999-11-10 06:45 kfogel * TODO (1.11): Entered reproduction recipe (log data) for entry order bug. 1999-11-07 12:50 kfogel * TODO (1.10): Removed all of Doug Finkle's recent bugs. Now that's what I call a good night! 1999-11-07 12:22 kfogel * cvs2cl.pl (1.157): More robust option parsing: exit with error if a required argument is absent. 1999-11-07 12:09 kfogel * cvs2cl.pl (1.156): 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. 1999-11-07 11:40 kfogel * cvs2cl.pl (1.155): 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. 1999-11-07 11:17 kfogel * cvs2cl.pl (1.154): Fix bug in which the file separators terminating files with no revisions (from "cvs -d DATE" output, for example) were not noticed. 1999-11-04 00:59 kfogel * TODO (1.9): more stuff from Doug Finkle 1999-09-28 00:34 kfogel * TODO (1.8): added Doug's bugs 1999-09-20 16:04 kfogel * cvs2cl.pl (1.153): Bug fix from Marcin Kasperski : If $common_dir is "./", then just set it to "". This fixes the occasional two-char-eats problem. 1999-09-20 13:04 kfogel * cvs2cl.pl (1.152): simplified common_dir code, a couple of other things 1999-09-20 05:04 kfogel * cvs2cl.pl (1.151): consistency in usage message 1999-09-19 16:03 kfogel * TODO (1.7): removed old items 1999-09-19 15:58 kfogel * cvs2cl.pl (1.150): Added --gmt/--utc and -w/--day-of-week options. 1999-09-19 15:29 kfogel * cvs2cl.pl (1.149): Common dir prefix unification done. 1999-09-19 14:33 kfogel * cvs2cl.pl (1.148): commit with 'Speedy' code in, for kicks; will revert immediately 1999-09-18 14:16 kfogel * cvs2cl.pl (1.147): abstracted out common dir detection, but still punting 1999-09-18 14:05 kfogel * cvs2cl.pl (1.146): fixed undefined hash reference bug 1999-09-18 13:30 kfogel * cvs2cl.pl (1.145): small reformatting of usage 1999-09-17 01:01 kfogel * cvs2cl.pl (1.144): Fix usage bug, rearrange usage 1999-09-16 13:05 kfogel * cvs2cl.pl (1.143): format usage more clearly 1999-09-16 13:00 kfogel * cvs2cl.pl (1.142): oops, fix typo from last change 1999-09-16 12:59 kfogel * cvs2cl.pl (1.141): no more default header -- only print header on request 1999-09-16 12:34 kfogel * cvs2cl.pl (1.140): mark as beta 1999-09-16 12:31 kfogel * cvs2cl.pl (1.139): use scalar instead of $# 1999-09-16 12:20 kfogel * cvs2cl.pl (1.138): document new stuff 1999-09-16 11:59 kfogel * cvs2cl.pl (1.137): -F / --follow-branches working 1999-09-16 11:43 kfogel * cvs2cl.pl (1.136): Branch-following detection code working. Has no effect yet -- the conditionals are all there, but their consequents are empty. 1999-09-15 05:00 kfogel * cvs2cl.pl (1.135): reverted previous non-working change -- it was just for storage 1999-09-15 05:00 kfogel * cvs2cl.pl (1.134): progress on Follow_Branches 1999-09-14 12:53 kfogel * cvs2cl.pl (1.133): continuing implementation of Follow_Branches 1999-09-14 12:40 kfogel * cvs2cl.pl (1.132): oops, don't clear overenthusiastically 1999-09-14 12:38 kfogel * cvs2cl.pl (1.131): fixed single-file bug, started implementing Follow_Branches 1999-09-14 10:36 kfogel * cvs2cl.pl (1.130): Accurify comments. 1999-09-14 10:35 kfogel * cvs2cl.pl (1.129): Unify common directories. 1999-09-14 10:04 kfogel * cvs2cl.pl (1.128): Unify tags even when branches are present. 1999-09-14 09:22 kfogel * cvs2cl.pl (1.127): Use hashes instead of lists in pretty_file_list(), for efficiency. 1999-09-14 00:11 kfogel * cvs2cl.pl (1.126): added todo comment 1999-09-13 15:58 kfogel * TODO (1.6): updated 1999-09-13 15:36 kfogel * cvs2cl.pl (1.125): implemented -I / --ignore option 1999-09-13 15:16 kfogel * cvs2cl.pl (1.124): fixed another buglet 1999-09-13 15:14 kfogel * cvs2cl.pl (1.123): fixed some buglets 1999-09-13 14:59 kfogel * cvs2cl.pl (1.122): fix regexp gate to behave in the expected way, finally! 1999-09-13 14:49 kfogel * cvs2cl.pl (1.121): 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. 1999-09-13 13:54 kfogel * cvs2cl.pl (1.120): revert previous interim revision 1999-09-13 13:53 kfogel * cvs2cl.pl (1.119): interim revision, toward new release; will revert 1999-09-13 12:58 kfogel * TODO (1.5): added request from Doug Finkle 1999-09-13 11:16 kfogel * cvs2cl.pl (1.118): mild comment changes 1999-07-30 12:56 kfogel * TODO (1.4): new items 1999-07-30 12:19 kfogel * cvs2cl.pl (1.117): tweak usage 1999-07-30 12:18 kfogel * cvs2cl.pl (1.116): Added -W / --window option to control $Max_Checkin_Duration (the window of time within which log entries get unified). 1999-07-30 12:08 kfogel * cvs2cl.pl (1.115): 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. 1999-07-25 16:09 kfogel * TODO (1.3): add item about cumulative updates 1999-07-25 16:04 kfogel * TODO (1.2): clarify 1999-07-25 15:38 kfogel * cvs2cl.pl (1.114): really, truly fix leading .// problem 1999-07-25 15:30 kfogel * cvs2cl.pl (1.113): really fix leading .// problem 1999-07-25 15:23 kfogel * cvs2cl.pl (1.112): fix leading .// problem 1999-07-25 14:45 kfogel * cvs2cl.pl (1.111): 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 , 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. 1999-07-25 14:40 kfogel * cvs2cl.pl (1.110): partial reversion to 1.107; see log message at 1.108 for reasons 1999-07-25 14:38 kfogel * cvs2cl.pl (1.109): fixed buglet in regexp, before partial reversion of previous change 1999-07-25 14:36 kfogel * cvs2cl.pl (1.108): Merged in all of Avi Kivity '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. 1999-07-24 01:37 kfogel * cvs2cl.pl (1.107): handle empty ChangeLog headers gracefully 1999-07-23 17:06 kfogel * TODO (1.1): My stack is so high I actually need to write it down. Sigh. 1999-07-17 13:09 kfogel * a-subdir/: foo.txt, test.txt, subsubdir/test.txt (Brancho_Gratuito.[2,3,2]): change piles upon change 1999-07-17 13:05 kfogel * a-subdir/test.txt (Brancho_Gratuito.2): new change 1999-07-17 13:05 kfogel * a-subdir/: foo.txt, test.txt, subsubdir/test.txt (Brancho_Gratuito.[1,1,1]): change them on the branch 1999-07-17 13:04 kfogel * a-subdir/foo.txt (1.2): meaningless change 1999-07-17 13:03 kfogel * a-subdir/foo.txt (1.1): a truly pointless file -- exploring branches 1999-07-17 01:09 kfogel * cvs2cl.pl (1.106): note stdin behavior of --header 1999-07-17 00:04 kfogel * cvs2cl.pl (1.105): Change from Avi Kivity : Offer new "--header" option to control ChangeLog header (patch rewritten slightly to use slurp_file(), in anticipation of future need). 1999-07-02 00:58 kfogel * cvs2cl.pl (1.104): Only compile $Regexp_Gate once. 1999-07-02 00:56 kfogel * cvs2cl.pl (1.103): Match against author too when doing -R/--regexp 1999-06-16 13:09 kfogel * mywrap.pl (1.2): skeleton 1999-06-16 09:36 kfogel * mywrap.pl (1.1): initial import 1999-05-26 14:01 kfogel * cvs2cl.pl (1.102): Added long note about wrap() bug at end 1999-05-26 13:17 kfogel * cvs2cl.pl (1.101): improved previous improvement 1999-05-26 12:16 kfogel * cvs2cl.pl (1.100): Improve output by improving decisions about which newlines to strip off: now leaves alone indented and lines beginning with a mail-quote character (">"). 1999-05-23 11:31 kfogel * cvs2cl.pl (1.99): expand comment 1999-05-22 12:19 kfogel * cvs2cl.pl (1.98): trivial change to bump version number for PAUSE 1999-05-22 07:34 kfogel * cvs2cl.pl (1.97): categorize in Version_Control/CVS 1999-05-22 04:16 kfogel * cvs2cl.pl (1.96): test regexp against the whole entry, not just msg_txt 1999-05-22 04:00 kfogel * cvs2cl.pl (1.95): Treat non-options as filename arguments for 'cvs log' 1999-05-22 02:59 kfogel * cvs2cl.pl (1.94): update PAUSE info 1999-05-21 14:15 kfogel * cvs2cl.pl (1.93): 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.) 1999-05-21 05:45 kfogel * cvs2cl.pl (1.92): Accept -P for --prune, like CVS 1999-05-20 15:54 kfogel * cvs2cl.pl (1.91): Fixed some regular expressions. This takes care of the branch-tracing bug reported by John Cavanaugh . 1999-05-20 05:36 kfogel * cvs2cl.pl (1.90): mention perl-indent-level after all 1999-05-20 05:17 kfogel * cvs2cl.pl (1.89): Change from William A. Hoffman : Invoke perl in a path-independent manner (subtitled: "Karl learns about the -x option to Perl and is appropriately awed"). 1999-05-20 04:58 kfogel * cvs2cl.pl (1.88): Patch from Johannes Stezenbach : Handle the possibility that no revisions are shown for a given file (this can happen with "cvs log -d", for example). 1999-05-13 13:43 kfogel * cvs2cl.pl (1.87): make -b useful even without -r 1999-05-13 13:12 kfogel * cvs2cl.pl (1.86): if showing branches, show latest ancestor as such 1999-05-13 11:58 kfogel * cvs2cl.pl (1.85): removed debugging statements; better comment 1999-05-13 11:52 kfogel * cvs2cl.pl (1.84): Added -b / --branches option. This implements John Cavanaugh 's suggestion to substitute branch names into revision numbers where possible. 1999-05-13 06:29 kfogel * cvs2cl.pl (1.83): fixed; undid previous reversion 1999-05-13 06:12 kfogel * cvs2cl.pl (1.82): reverted to 1.79 to debug problems in previous two revisions 1999-05-13 06:10 kfogel * cvs2cl.pl (1.81): clean but broken; will revert to 1.79 and incrementally return to this 1999-05-13 05:37 kfogel * cvs2cl.pl (1.80): Avoid using `if' and `unless' in postfix style. Plus a few other minor cleanups. 1999-05-13 05:21 kfogel * cvs2cl.pl (1.79): perfectify comment 1999-05-13 05:18 kfogel * cvs2cl.pl (1.78): Changes from Melissa O'Neill : 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. 1999-04-19 15:14 kfogel * cvs2cl.pl (1.77): Changes from Melissa O'Neill : Use \d instead of 0-9 in regexps. Don't use double-quotes where not necessary. 1999-04-14 07:29 kfogel * cvs2cl.pl (1.76): 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. 1999-04-14 06:26 kfogel * cvs2cl.pl (1.75): comment accurification 1999-04-13 23:33 kfogel * cvs2cl.pl (1.74): removed BETA designation 1999-04-13 23:30 kfogel * cvs2cl.pl (1.73): Change from Avi Kivity : Be liberal about matching symbolic names -- just take anything preceding the colon. Enforcing restrictions on tag names is CVS's responsibility, not ours. 1999-04-10 14:35 kfogel * cvs2cl.pl (1.72): Made POD documentation, for the Perl Scripts Archive 1999-04-10 01:09 kfogel * README (1.3): Reverted previous change, which was only made to test public CVS access anyway. 1999-04-10 00:53 melissa * README (1.2): 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. 1999-04-09 10:22 kfogel * cvs2cl.pl (1.71): Oops, fixed previous fix to implementation of "-t" / "--tags". Now remembers to clear out %symbolic_names after use. 1999-04-09 09:15 kfogel * cvs2cl.pl (1.70): Fixed implementation of "-t" / "--tags": now correctly handles multiple symbolic names on the same revision number. Thanks, Melissa, for the autovivication lesson. 1999-04-09 08:54 kfogel * cvs2cl.pl (1.69): Use "$VERSION" instead of "$Version", for compatibility with the Perl Scripts Archive, to which this will soon be submitted. 1999-04-09 06:54 kfogel * cvs2cl.pl (1.68): Implemented "-t" / "--tags" option. 1999-04-09 04:14 kfogel * cvs2cl.pl (1.67): Changed "Insure" to "Ensure" in comment. From: "Melissa O'Neill" Subject: English Usage and Future Features To: Karl Fogel Date: Thu, 8 Apr 1999 11:14:23 -0700 You wrote: > Okay, it's out; I just sent an announcement to info-cvs. > > Thanks for all the patches; I've pretty much kept my grubby little > paws off them and applied them as they were (see ChangeLog for > details). > > In fact, I think the only change I reverted was the spelling fix > "Insure" --> "Ensure". :-) These seem to be synonymous in common > usage and are also the same (in this sense) according to the > OED... which is only an authority insofar as it reflects usage > accurately, I guess, but I trust them to have done their research > anyway. Believe it or not, this exact question, involving these two > words used in the same sense, came up in a paper I was editing > 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 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 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 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. > It may just be a British vs. American spelling difference, now that I > 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. >> - Spotting when a log message is applied to every file in the distribution. > > Ahh... so we could use a special string "all files: blah blah blah" > 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. >> - Improving the formatting of ChangeLog entries. Long, carefully formatted, >> entries are currently rather trampled by the wrapping code. (Probably needs >> a command-line option.) > > I've just been thinking about this too. May just modify some code > from Text::Wrap. I'll bet we can guess right w/o a command-line > option most of the time. I think a good strategy would be to only add > newlines, never remove any. So long lines get auto-wrapped, but then > the next line (in the original) doesn't move up, it stays on its own > line. And of course, this only goes for the message portion, not the > filenames. > > This way, text that tries to make lists would stay readable. For > example: > > (parse_options): parse the --fish option. > (stirfry): if `fish' is set, behave appropriately. Adjust call to allergies(), and lower cooking heat based on reference in heat_table. > (allergies): adjust for fish if `fish' is set. > > would get turned into this: > > (parse_options): parse the --fish option. > (stirfry): if `fish' is set, behave appropriately. Adjust call to > allergies(), and lower cooking heat based on reference in heat_table. > (allergies): adjust for fish if `fish' is set. > > instead of this: > > (parse_options): parse the --fish option. (stirfry): if `fish' is > set, behave appropriately. Adjust call to allergies(), and lower > cooking heat based on reference in heat_table. (allergies): adjust > for fish if `fish' is set. Yes, that seems like a good way to go. Melissa. 1999-04-09 01:17 kfogel * cvs2cl.pl (1.66): Put Melissa's name up near the top 1999-04-09 01:10 kfogel * cvs2cl.pl (1.65): Implemented -r / --revisions option. 1999-04-09 00:49 kfogel * cvs2cl.pl (1.64): Put "(BETA)" in version string, because the recent slew of changes has only been tested by Melissa and myself. Untabified, indented everything. 1999-04-09 00:45 kfogel * cvs2cl.pl (1.63): Change from Melissa O'Neill : Modified algorithm and data layout to collect multiple ChangeLog messages for a given author over a sliding window of time. 1999-04-09 00:36 kfogel * cvs2cl.pl (1.62): Change from Melissa O'Neill : Fixed transposition in explanation (author and message were swapped). 1999-04-09 00:35 kfogel * cvs2cl.pl (1.61): Change from Melissa O'Neill : 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. 1999-04-09 00:28 kfogel * cvs2cl.pl (1.60): Change from Melissa O'Neill : Oops. Forgot seconds in parse_date_and_author. 1999-04-09 00:25 kfogel * cvs2cl.pl (1.59): Change from Melissa O'Neill : 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) 1999-04-09 00:00 kfogel * cvs2cl.pl (1.58): Change from Melissa O'Neill : Modified output loop to use `each' instead of `keys'. 1999-04-08 23:54 kfogel * cvs2cl.pl (1.57): Change from Melissa O'Neill : Eliminate $ignore_me. 1999-04-08 23:52 kfogel * cvs2cl.pl (1.56): Change from Melissa O'Neill : Eliminated use of File::Copy in favor of rename. 1999-04-08 23:46 kfogel * cvs2cl.pl (1.55): Change from Melissa O'Neill : 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. 1999-04-08 23:44 kfogel * cvs2cl.pl (1.54): Change from Melissa O'Neill : 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. 1999-04-08 23:42 kfogel * cvs2cl.pl (1.53): Change from Melissa O'Neill : Fixed pretty_file_list to use join rather than a home-grown equivalent. (Doh! Thanks, Melissa! -kff) 1999-04-08 23:36 kfogel * cvs2cl.pl (1.52): Change from Melissa O'Neill : Removed the last of the `_reffy' stuff and needless hash copying. 1999-04-08 23:31 kfogel * cvs2cl.pl (1.51): Change from Melissa O'Neill : Use a `here document' for the help message. 1999-04-08 07:49 kfogel * cvs2cl.pl (1.50): Change from Melissa O'Neill : 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. 1999-04-08 07:41 kfogel * cvs2cl.pl (1.49): Change from Melissa O'Neill : Simplified subhash code down to one line. 1999-04-08 07:37 kfogel * cvs2cl.pl (1.48): Change from Melissa O'Neill : Added /o to separator regexps. 1999-04-08 07:34 kfogel * cvs2cl.pl (1.47): Change from Melissa O'Neill : Avoid using Date::Parse. We now use timegm (from Time::Local) to do date -> time conversions, and perform the time parsing ourselves (given that dates are always in a pretty standard from). 1999-04-08 07:26 kfogel * cvs2cl.pl (1.46): Change from Melissa O'Neill : Added support for checkins that are not on the same minute by adding a new loop to detect nearby dates. 1999-03-23 14:48 kfogel * cvs2cl.pl (1.45): Heh, fix typo in version() -- it's "cvs2cl.pl, not "cvs2pl.cl", which would be a very different program! 1999-03-23 09:40 kfogel * COPYING (1.1): ship GPL too 1999-03-23 09:35 kfogel * cvs2cl.pl (1.44): Added warning of auto-generation to output. 1999-03-20 14:07 kfogel * README (1.1), cvs2cl.pl (1.43): Meaningful error codes on exit. Added README in case anyone stumbles by chance upon this directory. 1999-03-20 13:03 kfogel * cvs2cl.pl (1.42): Don't double slashes in debug message. 1999-03-20 13:02 kfogel * cvs2cl.pl (1.41): Better debugging output. 1999-03-20 12:57 kfogel * a-subdir/test.txt (1.2), a-subdir/subsubdir/test.txt (1.2), b-subdir/test.txt (1.2): [no log message] 1999-03-20 12:56 kfogel * cvs2cl.pl (1.40): Put ampersands on calls to debug(). 1999-03-20 12:45 kfogel * cvs2cl.pl (1.39): Ooops, fixed the filename-resetting bug. Added undocumented --debug flag and the debug() routine. 1999-03-20 11:10 kfogel * cvs2cl.pl (1.38): Fixed capitalization. 1999-03-20 10:57 kfogel * cvs2cl.pl (1.37): Totally clean up usage() and parse_options(). Now it errors if unknown options. Also, restored "." prefix to bak files (oops). 1999-03-20 10:45 kfogel * cvs2cl.pl (1.36): Rewrite "The Plan" to reflect the new two-level hash structure. 1999-03-20 10:40 kfogel * cvs2cl.pl (1.35): Clean up some other inconsistencies in usage message. 1999-03-20 10:39 kfogel * cvs2cl.pl (1.34): In usage message, note that "--distributed" now works. 1999-03-20 10:38 kfogel * cvs2cl.pl (1.33): Fitz and I are pleased. 1999-03-20 10:28 kfogel * a-subdir/test.txt (1.1), a-subdir/subsubdir/test.txt (1.1), b-subdir/test.txt (1.1): This is only test data, please ignore it. Feel free to modify it and commit whenever you need to generate another change message. 1999-03-20 10:21 kfogel * cvs2cl.pl (1.32): Well, the --distributed option seems to be working now. Time to run sanity tests. 1999-03-20 01:28 kfogel * cvs2cl.pl (1.31): Document the plan for --distributed, get everything in place; ready to implement. Better var names too. 1999-03-20 01:10 kfogel * cvs2cl.pl (1.30): Prettifications, no code changes. 1999-03-19 11:49 kfogel * cvs2cl.pl (1.29): 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. 1999-03-19 09:06 kfogel * cvs2cl.pl (1.28): implementation of --distributed option in progress 1999-03-19 08:27 kfogel * cvs2cl.pl (1.27): Implemented all proposed options except --distributed, ahhh. 1999-03-16 09:17 kfogel * cvs2cl.pl (1.26): sanify some more comments 1999-03-16 09:14 kfogel * cvs2cl.pl (1.25): sanify some comments 1999-03-16 09:05 kfogel * cvs2cl.pl (1.24): added note about --prune option 1999-03-16 06:37 kfogel * cvs2cl.pl (1.23): correct comment 1999-03-16 06:28 kfogel * long-log.out (1.3), short-log.out (1.2): no need for these files now 1999-03-16 06:17 kfogel * cvs2cl.pl (1.22): slight changes to usage 1999-03-13 15:51 kfogel * cvs2cl.pl (1.21): oops, don't run usage 1999-03-13 15:50 kfogel * cvs2cl.pl (1.20): include usage 1999-03-13 15:07 kfogel * .cvsignore (1.1), ChangeLog (1.12): no need to keep a derived ChangeLog in the repository 1999-03-13 15:06 kfogel * ChangeLog (1.11): about to remove ChangeLog 1999-03-13 11:03 kfogel * cvs2cl.pl (1.19): better separator comments 1999-03-13 10:59 kfogel * ChangeLog (1.10), cvs2cl.pl (1.18): oops, be truer to GNU ChangeLog style 1999-03-13 02:56 kfogel * ChangeLog (1.9): [no log message] 1999-03-13 02:56 kfogel * cvs2cl.pl (1.17): backup in .ChangeLog.bak, not ChangeLog.bak 1999-03-13 02:54 kfogel * ChangeLog (1.8), cvs2cl.pl (1.16): comment the msg_txt prettifier better 1999-03-13 02:41 kfogel * ChangeLog (1.7), cvs2cl.pl (1.15): detect official CVS empty log messages too 1999-03-13 02:39 kfogel * ChangeLog (1.6): [no log message] 1999-03-13 02:38 kfogel * cvs2cl.pl (1.14): include author 1999-03-13 02:37 kfogel * cvs2cl.pl (1.13): include revision number 1999-03-13 02:34 kfogel * ChangeLog (1.5): ChangeLog now reflects previous bugfix, heh 1999-03-13 02:34 kfogel * ChangeLog (1.4), cvs2cl.pl (1.12): okay, preserve paragraphs 1999-03-13 02:20 kfogel * cvs2cl.pl (1.11): 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? 1999-03-12 16:35 kfogel * ChangeLog (1.3): Hmmm, beginning to realize I'll always be one behind... 1999-03-12 16:27 kfogel * ChangeLog (1.2): added comment about keeping ChangeLog 1999-03-12 16:23 kfogel * ChangeLog (1.1): Well, might as well keep a ChangeLog then! 1999-03-12 16:18 kfogel * cvs2cl.pl (1.10): better comment 1999-03-12 16:10 kfogel * cvs2cl.pl (1.9): smokin' 1999-03-12 15:55 kfogel * cvs2cl.pl (1.8): ready to smoke 1999-03-12 15:29 kfogel * cvs2cl.pl (1.7), short-log.out (1.1): basic functionality done, needs auto-fill though 1999-03-12 11:06 kfogel * cvs2cl.pl (1.6): progress 1999-03-12 10:52 kfogel * cvs2cl.pl (1.5): get date and author too 1999-03-12 10:30 kfogel * cvs2cl.pl (1.4): knows filenames 1999-03-12 10:23 kfogel * long-log.out (1.2), cvs2cl.pl (1.3): better data, previous was bad due to just-discovered cvs log bug! 1999-03-12 09:34 kfogel * cvs2cl.pl (1.2): document The Plan 1999-03-12 09:13 kfogel * cvs2cl.pl (1.1), long-log.out (1.1): initial imports