hgext/mq.py
changeset 5980 dcda0c90125c
parent 5979 b4858eb4b58f
child 5981 ca2af0c81c9a
equal deleted inserted replaced
5979:b4858eb4b58f 5980:dcda0c90125c
   859             info = [ popi ] + [self.applied[popi].rev, self.applied[popi].name]
   859             info = [ popi ] + [self.applied[popi].rev, self.applied[popi].name]
   860 
   860 
   861             start = info[0]
   861             start = info[0]
   862             rev = revlog.bin(info[1])
   862             rev = revlog.bin(info[1])
   863 
   863 
       
   864             if update:
       
   865                 top = self.check_toppatch(repo)
       
   866 
       
   867             if repo.changelog.heads(rev) != [revlog.bin(self.applied[-1].rev)]:
       
   868                 raise util.Abort("popping would remove a revision not "
       
   869                                  "managed by this patch queue")
       
   870 
   864             # we know there are no local changes, so we can make a simplified
   871             # we know there are no local changes, so we can make a simplified
   865             # form of hg.update.
   872             # form of hg.update.
   866             if update:
   873             if update:
   867                 top = self.check_toppatch(repo)
       
   868                 qp = self.qparents(repo, rev)
   874                 qp = self.qparents(repo, rev)
   869                 changes = repo.changelog.read(qp)
   875                 changes = repo.changelog.read(qp)
   870                 mmap = repo.manifest.read(changes[0])
   876                 mmap = repo.manifest.read(changes[0])
   871                 m, a, r, d, u = repo.status(qp, top)[:5]
   877                 m, a, r, d, u = repo.status(qp, top)[:5]
   872                 if d:
   878                 if d:
   913         wlock = repo.wlock()
   919         wlock = repo.wlock()
   914         try:
   920         try:
   915             self.check_toppatch(repo)
   921             self.check_toppatch(repo)
   916             (top, patchfn) = (self.applied[-1].rev, self.applied[-1].name)
   922             (top, patchfn) = (self.applied[-1].rev, self.applied[-1].name)
   917             top = revlog.bin(top)
   923             top = revlog.bin(top)
       
   924             if repo.changelog.heads(top) != [top]:
       
   925                 raise util.Abort("cannot refresh a revision with children")
   918             cparents = repo.changelog.parents(top)
   926             cparents = repo.changelog.parents(top)
   919             patchparent = self.qparents(repo, top)
   927             patchparent = self.qparents(repo, top)
   920             message, comments, user, date, patchfound = self.readheaders(patchfn)
   928             message, comments, user, date, patchfound = self.readheaders(patchfn)
   921 
   929 
   922             patchf = self.opener(patchfn, 'r+')
   930             patchf = self.opener(patchfn, 'r+')