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

Re: [PATCHv11 20/20] builtin-gc: Teach the new --notes option to garbage-collect notes

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 21, 2010, 20:01 UTC
Message-ID
<7vtyufp6r9.fsf@alter.siamese.dyndns.org>
In-Reply-To
<780e0a6b1001211127u6304546ej4e5bffbceca12e0b@mail.gmail.com>
Stephen Boyd <bebarino@gmail.com> writes:
Show 8 quoted lines
> On Sun, Jan 17, 2010 at 1:04 PM, Johan Herland <johan@herland.net> wrote:
>> The new --notes option triggers a call to gc_notes(), which removes note
>> objects that reference non-existing objects.
>>
>
> Shouldn't notes be unconditionally garbage collected? Or maybe there's
> a reason why notes should be treated differently that isn't written
> here.

A few thoughts, inspired by this patch, but on other things around "notes":

 - This is more about pruning notes regarding objects that are no longer
   availabe from _the tip_ of the notes tree.  It doesn't run (and I am
   not suggesting to make it it to run) filter-branch to eradicate all
   such stale notes from the notes commit ancestry, so in that sense this
   is not really a garbage collection.
 - We would want to have "notes prune" subcommand that lets us do the
   pruning without all the other "gc" operation.  "git gc" would of course
   call the same underlying code "notes prune" would use if we want to
   be able to trigger "notes prune" from it.
 - Because there is no public interface to list objects that are annotated
   with the most recent notes tree, the only thing this pruning affects is
   the look-up overhead of "log --show-notes".  As such, it might be
   better to later add tree rebalancing in "notes prune" and at that
   point, it will become even less about garbage collection and more about
   performance ("notes optimize?").
 - Do we want to have a public interface to list objects that are
   annotated with notes?  "git notes" probably deserves a bit more
   subcommands other than "(edit|show)" to help users, e.g. "list" and
   "remove".
 - If this were "notes optimize" (this is just me thinking aloud), perhaps
   we would want to do this at some key places (e.g. when you
   automatically rebalance the tree).
Previous: Stephen BoydNext: Johan Herland
Message 25 of 26 in “[PATCHv11 00/20] git notes”
  1. Johan HerlandJan 17, 2010
  2. 01/20 Minor non-functional fixes to notes.cJohan Herland, Jan 17, 2010
  3. 02/20 Notes API: get_commit_notes() -> format_note() + remove the commit restrictionJohan Herland, Jan 17, 2010
  4. 03/20 Add tests for checking correct handling of $GIT_NOTES_REF and core.notesRefJohan Herland, Jan 17, 2010
  5. 04/20 Notes API: init_notes(): Initialize the notes tree from the given notes refJohan Herland, Jan 17, 2010
  6. 05/20 Notes API: add_note(): Add note objects to the internal notes tree structureJohan Herland, Jan 17, 2010
  7. 06/20 Notes API: remove_note(): Remove note objects from the notes tree structureJohan Herland, Jan 17, 2010
  8. 07/20 Notes API: get_note(): Return the note annotating the given objectJohan Herland, Jan 17, 2010
  9. 08/20 Notes API: for_each_note(): Traverse the entire notes tree with a callbackJohan Herland, Jan 17, 2010
  10. 09/20 Notes API: write_notes_tree(): Store the notes tree in the databaseJohan Herland, Jan 17, 2010
  11. 10/20 Notes API: Allow multiple concurrent notes trees with new struct notes_treeJohan Herland, Jan 17, 2010
  12. 11/20 Refactor notes concatenation into a flexible interface for combining notesJohan Herland, Jan 17, 2010
  13. 12/20 Builtin-ify git-notesJohan Herland, Jan 17, 2010
  14. Stephen BoydJan 21, 2010
  15. Johan HerlandJan 26, 2010
  16. 13/20 t3301: Verify successful annotation of non-commitsJohan Herland, Jan 17, 2010
  17. 14/20 t3305: Verify that adding many notes with git-notes triggers increased fanoutJohan Herland, Jan 17, 2010
  18. 15/20 Teach notes code to properly preserve non-notes in the notes treeJohan Herland, Jan 17, 2010
  19. 16/20 Teach builtin-notes to remove empty notesJohan Herland, Jan 17, 2010
  20. 17/20 builtin-notes: Teach -d option for deleting existing notesJohan Herland, Jan 17, 2010
  21. 18/20 t3305: Verify that removing notes triggers automatic fanout consolidationJohan Herland, Jan 17, 2010
  22. 19/20 Notes API: gc_notes(): Prune notes that belong to non-existing objectsJohan Herland, Jan 17, 2010
  23. 20/20 builtin-gc: Teach the new --notes option to garbage-collect notesJohan Herland, Jan 17, 2010
  24. Stephen BoydJan 21, 2010
  25. Junio C HamanoJan 21, 2010
  26. Johan HerlandJan 27, 2010

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.