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

Re: [ANNOUNCE] git-series: track changes to a patch series over time

From
Josh Triplett <josh@joshtriplett.org>
Date
Jul 29, 2016, 13:00 UTC
Message-ID
<20160729130054.GD4340@x>
In-Reply-To
<20160729124443.GA3686@salo>
On Fri, Jul 29, 2016 at 01:44:44PM +0100, Richard Ipsum wrote:
Show 9 quoted lines
> On Fri, Jul 29, 2016 at 04:04:26AM -0700, Josh Triplett wrote:
> > I hope to use git notes with git-series in the future, by putting
> > another gitlink under the git-series for notes related to the series.
> > I'd intended that for more persistent notes; putting them in the series
> > solves some of the problems related to notes refs, pushing/pulling, and
> > collaboration.  Using notes for review comments makes sense as well,
> > whether in a series or in a separate ref.
> 
> Sounds interesting, can you explain how this works in more detail?

The tree within a git-series commit includes a blob "cover" for the cover letter, a gitlink "base" for the base commit, and a gitlink "series" for the top of the series. I could add a gitlink "notes", which acts like a notes ref; then, each version of the series would have its own notes ref. As with the series, git-series would track the "history of history"; since git-notes themselves use git history to store a set of notes, git-series would store the history of the notes. So if you add, remove, or change a note, git-series would track that as a change to the notes ref. If you merge/rebase/etc the notes ref to merge notes, git-series would track that too. A different series would have a different set of notes, so you wouldn't be limited to one notes ref per repository.

This doesn't solve the problem of merging notes, but it *does* mean you have a full history of the changes to notes, not just the notes themselves.

Something similar might work for the Gerrit notesdb.
Show 11 quoted lines
> > > I've been considering taking the perl-notedb prototype and writing
> > > a C library for it with bindings for other languages (i.e. Rust).
> > 
> > A C library based on libgit2 seems like a good idea; ideally the
> > bindings could interoperate with git2-rs.  (Alternatively, Rust can
> > *export* a C interface, so you could write directly with git2-rs. :) )
> 
> Certainly a fair alternative, though it may arguably be safer to write
> the C and export to other languages, as cool as Rust looks it's not
> established the way C is, so may be a slightly riskier foundation,
> in my view.

I was mostly joking there. Rust makes that potentially reasonable, unlike most languages that can consume but not easily provide a C API, but that doesn't make it the ideal solution quite yet. :)

> And ofcourse in C we have native access to libgit2.
Right.
Show 5 quoted lines
> > One of the items on my long-term TODO list is a completely federated
> > GitHub; I've been looking at other aspects of that, but federated
> > reviews/comments/etc seem critical to that as well.
>
> I agree.
Previous: Richard IpsumNext: Richard Ipsum
Message 5 of 23 in “[ANNOUNCE] git-series: track changes to a patch series over time”
  1. Josh TriplettJul 29, 2016
  2. Richard IpsumJul 29, 2016
  3. Josh TriplettJul 29, 2016
  4. Richard IpsumJul 29, 2016
  5. Josh TriplettJul 29, 2016
  6. Richard IpsumJul 31, 2016
  7. Stefan BellerJul 29, 2016
  8. Richard IpsumJul 31, 2016
  9. Christian CouderAug 1, 2016
  10. Eric WongAug 1, 2016
  11. Josh TriplettAug 1, 2016
  12. Richard IpsumAug 1, 2016
  13. Eric WongAug 1, 2016
  14. Stephen WarrenAug 1, 2016
  15. Josh TriplettAug 1, 2016
  16. Simon GlassAug 15, 2016
  17. Josh TriplettAug 15, 2016
  18. Richard IpsumAug 3, 2016
  19. Josh TriplettAug 4, 2016
  20. Richard IpsumAug 10, 2016
  21. Josh TriplettAug 10, 2016
  22. Eric WongAug 11, 2016
  23. Jakub NarębskiAug 24, 2016

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.