Hope this can help commit --trailer more useful! Base on https://github.com/gitgitgadget/git/pull/901, The original patch series was too long so now split it into two. Helped by Junio and Jeff, Thanks. ZheNing Hu (2): [GSOC] commit: add --trailer option [GSOC] interpret-trailer: easy parse trailer value Documentation/git-commit.txt | 14 +- Documentation/git-interpret-trailers.txt | 23 ++ builtin/commit.c | 55 ++-- commit.c | 34 +++ commit.h | 10 + t/t7502-commit-porcelain.sh | 319 +++++++++++++++++++++++ t/t7513-interpret-trailers.sh | 23 ++ trailer.c | 13 +- 8 files changed, 456 insertions(+), 35 deletions(-) base-commit: 13d7ab6b5d7929825b626f050b62a11241ea4945 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-911%2Fadlternative%2Ftrailer-easy-ident-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-911/adlternative/trailer-easy-ident-v2 Pull-Request: https://github.com/gitgitgadget/git/pull/911 Range-diff vs v1: 1: 2378e3b4c1ae = 1: 2378e3b4c1ae [GSOC] commit: add --trailer option 2: ca521d3c01d6 ! 2: 8b8b236a4ffb [GSOC] interpret-trailer: easy parse trailer value @@ commit.c: int run_commit_hook(int editor_is_used, const char *index_file, ## commit.h ## @@ commit.h: int parse_buffer_signed_by_header(const char *buffer, + struct strbuf *payload, struct strbuf *signature, const struct git_hash_algo *algop); - ++/* ++ * Calling `find_author_by_nickname` to find the "author <email>" pair ++ * in the most recent commit which matches "--author=name". ++ * ++ * Note that `find_author_by_nickname` is not reusable, because it haven't ++ * reset flags for parsed objects. The only safe way to use `find_author_by_nickname` ++ * (without rewriting the revision traversal machinery) is to spawn a ++ * subprocess and do find_author_by_nickname() in it. ++ */ +const char *find_author_by_nickname(const char *name); -+ + #endif /* COMMIT_H */ ## t/t7502-commit-porcelain.sh ## -- gitgitgadget