Show More
@@ -1073,7 +1073,7 b' def bisect(' | |||||
1073 | raise error.Abort(_(b'current bisect revision is a merge')) |
|
1073 | raise error.Abort(_(b'current bisect revision is a merge')) | |
1074 | if rev: |
|
1074 | if rev: | |
1075 | node = repo[scmutil.revsingle(repo, rev, node)].node() |
|
1075 | node = repo[scmutil.revsingle(repo, rev, node)].node() | |
1076 | try: |
|
1076 | with hbisect.restore_state(repo, state, node): | |
1077 | while changesets: |
|
1077 | while changesets: | |
1078 | # update state |
|
1078 | # update state | |
1079 | state[b'current'] = [node] |
|
1079 | state[b'current'] = [node] | |
@@ -1105,9 +1105,6 b' def bisect(' | |||||
1105 | # update to next check |
|
1105 | # update to next check | |
1106 | node = nodes[0] |
|
1106 | node = nodes[0] | |
1107 | mayupdate(repo, node, show_stats=False) |
|
1107 | mayupdate(repo, node, show_stats=False) | |
1108 | finally: |
|
|||
1109 | state[b'current'] = [node] |
|
|||
1110 | hbisect.save_state(repo, state) |
|
|||
1111 | hbisect.printresult(ui, repo, state, displayer, nodes, bgood) |
|
1108 | hbisect.printresult(ui, repo, state, displayer, nodes, bgood) | |
1112 | return |
|
1109 | return | |
1113 |
|
1110 |
@@ -11,6 +11,7 b'' | |||||
11 | from __future__ import absolute_import |
|
11 | from __future__ import absolute_import | |
12 |
|
12 | |||
13 | import collections |
|
13 | import collections | |
|
14 | import contextlib | |||
14 |
|
15 | |||
15 | from .i18n import _ |
|
16 | from .i18n import _ | |
16 | from .node import ( |
|
17 | from .node import ( | |
@@ -180,6 +181,15 b' def checkstate(state):' | |||||
180 | raise error.Abort(_(b'cannot bisect (no known bad revisions)')) |
|
181 | raise error.Abort(_(b'cannot bisect (no known bad revisions)')) | |
181 |
|
182 | |||
182 |
|
183 | |||
|
184 | @contextlib.contextmanager | |||
|
185 | def restore_state(repo, state, node): | |||
|
186 | try: | |||
|
187 | yield | |||
|
188 | finally: | |||
|
189 | state[b'current'] = [node] | |||
|
190 | save_state(repo, state) | |||
|
191 | ||||
|
192 | ||||
183 | def get(repo, status): |
|
193 | def get(repo, status): | |
184 | """ |
|
194 | """ | |
185 | Return a list of revision(s) that match the given status: |
|
195 | Return a list of revision(s) that match the given status: |
General Comments 0
You need to be logged in to leave comments.
Login now