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.

On a side note: I'm concerned about the cstyle hook with respect to FOSS
software.  If ON is going to take on FOSS software, then we shouldn't be
messing with the cstyle of that stuff anyway.  The style of that code needs to
match the upstream version, else it's just that much more difficult to
maintain.


Dean

Reply via email to