[PATCH 2/3] format-patch: pick up branch description when no ref is specified
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Jan 1, 2013, 09:30 UTC
- Message-ID
- <1357032655-21103-2-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1357032655-21103-1-git-send-email-pclouds@gmail.com>
find_branch_name() fails to detect "format-patch --cover-letter -3" where no command line arguments are given and HEAD is automatically added. Detect branch name in this case so we can pick up the branch's description in cover letter.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- builtin/log.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/builtin/log.c b/builtin/log.c index e7b7db1..115f118 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -1027,8 +1027,22 @@ static char *find_branch_name(struct rev_info *rev) else return NULL; } - if (positive < 0) + if (positive < 0) { + /* + * No actual ref from command line, but "HEAD" from + * rev->def was added in setup_revisions() + * e.g. format-patch --cover-letter -12 + */ + if (!rev->cmdline.nr && + rev->pending.nr == 1 && + !strcmp(rev->pending.objects[0].name, "HEAD")) { + const char *ref; + ref = resolve_ref_unsafe("HEAD", branch_sha1, 1, NULL); + if (ref && !prefixcmp(ref, "refs/heads/")) + return xstrdup(ref + strlen("refs/heads/")); + } return NULL; + } strbuf_addf(&buf, "refs/heads/%s", rev->cmdline.rev[positive].name); branch = resolve_ref_unsafe(buf.buf, branch_sha1, 1, NULL); if (!branch ||
-- 1.8.0.rc2.23.g1fb49df