Skip to content
Snippets Groups Projects
  • Jun Wu's avatar
    2312e70cf78b
    rebase: clean up rebasestate from active transaction · 2312e70cf78b
    Jun Wu authored
    Previously, rebase assumes the following pattern:
    
        rebase:
            with transaction as tr: # top-level
                ...
            tr.__close__ writes rebasestate
            unlink('rebasestate')
    
    However it's possible that "rebase" was called inside a transaction:
    
        with transaction as tr1:
            rebase:
                with transaction as tr2: # not top-level
                    ...
                tr2.__close__ does not write rebasestate
                unlink('rebasestate')
        tr1.__close__ writes rebasestate
    
    That leaves a rebasestate on disk incorrectly.
    
    This patch adds "removefilegenerator" to notify transaction code that the
    state file is no longer needed therefore fixes the issue.
    2312e70cf78b
    History
    rebase: clean up rebasestate from active transaction
    Jun Wu authored
    Previously, rebase assumes the following pattern:
    
        rebase:
            with transaction as tr: # top-level
                ...
            tr.__close__ writes rebasestate
            unlink('rebasestate')
    
    However it's possible that "rebase" was called inside a transaction:
    
        with transaction as tr1:
            rebase:
                with transaction as tr2: # not top-level
                    ...
                tr2.__close__ does not write rebasestate
                unlink('rebasestate')
        tr1.__close__ writes rebasestate
    
    That leaves a rebasestate on disk incorrectly.
    
    This patch adds "removefilegenerator" to notify transaction code that the
    state file is no longer needed therefore fixes the issue.