evolve: fix the dirstate after setting parents with dirty wdir (issue5930)
Before this patch, during an interrupted evolve it can be confused
about copies. This patch fix the dirstate when parents are changed
using dirstate.setparents() with a dirty wdir.
Changes in test file reflect the fixed behaviour.
#!/usr/bin/env python
import os
import sys
import subprocess
if len(sys.argv) < 2:
execname = os.path.basename(sys.argv[0])
print >> sys.stderr, "usage: %s CLIENT_ID" % execname
client_id = sys.argv[1]
subprocess.check_call(['hg', 'branch', "--force", "hammer-branch-%s" % client_id])
while True:
subprocess.check_call([
'hg', 'commit',
"--config", "ui.allowemptycommit=yes",
"--message", "hammer-%s" % client_id,
])
nodeid = subprocess.check_output([
'hg', 'log', '--rev', '.', '--template', '{node}'
])
subprocess.check_call([
'hg', 'debugobsolete', ''.join(reversed(nodeid)), nodeid
])
subprocess.check_call(['hg', 'pull'])
subprocess.check_call(['hg', 'push', '--force'])