Junio C Hamano <gitster@xxxxxxxxx> 于2021年3月21日周日 上午5:06写道: > > "ZheNing Hu via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > > > diff --git a/commit.h b/commit.h > > index 49c0f503964e..970a73ccd5be 100644 > > --- a/commit.h > > +++ b/commit.h > > @@ -371,4 +371,6 @@ int parse_buffer_signed_by_header(const char *buffer, > > struct strbuf *signature, > > const struct git_hash_algo *algop); > > > > +const char *find_author_by_nickname(const char *name); > > + > > #endif /* COMMIT_H */ > > As I already said, we do not want to pretend that this is a > generally reusable helper function. We should at least have a > comment to tell people to never add new callers to this function, > with explanation of the reason. Do you think this is appropriate? @@ -370,5 +370,15 @@ 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); Thanks.