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