Dean Roehrich wrote:
> On Sun, Jul 27, 2008 at 09:14:25PM -0600, David Marker wrote:
>   
>> David Marker wrote:
>>     
>>> But I'm not seeing a way out of the hook window that doesn't involve
>>> two repositories. If anybody else knows a way please chime in.
>>>       
>
> It seems unclean to use cascading repositories, and I can understand the
> reluctance on Rich's part.  I did it for my group's project because I was
> finished fussing with this stuff and I needed a solution immediately.  That
> decision spared me lots of headaches, and lots of time.
>
> Cascading repos mean the pull never blocks and is never serialized with other
> pulls, and it always gets csets that are for keeps.  Cascading repos mean a
> push never blocks on pull activity, or worse, a clone (ON is a huge repo).
>
> Your pushlock, even if you manage to close the hole where a pull can get a
> cset that is about to be unrolled, is going to cause pull operations to be
> delayed.  It can take a long time to do an RTI lookup, or to verify a CR
> number, and run cstyle several times on each of several files.  Worse, somehow
> a push will cause mercurial or some other process to get stuck (my recent
> cstyle hook is an example, though it's been resolved now) and then all pulls
> are hung...for how long?
>
> Really, this needs to be fixed inside mercurial.  A pull needs to recognize
> an uncommitted transaction, and skip it.
>   
Yeap.

Had discussion with Mark and we are leaning toward:
    ON gate is push only
    ON clone will be updated immediately by every successful push.

Shame I spent my weekend on it though.

-dvd

Reply via email to