commit 0f2b3dca330fac55da7117609d772d5b55e74273 from: Stefan Sperling date: Sat Dec 22 11:57:39 2018 UTC show diffed commit IDs in 'got log -p' output 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; }