hgext/rebase.py
changeset 38497 9c3b48fb7ac5
parent 38496 c92fdc27cbdd
child 38498 c892a30bafb9
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)