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
next prev parent 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
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=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.
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).