Re: [PATCH 1/3] merge: a random object may not necssarily be a commit
- From
Jeff King <peff@peff.net>
- Date
- Apr 2, 2013, 05:30 UTC
- Message-ID
- <20130402053004.GC22089@sigill.intra.peff.net>
- In-Reply-To
- <1364846239-8802-2-git-send-email-gitster@pobox.com>
On Mon, Apr 01, 2013 at 12:57:17PM -0700, Junio C Hamano wrote:
Show 36 quoted lines
> The user could have said "git merge $(git rev-parse v1.0.0)"; we
> shouldn't mark it as "Merge commit '15999998fb...'" as the merge
> name, even though such an invocation might be crazy.
>
> We could even read the "tag " header from the tag object and replace
> the object name the user gave us, but let's not lose the information
> by doing so, at least not yet.
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> builtin/merge.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/builtin/merge.c b/builtin/merge.c
> index 0ec8f0d..990e90c 100644
> --- a/builtin/merge.c
> +++ b/builtin/merge.c
> @@ -516,6 +516,19 @@ static void merge_name(const char *remote, struct strbuf *msg)
> strbuf_release(&line);
> goto cleanup;
> }
> +
> + if (remote_head->util) {
> + struct merge_remote_desc *desc;
> + desc = merge_remote_util(remote_head);
> + if (desc && desc->obj && desc->obj->type == OBJ_TAG) {
> + strbuf_addf(msg, "%s\t\t%s '%s'\n",
> + sha1_to_hex(desc->obj->sha1),
> + typename(desc->obj->type),
> + remote);
> + goto cleanup;
> + }
> + }
> +
> strbuf_addf(msg, "%s\t\tcommit '%s'\n",
> sha1_to_hex(remote_head->object.sha1), remote);I guess there is no other object type besides OBJ_TAG and OBJ_COMMIT that would yield something we could merge, but it feels weird that you check only for OBJ_TAG here, and otherwise still say "commit". Would the intent be more clear if it just said:
if (desc && desc->obj && desc->obj->type != OBJ_COMMIT) {
...?
-Peff