Commit 69c66b554e1072d8b6c63366834e15310fecaea7

Russell Belfer 2013-07-24T13:09:33

Don't do text diff unless content will be used

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/diff_patch.c b/src/diff_patch.c
index 1b4adac..02a45cb 100644
--- a/src/diff_patch.c
+++ b/src/diff_patch.c
@@ -230,6 +230,10 @@ static int diff_patch_generate(git_diff_patch *patch, git_diff_output *output)
 	if ((patch->flags & GIT_DIFF_PATCH_DIFFED) != 0)
 		return 0;
 
+	/* if we are not looking at the hunks and lines, don't do the diff */
+	if (!output->hunk_cb && !output->data_cb)
+		return 0;
+
 	if ((patch->flags & GIT_DIFF_PATCH_LOADED) == 0 &&
 		(error = diff_patch_load(patch, output)) < 0)
 		return error;