comparison hgext/mq.py @ 2697:6c540dd14c38

mq: qpop should act like quilt pop qpop patchname would pop the named patch off the stack. This is slightly different from how quilt pop works. quilt pop pops everything up to the named patch.
author Chris Mason <mason@suse.com>
date Thu, 27 Jul 2006 09:27:39 -0700
parents be273f6074de
children c1123e83c8e2
comparison
equal deleted inserted replaced
2696:be273f6074de 2697:6c540dd14c38
706 top) 706 top)
707 else: 707 else:
708 self.ui.write("Now at: %s\n" % top) 708 self.ui.write("Now at: %s\n" % top)
709 return ret[0] 709 return ret[0]
710 710
711 def pop(self, repo, patch=None, force=False, update=True, wlock=None): 711 def pop(self, repo, patch=None, force=False, update=True, all=False,
712 wlock=None):
712 def getfile(f, rev): 713 def getfile(f, rev):
713 t = repo.file(f).read(rev) 714 t = repo.file(f).read(rev)
714 try: 715 try:
715 repo.wfile(f, "w").write(t) 716 repo.wfile(f, "w").write(t)
716 except IOError: 717 except IOError:
747 self.check_localchanges(repo) 748 self.check_localchanges(repo)
748 749
749 self.applied_dirty = 1; 750 self.applied_dirty = 1;
750 end = len(self.applied) 751 end = len(self.applied)
751 if not patch: 752 if not patch:
752 info = [len(self.applied) - 1] + self.applied[-1].split(':') 753 if all:
754 popi = 0
755 else:
756 popi = len(self.applied) - 1
757 else:
758 popi = info[0] + 1
759 if popi >= end:
760 self.ui.warn("qpop: %s is already at the top\n" % patch)
761 return
762 info = [ popi ] + self.applied[popi].split(':')
763
753 start = info[0] 764 start = info[0]
754 rev = revlog.bin(info[1]) 765 rev = revlog.bin(info[1])
755 766
756 # we know there are no local changes, so we can make a simplified 767 # we know there are no local changes, so we can make a simplified
757 # form of hg.update. 768 # form of hg.update.
1274 q = queue(ui, repo.join(""), repo.join(opts['name'])) 1285 q = queue(ui, repo.join(""), repo.join(opts['name']))
1275 ui.warn('using patch queue: %s\n' % q.path) 1286 ui.warn('using patch queue: %s\n' % q.path)
1276 localupdate = False 1287 localupdate = False
1277 else: 1288 else:
1278 q = repomap[repo] 1289 q = repomap[repo]
1279 if opts['all'] and len(q.applied) > 0: 1290 q.pop(repo, patch, force=opts['force'], update=localupdate, all=opts['all'])
1280 patch = q.applied[0].split(':')[1]
1281 q.pop(repo, patch, force=opts['force'], update=localupdate)
1282 q.save_dirty() 1291 q.save_dirty()
1283 return 0 1292 return 0
1284 1293
1285 def restore(ui, repo, rev, **opts): 1294 def restore(ui, repo, rev, **opts):
1286 """restore the queue state saved by a rev""" 1295 """restore the queue state saved by a rev"""