Commit 2136240dbd35cf2b4308f92008a24c0c36665811

Carlos Martín Nieto 2015-01-20T20:13:34

Merge pull request #2828 from ethomson/treediff_dont_patch diff: only compute patches when requested

diff --git a/src/diff_patch.c b/src/diff_patch.c
index 317dbea..3129d06 100644
--- a/src/diff_patch.c
+++ b/src/diff_patch.c
@@ -284,11 +284,12 @@ int git_diff_foreach(
 		if (git_diff_delta__should_skip(&diff->opts, patch.delta))
 			continue;
 
-		if ((error = diff_patch_init_from_diff(&patch, diff, idx)) < 0)
-			break;
-
-		if (!(error = diff_patch_invoke_file_callback(&patch, &xo.output)))
-			error = diff_patch_generate(&patch, &xo.output);
+		if ((error = diff_patch_invoke_file_callback(&patch, &xo.output)) == 0) {
+			if (hunk_cb || data_cb) {
+				if ((error = diff_patch_init_from_diff(&patch, diff, idx)) == 0)
+					error = diff_patch_generate(&patch, &xo.output);
+			}
+		}
 
 		git_patch_free(&patch);