Mercurial > hg > mercurial-crew-with-dirclash
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""" |