site

(Pierre-Yves David)
2012-03-20: evolve: improve graft handling of -O

evolve: improve graft handling of -O we now resolve changeset reference before graft

diff --git a/hgext/evolve.py b/hgext/evolve.py
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -316,7 +316,7 @@ def kill(ui, repo, *revs, **opts):
     finally:
         wlock.release()
 
-@command('^amend',
+@command('^amend|refresh',
     [('A', 'addremove', None,
      _('mark new/missing files as added/removed before committing')),
     ('n', 'note', '',
@@ -445,6 +445,14 @@ def graftwrapper(orig, ui, repo, *revs, 
                 obsoleted.extend(repo.opener.read('graftstate').splitlines())
             else:
                 obsoleted.extend(revs)
+        # convert obsolete target into revs to avoid alias joke
+        obsoleted = kwargs.setdefault('obsolete', [])
+        obsoleted[:] = [str(i) for i in repo.revs('%lr', obsoleted)]
+        if obsoleted and len(revs) > 1:
+
+            raise error.Abort(_('Can not graft multiple revision while '
+                                'obsoleting (for now).'))
+
         return commitwrapper(orig, ui, repo,*revs, **kwargs)
     finally:
         lock.release()