Show More
@@ -151,6 +151,12 b' def strip(ui, repo, nodelist, backup=Tru' | |||
|
151 | 151 | |
|
152 | 152 | mfst = repo.manifest |
|
153 | 153 | |
|
154 | curtr = repo.currenttransaction() | |
|
155 | if curtr is not None: | |
|
156 | del curtr # avoid carrying reference to transaction for nothing | |
|
157 | msg = _('programming error: cannot strip from inside a transaction') | |
|
158 | raise util.Abort(msg, hint=_('contact your extension maintainer')) | |
|
159 | ||
|
154 | 160 | tr = repo.transaction("strip") |
|
155 | 161 | offset = len(tr.entries) |
|
156 | 162 |
@@ -3,7 +3,7 b'' | |||
|
3 | 3 | > """A small extension that acquire locks in the wrong order |
|
4 | 4 | > """ |
|
5 | 5 | > |
|
6 | > from mercurial import cmdutil | |
|
6 | > from mercurial import cmdutil, repair | |
|
7 | 7 | > |
|
8 | 8 | > cmdtable = {} |
|
9 | 9 | > command = cmdutil.command(cmdtable) |
@@ -38,6 +38,15 b'' | |||
|
38 | 38 | > wl = repo.wlock(wait=False) |
|
39 | 39 | > wl.release() |
|
40 | 40 | > lo.release() |
|
41 | > | |
|
42 | > @command('stripintr', [], '') | |
|
43 | > def stripintr(ui, repo): | |
|
44 | > lo = repo.lock() | |
|
45 | > tr = repo.transaction('foobar') | |
|
46 | > try: | |
|
47 | > repair.strip(repo.ui, repo, [repo['.'].node()]) | |
|
48 | > finally: | |
|
49 | > lo.release() | |
|
41 | 50 | > EOF |
|
42 | 51 | |
|
43 | 52 | $ cat << EOF >> $HGRCPATH |
@@ -87,4 +96,14 b'' | |||
|
87 | 96 | $TESTTMP/buggylocking.py:* in buggylocking (glob) |
|
88 | 97 | $ hg properlocking |
|
89 | 98 | $ hg nowaitlocking |
|
99 | ||
|
100 | $ echo a > a | |
|
101 | $ hg add a | |
|
102 | $ hg commit -m a | |
|
103 | $ hg stripintr | |
|
104 | saved backup bundle to $TESTTMP/lock-checker/.hg/strip-backup/cb9a9f314b8b-cc5ccb0b-backup.hg (glob) | |
|
105 | abort: programming error: cannot strip from inside a transaction | |
|
106 | (contact your extension maintainer) | |
|
107 | [255] | |
|
108 | ||
|
90 | 109 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now