[PATCH 1/5] diff --check: explain why we do not care whether old side is binary
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 26, 2008, 22:34 UTC
- Message-ID
- <7vfxqzq0z5.fsf_-_@gitster.siamese.dyndns.org>
- In-Reply-To
- <7vk5gbq10p.fsf@gitster.siamese.dyndns.org>
All other codepaths refrain from running textual diff when either the old or the new side is binary, but this function only checks the new side. I was almost going to change it to check both, but that would be a bad change. Explain why to prevent future mistakes.
Signed-off-by: Junio C Hamano <gitster@pobox.com> --- diff.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/diff.c b/diff.c index 8939423..c00d633 100644 --- a/diff.c +++ b/diff.c @@ -1544,8 +1544,9 @@ static void builtin_diffstat(const char *name_a, const char *name_b, static void builtin_checkdiff(const char *name_a, const char *name_b, const char *attr_path, - struct diff_filespec *one, - struct diff_filespec *two, struct diff_options *o) + struct diff_filespec *one, + struct diff_filespec *two, + struct diff_options *o) { mmfile_t mf1, mf2; struct checkdiff_t data; @@ -1564,6 +1565,12 @@ static void builtin_checkdiff(const char *name_a, const char *name_b, if (fill_mmfile(&mf1, one) < 0 || fill_mmfile(&mf2, two) < 0) die("unable to read files to diff"); + /* + * All the other codepaths check both sides, but not checking + * the "old" side here is deliberate. We are checking the newly + * introduced changes, and as long as the "new" side is text, we + * can and should check what it introduces. + */ if (diff_filespec_is_binary(two)) goto free_and_return; else {
-- 1.5.6.1.78.gde8d9