mercurial/commands.py
changeset 22892 40f46fd7c50e
parent 22837 2be7d5ebd4d0
child 22899 67cb1ab1ad1d
equal deleted inserted replaced
22891:5f5d6db79f31 22892:40f46fd7c50e
  4853             tr = repo.transaction("phase")
  4853             tr = repo.transaction("phase")
  4854             # set phase
  4854             # set phase
  4855             if not revs:
  4855             if not revs:
  4856                 raise util.Abort(_('empty revision set'))
  4856                 raise util.Abort(_('empty revision set'))
  4857             nodes = [repo[r].node() for r in revs]
  4857             nodes = [repo[r].node() for r in revs]
  4858             olddata = repo._phasecache.getphaserevs(repo)[:]
  4858             # moving revision from public to draft may hide them
       
  4859             # We have to check result on an unfiltered repository
       
  4860             unfi = repo.unfiltered()
       
  4861             getphase = unfi._phasecache.phase
       
  4862             olddata = [getphase(unfi, r) for r in unfi]
  4859             phases.advanceboundary(repo, tr, targetphase, nodes)
  4863             phases.advanceboundary(repo, tr, targetphase, nodes)
  4860             if opts['force']:
  4864             if opts['force']:
  4861                 phases.retractboundary(repo, tr, targetphase, nodes)
  4865                 phases.retractboundary(repo, tr, targetphase, nodes)
  4862             tr.close()
  4866             tr.close()
  4863         finally:
  4867         finally:
  4864             if tr is not None:
  4868             if tr is not None:
  4865                 tr.release()
  4869                 tr.release()
  4866             lock.release()
  4870             lock.release()
  4867         # moving revision from public to draft may hide them
  4871         getphase = unfi._phasecache.phase
  4868         # We have to check result on an unfiltered repository
  4872         newdata = [getphase(unfi, r) for r in unfi]
  4869         unfi = repo.unfiltered()
  4873         changes = sum(newdata[r] != olddata[r] for r in unfi)
  4870         newdata = repo._phasecache.getphaserevs(unfi)
       
  4871         changes = sum(o != newdata[i] for i, o in enumerate(olddata))
       
  4872         cl = unfi.changelog
  4874         cl = unfi.changelog
  4873         rejected = [n for n in nodes
  4875         rejected = [n for n in nodes
  4874                     if newdata[cl.rev(n)] < targetphase]
  4876                     if newdata[cl.rev(n)] < targetphase]
  4875         if rejected:
  4877         if rejected:
  4876             ui.warn(_('cannot move %i changesets to a higher '
  4878             ui.warn(_('cannot move %i changesets to a higher '