hgext/mq.py
changeset 47012 d55b71393907
parent 46935 ae4c0f279282
child 47597 4b76f5ca79c4
equal deleted inserted replaced
46992:5fa019ceb499 47012:d55b71393907
    71 import sys
    71 import sys
    72 from mercurial.i18n import _
    72 from mercurial.i18n import _
    73 from mercurial.node import (
    73 from mercurial.node import (
    74     bin,
    74     bin,
    75     hex,
    75     hex,
    76     nullid,
       
    77     nullrev,
    76     nullrev,
    78     short,
    77     short,
    79 )
    78 )
    80 from mercurial.pycompat import (
    79 from mercurial.pycompat import (
    81     delattr,
    80     delattr,
   906 
   905 
   907         If no parent are managed by mq, p1 is returned.
   906         If no parent are managed by mq, p1 is returned.
   908         """
   907         """
   909         if rev is None:
   908         if rev is None:
   910             (p1, p2) = repo.dirstate.parents()
   909             (p1, p2) = repo.dirstate.parents()
   911             if p2 == nullid:
   910             if p2 == repo.nullid:
   912                 return p1
   911                 return p1
   913             if not self.applied:
   912             if not self.applied:
   914                 return None
   913                 return None
   915             return self.applied[-1].node
   914             return self.applied[-1].node
   916         p1, p2 = repo.changelog.parents(rev)
   915         p1, p2 = repo.changelog.parents(rev)
   917         if p2 != nullid and p2 in [x.node for x in self.applied]:
   916         if p2 != repo.nullid and p2 in [x.node for x in self.applied]:
   918             return p2
   917             return p2
   919         return p1
   918         return p1
   920 
   919 
   921     def mergepatch(self, repo, mergeq, series, diffopts):
   920     def mergepatch(self, repo, mergeq, series, diffopts):
   922         if not self.applied:
   921         if not self.applied:
  1589         with repo.wlock():
  1588         with repo.wlock():
  1590             heads = []
  1589             heads = []
  1591             for hs in repo.branchmap().iterheads():
  1590             for hs in repo.branchmap().iterheads():
  1592                 heads.extend(hs)
  1591                 heads.extend(hs)
  1593             if not heads:
  1592             if not heads:
  1594                 heads = [nullid]
  1593                 heads = [repo.nullid]
  1595             if repo.dirstate.p1() not in heads and not exact:
  1594             if repo.dirstate.p1() not in heads and not exact:
  1596                 self.ui.status(_(b"(working directory not at a head)\n"))
  1595                 self.ui.status(_(b"(working directory not at a head)\n"))
  1597 
  1596 
  1598             if not self.series:
  1597             if not self.series:
  1599                 self.ui.warn(_(b'no patches in series\n'))
  1598                 self.ui.warn(_(b'no patches in series\n'))
  1855                         repo.dirstate.drop(f)
  1854                         repo.dirstate.drop(f)
  1856                     for f in m + r:
  1855                     for f in m + r:
  1857                         fctx = ctx[f]
  1856                         fctx = ctx[f]
  1858                         repo.wwrite(f, fctx.data(), fctx.flags())
  1857                         repo.wwrite(f, fctx.data(), fctx.flags())
  1859                         repo.dirstate.normal(f)
  1858                         repo.dirstate.normal(f)
  1860                     repo.setparents(qp, nullid)
  1859                     repo.setparents(qp, repo.nullid)
  1861             for patch in reversed(self.applied[start:end]):
  1860             for patch in reversed(self.applied[start:end]):
  1862                 self.ui.status(_(b"popping %s\n") % patch.name)
  1861                 self.ui.status(_(b"popping %s\n") % patch.name)
  1863             del self.applied[start:end]
  1862             del self.applied[start:end]
  1864             strip(self.ui, repo, [rev], update=False, backup=False)
  1863             strip(self.ui, repo, [rev], update=False, backup=False)
  1865             for s, state in repo[b'.'].substate.items():
  1864             for s, state in repo[b'.'].substate.items():