From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27262 invoked from network); 13 Oct 2001 07:39:54 -0000 Received: from unknown (HELO sunsite.dk) (130.225.247.90) by ns1.primenet.com.au with SMTP; 13 Oct 2001 07:39:54 -0000 Received: (qmail 16702 invoked by alias); 13 Oct 2001 07:39:47 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 16026 Received: (qmail 16686 invoked from network); 13 Oct 2001 07:39:43 -0000 From: Bart Schaefer Message-Id: <1011013073937.ZM368@candle.brasslantern.com> Date: Sat, 13 Oct 2001 07:39:37 +0000 In-Reply-To: <1011012144532.ZM20507@candle.brasslantern.com> Comments: In reply to Bart Schaefer "Re: differences between the two branches" (Oct 12, 2:45pm) References: <3BC6F270.85671F06@yahoo.co.uk> <1011012144532.ZM20507@candle.brasslantern.com> X-Mailer: Z-Mail (5.0.0 30July97) To: zsh-workers@sunsite.dk Subject: Re: differences between the two branches MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="PART-BOUNDARY=.11011013073937.ZM368.brasslantern.com" -- --PART-BOUNDARY=.11011013073937.ZM368.brasslantern.com Content-Type: text/plain; charset=us-ascii On Oct 12, 2:45pm, Bart Schaefer wrote: } } } Anyway to make this task easier, I passed both ChangeLogs through a bit } } of sed to extract just the entries, wrapped onto one line each. } } Hmm, a bit of perl could probably help here. It should be possible to } gobble up the entries to sort them by article number without actually } unfolding them. I might fiddle with that later. Attached are the script and the output. (Thanks go to S. Spencer Sun, who happens both to work at Zanshin with me and to be an old Princeton crony of PF's, for the basic algorithm that I hacked to produce this script.) What this does is parse change-long entries, pick out the article numbers (for very loose definitions of "article" and "number"), and stash each entry in a hash keyed on that article number. If it can't parse one, it lumps all such entries under "unattributed". Every entry so hashed gets its own "date name email" line (provided one could be parsed, so this doesn't work very well on ChangeLog.3.0 as yet, though ChangeLog-3.1 is mostly acceptable). If there are multiple article numbers between the `*' and the `:' in the same entry, they all get sucked up into one big key. The regex to do this took up about 80% of the time I expended on the script. (I shouldn't have bothered about being able to parse ChangeLog-3.1, but I did.) The script then sorts the hash keys in reverse order (which means that workers/*, users/*, unattributed, etc., come before article numbers, so it's not perfect) and walks both hashes, comparing the keys. If it finds a key in one hash but not the other, it prints an "only in XXX" line. Otherwise it runs diff on the actual entries and prints out any lines it gets back. So the result is, in roughly descending-article-number order, a list of all the articles that appear in only one file, plus the diffs of any log entries where the same article was logged differently to each. You run it as difflog.pl [diff-options] older-file newer-file E.g. I ran difflog.pl -u1 branch/ChangeLog current/ChangeLog The option `-bw' is always added to the diff-options, see `@differ'. You can probably think of ways to make the output more useful, e.g. by dumping the actual log entries that appear only in the newer file so you don't have to go hunting for them. Left as an excercise; I'm very sleepy now. -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net --PART-BOUNDARY=.11011013073937.ZM368.brasslantern.com Content-Type: text/plain ; name="difflog.pl" ; charset=us-ascii Content-Disposition: attachment ; filename="difflog.pl" X-Zm-Content-Name: difflog.pl #!/usr/bin/perl use IO::File; my @differ = qw(diff -bw); my $oldtmp = "/tmp/difflog$$.old"; my $newtmp = "/tmp/difflog$$.new"; my $newfn = pop(@ARGV); my $oldfn = pop(@ARGV); my (%oldhash, %newhash); read_file($newfn, \%newhash); read_file($oldfn, \%oldhash); my @oldentries = reverse sort keys %oldhash; my @newentries = reverse sort keys %newhash; my $old = 0; my $new = 0; while ($old < @oldentries && $new < @newentries) { my $cmp = $oldentries[$old] cmp $newentries[$new]; if ($cmp > 0) { printf("only in %s: %s\n\n", $oldfn, $oldentries[$old++]); } elsif ($cmp < 0) { printf("only in %s: %s\n\n", $newfn, $newentries[$new++]); } else { if ($oldhash{$oldentries[$old]} ne $newhash{$newentries[$new]}) { my $oldfh = new IO::File("/tmp/difflog$$.old", 'w'); $oldfh->print($oldhash{$oldentries[$old]}); $oldfh->close(); my $newfh = new IO::File("/tmp/difflog$$.new", 'w'); $newfh->print($newhash{$newentries[$new]}); $newfh->close(); open(DIFF, join(' ', @differ, @ARGV, $oldtmp, $newtmp, '|')); my @lines = ; close(DIFF); unlink ; if (@lines) { print "diff for ", $oldentries[$old], ":\n"; map { s/$oldtmp/$oldfn/; s/$newtmp/$newfn/; } @lines; print @lines, "\n"; } } ++$old; ++$new; } } while ($old < @oldentries) { printf("only in %s: %s\n", $oldfn, $oldentries[$old++]); } while ($new < @newentries) { printf("only in %s: %s\n", $newfn, $newentries[$new++]); } sub read_file { my $fn = shift; my $hashref = shift; my $fh = new IO::File($fn, 'r'); my ($tag, $date, $entry, $block); my $attrib = q[(:?(:?workers?|users?)/)?\d+]; $attrib = q[(?:\w+\s+)*] . $attrib; $attrib = q[(?:[^/]*\D:\s*)?] . $attrib; $attrib = qq[(?:unposted|$attrib)]; $attrib = qq[(?:(?:$attrib,)*\s*$attrib)]; $hashref->{unattributed} = $block = ''; while (my $line = $fh->getline()) { if ($line =~ /(\d{4}-\d\d-\d\d)\s+.+\s+<.+\@.+>/i) { $date = $1; $block =~ s/\n*\Z/\n/; if ($entry) { $hashref->{$entry} .= "$tag\n$block"; } elsif ($tag) { $hashref->{unattributed} .= "\n$tag$block"; } $entry = $block = ''; $tag = $line; } elsif ($line =~ /\* ((?:$attrib)[^:]*):/) { my $next = $1; if ($entry) { $block =~ s/\n*\Z/\n/; $hashref->{$entry} .= "$tag\n$block"; } $entry = $next; $hashref->{$next} = ''; $block = $line; } else { $block .= $line; } } $fh->close(); } --PART-BOUNDARY=.11011013073937.ZM368.brasslantern.com Content-Description: Text Content-Type: text/plain ; name="difflog.txt" ; charset=us-ascii Content-Disposition: attachment ; filename="difflog.txt" X-Zm-Content-Name: difflog.txt only in current/ChangeLog: users/4157 (plus workers/15674) diff for users/4092: --- branch/ChangeLog Fri Oct 12 23:45:56 2001 +++ current/ChangeLog Fri Oct 12 23:45:56 2001 @@ -1,4 +1,4 @@ -2001-08-17 Wayne Davison +2001-08-07 Wayne Davison - * users/4092: Src/hist.c: Don't drop the last line of the history - file when handling a signal. + * users/4092: Src/hist.c: Don't lose the last history line + when a signal causes us to rewrite the history file. only in current/ChangeLog: unposted; based on 14679 (me) and 14693 (Bart) diff for unposted: --- branch/ChangeLog Fri Oct 12 23:45:56 2001 +++ current/ChangeLog Fri Oct 12 23:45:56 2001 @@ -1,5 +1,3 @@ -2001-06-13 Peter Stephenson +2001-06-06 Andrej Borsenkow - * unposted: Completion/compinstall: spotted by Bart: assignments - when finding $fpath if not set in current shell were completely - garbled. + * unposted: Etc/zsh-development-guide: we now support autoconf-2.50 diff for unattributed: --- branch/ChangeLog Fri Oct 12 23:45:56 2001 +++ current/ChangeLog Fri Oct 12 23:45:56 2001 @@ -0,0 +1,8 @@ + +2001-09-21 Andrew Main (Zefram) + + * Doc/Zsh/contrib.yo, Functions/Misc/tetris: Tetris game for ZLE. + +2001-06-04 Peter Stephenson + + * Relabelled this version 4.1.0-dev-0. diff for David Lebel: 15742: --- branch/ChangeLog Fri Oct 12 23:45:56 2001 +++ current/ChangeLog Fri Oct 12 23:45:56 2001 @@ -1,2 +1,2 @@ -2001-09-09 Bart Schaefer +2001-09-09 Bart Schaefer only in current/ChangeLog: Bart: 15106, small changes in 15152 only in current/ChangeLog: Back out 15266 only in current/ChangeLog: 16xxx only in branch/ChangeLog: 16018 only in current/ChangeLog: 16006 only in current/ChangeLog: 16005 only in current/ChangeLog: 16002 only in current/ChangeLog: 16000 only in current/ChangeLog: 15995 only in current/ChangeLog: 15994 only in current/ChangeLog: 15991 only in current/ChangeLog: 15987 diff for 15983: --- branch/ChangeLog Fri Oct 12 23:45:57 2001 +++ current/ChangeLog Fri Oct 12 23:45:57 2001 @@ -1,6 +1,6 @@ -2001-10-12 Oliver Kiddle +2001-10-08 Oliver Kiddle - * 15983: Completion/Unix/Command/_user_admin, - Completion/Unix/Command/_sysctl, Completion/Unix/Type/_urls, - Completion/Unix/Command/_webbrowser: darwin support in _sysctl, - complete files for galeon + * 15983: Completion/Unix/Command/_wget, Completion/Unix/Type/_urls, + Completion/Unix/Command/_user_admin, Completion/Unix/Command/_sysctl, + Completion/Unix/Command/_webbrowser: update for wget 1.7, darwin + support in _sysctl, complete files for galeon only in current/ChangeLog: 15980 only in branch/ChangeLog: 15974 only in current/ChangeLog: 15973 only in current/ChangeLog: 15964 only in current/ChangeLog: 15949 only in current/ChangeLog: 15946 only in current/ChangeLog: 15945 only in current/ChangeLog: 15944 only in current/ChangeLog: 15931 only in current/ChangeLog: 15919 only in current/ChangeLog: 15917 only in current/ChangeLog: 15895 only in current/ChangeLog: 15886 diff for 15882: --- branch/ChangeLog Fri Oct 12 23:45:57 2001 +++ current/ChangeLog Fri Oct 12 23:45:57 2001 @@ -1,2 +1,2 @@ -2001-10-12 Oliver Kiddle +2001-09-27 Oliver Kiddle only in branch/ChangeLog: 15866, Sven 15468 only in current/ChangeLog: 15866 only in current/ChangeLog: 15851, 15948 only in current/ChangeLog: 15844 diff for 15837: --- branch/ChangeLog Fri Oct 12 23:45:58 2001 +++ current/ChangeLog Fri Oct 12 23:45:58 2001 @@ -1,2 +1,2 @@ -2001-09-18 Wayne Davison +2001-09-17 Wayne Davison only in current/ChangeLog: 15836 only in current/ChangeLog: 15812 only in current/ChangeLog: 15809 only in current/ChangeLog: 15806 only in current/ChangeLog: 15783 only in current/ChangeLog: 15780 only in current/ChangeLog: 15779 only in current/ChangeLog: 15772 only in current/ChangeLog: 15770 only in current/ChangeLog: 15768 only in current/ChangeLog: 15766 only in current/ChangeLog: 15765 only in current/ChangeLog: 15763 only in current/ChangeLog: 15762 only in current/ChangeLog: 15740 only in current/ChangeLog: 15739 only in current/ChangeLog: 15734 only in current/ChangeLog: 15722 only in current/ChangeLog: 15721 only in current/ChangeLog: 15720 only in current/ChangeLog: 15713 only in current/ChangeLog: 15708 only in current/ChangeLog: 15702 only in current/ChangeLog: 15676 only in current/ChangeLog: 15669 only in current/ChangeLog: 15653 only in current/ChangeLog: 15650 only in current/ChangeLog: 15647 only in current/ChangeLog: 15638 only in branch/ChangeLog: 15630 & 15713 only in current/ChangeLog: 15630 diff for 15621: --- branch/ChangeLog Fri Oct 12 23:45:59 2001 +++ current/ChangeLog Fri Oct 12 23:45:59 2001 @@ -1,2 +1,2 @@ -2001-09-09 Geoff Wing +2001-08-15 Geoff Wing only in current/ChangeLog: 15615 only in current/ChangeLog: 15608 only in current/ChangeLog: 15606 only in current/ChangeLog: 15597 only in current/ChangeLog: 15596 diff for 15594: --- branch/ChangeLog Fri Oct 12 23:45:59 2001 +++ current/ChangeLog Fri Oct 12 23:45:59 2001 @@ -1,2 +1,2 @@ -2001-10-12 Oliver Kiddle +2001-08-07 Oliver Kiddle only in current/ChangeLog: 15590 only in current/ChangeLog: 15588 only in current/ChangeLog: 15586 only in current/ChangeLog: 15585 only in current/ChangeLog: 15584 only in current/ChangeLog: 15583 only in branch/ChangeLog: 15577 diff for 15574: --- branch/ChangeLog Fri Oct 12 23:45:59 2001 +++ current/ChangeLog Fri Oct 12 23:45:59 2001 @@ -2,5 +2,10 @@ - * 15574: Completion/Unix/Command/_cvs, Completion/Unix/Type/_users, - Completion/Unix/Command/_user_admin, Completion/Unix/Type/_groups, - Completion/Unix/Type/_directories: new _user_admin completion for - useradd, groupmod etc and remove redundant duplication in _cvs + * 15574: Completion/Unix/Command/_cvs, Completion/Unix/Command/_dd, + Completion/Unix/Command/_dict, Completion/Unix/Command/_grep, + Completion/Unix/Command/_loadkeys, Completion/Unix/Command/_ls, + Completion/Unix/Command/_patch, Completion/Unix/Command/_user_admin, + Completion/Unix/Command/_wget, Completion/Unix/Type/_diff_options, + Completion/Unix/Type/_directories, Completion/Unix/Type/_groups, + Completion/Unix/Type/_users: new _user_admin for useradd, groupmod etc, + rewrite of _dd to use _values and make more completions share + descriptions for long and short options diff for 15562, Akinori Musha: 15559, 15563: --- branch/ChangeLog Fri Oct 12 23:45:59 2001 +++ current/ChangeLog Fri Oct 12 23:45:59 2001 @@ -1,2 +1,2 @@ -2001-08-06 Oliver Kiddle +2001-08-03 Oliver Kiddle only in current/ChangeLog: 15549 only in current/ChangeLog: 15526 only in current/ChangeLog: 15511 only in current/ChangeLog: 15509 only in current/ChangeLog: 15508 only in current/ChangeLog: 15507 only in current/ChangeLog: 15498 only in current/ChangeLog: 15489 only in current/ChangeLog: 15488 diff for 15487: --- branch/ChangeLog Fri Oct 12 23:45:59 2001 +++ current/ChangeLog Fri Oct 12 23:45:59 2001 @@ -2,3 +2,4 @@ - * 15487: Src/Zle/complete.c: fix for `--' before matches ignoring all - -M options in compadd + * 15487: Completion/Base/Utility/_describe, Src/Zle/complete.c: + move pattern matching in the loop to make sure all match specs + are used only in current/ChangeLog: 15485 only in current/ChangeLog: 15484 only in current/ChangeLog: 15482 only in current/ChangeLog: 15477 only in current/ChangeLog: 15472 only in current/ChangeLog: 15468 only in current/ChangeLog: 15432 only in current/ChangeLog: 15415 only in current/ChangeLog: 15409 only in current/ChangeLog: 15407 only in current/ChangeLog: 15389 only in current/ChangeLog: 15375 only in current/ChangeLog: 15354 only in current/ChangeLog: 15334 only in current/ChangeLog: 15329 only in current/ChangeLog: 15327 only in current/ChangeLog: 15305 only in current/ChangeLog: 15304 only in current/ChangeLog: 15291, 15292 only in current/ChangeLog: 15288 only in current/ChangeLog: 15279 only in current/ChangeLog: 15278 (Sven), 15390 diff for 15277: --- branch/ChangeLog Fri Oct 12 23:46:00 2001 +++ current/ChangeLog Fri Oct 12 23:46:00 2001 @@ -1,4 +1,4 @@ -2001-07-05 Peter Stephenson +2001-07-06 Peter Stephenson - * 15277: Src/glob.c: bug with ${(S)...%%...}: the indices + * 15277: Src/glob.c: *real* bug with ${(S)...%%...}: the indices for start and end of backreferences were incorrect. only in current/ChangeLog: 15271 only in current/ChangeLog: 15266 only in current/ChangeLog: 15265 only in current/ChangeLog: 15250 only in current/ChangeLog: 15242 only in current/ChangeLog: 15234 only in current/ChangeLog: 15228 only in current/ChangeLog: 15211 only in current/ChangeLog: 15198 only in current/ChangeLog: 15181 only in current/ChangeLog: 15180 only in current/ChangeLog: 15169 only in current/ChangeLog: 15160 and Andrej zsh-users/3973 only in branch/ChangeLog: 15160 diff for 15151: --- branch/ChangeLog Fri Oct 12 23:46:01 2001 +++ current/ChangeLog Fri Oct 12 23:46:01 2001 @@ -1,2 +1,2 @@ -2001-06-28 Peter Stephenson +2001-06-27 Peter Stephenson only in current/ChangeLog: 15123 only in current/ChangeLog: 15115 only in current/ChangeLog: 15099 only in current/ChangeLog: 15094 only in current/ChangeLog: 15087 diff for 15079: --- branch/ChangeLog Fri Oct 12 23:46:01 2001 +++ current/ChangeLog Fri Oct 12 23:46:01 2001 @@ -1,2 +1,2 @@ -2001-06-28 Clint Adams +2001-06-25 Clint Adams only in current/ChangeLog: 15060 only in current/ChangeLog: 15057 only in current/ChangeLog: 15056 only in current/ChangeLog: 15050, 15054 only in current/ChangeLog: 15038 only in current/ChangeLog: 15030 only in current/ChangeLog: 15029 only in current/ChangeLog: 15023, 15027 only in current/ChangeLog: 14952 only in current/ChangeLog: 14939 only in current/ChangeLog: 14931 only in current/ChangeLog: 14929 diff for 14921: --- branch/ChangeLog Fri Oct 12 23:46:02 2001 +++ current/ChangeLog Fri Oct 12 23:46:02 2001 @@ -2,3 +2,4 @@ - * 14921: Completion/Zsh/_zftp: autoload zfcd_match and zfget_match - if necessary. + * 14921: Functions/Zftp/zfinit, Completion/Zsh/Command/_zftp: + Load tcp module for zftp; autoload zfget_match and zfcd_match + for _zftp. only in current/ChangeLog: 14915 only in current/ChangeLog: 14863 only in current/ChangeLog: 14843 only in current/ChangeLog: 14827 only in current/ChangeLog: 14815 only in current/ChangeLog: 14813 diff for 14792: --- branch/ChangeLog Fri Oct 12 23:46:03 2001 +++ current/ChangeLog Fri Oct 12 23:46:03 2001 @@ -2,4 +2,4 @@ - * 14792: Test/comptest: Don't import the current terminal type for - the zpty terminal, because the current terminal might not be able - to run ZLE (e.g., emacs shell mode). + * 14792: Src/Modules/tcp.h, Src/Modules/zftp.c: Shuffle around + several #include directives to get the sockaddr_in definition in + all the places it's needed. only in current/ChangeLog: 14778 only in current/ChangeLog: 14770 only in current/ChangeLog: 14760 only in current/ChangeLog: 14758 only in branch/ChangeLog: 14679, Bart 14693, 14758, 14760 --PART-BOUNDARY=.11011013073937.ZM368.brasslantern.com--