pull: avoid race condition with 'hg pull --rev name --update' (
issue4706)
The previous scheme was:
1) lookup node for all pulled revision,
2) pull said node
3) lookup the node of the checkout target
4) update the repository there.
If the remote repo changes between (1) and (3), the resolved name will be
different and (3) crash. There is actually no need for a remote lookup during
(3), we could just set the value in (1). This prevent the race condition and
save a possible network roundtrip.
from mercurial import util
def makedate():
return 0, 0
def getuser():
return 'bob'
# mock the date and user apis so the output is always the same
def uisetup(ui):
util.makedate = makedate
util.getuser = getuser