Red Hat Bugzilla – Bug 237561
[PATCH] gendiff doesn't emit unified diff headers
Last modified: 2007-11-30 17:12:02 EST
Unlike diff(1) when producing diffs containing multiple files (with -r), ditto
version control systems, gendiff does not emit unified diff headers for each
file in the diff. This (especially missing headers between files) causes some
compatibility issues, for example with GNU Emacs' diff-mode.el. Fix against
rpm.org hg attached.
Created attachment 153308 [details]
Emit unified diff headers for compatibility
Do you have an example of the different behavior?
Without encyclopaedic knowledge of diff, I find
it hard to tell what the changed output would look like.
There are also reasons to avoid bash-isms for portability of gendiff.
Which bashisms does the patch in comment 1 introduce? That wasn't intentional.
The unified diff headers added by the patch are the "diff ..." lines before each
hunk as seen when comparing eg. these:
According to my experience, it doesn't really matter exactly what the line
between hunks contains as long as it doesn't start with a space, plus or minus
(and IIRC eg. GNU Arch generates empty lines there), but this patch mimicks what
"diff -r ..." adds itself.
My tired old eyes say thanks! for the examples. So diff-mode.el wants an echo of the diff command that
was run, easy enuf, can/will do.
The bash-isms are not from your patch, apologies for muttering offhandedly.
Too many diff's, so much uglix, and gendiff is just a 21 line loop with a man page.
Commited to rpm.org tree, will be in next release. Thanks for the patch