[Bug 5202] New: evolve --continue fails for merges
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Thu Apr 14 04:27:24 UTC 2016
https://bz.mercurial-scm.org/show_bug.cgi?id=5202
Bug ID: 5202
Summary: evolve --continue fails for merges
Product: Mercurial
Version: default branch
Hardware: PC
OS: Windows
Status: UNCONFIRMED
Severity: feature
Priority: wish
Component: evolution
Assignee: bugzilla at selenic.com
Reporter: timeless at gmail.com
CC: mercurial-devel at selenic.com,
pierre-yves.david at ens-lyon.org
hg evolve gained some support for evolving merges, but if you get a conflict,
hg evolve --continue uses graft which doesn't support merges.
(py)[timeless at gcc2-power8 crew]$ hg evolve --any --all --traceback;
no support for evolving merge changesets with two obsolete parents yetno
support for evolving merge changesets with two obsolete parents yetcannot solve
instability of 2de6ae0ca86a, skipping
cannot solve instability of f95a0b91627e, skipping
skipping e9e0ec4acc4c: divergent rewriting. can't choose destination
move:[29465] merging with clowncopter
atop:[29391] changegroup: introduce makelookupmflinknode(dir)
merging hgext/blackbox.py
merging mercurial/dispatch.py
merging tests/run-tests.py
merging tests/test-blackbox.t
warning: conflicts while merging hgext/blackbox.py! (edit, then use 'hg resolve
--mark')
warning: conflicts while merging tests/run-tests.py! (edit, then use 'hg
resolve --mark')
evolve failed!
fix conflict and run "hg evolve --continue" or use "hg update -C" to abort
...
(py)[timeless at gcc2-power8 crew]$ vi tests/run-tests.py
(py)[timeless at gcc2-power8 crew]$ vi hgext/blackbox.py
(py)[timeless at gcc2-power8 crew]$ hg resolve -m
*** failed to import extension blackbox: expected an indented block
(blackbox.py, line 57)
(no more unresolved files)
(py)[timeless at gcc2-power8 crew]$ hg evolve --cont --debugger
*** failed to import extension blackbox: expected an indented block
(blackbox.py, line 57)
skipping ungraftable merge revision 29465
>> _dograft commands.py:3947
# check for merges
for rev in repo.revs('%ld and merge()', revs):
ui.warn(_('skipping ungraftable merge revision %s\n') % rev)
skipped.add(rev)
revs = [r for r in revs if r not in skipped]
if not revs:
return -1
>> evolve evolve.py:1790
# Continuation handling
if contopt:
if anyopt:
raise error.Abort('cannot specify both "--any" and "--continue"')
if allopt:
raise error.Abort('cannot specify both "--all" and "--continue"')
state = _evolvestateread(repo)
if state is None:
raise error.Abort('no evolve to continue')
orig = repo[state['current']]
# XXX This is a terrible terrible hack, please get rid of it.
repo.opener.write('graftstate', orig.hex() + '\n')
try:
graftcmd = commands.table['graft'][0]
ret = graftcmd(ui, repo, old_obsolete=True, **{'continue': True})
_evolvestatedelete(repo)
return ret
finally:
util.unlinkpath(repo.join('graftstate'), ignoremissing=True)
I don't think the unlink graftstate in finally is correct either.
But given that there's no `hg evolve --abort`, I guess it'll have to stay until
that's added...
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list