Steve Long wrote:
> Danny van Dyk wrote:
>>> In practice I find it's rare that a user has been hacking around in
>>> the eclasses.  All the SHA1 tells you is that it's not the most
>>> recent, but it's not easy to determine from the SHA1 exactly which
>>> version they do have (so it's not enough to determine what's
>>> different).
>>>
>>> Having said that, the most accurate way to find out what they have is
>>> to get them to attach the eclass and diff it yourself.  However
>>> relying on the SHA1 also means you can't just say things like, "Check
>>> eclass <blah> is version 1.836 (look at the "$Header" line at the top
>>> of the file)."
>> In the case of GIT you can just use 'git diff SHA1SUM' to see what has
>> changed or 'git log SHA1SUM..HEAD' to show a list of revisions in
>> between. So _if_ we changed to git, this would be no problem as long as
>> every user has sha1sum installed [which is part of coreutils].
>>
> Well since that appears to be some way off, is there any way to get the
> needed functionality (version string inside ebuild) without a double
> commit? (Did i read that right?) I'm thinking at worst someone might have
> to add something to repoman, or a hook on the server end.
> 
Not really, the Manifest needs to checksum the ebuild, and the ebuild
will be updated as it is commited.  A server side hook would at a
minimum be able to checksum files and generate manifest entries; I doubt
it's even possible to do though (most pre-commit scripts don't let you
touch the files being commited, although I'm no expert on CVS).

Current Scenario:

Commit Ebuild
Checksum ebuild
Commit Manifest

The worst part is that for those crazy people who want the entire tree
signed:

Commit ebuild
Checksum ebuild
Commit Package Manifest
Checksum Package Manifest
Commit Category Manifest
Checksum Category Manifest
Commit Tree-wide Manifest
Checksum Tree-Wide Manifest and put it somewhere as a verification of
the entire tree at time T.

Notice now there are 4 commits instead of two, because each commit in
sequence requires the $header$ to be updated (which in itself requires a
commit).  Yay!

-Alec
-- 
[EMAIL PROTECTED] mailing list

Reply via email to