git diff -D: omit the preimage of deletes
authorJunio C Hamano <gitster@pobox.com>
Tue, 1 Mar 2011 00:11:55 +0000 (16:11 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 3 Apr 2011 06:52:20 +0000 (23:52 -0700)
commit467ddc14fe37ea6a3d77058fb24c4240e82e6344
tree14e77a41ab3361c97ead322efd2c86f851dcb8fc
parentafb0b7933f31e984caf6fb835f6afe6eb37d918c
git diff -D: omit the preimage of deletes

When reviewing a patch while concentrating primarily on the text after
then change, wading through pages of deleted text involves a cognitive
burden.

Introduce the -D option that omits the preimage text from the patch output
for deleted files.  When used with -B (represent total rewrite as a single
wholesale deletion followed by a single wholesale addition), the preimage
text is also omitted.

To prevent such a patch from being applied by mistake, the output is
designed not to be usable by "git apply" (or GNU "patch"); it is strictly
for human consumption.

It of course is possible to "apply" such a patch by hand, as a human can
read the intention out of such a patch.  It however is impossible to apply
such a patch even manually in reverse, as the whole point of this option
is to omit the information necessary to do so from the output.

Initial request by Mart Sõmermaa, documentation and tests helped by
Michael J Gruber.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/diff-options.txt
diff.c
diff.h
t/t4022-diff-rewrite.sh