From: Junio C Hamano <gitster@pobox.com>
To: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Cc: Siddharth Kannan <kannan.siddharth12@gmail.com>,
git@vger.kernel.org, pranit.bauva@gmail.com, peff@peff.net,
pclouds@gmail.com, sandals@crustytoothpaste.ath.cx
Subject: Re: [PATCH 2/2 v3] sha1_name: teach get_sha1_1 "-" shorthand for "@{-1}"
Date: Mon, 13 Feb 2017 11:51:16 -0800 [thread overview]
Message-ID: <xmqq1sv1euob.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <vpqbmu768on.fsf@anie.imag.fr> (Matthieu Moy's message of "Sun, 12 Feb 2017 10:48:56 +0100")
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
> Siddharth Kannan <kannan.siddharth12@gmail.com> writes:
>
>> + if (!strcmp(name, "-")) {
>> + name = "@{-1}";
>> + len = 5;
>> + }
>
> One drawback of this approach is that further error messages will be
> given from the "@{-1}" string that the user never typed.
Right.
> There are at least:
>
> $ git grep -n -A1 'strcmp.*"-"' | grep -B 1 '@\{1\}'
> builtin/checkout.c:975: if (!strcmp(arg, "-"))
> builtin/checkout.c-976- arg = "@{-1}";
I didn't check the surrounding context to be sure, but I think this
"- to @{-1}" conversion cannot be delegated down to revision parsing
that eventually wants to return a 40-hex as the result.
We do want a branch _name_ sometimes when we say "@{-1}"; "checkout
master" (i.e. checkout by name) and "checkout master^0" (i.e. the
same commit object, but not by name) do different things.
> builtin/merge.c:1231: } else if (argc == 1 && !strcmp(argv[0], "-")) {
> builtin/merge.c-1232- argv[0] = "@{-1}";
> --
> builtin/revert.c:158: if (!strcmp(argv[1], "-"))
> builtin/revert.c-159- argv[1] = "@{-1}";
These should be safe to delegate down.
> builtin/worktree.c:344: if (!strcmp(branch, "-"))
> builtin/worktree.c-345- branch = "@{-1}";
I do not know about this one, but it smells like a branch name that
wants to be used before it gets turned into 40-hex.
next prev parent reply other threads:[~2017-02-13 19:51 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-10 18:55 [PATCH 0/2 v3] WIP: allow "-" as a shorthand for "previous branch" Siddharth Kannan
2017-02-10 18:55 ` [PATCH 1/2 v3] revision.c: args starting with "-" might be a revision Siddharth Kannan
2017-02-10 18:55 ` [PATCH 2/2 v3] sha1_name: teach get_sha1_1 "-" shorthand for "@{-1}" Siddharth Kannan
2017-02-12 9:48 ` Matthieu Moy
2017-02-12 10:42 ` Siddharth Kannan
2017-02-13 19:51 ` Junio C Hamano [this message]
2017-02-13 20:03 ` Junio C Hamano
2017-02-10 23:35 ` [PATCH 1/2 v3] revision.c: args starting with "-" might be a revision Junio C Hamano
2017-02-11 7:52 ` Siddharth Kannan
2017-02-11 21:08 ` Junio C Hamano
2017-02-11 23:40 ` Junio C Hamano
2017-02-12 18:41 ` [PATCH 0/3] prepare for a rev/range that begins with a dash Junio C Hamano
2017-02-12 18:41 ` [PATCH 1/3] handle_revision_opt(): do not update argv[left++] with an unknown arg Junio C Hamano
2017-02-12 18:41 ` [PATCH 2/3] setup_revisions(): swap if/else bodies to make the next step more readable Junio C Hamano
2017-02-12 18:41 ` [PATCH 3/3] setup_revisions(): allow a rev that begins with a dash Junio C Hamano
2017-02-12 12:36 ` [PATCH 1/2 v3] revision.c: args starting with "-" might be a revision Siddharth Kannan
2017-02-12 18:56 ` Junio C Hamano
2017-02-14 4:23 ` Siddharth Kannan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq1sv1euob.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=kannan.siddharth12@gmail.com \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=pranit.bauva@gmail.com \
--cc=sandals@crustytoothpaste.ath.cx \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).