diff: allow turning on textconv explicitly for plumbing
authorJeff King <peff@peff.net>
Mon, 8 Dec 2008 02:57:01 +0000 (21:57 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 8 Dec 2008 03:59:32 +0000 (19:59 -0800)
Some history viewers use the diff plumbing to generate diffs
rather than going through the "git diff" porcelain.
Currently, there is no way for them to specify that they
would like to see the text-converted version of the diff.

This patch adds a "--textconv" option to allow such a
plumbing user to allow text conversion. The user can then
tell the viewer whether or not they would like text
conversion enabled.

While it may be tempting add a configuration option rather
than requiring each plumbing user to be configured to pass
--textconv, that is somewhat dangerous. Text-converted diffs
generally cannot be applied directly, so each plumbing user
should "opt in" to generating such a diff, either by
explicit request of the user or by confirming that their
output will not be fed to patch.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
diff --git a/diff.c b/diff.c
index f644947c823e824a294414a660beac02b4182fe4..e21af3b7ee0d5a0871f76dcbb1acced2345c6ea8 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -2477,6 +2477,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
                DIFF_OPT_SET(options, ALLOW_EXTERNAL);
        else if (!strcmp(arg, "--no-ext-diff"))
                DIFF_OPT_CLR(options, ALLOW_EXTERNAL);
+       else if (!strcmp(arg, "--textconv"))
+               DIFF_OPT_SET(options, ALLOW_TEXTCONV);
+       else if (!strcmp(arg, "--no-textconv"))
+               DIFF_OPT_CLR(options, ALLOW_TEXTCONV);
        else if (!strcmp(arg, "--ignore-submodules"))
                DIFF_OPT_SET(options, IGNORE_SUBMODULES);