Mercurial > hg
comparison hgext/rebase.py @ 38496:c92fdc27cbdd
rebase: extract dryrun as a function
To avoid more number of indented blocks and make it easier to add
additional functionality in dryrun, extracted as a function.
Differential Revision: https://phab.mercurial-scm.org/D3855
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Thu, 28 Jun 2018 23:57:15 +0530 |
parents | ba6d2c32f34a |
children | 9c3b48fb7ac5 |
comparison
equal
deleted
inserted
replaced
38495:ba6d2c32f34a | 38496:c92fdc27cbdd |
---|---|
816 userrevs = list(repo.revs(opts.get(r'auto_orphans'))) | 816 userrevs = list(repo.revs(opts.get(r'auto_orphans'))) |
817 opts[r'rev'] = [revsetlang.formatspec('%ld and orphan()', userrevs)] | 817 opts[r'rev'] = [revsetlang.formatspec('%ld and orphan()', userrevs)] |
818 opts[r'dest'] = '_destautoorphanrebase(SRC)' | 818 opts[r'dest'] = '_destautoorphanrebase(SRC)' |
819 | 819 |
820 if dryrun: | 820 if dryrun: |
821 rbsrt = rebaseruntime(repo, ui, inmemory=True, | 821 return _dryrunrebase(ui, repo, **opts) |
822 opts=pycompat.byteskwargs(opts)) | |
823 with repo.wlock(), repo.lock(): | |
824 try: | |
825 overrides = {('rebase', 'singletransaction'): True} | |
826 with ui.configoverride(overrides, 'rebase'): | |
827 _origrebase(ui, repo, inmemory=True, rbsrt=rbsrt, | |
828 leaveunfinished=True, **opts) | |
829 except error.InMemoryMergeConflictsError: | |
830 ui.status(_('hit a merge conflict\n')) | |
831 return 1 | |
832 else: | |
833 ui.status(_('there will be no conflict, you can rebase\n')) | |
834 return 0 | |
835 finally: | |
836 rbsrt._prepareabortorcontinue(isabort=True) | |
837 elif inmemory: | 822 elif inmemory: |
838 try: | 823 try: |
839 # 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 |
840 # and re-run as an on-disk merge. | 825 # and re-run as an on-disk merge. |
841 overrides = {('rebase', 'singletransaction'): True} | 826 overrides = {('rebase', 'singletransaction'): True} |
846 ' merge\n')) | 831 ' merge\n')) |
847 _origrebase(ui, repo, abort=True) | 832 _origrebase(ui, repo, abort=True) |
848 return _origrebase(ui, repo, inmemory=False, **opts) | 833 return _origrebase(ui, repo, inmemory=False, **opts) |
849 else: | 834 else: |
850 return _origrebase(ui, repo, **opts) | 835 return _origrebase(ui, repo, **opts) |
836 | |
837 def _dryrunrebase(ui, repo, **opts): | |
838 rbsrt = rebaseruntime(repo, ui, inmemory=True, | |
839 opts=pycompat.byteskwargs(opts)) | |
840 with repo.wlock(), repo.lock(): | |
841 try: | |
842 overrides = {('rebase', 'singletransaction'): True} | |
843 with ui.configoverride(overrides, 'rebase'): | |
844 _origrebase(ui, repo, inmemory=True, rbsrt=rbsrt, | |
845 leaveunfinished=True, **opts) | |
846 except error.InMemoryMergeConflictsError: | |
847 ui.status(_('hit a merge conflict\n')) | |
848 return 1 | |
849 else: | |
850 ui.status(_('there will be no conflict, you can rebase\n')) | |
851 return 0 | |
852 finally: | |
853 rbsrt._prepareabortorcontinue(isabort=True) | |
851 | 854 |
852 def _origrebase(ui, repo, inmemory=False, leaveunfinished=False, rbsrt=None, | 855 def _origrebase(ui, repo, inmemory=False, leaveunfinished=False, rbsrt=None, |
853 **opts): | 856 **opts): |
854 opts = pycompat.byteskwargs(opts) | 857 opts = pycompat.byteskwargs(opts) |
855 if not rbsrt: | 858 if not rbsrt: |