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

[RFC PATCH v3 00/12] several notes refs, post-rewrite, notes rewriting

From
Thomas Rast <trast@student.ethz.ch>
Date
Feb 20, 2010, 22:16 UTC
Message-ID
<cover.1266703765.git.trast@student.ethz.ch>
In-Reply-To
<cover.1266361759.git.trast@student.ethz.ch>
> I'm running out of git time today

I should repeat that incantation more often, it mysteriously freed up more time.

Brief overview of changes since v2, with some inline questions about things that need to be settled:

* new [1/12] "Support showing notes from more than one notes tree" that
  teaches a "notes.displayRef" option which can glob for notes that
  should be shown, and can be specified more than once.
  - maybe we should default this to "refs/notes/*"?
  - currently git-notes and the configs don't agree on what is a valid
    notes ref.  git-notes refuses even *showing* outside of
    refs/notes/.  I tend towards changing git-notes at least as far as
    reading notes is concerned (show/list), so that remote notes work.
* dropped [5/11] "notes: clean up t3301" as per Junio's comments
* changed [7/12] "notes: implement helpers needed for note copying
  during rewrite" to support "notes.rewriteRef" as announced earlier.
  "notes.rewrite.<cmd>" now default to true, so that you only need to
  enable one, namely set notes.rewriteRef = refs/notes/*.
  - do we want a default?
  - do we want the rewriteRefs to also implicitly be displayRefs?
  - the "notes.rewriteMode = overwrite for notes/volatile/*" hinted at
    earlier is missing.  Does anyone need that?
* new [12/12] "notes: add shorthand --ref to override GIT_NOTES_REF"

I haven't changed [10/12] & [11/12] "filter-branch..." yet, as I'm not really sure what the best format of such a filter would be.

The existing code is probably a neat way of editing the notes, but it creates a new commit to the notes ref for every rewritten commit. If I change the default --notes-filter to cope with multi-rewriting, this means a new notes commit per rewritten commit. Seems rather wasteful just to salvage your notes across an otherwise unrelated filter-branch.

So the obvious fix would seem to be a --post-rewrite addition that just pipes through 'git notes copy --for-rewrite=filter-branch', but that's again not very customizable short of reinventing the whole thing. Any ideas?

Thomas Rast (12):
  Support showing notes from more than one notes tree
  Documentation: document post-rewrite hook
  commit --amend: invoke post-rewrite hook
  rebase: invoke post-rewrite hook
  rebase -i: invoke post-rewrite hook
  notes: implement 'git notes copy --stdin'
  notes: implement helpers needed for note copying during rewrite
  rebase: support automatic notes copying
  commit --amend: copy notes to the new commit
  filter-branch: invoke post-rewrite hook
  filter-branch: learn how to filter notes
  notes: add shorthand --ref to override GIT_NOTES_REF
 Documentation/config.txt            |   40 +++++++-
 Documentation/git-filter-branch.txt |   20 +++-
 Documentation/git-notes.txt         |   20 +++-
 Documentation/githooks.txt          |   40 +++++++
 builtin-commit.c                    |   49 ++++++++
 builtin-notes.c                     |  168 +++++++++++++++++++++++++++-
 builtin.h                           |   16 +++
 git-am.sh                           |   13 ++
 git-filter-branch.sh                |   37 ++++++
 git-rebase--interactive.sh          |   45 +++++++-
 git-rebase.sh                       |    6 +
 notes.c                             |  125 +++++++++++++++++++-
 notes.h                             |   16 +++
 pretty.c                            |    6 +-
 refs.c                              |    4 +-
 refs.h                              |    5 +
 t/t3301-notes.sh                    |  213 ++++++++++++++++++++++++++++++++--
 t/t3306-notes-prune.sh              |    6 +-
 t/t3400-rebase.sh                   |   17 +++
 t/t3404-rebase-interactive.sh       |   11 ++
 t/t5407-post-rewrite-hook.sh        |  188 ++++++++++++++++++++++++++++++
 t/t7003-filter-branch.sh            |   22 ++++
 t/t7501-commit.sh                   |   12 ++
 23 files changed, 1046 insertions(+), 33 deletions(-)
 create mode 100755 t/t5407-post-rewrite-hook.sh
Next: Thomas Rast
Message 1 of 66 in “several notes refs, post-rewrite, notes rewriting”
  1. 00/12 several notes refs, post-rewrite, notes rewritingThomas Rast, Feb 20, 2010
  2. 01/12 Support showing notes from more than one notes treeThomas Rast, Feb 20, 2010
  3. Junio C HamanoFeb 21, 2010
  4. 02/12 Documentation: document post-rewrite hookThomas Rast, Feb 20, 2010
  5. 03/12 commit --amend: invoke post-rewrite hookThomas Rast, Feb 20, 2010
  6. Junio C HamanoFeb 21, 2010
  7. 04/12 rebase: invoke post-rewrite hookThomas Rast, Feb 20, 2010
  8. 05/12 rebase -i: invoke post-rewrite hookThomas Rast, Feb 20, 2010
  9. 06/12 notes: implement 'git notes copy --stdin'Thomas Rast, Feb 20, 2010
  10. Junio C HamanoFeb 21, 2010
  11. 07/12 notes: implement helpers needed for note copying during rewriteThomas Rast, Feb 20, 2010
  12. Junio C HamanoFeb 21, 2010
  13. 08/12 rebase: support automatic notes copyingThomas Rast, Feb 20, 2010
  14. 09/12 commit --amend: copy notes to the new commitThomas Rast, Feb 20, 2010
  15. 10/12 filter-branch: invoke post-rewrite hookThomas Rast, Feb 20, 2010
  16. 11/12 filter-branch: learn how to filter notesThomas Rast, Feb 20, 2010
  17. 12/12 notes: add shorthand --ref to override GIT_NOTES_REFThomas Rast, Feb 20, 2010
  18. Junio C HamanoFeb 21, 2010
  19. Thomas RastFeb 21, 2010
  20. Junio C HamanoFeb 22, 2010
  21. 00/11 several notes refs, post-rewrite, notes rewritingThomas Rast, Feb 23, 2010
  22. 01/11 test-lib: unset GIT_NOTES_REF to stop it from influencing testsThomas Rast, Feb 23, 2010
  23. 02/11 Support showing notes from more than one notes treeThomas Rast, Feb 23, 2010
  24. Junio C HamanoFeb 23, 2010
  25. Thomas RastFeb 23, 2010
  26. format-patch: learn to fill comment section of email from notesThomas Rast, Feb 23, 2010
  27. BROKEN -- format-patch: learn to fill comment section of email from notesThomas Rast, Feb 23, 2010
  28. Thomas RastFeb 23, 2010
  29. Stephen BoydFeb 24, 2010
  30. Junio C HamanoFeb 23, 2010
  31. Thomas RastMar 10, 2010
  32. 03/11 Documentation: document post-rewrite hookThomas Rast, Feb 23, 2010
  33. 04/11 commit --amend: invoke post-rewrite hookThomas Rast, Feb 23, 2010
  34. 05/11 rebase: invoke post-rewrite hookThomas Rast, Feb 23, 2010
  35. 06/11 rebase -i: invoke post-rewrite hookThomas Rast, Feb 23, 2010
  36. Junio C HamanoFeb 24, 2010
  37. 07/11 notes: implement 'git notes copy --stdin'Thomas Rast, Feb 23, 2010
  38. 08/11 notes: implement helpers needed for note copying during rewriteThomas Rast, Feb 23, 2010
  39. 09/11 rebase: support automatic notes copyingThomas Rast, Feb 23, 2010
  40. Junio C HamanoFeb 25, 2010
  41. 00/13 several notes refs, post-rewrite, notes rewritingThomas Rast, Mar 10, 2010
  42. 01/13 test-lib: unset GIT_NOTES_REF to stop it from influencing testsThomas Rast, Mar 10, 2010
  43. Johan HerlandMar 11, 2010
  44. 02/13 Support showing notes from more than one notes treeThomas Rast, Mar 10, 2010
  45. Johan HerlandMar 11, 2010
  46. 03/13 Documentation: document post-rewrite hookThomas Rast, Mar 10, 2010
  47. 04/13 commit --amend: invoke post-rewrite hookThomas Rast, Mar 10, 2010
  48. 05/13 rebase: invoke post-rewrite hookThomas Rast, Mar 10, 2010
  49. 06/13 rebase -i: invoke post-rewrite hookThomas Rast, Mar 10, 2010
  50. 07/13 notes: implement 'git notes copy --stdin'Thomas Rast, Mar 10, 2010
  51. Johan HerlandMar 11, 2010
  52. 08/13 notes: implement helpers needed for note copying during rewriteThomas Rast, Mar 10, 2010
  53. Johan HerlandMar 11, 2010
  54. 09/13 rebase: support automatic notes copyingThomas Rast, Mar 10, 2010
  55. 10/13 commit --amend: copy notes to the new commitThomas Rast, Mar 10, 2010
  56. 11/13 notes: add shorthand --ref to override GIT_NOTES_REFThomas Rast, Mar 10, 2010
  57. Johan HerlandMar 11, 2010
  58. 12/13 notes: track whether notes_trees were changed at allThomas Rast, Mar 10, 2010
  59. Johan HerlandMar 11, 2010
  60. 13/13 git-notes(1): add a section about the meaning of historyThomas Rast, Mar 10, 2010
  61. Johan HerlandMar 11, 2010
  62. Junio C HamanoMar 10, 2010
  63. 10/11 commit --amend: copy notes to the new commitThomas Rast, Feb 23, 2010
  64. 11/11 notes: add shorthand --ref to override GIT_NOTES_REFThomas Rast, Feb 23, 2010
  65. Junio C HamanoFeb 23, 2010
  66. Thomas RastFeb 23, 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.