Mercurial > hg
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) |