Am 12.02.2019 um 02:22 schrieb brian m. carlson: > diff --git a/builtin/get-tar-commit-id.c b/builtin/get-tar-commit-id.c > index 2706fcfaf2..2760549e91 100644 > --- a/builtin/get-tar-commit-id.c > +++ b/builtin/get-tar-commit-id.c > @@ -5,6 +5,7 @@ > #include "commit.h" > #include "tar.h" > #include "builtin.h" > +#include "strbuf.h" > #include "quote.h" > > static const char builtin_get_tar_commit_id_usage[] = > @@ -21,6 +22,8 @@ int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix) > char *content = buffer + RECORDSIZE; > const char *comment; > ssize_t n; > + char *hdrprefix; > + int ret; > > if (argc != 1) > usage(builtin_get_tar_commit_id_usage); > @@ -32,10 +35,14 @@ int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix) > die_errno("git get-tar-commit-id: EOF before reading tar header"); > if (header->typeflag[0] != 'g') > return 1; > - if (!skip_prefix(content, "52 comment=", &comment)) > + > + hdrprefix = xstrfmt("%zu comment=", the_hash_algo->hexsz + strlen(" comment=") + 2 + 1); > + ret = skip_prefix(content, hdrprefix, &comment); > + free(hdrprefix); > + if (!ret) > return 1; > > - if (write_in_full(1, comment, 41) < 0) > + if (write_in_full(1, comment, the_hash_algo->hexsz + 1) < 0) > die_errno("git get-tar-commit-id: write error"); > > return 0; That command currently prints the pax comment in tar archives if it looks like a SHA1 hash based on its length. It should continue to do so, and _also_ show longer hashes. Your change makes it _only_ show those longer hashes. So it could check for all known valid hash lengths in turn, or accept any payload length between 40 and the_hash_algo->hexsz, or loosen up totally and show comments of any length. René