Size: 1307
Comment:
|
← Revision 4 as of 2009-05-19 19:31:01 ⇥
Size: 1309
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
ArbitraryMetadata is an idea taken from [http://monotone.ca Monotone] | ArbitraryMetadata is an idea taken from [[http://monotone.ca|Monotone]] |
ArbitraryMetadata is an idea taken from Monotone
It allows to attach signed key-value pairs to a revision/file after a commit and a key may be used more than once.
In monotone this is not only used for the usual commit metadata like time, author, commit-messages, but also for tracking extra information like core developer approvals or testresults.
The common use-case is "trust" based update to
- revisions with approval of n core devs
- revisions that passed the testsuite on a set of buildbots
The way Monotone handles it
The metadata is stored using 2 Ideas.
Examples:
- Statement
links a key-value pair to a revision
revision: 73268e317ad3 name: push-date value: 2003-03-03 22:00:31 UTC - Certificate
signs a Statement
revision: 73268e317ad3 name: push-date value: 2003-03-03 22:00:31 UTC signed-by: john@doe.com signature: 1234
Basic Properties of the Metadata
- immutable - we don't want to change the things we added
- unversioned - we can't change it, so we wont need to version it
- keys are not unique - more than one person might add the same thing, it just has to work
How could mercurial do it
XXX: todo
See also PushkeyConcept.