Re: [PATCH 2/3] format-patch: pick up branch description when no ref is specified

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nguyễn Thái Ngọc Duy  <pclouds@xxxxxxxxx> writes:

> find_branch_name() fails to detect "format-patch --cover-letter -3"
> where no command line arguments are given and HEAD is automatically
> added.

Nicely spotted.

That is not the only case that takes this codepath, though.

    $ git format-patch --cover-letter master..

will also give you the same (if you say it without "..", which is
the more normal invocation of the command, then the caller already
know you meant the current branch and this function is not called).

And in that case you will have two tokens on cmdline.nr, one for
"master.."  to show where he bottom is, and the other for the
implied "HEAD"; I do not think this patch is a sufficient solution
for the more general cases, but on the other hand I do not know how
much it matters.

> -	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
> +		 */

That comment does not describe "positive < 0" case, but belongs to
the conditional added in this patch, no?

> +		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 ||
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]