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

Re: Commit notes workflow

From
Johan Herland <johan@herland.net>
Date
Jun 15, 2011, 09:37 UTC
Message-ID
<201106151137.43231.johan@herland.net>
In-Reply-To
<243233943.1008861308129613120.JavaMail.root@zimbra44-e7.priv.proxad.net>
On Wednesday 15. June 2011, ydirson@free.fr wrote:
Show 34 quoted lines
> > > A (minor) problem with the second possibility is that this naming
> > > convention could evolve, eg. if we end up with something like was
> > > proposed in [1] for 1.8.0.  Is there any real drawback with the
> > 
> > first
> > 
> > > suggestion ?
> > > 
> > > [1] http://marc.info/?l=git&m=129661334011986&w=4
> > 
> > My gut feeling is to keep some sort of limit notes refs, and
> > if/when we get around to implementing my proposal in [1] (or some
> > variation thereof), we will of course extend the limit to put
> > "refs/remotes/$remote/notes/*" (or whatever is decided) in the
> > same category as "refs/notes/*".
> > 
> > In the meantime, I'm unsure if it's a good idea to remove the
> > limitation altogether (allowing notes refs everywhere), since
> > re-introducing a limit at a later point will then be MUCH
> > harder...
> 
> I'm still unsure what that limitation brings to us.  OTOH, it has at
> least one funny downside: when someone tries to refer to some
> forbidden ref using --ref, it gets silently requalified:
> 
> $ git notes --ref=refs/remote-notes/foo add
> $ find .git/refs/notes/ -type f
> .git/refs/notes/refs/remote-notes/foo
> $
> 
> It just seems so wrong...  Surely we can mitigate it by considering a
> ref starting with "refs/" to be absolute, and thus never prepend
> "refs/notes/" to it, but it rather sounds to me a symptom that we
> may not want to filter things anyway.

The reason we put the limitation there, is to prevent the notes code from screwing with non-notes trees. The notes code reorganizes the notes tree depending on the number of tree entries, in order to achieve acceptable performance for notes trees of all sizes. Therefore, you definitely DON'T want the notes code rummaging around in non-notes trees (especially if some of your tree entries can be mistaken for strings of hex digits).

That said, the example you give above ("refs/remote-notes/foo" -> "refs/notes/refs/remote-notes/foo" is obviously a stupid failure, and should be fixed. Considering "refs/*" to be absolute seems safe to me. (Obviously we loose the "refs/notes/refs/*" namespace, but I can live with that.)

...Johan
-- 
Johan Herland, <johan@herland.net>
www.herland.net
Previous: ydirson@free.frNext: ydirson@free.fr
Message 4 of 27 in “Commit notes workflow”
  1. Yann DirsonJun 13, 2011
  2. Johan HerlandJun 14, 2011
  3. ydirson@free.frJun 15, 2011
  4. Johan HerlandJun 15, 2011
  5. ydirson@free.frJun 15, 2011
  6. Johan HerlandJun 15, 2011
  7. 0/6 Small notes usability improvementsYann Dirson, Jun 18, 2011
  8. 1/6 Bring notes.c template handling in line with commit.c.Yann Dirson, Jun 18, 2011
  9. Johan HerlandJun 19, 2011
  10. Junio C HamanoJun 19, 2011
  11. Johan HerlandJun 20, 2011
  12. Yann DirsonJun 20, 2011
  13. Yann DirsonJun 21, 2011
  14. 2/6 Factorize shortening of notes refname for display.Yann Dirson, Jun 18, 2011
  15. Johan HerlandJun 19, 2011
  16. Junio C HamanoJun 19, 2011
  17. Yann DirsonJun 20, 2011
  18. 3/6 Include name of notes ref in template when creating/editing notes.Yann Dirson, Jun 18, 2011
  19. 4/6 Allow "git notes merge" to use refs/remote-notes/ as a source.Yann Dirson, Jun 18, 2011
  20. Johan HerlandJun 19, 2011
  21. 5/6 Assume a note ref starting with refs must not be prepended refs/notes/.Yann Dirson, Jun 18, 2011
  22. 6/6 RFC - Notes merge: die when asked to merge a non-existent ref.Yann Dirson, Jun 18, 2011
  23. Johan HerlandJun 19, 2011
  24. Jeff KingJun 20, 2011
  25. Johan HerlandJun 20, 2011
  26. Johan HerlandJun 19, 2011
  27. Johan HerlandJun 14, 2011

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.