All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Hommey <mh@glandium.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Johan Herland <johan@herland.net>
Subject: Re: [PATCH] notes: Allow treeish expressions as notes ref
Date: Tue, 14 Jul 2015 05:53:04 +0900	[thread overview]
Message-ID: <20150713205304.GA26911@glandium.org> (raw)
In-Reply-To: <xmqqzj30yq03.fsf@gitster.dls.corp.google.com>

On Mon, Jul 13, 2015 at 09:35:40AM -0700, Junio C Hamano wrote:
> Mike Hommey <mh@glandium.org> writes:
> 
> > init_notes() is the main point of entry to the notes API. It is an arbitrary
> > restriction that all it allows as input is a strict ref name, when callers
> > may want to give an arbitrary treeish.
> >
> > However, some operations that require updating the notes tree require a
> > strict ref name, because they wouldn't be able to update e.g. foo@{1}.
> >
> > So we allow treeish expressions to be used in the case the notes tree is
> > going to be used without write "permissions", and to distinguish whether
> > the notes tree is intended to be used for reads only, or will be updated,
> > a flag is added.
> 
> It is unfair to call the current check arbitrary, though.  From the
> point of view of the person who views notes as a database, it is
> entirely a sensible thing to treat it as an read/write data store.
> 
> > This has the side effect of enabling the use of treeish as notes refs in
> > commands allowing them, e.g. git log --notes=foo@{1}.
> 
> I do not think it is a "side effect".  It's the primary benefit this
> change brings in.

My original motivation for this change was for init_notes() to take a
committish so that I can feed it with one in a C program that uses the
notes API. So from that perspective, that command lines can now use them
is a side effect.

> I'd flip the attitude around and sell this as "an enhancement",
> perhaps like this:
> 
>     notes: allow treeish expressions as notes ref
>     
>     init_notes() is the main point of entry to the notes API. It ensures
>     that the input can be used as ref, because it needs a ref to update
>     to store notes tree after modifying it.
>     
>     There however are many use cases where notes tree is only read, e.g.
>     "git log --notes=...".  Any notes-shaped treeish could be used for
>     such purpose, but it is not allowed due to existing restriction.
>     
>     Allow treeish expressions to be used in the case the notes tree is
>     going to be used without write "permissions".  Add a flag to
>     distinguish whether the notes tree is intended to be used read-only,
>     or will be updated.
>     
>     With this change, operations that use notes read-only can be fed any
>     notes-shaped tree-ish can be used, e.g. git log --notes=notes@{1}.
>     
>     Signed-off-by: Mike Hommey <mh@glandium.org>
>     Signed-off-by: Junio C Hamano <gitster@pobox.com>

WFM.

> We probably should do a few more things:
> 
>  - Make sure that we show "there is no such tree-ish, no way to look
>    up any note to any commit from there" and "I understood the tree
>    you gave me, but there is no note for that commit" differently.

How would you reconcile that with the usual "there are only a couple
commits with a note in the hundreds you make me display"?

>  - Decide if we want to "fail" the operation when the notes tree
>    given by the user is not even a tree-ish or just "warn" and keep
>    going.  And do so consistently.

Is this something you want to be figured before merging this patch?

Mike

  reply	other threads:[~2015-07-13 20:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-17  1:15 [PATCH] notes: Use get_sha1_committish instead of read_ref in init_notes() Mike Hommey
2015-06-17  3:17 ` Junio C Hamano
2015-06-17  9:40   ` Mike Hommey
2015-06-17 15:18     ` Junio C Hamano
2015-06-17 16:35       ` Johan Herland
2015-07-08 10:21         ` [PATCH v2 - RFH] notes: Allow committish expressions as notes ref Mike Hommey
2015-07-09  2:48           ` [PATCH v3] " Mike Hommey
2015-07-10  1:03             ` Johan Herland
2015-07-10  1:28               ` [PATCH v4] notes: Allow treeish " Mike Hommey
2015-07-10  7:16                 ` Johan Herland
2015-07-10  7:22                   ` Mike Hommey
2015-07-10  8:39                   ` [PATCH] " Mike Hommey
2015-07-13 16:35                     ` Junio C Hamano
2015-07-13 20:53                       ` Mike Hommey [this message]
2015-07-13 21:15                         ` Junio C Hamano
2015-10-08  2:50                       ` Mike Hommey
2015-10-08  2:54                         ` [PATCH v6] notes: allow " Mike Hommey
2015-10-08 19:03                         ` [PATCH] notes: Allow " Junio C Hamano
2015-07-13 21:19                     ` Junio C Hamano
2015-06-17  3:22 ` [PATCH] notes: Use get_sha1_committish instead of read_ref in init_notes() Jeff King
2015-06-17  9:02   ` Mike Hommey
2015-06-17 16:35     ` Jeff King

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=20150713205304.GA26911@glandium.org \
    --to=mh@glandium.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johan@herland.net \
    /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.