Show More
@@ -603,7 +603,7 b' class queue(object):' | |||||
603 |
|
603 | |||
604 | # apply failed, strip away that rev and merge. |
|
604 | # apply failed, strip away that rev and merge. | |
605 | hg.clean(repo, head) |
|
605 | hg.clean(repo, head) | |
606 |
self. |
|
606 | strip(self.ui, repo, [n], update=False, backup='strip') | |
607 |
|
607 | |||
608 | ctx = repo[rev] |
|
608 | ctx = repo[rev] | |
609 | ret = hg.merge(repo, rev) |
|
609 | ret = hg.merge(repo, rev) | |
@@ -1103,24 +1103,6 b' class queue(object):' | |||||
1103 | finally: |
|
1103 | finally: | |
1104 | release(wlock) |
|
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 | def isapplied(self, patch): |
|
1106 | def isapplied(self, patch): | |
1125 | """returns (index, rev, patch)""" |
|
1107 | """returns (index, rev, patch)""" | |
1126 | for i, a in enumerate(self.applied): |
|
1108 | for i, a in enumerate(self.applied): | |
@@ -1443,7 +1425,7 b' class queue(object):' | |||||
1443 | for patch in reversed(self.applied[start:end]): |
|
1425 | for patch in reversed(self.applied[start:end]): | |
1444 | self.ui.status(_("popping %s\n") % patch.name) |
|
1426 | self.ui.status(_("popping %s\n") % patch.name) | |
1445 | del self.applied[start:end] |
|
1427 | del self.applied[start:end] | |
1446 |
self. |
|
1428 | strip(self.ui, repo, [rev], update=False, backup='strip') | |
1447 | for s, state in repo['.'].substate.items(): |
|
1429 | for s, state in repo['.'].substate.items(): | |
1448 | repo['.'].sub(s).get(state) |
|
1430 | repo['.'].sub(s).get(state) | |
1449 | if self.applied: |
|
1431 | if self.applied: | |
@@ -1646,8 +1628,7 b' class queue(object):' | |||||
1646 | repo.setparents(*cparents) |
|
1628 | repo.setparents(*cparents) | |
1647 | self.applied.pop() |
|
1629 | self.applied.pop() | |
1648 | self.applieddirty = True |
|
1630 | self.applieddirty = True | |
1649 |
self. |
|
1631 | strip(self.ui, repo, [top], update=False, backup='strip') | |
1650 | backup='strip') |
|
|||
1651 | except: # re-raises |
|
1632 | except: # re-raises | |
1652 | repo.dirstate.invalidate() |
|
1633 | repo.dirstate.invalidate() | |
1653 | raise |
|
1634 | raise | |
@@ -1819,7 +1800,7 b' class queue(object):' | |||||
1819 | update = True |
|
1800 | update = True | |
1820 | else: |
|
1801 | else: | |
1821 | update = False |
|
1802 | update = False | |
1822 |
self. |
|
1803 | strip(self.ui, repo, [rev], update=update, backup='strip') | |
1823 | if qpp: |
|
1804 | if qpp: | |
1824 | self.ui.warn(_("saved queue repository parents: %s %s\n") % |
|
1805 | self.ui.warn(_("saved queue repository parents: %s %s\n") % | |
1825 | (short(qpp[0]), short(qpp[1]))) |
|
1806 | (short(qpp[0]), short(qpp[1]))) | |
@@ -2300,7 +2281,7 b' def clone(ui, source, dest=None, **opts)' | |||||
2300 | if qbase: |
|
2281 | if qbase: | |
2301 | ui.note(_('stripping applied patches from destination ' |
|
2282 | ui.note(_('stripping applied patches from destination ' | |
2302 | 'repository\n')) |
|
2283 | 'repository\n')) | |
2303 |
|
|
2284 | strip(ui, repo, [qbase], update=False, backup=None) | |
2304 | if not opts.get('noupdate'): |
|
2285 | if not opts.get('noupdate'): | |
2305 | ui.note(_('updating destination repository\n')) |
|
2286 | ui.note(_('updating destination repository\n')) | |
2306 | hg.update(repo, repo.changelog.tip()) |
|
2287 | hg.update(repo, repo.changelog.tip()) | |
@@ -2944,6 +2925,24 b' def checklocalchanges(repo, force=False,' | |||||
2944 | raise util.Abort(_("local changed subrepos found" + excsuffix)) |
|
2925 | raise util.Abort(_("local changed subrepos found" + excsuffix)) | |
2945 | return m, a, r, d |
|
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 | @command("strip", |
|
2947 | @command("strip", | |
2949 | [ |
|
2948 | [ | |
@@ -2962,7 +2961,7 b' def checklocalchanges(repo, force=False,' | |||||
2962 | ('B', 'bookmark', '', _("remove revs only reachable from given" |
|
2961 | ('B', 'bookmark', '', _("remove revs only reachable from given" | |
2963 | " bookmark"))], |
|
2962 | " bookmark"))], | |
2964 | _('hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...')) |
|
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 | """strip changesets and all their descendants from the repository |
|
2965 | """strip changesets and all their descendants from the repository | |
2967 |
|
2966 | |||
2968 | The strip command removes the specified changesets and all their |
|
2967 | The strip command removes the specified changesets and all their | |
@@ -3095,8 +3094,7 b' def strip(ui, repo, *revs, **opts):' | |||||
3095 | marks.write() |
|
3094 | marks.write() | |
3096 | ui.write(_("bookmark '%s' deleted\n") % mark) |
|
3095 | ui.write(_("bookmark '%s' deleted\n") % mark) | |
3097 |
|
3096 | |||
3098 |
|
|
3097 | strip(ui, repo, revs, backup=backup, update=update, force=opts.get('force')) | |
3099 | force=opts.get('force')) |
|
|||
3100 |
|
3098 | |||
3101 | return 0 |
|
3099 | return 0 | |
3102 |
|
3100 |
General Comments 0
You need to be logged in to leave comments.
Login now