tests/bruterebase.py
branchstable
changeset 43306 59338f956109
parent 43076 2372284d9457
child 45682 d2e1dcd4490d
equal deleted inserted replaced
43029:c5dc122fdc2b 43306:59338f956109
    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()