Page MenuHomePhabricator

exchange: turn on option that makes concurrent pushes work better

Authored by valentin.gatienbaron on Mar 1 2020, 10:24 PM.



The motivation is simply to make hg work better out of the box.

This is a slight backwards compatibility break, because client
extensions could have assumed that the list of heads the client sees
during discovery will be the list of heads during the entirety of the
push. It seems unlikely to matter, and not worth mentioning.

There's a fair amount of diff in tests, but this is just due to
sending a few more bytes on the wire, except for test-acl.t.
The extra "invalid branch cache" lines in test-acl.t don't seem to
indicate a problem: the branchcache now get computed during the bundle
application (because of the check:updated-heads bundle part), but
doesn't get rolled back when transactions rollback, thus causing a
message in the next operation computing the branch cache. Before this
change, I assume the branchcache was only computed on transaction
commit, so not computed at all when the transactions roll back, thus
no messages.

Diff Detail

rHG Mercurial
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

pulkit accepted this revision.Mar 2 2020, 7:48 AM
pulkit added a subscriber: pulkit.

I am +1 on this change. I will wait for 3-4 days to see if anyone has concerns before pushing it.

This revision is now accepted and ready to land.Mar 2 2020, 7:48 AM
marmoute accepted this revision.Mar 2 2020, 10:57 AM
marmoute added a subscriber: marmoute.

I am +1 on this. I was thinking about sending something along this line too.