Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 30127:1ee65f1a11a5
bisect: factor commonly update sequence
For now, This remains a closure in the module to avoid circular import with used
module.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Wed, 24 Aug 2016 05:04:46 +0200 |
parents | 755730fc1e48 |
children | e37ee8367ab4 |
comparison
equal
deleted
inserted
replaced
30126:755730fc1e48 | 30127:1ee65f1a11a5 |
---|---|
870 state['skip'] += nodes | 870 state['skip'] += nodes |
871 hbisect.save_state(repo, state) | 871 hbisect.save_state(repo, state) |
872 if not (state['good'] and state['bad']): | 872 if not (state['good'] and state['bad']): |
873 return | 873 return |
874 | 874 |
875 def mayupdate(repo, node, show_stats=True): | |
876 """common used update sequence""" | |
877 if noupdate: | |
878 return | |
879 cmdutil.bailifchanged(repo) | |
880 return hg.clean(repo, node, show_stats=show_stats) | |
881 | |
875 if command: | 882 if command: |
876 changesets = 1 | 883 changesets = 1 |
877 if noupdate: | 884 if noupdate: |
878 try: | 885 try: |
879 node = state['current'][0] | 886 node = state['current'][0] |
908 hbisect.checkstate(state) | 915 hbisect.checkstate(state) |
909 # bisect | 916 # bisect |
910 nodes, changesets, bgood = hbisect.bisect(repo.changelog, state) | 917 nodes, changesets, bgood = hbisect.bisect(repo.changelog, state) |
911 # update to next check | 918 # update to next check |
912 node = nodes[0] | 919 node = nodes[0] |
913 if not noupdate: | 920 mayupdate(repo, node, show_stats=False) |
914 cmdutil.bailifchanged(repo) | |
915 hg.clean(repo, node, show_stats=False) | |
916 finally: | 921 finally: |
917 state['current'] = [node] | 922 state['current'] = [node] |
918 hbisect.save_state(repo, state) | 923 hbisect.save_state(repo, state) |
919 displayer = cmdutil.show_changeset(ui, repo, {}) | 924 displayer = cmdutil.show_changeset(ui, repo, {}) |
920 hbisect.printresult(ui, repo, state, displayer, nodes, bgood) | 925 hbisect.printresult(ui, repo, state, displayer, nodes, bgood) |
930 if extendnode is not None: | 935 if extendnode is not None: |
931 ui.write(_("Extending search to changeset %d:%s\n") | 936 ui.write(_("Extending search to changeset %d:%s\n") |
932 % (extendnode.rev(), extendnode)) | 937 % (extendnode.rev(), extendnode)) |
933 state['current'] = [extendnode.node()] | 938 state['current'] = [extendnode.node()] |
934 hbisect.save_state(repo, state) | 939 hbisect.save_state(repo, state) |
935 if noupdate: | 940 return mayupdate(repo, extendnode.node()) |
936 return | |
937 cmdutil.bailifchanged(repo) | |
938 return hg.clean(repo, extendnode.node()) | |
939 raise error.Abort(_("nothing to extend")) | 941 raise error.Abort(_("nothing to extend")) |
940 | 942 |
941 if changesets == 0: | 943 if changesets == 0: |
942 displayer = cmdutil.show_changeset(ui, repo, {}) | 944 displayer = cmdutil.show_changeset(ui, repo, {}) |
943 hbisect.printresult(ui, repo, state, displayer, nodes, good) | 945 hbisect.printresult(ui, repo, state, displayer, nodes, good) |
952 ui.write(_("Testing changeset %d:%s " | 954 ui.write(_("Testing changeset %d:%s " |
953 "(%d changesets remaining, ~%d tests)\n") | 955 "(%d changesets remaining, ~%d tests)\n") |
954 % (rev, short(node), changesets, tests)) | 956 % (rev, short(node), changesets, tests)) |
955 state['current'] = [node] | 957 state['current'] = [node] |
956 hbisect.save_state(repo, state) | 958 hbisect.save_state(repo, state) |
957 if not noupdate: | 959 return mayupdate(repo, node) |
958 cmdutil.bailifchanged(repo) | |
959 return hg.clean(repo, node) | |
960 | 960 |
961 @command('bookmarks|bookmark', | 961 @command('bookmarks|bookmark', |
962 [('f', 'force', False, _('force')), | 962 [('f', 'force', False, _('force')), |
963 ('r', 'rev', '', _('revision for bookmark action'), _('REV')), | 963 ('r', 'rev', '', _('revision for bookmark action'), _('REV')), |
964 ('d', 'delete', False, _('delete a given bookmark')), | 964 ('d', 'delete', False, _('delete a given bookmark')), |