tests/bruterebase.py
changeset 43076 2372284d9457
parent 39683 337d6e0fd9c9
child 45682 d2e1dcd4490d
equal deleted inserted replaced
43075:57875cf423c9 43076:2372284d9457
    21     xrange = range
    21     xrange = range
    22 
    22 
    23 cmdtable = {}
    23 cmdtable = {}
    24 command = registrar.command(cmdtable)
    24 command = registrar.command(cmdtable)
    25 
    25 
       
    26 
    26 @command(b'debugbruterebase')
    27 @command(b'debugbruterebase')
    27 def debugbruterebase(ui, repo, source, dest):
    28 def debugbruterebase(ui, repo, source, dest):
    28     """for every non-empty subset of source, run rebase -r subset -d dest
    29     """for every non-empty subset of source, run rebase -r subset -d dest
    29 
    30 
    30     Print one line summary for each subset. Assume obsstore is enabled.
    31     Print one line summary for each subset. Assume obsstore is enabled.
    43 
    44 
    44         for i in xrange(1, 2 ** len(srevs)):
    45         for i in xrange(1, 2 ** len(srevs)):
    45             subset = [rev for j, rev in enumerate(srevs) if i & (1 << j) != 0]
    46             subset = [rev for j, rev in enumerate(srevs) if i & (1 << j) != 0]
    46             spec = revsetlang.formatspec(b'%ld', subset)
    47             spec = revsetlang.formatspec(b'%ld', subset)
    47             tr = repo.transaction(b'rebase')
    48             tr = repo.transaction(b'rebase')
    48             tr._report = lambda x: 0 # hide "transaction abort"
    49             tr._report = lambda x: 0  # hide "transaction abort"
    49 
    50 
    50             ui.pushbuffer()
    51             ui.pushbuffer()
    51             try:
    52             try:
    52                 rebase.rebase(ui, repo, dest=dest, rev=[spec])
    53                 rebase.rebase(ui, repo, dest=dest, rev=[spec])
    53             except error.Abort as ex:
    54             except error.Abort as ex:
    68                 summary = b' '.join(descs)
    69                 summary = b' '.join(descs)
    69             ui.popbuffer()
    70             ui.popbuffer()
    70             repo.vfs.tryunlink(b'rebasestate')
    71             repo.vfs.tryunlink(b'rebasestate')
    71 
    72 
    72             subsetdesc = b''.join(getdesc(rev) for rev in subset)
    73             subsetdesc = b''.join(getdesc(rev) for rev in subset)
    73             ui.write((b'%s: %s\n') % (subsetdesc.rjust(len(srevs)), summary))
    74             ui.write(b'%s: %s\n' % (subsetdesc.rjust(len(srevs)), summary))
    74             tr.abort()
    75             tr.abort()