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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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 |
|
|
|
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 |
|
|
|
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