diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py --- a/hgext/convert/hg.py +++ b/hgext/convert/hg.py @@ -38,6 +38,7 @@ lock as lockmod, logcmdutil, merge as mergemod, + mergestate, phases, pycompat, util, @@ -241,7 +242,7 @@ # If the file requires actual merging, abort. We don't have enough # context to resolve merges correctly. - if action in [b'm', b'dm', b'cd', b'dc']: + if action in mergestate.CONVERT_MERGE_ACTIONS: raise error.Abort( _( b"unable to convert merge commit " @@ -250,7 +251,7 @@ ) % (file, p1ctx, p2ctx) ) - elif action == b'k': + elif action == mergestate.ACTION_KEEP: # 'keep' means nothing changed from p1 continue else: diff --git a/mercurial/mergestate.py b/mercurial/mergestate.py --- a/mercurial/mergestate.py +++ b/mercurial/mergestate.py @@ -129,6 +129,15 @@ ACTION_KEEP_NEW, ) +# Used by concert to detect situation it does not like, not sure what the exact +# criteria is +CONVERT_MERGE_ACTIONS = ( + ACTION_MERGE, + ACTION_DIR_RENAME_MOVE_LOCAL, + ACTION_CHANGED_DELETED, + ACTION_DELETED_CHANGED, +) + class _mergestate_base(object): """track 3-way merge state of individual files