comparison hgext/rebase.py @ 38497:9c3b48fb7ac5

rebase: split _origrebase() for conveniece in dryrun This patch split _origrebase() method by extracting rbsrt part from that to make it easy to implement dryrun in more elegant way than before. Differential Revision: https://phab.mercurial-scm.org/D3856
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Fri, 29 Jun 2018 00:22:50 +0530
parents c92fdc27cbdd
children c892a30bafb9
comparison
equal deleted inserted replaced
38496:c92fdc27cbdd 38497:9c3b48fb7ac5
823 try: 823 try:
824 # in-memory merge doesn't support conflicts, so if we hit any, abort 824 # in-memory merge doesn't support conflicts, so if we hit any, abort
825 # and re-run as an on-disk merge. 825 # and re-run as an on-disk merge.
826 overrides = {('rebase', 'singletransaction'): True} 826 overrides = {('rebase', 'singletransaction'): True}
827 with ui.configoverride(overrides, 'rebase'): 827 with ui.configoverride(overrides, 'rebase'):
828 return _origrebase(ui, repo, inmemory=inmemory, **opts) 828 return _dorebase(ui, repo, inmemory=inmemory, **opts)
829 except error.InMemoryMergeConflictsError: 829 except error.InMemoryMergeConflictsError:
830 ui.warn(_('hit merge conflicts; re-running rebase without in-memory' 830 ui.warn(_('hit merge conflicts; re-running rebase without in-memory'
831 ' merge\n')) 831 ' merge\n'))
832 _origrebase(ui, repo, abort=True) 832 _dorebase(ui, repo, abort=True)
833 return _origrebase(ui, repo, inmemory=False, **opts) 833 return _dorebase(ui, repo, inmemory=False, **opts)
834 else: 834 else:
835 return _origrebase(ui, repo, **opts) 835 return _dorebase(ui, repo, **opts)
836 836
837 def _dryrunrebase(ui, repo, **opts): 837 def _dryrunrebase(ui, repo, **opts):
838 rbsrt = rebaseruntime(repo, ui, inmemory=True, 838 rbsrt = rebaseruntime(repo, ui, inmemory=True,
839 opts=pycompat.byteskwargs(opts)) 839 opts=pycompat.byteskwargs(opts))
840 with repo.wlock(), repo.lock(): 840 with repo.wlock(), repo.lock():
841 try: 841 try:
842 overrides = {('rebase', 'singletransaction'): True} 842 overrides = {('rebase', 'singletransaction'): True}
843 with ui.configoverride(overrides, 'rebase'): 843 with ui.configoverride(overrides, 'rebase'):
844 _origrebase(ui, repo, inmemory=True, rbsrt=rbsrt, 844 _origrebase(ui, repo, rbsrt, inmemory=True,
845 leaveunfinished=True, **opts) 845 leaveunfinished=True, **opts)
846 except error.InMemoryMergeConflictsError: 846 except error.InMemoryMergeConflictsError:
847 ui.status(_('hit a merge conflict\n')) 847 ui.status(_('hit a merge conflict\n'))
848 return 1 848 return 1
849 else: 849 else:
850 ui.status(_('there will be no conflict, you can rebase\n')) 850 ui.status(_('there will be no conflict, you can rebase\n'))
851 return 0 851 return 0
852 finally: 852 finally:
853 rbsrt._prepareabortorcontinue(isabort=True) 853 rbsrt._prepareabortorcontinue(isabort=True)
854 854
855 def _origrebase(ui, repo, inmemory=False, leaveunfinished=False, rbsrt=None, 855 def _dorebase(ui, repo, inmemory=False, **opts):
856 **opts): 856 rbsrt = rebaseruntime(repo, ui, inmemory, pycompat.byteskwargs(opts))
857 return _origrebase(ui, repo, rbsrt, inmemory=inmemory, **opts)
858
859 def _origrebase(ui, repo, rbsrt, inmemory=False, leaveunfinished=False, **opts):
857 opts = pycompat.byteskwargs(opts) 860 opts = pycompat.byteskwargs(opts)
858 if not rbsrt:
859 rbsrt = rebaseruntime(repo, ui, inmemory, opts)
860
861 with repo.wlock(), repo.lock(): 861 with repo.wlock(), repo.lock():
862 # Validate input and define rebasing points 862 # Validate input and define rebasing points
863 destf = opts.get('dest', None) 863 destf = opts.get('dest', None)
864 srcf = opts.get('source', None) 864 srcf = opts.get('source', None)
865 basef = opts.get('base', None) 865 basef = opts.get('base', None)