-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do we really want git-notes? #13
Comments
Notes is just the only method git offers to attach arbitrary metadata to a commit. If we push for upstream git inclusion we should seek a first class object for this use case, imo. |
Suggestion (inspired from how I understand git-notes to work):
The advantages of this scheme are that:
The drawbacks (shared with git-notes) are that:
|
I would also put them under different directories in the branch so that you won't mix different id schemes. E.g. |
Hmm… The drawback of this approach is that it's no longer backwards-compatible with git-notes. As there should be no collision between patch-id hashes and commit-id hashes (unless something goes really weird), is there an advantage I don't see to doing this? :) |
But why would you want it to be compatible with |
This can help make a bash implementation easier to write. |
Hmm. If I am parsing this correctly it means someone will need to tap their yubikey multiple times if you want to dual sign the patch-id and the commit-id and yet again if you want to sign some kind of metadata ID. I have been thinking a lot about this and I now am leaning more and more to the KISS ideas we have had. Also because I need to ship git-signatures for multiple orgs soon. Why not "refs/notes/signatures" simply hold a dirt simple delimited format of:
child-id could contain any arbitrary git object. Could be another git-note, or to a ref of a whole folder of files that different tools can care about as they prefer. Any added metadata could be pushed to this child-id object and we can allow each tool to define their own interpretations of whatever in that object, but it won't be part of the v1 spec. This leaves us entirely free to bike-shed on multipart formats or individual file formats after we get this MVP spec shipped that can solve most classes of problems today with an open path for tool-specific extensions... and we can see how those extensions play out in pratice. |
@lrvick IMO the need for a MVP shouldn't block good speccing. Have you considered #6 (comment) for shipping your MVP while speccing is underway? Also, your proposal doesn't handle the question of how to associate data from an id to a list of signatures. And for the problem of having to tap twice, I think it's handled in the discussion starting at #3 (comment), so I suggest to continue that discussion there :) (tl;dr of it: all the information one can want is already in the commit-id, so patch-id signature is really commit-id signature with a different verification scheme that ignores parts of the commit) |
Thanks for catching me up. Juggling a bunch of projects at work atm and not been keeping up with this as much as I would like. Will follow up on those. |
Pros:
Kinda pros:
git notes merge -s union
does the union merge that is proposed for the possible future version of the spec. But that merge strategy is easy to do for our use case withsort | uniq
anyway.Cons:
git notes append
adds newlines that have to be filtered out (git-signatures
filters in the client, but we can also filter out afterappend
withgit notes edit
).stage-commit
workflow I would like to have.notes
ingit-log
without decoding them withgit-wotr
first anyway.I think we want the same approach, but implemented via git builtins.
The text was updated successfully, but these errors were encountered: