On Fri, Sep 25, 2015 at 11:52 AM, Jeff King <peff@xxxxxxxx> wrote: > On Fri, Sep 25, 2015 at 11:29:31AM -0700, Junio C Hamano wrote: > >> > So I wonder if it would be >> > helpful to have a microformat that the client would use to look at this. >> > E.g., it would fetch the cert tree, then confirm that the current ref >> > values match the latest cert. >> >> Yeah, that is one possibility. Just a single flat file that >> concatenates all the push cert in the received order would do as an >> export format, too ;-) > > I agree that's a more logical format, in a sense; it really is a linear > log. It's just that the receive-pack code already creates a blob for us, > so it's cheap to reference that in tree (and then fetching it is cheap, > too). IOW, git is much better at adding files to trees than it is at > appending to files. :) FWIW JGit has a micro-format[1] we are starting to use. Its a tree of the push cert blobs anchored under refs/meta/push-certs. Inspired by a proposal from gitolite[2], where we store a file in a tree for each ref name, and the contents of the file is the latest push cert to affect that ref. The main modification from that proposal (other than lacking the out-of-git batching) is to append "@{cert}" to filenames, which allows storing certificates for both refs/foo and refs/foo/bar. Those refnames cannot coexist at the same time in a repository, but we do not want to discard the push certificate responsible for deleting the ref, which we would have to do if refs/foo in the push cert tree changed from a tree to a blob. [1] https://eclipse.googlesource.com/jgit/jgit/+/d5a71e9ca3d95330acdd858306c4f75ae0b01e58 [2] https://github.com/sitaramc/gitolite/blob/cf062b8bb6b21a52f7c5002d33fbc950762c1aa7/contrib/hooks/repo-specific/save-push-signatures -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html