[Kde-scm-interest] Accountability, concrete suggestion

Boyd Stephen Smith Jr. bss at iguanasuicide.net
Thu Jan 15 00:45:44 CET 2009


On Wednesday 2009 January 14 17:11:35 Robert Wohlrab wrote:
>> > I think that these annotations can be done with "commits annotations",
>> > the "conts" is that it is not currently supported in git.git, but it
>> > seams there are a few people interested in it.
>>
>> Just to note that this "commit annotations" are already in the next
>> branch of git.git and are called git notes:
>>
>> http://git.kernel.org/?p=git/git.git;a=commit;h=bf4d571fc001337cf42add1126
>>c c249bb5662815
>>
>> and possibly will be available with the next major version.

It does need some more testing. :)

>Just for clarification:
>- We must write our own tool create annotations which signs the commits in
>some way?

Yes.  The notes stuff in git is generic, but it should be useful enough for 
our goals.

>- a note is only a tag object which points to a commit and no else first
> class git object (commit, tag, tree, blob) points to the note?

Not exactly.  There is a "notes reference", which points to a commit object.  
The tree of this commit object is expected to use SHAs as filenames, and the 
notes are in the blobs attached to the tree.  The filename-SHAs indicate to 
which object the note applies.  (It could be a commit, tree, or blob [which 
might be another note!]).

>- the only reference to the note is stored in refs/* or packed-refs (so it
> is only referenced by a ref)?

The notes themselves are stored as normal blobs.  That is, just like the 
tracked content of files.

>- we will get an extrem big packed-refs when we really add a note to every
>commit?

Git's delta-compression should keep this down.  But, yes, the full text of 
every note AND it's history is stored.

>- No history is stored for a note?

No.  Notes are stored in a standard "tree" object as standard "blob" objects, 
so (at least in theory) all of git's internal machinery can be brought to 
bear on them.  (e.g. merges, logs, etc.)

>- a note can be overriden?

The notes ref can be changed.  Notes, like all git blobs, are immutable.  On 
casual inspection (e.g. in the git log), the note will appear to have 
changed, but the history will be kept and could be retrieved.

>- An update for a note will automatically downloaded by a pull?

Not sure about this.  Since there is currently only one "notes ref", it's 
unlikely to be overwritten by pull in the default setup.

>And can a commit have multiple notes?

No, I don't believe so, but I could be wrong.

>Is their a good design document with use cases available somewhere?

Not that I know of, although the patches went through a lot of discussion on 
the git list.
-- 
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
bss at iguanasuicide.net                     ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.net/                      \_/     
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20090114/e51eb650/attachment.sig 


More information about the Kde-scm-interest mailing list