git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] notes: Allow treeish expressions as notes ref

From
Mike Hommey <mh@glandium.org>
Date
Jul 13, 2015, 20:53 UTC
Message-ID
<20150713205304.GA26911@glandium.org>
In-Reply-To
<xmqqzj30yq03.fsf@gitster.dls.corp.google.com>
On Mon, Jul 13, 2015 at 09:35:40AM -0700, Junio C Hamano wrote:
Show 23 quoted lines
> 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.

Show 23 quoted lines
> 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.
Show 5 quoted lines
> 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
Previous: Junio C HamanoNext: Junio C Hamano
Message 14 of 22 in “notes: Use get_sha1_committish instead of read_ref in init_notes()”
  1. notes: Use get_sha1_committish instead of read_ref in init_notes()Mike Hommey, Jun 17, 2015
  2. Junio C HamanoJun 17, 2015
  3. Mike HommeyJun 17, 2015
  4. Junio C HamanoJun 17, 2015
  5. Johan HerlandJun 17, 2015
  6. notes: Allow committish expressions as notes refMike Hommey, Jul 8, 2015
  7. notes: Allow committish expressions as notes refMike Hommey, Jul 9, 2015
  8. Johan HerlandJul 10, 2015
  9. notes: Allow treeish expressions as notes refMike Hommey, Jul 10, 2015
  10. Johan HerlandJul 10, 2015
  11. Mike HommeyJul 10, 2015
  12. notes: Allow treeish expressions as notes refMike Hommey, Jul 10, 2015
  13. Junio C HamanoJul 13, 2015
  14. Mike HommeyJul 13, 2015
  15. Junio C HamanoJul 13, 2015
  16. Mike HommeyOct 8, 2015
  17. notes: allow treeish expressions as notes refMike Hommey, Oct 8, 2015
  18. Junio C HamanoOct 8, 2015
  19. Junio C HamanoJul 13, 2015
  20. Jeff KingJun 17, 2015
  21. Mike HommeyJun 17, 2015
  22. Jeff KingJun 17, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.