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