All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Duy Nguyen <pclouds@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: What's cooking in git.git (May 2013, #04; Wed, 15)
Date: Mon, 20 May 2013 09:17:34 -0700	[thread overview]
Message-ID: <7vk3mtwrq9.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <CACsJy8Cr7AKxo9sUjMCVQ0=O91L8CRoxD3qrvZczCrBUq4TDzA@mail.gmail.com> (Duy Nguyen's message of "Mon, 20 May 2013 17:18:31 +0700")

Duy Nguyen <pclouds@gmail.com> writes:

> On Thu, May 16, 2013 at 6:42 AM, Junio C Hamano <gitster@pobox.com> wrote:
>> * nd/warn-ambiguous-object-name (2013-05-07) 1 commit
>>  - get_sha1: improve ambiguity warning regarding SHA-1 and ref names
>>
>>  "git cmd <name>", when <name> happens to be a 40-hex string,
>>  directly uses the 40-hex string as an object name, even if a ref
>>  "refs/<some hierarchy>/<name>" exists.  This disambiguation order
>>  is unlikely to change, but we should warn about the ambiguity just
>>  like we warn when more than one refs/ hierachies share the same
>>  name.
>>
>>  The message needs to be fixed up, as this is not "refname is
>>  ambiguous".
>
> hm.. how should the message be rephrased? ambiguity of 40-hex string
> and a ref path?

At that point, the user gave us a full object name and we are going
to treat it as a full object name, no?  Wouldn't it be necessary to
let the user know that it is different from having two ambiguous refs?

Think why the user has such a hard to type ref in the first place.
The user may have done this previously, thinking that he is detaching
the HEAD to fix an earlier mistake in a branch:

    $ BAD_COMMIT=$(git rev-parse nd/magic~8)
    $ git checkout $BAD_COMMIT

but by mistake gave a "-b" after "checkout", i.e.

    $ git checkout -b $BAD_COMMIT

After this, commands that want to work on branch name would still
work as "expected", with the expectation being the user would be
working on the refs/heads/$BAD_COMMIT branch, e.g.

    $ git checkout $BAD_COMMIT
    $ git branch -m $BAD_COMMIT nd/magic-fix

but commands that want to work on commit object name will resolve it
to the $BAD_COMMIT object (i.e. nd/magic~8), e.g.

    $ git log $BAD_COMMIT

and needs disambiguation if the user wants to work on the commit at
the tip of the branch, e.g.

    $ git log heads/$BAD_COMMIT

So we really do want the users to notice and take corrective action,
and one way to attract the attention of the users is to phrase the
message more explicitly to let them know what is going on.

In addition to your topic, it may be a good idea to notice this at
the Porcelain level (e.g. "checkout -b" and "branch", but not at the
"update-ref" level) and warn or even die if a Porcelain tries to
create a branch with such a name.

  reply	other threads:[~2013-05-20 16:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-15 23:42 What's cooking in git.git (May 2013, #04; Wed, 15) Junio C Hamano
2013-05-16  0:25 ` David Aguilar
2013-05-20 10:18 ` Duy Nguyen
2013-05-20 16:17   ` Junio C Hamano [this message]
2013-05-21  7:13     ` Thomas Rast
2013-05-21 15:27       ` Junio C Hamano
2013-05-27 10:36     ` Duy Nguyen
2013-05-28 21:25       ` Junio C Hamano
2013-05-20 23:08 ` Felipe Contreras

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vk3mtwrq9.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.