>> Are there any mercurial experts here that want to step up to help solve >> this? provide assistence? , ... > > I am interested in seeing what happens if you block for a while on > server side during push. But I guess that means that the gate is locked > for another push, if not even for pull. I can whip some examples to have > something to start with.
If you install any pretxnchangegroup hooks, you will want to consider going to a write-only gate/read-only clone arrangement. When a changegroup is pushed, Mercurial opens a transaction, incorporates the changeset(s) into the repository, and then runs the pretxnchangegroup hooks. If any of those hooks fail, the transaction is rolled back, and the repository restored to the state prior to the transaction. If all of those hooks pass, the transaction is closed, and then the changegroup hooks are run. While that transaction is open, other users may pull the new changesets, which is bad, because if you reject them and rollback, they still exist in the other user's repository. --Mark
