From: Linus Torvalds Date: Wed, 18 May 2005 20:43:58 +0000 (-0700) Subject: diff-tree: show hex sha1 of the single-commit argument case correctly. X-Git-Tag: v0.99~551 X-Git-Url: https://git.octo.it/?a=commitdiff_plain;h=73848892adeaa421825672bce929b9cc16043fa9;p=git.git diff-tree: show hex sha1 of the single-commit argument case correctly. We can't just do the "sha1_to_hex()" thing directly, since the buffer in question will be overwritten by the name of the parent. So teach diff_tree_commit() to generate the proper hex name itself. --- diff --git a/diff-tree.c b/diff-tree.c index 8cfe9900..acd15243 100644 --- a/diff-tree.c +++ b/diff-tree.c @@ -356,6 +356,12 @@ static int diff_tree_commit(const unsigned char *commit, const char *name) return 0; } + if (!name) { + static char commit_name[60]; + strcpy(commit_name, sha1_to_hex(commit)); + name = commit_name; + } + offset = 46; while (offset + 48 < size && !memcmp(buf + offset, "parent ", 7)) { unsigned char parent[20]; @@ -472,7 +478,7 @@ int main(int argc, char **argv) usage(diff_tree_usage); break; case 1: - diff_tree_commit(sha1[0], sha1_to_hex(sha1[0])); + diff_tree_commit(sha1[0], NULL); break; case 2: diff_tree_sha1(sha1[0], sha1[1], "");