Mercurial > hg > mercurial-crew-with-dirclash
comparison hgext/mq.py @ 2890:790fd342b6c7
Allow qdel to delete multiple patches.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Mon, 14 Aug 2006 11:41:08 -0700 |
parents | 57b88b86a845 |
children | b70740aefa4d |
comparison
equal
deleted
inserted
replaced
2889:57b88b86a845 | 2890:790fd342b6c7 |
---|---|
504 err = 1 | 504 err = 1 |
505 break | 505 break |
506 tr.close() | 506 tr.close() |
507 return (err, n) | 507 return (err, n) |
508 | 508 |
509 def delete(self, repo, patch, keep=False): | 509 def delete(self, repo, patches, keep=False): |
510 patch = self.lookup(patch, strict=True) | 510 realpatches = [] |
511 info = self.isapplied(patch) | 511 for patch in patches: |
512 if info: | 512 patch = self.lookup(patch, strict=True) |
513 raise util.Abort(_("cannot delete applied patch %s") % patch) | 513 info = self.isapplied(patch) |
514 if patch not in self.series: | 514 if info: |
515 raise util.Abort(_("patch %s not in series file") % patch) | 515 raise util.Abort(_("cannot delete applied patch %s") % patch) |
516 if patch not in self.series: | |
517 raise util.Abort(_("patch %s not in series file") % patch) | |
518 realpatches.append(patch) | |
519 | |
516 if not keep: | 520 if not keep: |
517 r = self.qrepo() | 521 r = self.qrepo() |
518 if r: | 522 if r: |
519 r.remove([patch], True) | 523 r.remove(realpatches, True) |
520 else: | 524 else: |
521 os.unlink(self.join(patch)) | 525 os.unlink(self.join(patch)) |
522 i = self.find_series(patch) | 526 |
523 del self.full_series[i] | 527 indices = [self.find_series(p) for p in realpatches] |
528 indices.sort() | |
529 for i in indices[-1::-1]: | |
530 del self.full_series[i] | |
524 self.parse_series() | 531 self.parse_series() |
525 self.series_dirty = 1 | 532 self.series_dirty = 1 |
526 | 533 |
527 def check_toppatch(self, repo): | 534 def check_toppatch(self, repo): |
528 if len(self.applied) > 0: | 535 if len(self.applied) > 0: |
1298 self.series_dirty = 1 | 1305 self.series_dirty = 1 |
1299 qrepo = self.qrepo() | 1306 qrepo = self.qrepo() |
1300 if qrepo: | 1307 if qrepo: |
1301 qrepo.add(added) | 1308 qrepo.add(added) |
1302 | 1309 |
1303 def delete(ui, repo, patch, **opts): | 1310 def delete(ui, repo, patch, *patches, **opts): |
1304 """remove a patch from the series file | 1311 """remove patches from queue |
1305 | 1312 |
1306 The patch must not be applied. | 1313 The patches must not be applied. |
1307 With -k, the patch file is preserved in the patch directory.""" | 1314 With -k, the patch files are preserved in the patch directory.""" |
1308 q = repo.mq | 1315 q = repo.mq |
1309 q.delete(repo, patch, keep=opts.get('keep')) | 1316 q.delete(repo, (patch,) + patches, keep=opts.get('keep')) |
1310 q.save_dirty() | 1317 q.save_dirty() |
1311 return 0 | 1318 return 0 |
1312 | 1319 |
1313 def applied(ui, repo, patch=None, **opts): | 1320 def applied(ui, repo, patch=None, **opts): |
1314 """print the patches already applied""" | 1321 """print the patches already applied""" |