Commit Diff


commit - a9a46275faef71f0a27cb4250e6a3169259bf21f
commit + 0f2b3dca330fac55da7117609d772d5b55e74273
blob - f60c8a4282cabb408a4e9139e30f3943bd78988f
blob + 621183d6bb2b52b796e1309ca2e05ea2f4f986cc
--- got/got.c
+++ got/got.c
@@ -303,6 +303,7 @@ print_patch(struct got_commit_object *commit, struct g
 	const struct got_error *err = NULL;
 	struct got_tree_object *tree1 = NULL, *tree2;
 	struct got_object_qid *qid;
+	char *id_str1 = NULL, *id_str2;
 
 	err = got_object_open_as_tree(&tree2, repo, commit->tree_id);
 	if (err)
@@ -318,14 +319,26 @@ print_patch(struct got_commit_object *commit, struct g
 
 		err = got_object_open_as_tree(&tree1, repo, pcommit->tree_id);
 		got_object_commit_close(pcommit);
+		if (err)
+			return err;
+
+		err = got_object_id_str(&id_str1, qid->id);
 		if (err)
 			return err;
 	}
 
+	err = got_object_id_str(&id_str2, id);
+	if (err)
+		goto done;
+
+	printf("diff: %s %s\n", id_str1 ? id_str1 : "/dev/null", id_str2);
 	err = got_diff_tree(tree1, tree2, "", "", diff_context, repo, stdout);
+done:
 	if (tree1)
 		got_object_tree_close(tree1);
 	got_object_tree_close(tree2);
+	free(id_str1);
+	free(id_str2);
 	return err;
 }