##// END OF EJS Templates
mq: extract `mq.queue.strip`...
Pierre-Yves David -
r19819:f0fc4d57 default
parent child Browse files
Show More
@@ -603,7 +603,7 b' class queue(object):'
603 603
604 604 # apply failed, strip away that rev and merge.
605 605 hg.clean(repo, head)
606 self.strip(repo, [n], update=False, backup='strip')
606 strip(self.ui, repo, [n], update=False, backup='strip')
607 607
608 608 ctx = repo[rev]
609 609 ret = hg.merge(repo, rev)
@@ -1103,24 +1103,6 b' class queue(object):'
1103 1103 finally:
1104 1104 release(wlock)
1105 1105
1106 def strip(self, repo, revs, update=True, backup="all", force=None):
1107 wlock = lock = None
1108 try:
1109 wlock = repo.wlock()
1110 lock = repo.lock()
1111
1112 if update:
1113 checklocalchanges(repo, force=force)
1114 urev, p2 = repo.changelog.parents(revs[0])
1115 if p2 != nullid and p2 in [x.node for x in self.applied]:
1116 urev = p2
1117 hg.clean(repo, urev)
1118 repo.dirstate.write()
1119
1120 repair.strip(self.ui, repo, revs, backup)
1121 finally:
1122 release(lock, wlock)
1123
1124 1106 def isapplied(self, patch):
1125 1107 """returns (index, rev, patch)"""
1126 1108 for i, a in enumerate(self.applied):
@@ -1443,7 +1425,7 b' class queue(object):'
1443 1425 for patch in reversed(self.applied[start:end]):
1444 1426 self.ui.status(_("popping %s\n") % patch.name)
1445 1427 del self.applied[start:end]
1446 self.strip(repo, [rev], update=False, backup='strip')
1428 strip(self.ui, repo, [rev], update=False, backup='strip')
1447 1429 for s, state in repo['.'].substate.items():
1448 1430 repo['.'].sub(s).get(state)
1449 1431 if self.applied:
@@ -1646,8 +1628,7 b' class queue(object):'
1646 1628 repo.setparents(*cparents)
1647 1629 self.applied.pop()
1648 1630 self.applieddirty = True
1649 self.strip(repo, [top], update=False,
1650 backup='strip')
1631 strip(self.ui, repo, [top], update=False, backup='strip')
1651 1632 except: # re-raises
1652 1633 repo.dirstate.invalidate()
1653 1634 raise
@@ -1819,7 +1800,7 b' class queue(object):'
1819 1800 update = True
1820 1801 else:
1821 1802 update = False
1822 self.strip(repo, [rev], update=update, backup='strip')
1803 strip(self.ui, repo, [rev], update=update, backup='strip')
1823 1804 if qpp:
1824 1805 self.ui.warn(_("saved queue repository parents: %s %s\n") %
1825 1806 (short(qpp[0]), short(qpp[1])))
@@ -2300,7 +2281,7 b' def clone(ui, source, dest=None, **opts)'
2300 2281 if qbase:
2301 2282 ui.note(_('stripping applied patches from destination '
2302 2283 'repository\n'))
2303 repo.mq.strip(repo, [qbase], update=False, backup=None)
2284 strip(ui, repo, [qbase], update=False, backup=None)
2304 2285 if not opts.get('noupdate'):
2305 2286 ui.note(_('updating destination repository\n'))
2306 2287 hg.update(repo, repo.changelog.tip())
@@ -2944,6 +2925,24 b' def checklocalchanges(repo, force=False,'
2944 2925 raise util.Abort(_("local changed subrepos found" + excsuffix))
2945 2926 return m, a, r, d
2946 2927
2928 def strip(ui, repo, revs, update=True, backup="all", force=None):
2929 wlock = lock = None
2930 try:
2931 wlock = repo.wlock()
2932 lock = repo.lock()
2933
2934 if update:
2935 checklocalchanges(repo, force=force)
2936 urev, p2 = repo.changelog.parents(revs[0])
2937 if p2 != nullid and p2 in [x.node for x in repo.mq.applied]:
2938 urev = p2
2939 hg.clean(repo, urev)
2940 repo.dirstate.write()
2941
2942 repair.strip(ui, repo, revs, backup)
2943 finally:
2944 release(lock, wlock)
2945
2947 2946
2948 2947 @command("strip",
2949 2948 [
@@ -2962,7 +2961,7 b' def checklocalchanges(repo, force=False,'
2962 2961 ('B', 'bookmark', '', _("remove revs only reachable from given"
2963 2962 " bookmark"))],
2964 2963 _('hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...'))
2965 def strip(ui, repo, *revs, **opts):
2964 def stripcmd(ui, repo, *revs, **opts):
2966 2965 """strip changesets and all their descendants from the repository
2967 2966
2968 2967 The strip command removes the specified changesets and all their
@@ -3095,8 +3094,7 b' def strip(ui, repo, *revs, **opts):'
3095 3094 marks.write()
3096 3095 ui.write(_("bookmark '%s' deleted\n") % mark)
3097 3096
3098 repo.mq.strip(repo, revs, backup=backup, update=update,
3099 force=opts.get('force'))
3097 strip(ui, repo, revs, backup=backup, update=update, force=opts.get('force'))
3100 3098
3101 3099 return 0
3102 3100
General Comments 0
You need to be logged in to leave comments. Login now