On 08/10/2010 01:10 PM, C. Michael Pilato wrote:
> On 08/10/2010 12:15 PM, Julian Foad wrote:
>> On Tue, 2010-08-10 at 17:12 +0100, Bolstridge, Andrew wrote:
>>>> Summary...
>>>>
>>>> There are two issues here...
>>>>
>>>> 1. The repo admin wants to enforce what is commited to their repo.
>>> This
>>>> exists with scripts but common request can be made inherient repo
>>> settings
>>>> (probably need to be path based).
>>>>
>>>
>>> The issue with pre-commit hooks is that they are run after all data is
>>> transferred - so if I commit loads of data, and accidentally leave the
>>> banned buildlog.htm file in... I'll find out about it after half an
>>> hour's commit.. and have to repeat the process.
>>
>> No - there are two different hooks, for precisely this reason.
>> pre-commit runs before all the file contents are transferred, and
>> start-commit after all the file contents are transferred.
>
> Er... no.
>
> 'start-commit' runs before any files are transferred. It can't be used to
> fail a commit based on any information that comes from the commit's tree
> delta content payload.
>
> 'pre-commit' runs just before the commit transaction is promoted into a
> revision, and can be used to block commits based on the content payload.
> But only after the whole payload is transmitted to the server.
In other words, I think you were essentially correct about the two-hook
system, Julian -- you just had the hooks switched. But regardless, the
two-hook system still fails Andrew's particular enforcement requirements
(which are quite common).
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on 2010-08-10 19:13:06 CEST