Mercurial > evolve
diff hgext/evolve.py @ 1683:1b1c8c0ab20e
evolve: factor out sanity checks for folds
We're going to use the same checks in another context in an upcoming patch.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Mon, 25 Apr 2016 16:24:42 -0700 |
parents | fe4b41a2af4e |
children | 40d7b0c4abb1 |
line wrap: on
line diff
--- a/hgext/evolve.py Thu Apr 21 06:12:20 2016 +0000 +++ b/hgext/evolve.py Mon Apr 25 16:24:42 2016 -0700 @@ -3122,23 +3122,8 @@ ui.write_err(_('single revision specified, nothing to fold\n')) return 1 - roots = repo.revs('roots(%ld)', revs) - if len(roots) > 1: - raise error.Abort(_("cannot fold non-linear revisions " - "(multiple roots given)")) - root = repo[roots.first()] - if root.phase() <= phases.public: - raise error.Abort(_("cannot fold public revisions")) - heads = repo.revs('heads(%ld)', revs) - if len(heads) > 1: - raise error.Abort(_("cannot fold non-linear revisions " - "(multiple heads given)")) - head = repo[heads.first()] - disallowunstable = not obsolete.isenabled(repo, obsolete.allowunstableopt) - if disallowunstable: - if repo.revs("(%ld::) - %ld", revs, revs): - raise error.Abort(_("cannot fold chain not ending with a head "\ - "or with branching")) + root, head = _foldcheck(repo, revs) + wlock = lock = None try: wlock = repo.wlock() @@ -3174,7 +3159,25 @@ finally: lockmod.release(lock, wlock) - +def _foldcheck(repo, revs): + roots = repo.revs('roots(%ld)', revs) + if len(roots) > 1: + raise error.Abort(_("cannot fold non-linear revisions " + "(multiple roots given)")) + root = repo[roots.first()] + if root.phase() <= phases.public: + raise error.Abort(_("cannot fold public revisions")) + heads = repo.revs('heads(%ld)', revs) + if len(heads) > 1: + raise error.Abort(_("cannot fold non-linear revisions " + "(multiple heads given)")) + head = repo[heads.first()] + disallowunstable = not obsolete.isenabled(repo, obsolete.allowunstableopt) + if disallowunstable: + if repo.revs("(%ld::) - %ld", revs, revs): + raise error.Abort(_("cannot fold chain not ending with a head "\ + "or with branching")) + return root, head @eh.wrapcommand('graft') def graftwrapper(orig, ui, repo, *revs, **kwargs):