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