mercurial/revlogutils/debug.py
changeset 49676 4302db0f54c8
parent 49662 7aea9babac5d
child 49677 05db41701ece
equal deleted inserted replaced
49675:0fca63953810 49676:4302db0f54c8
     8 
     8 
     9 import collections
     9 import collections
    10 import string
    10 import string
    11 
    11 
    12 from .. import (
    12 from .. import (
       
    13     mdiff,
    13     node as nodemod,
    14     node as nodemod,
       
    15     revlogutils,
    14     util,
    16     util,
    15 )
    17 )
    16 
    18 
    17 from . import (
    19 from . import (
    18     constants,
    20     constants,
       
    21     deltas as deltautil,
    19 )
    22 )
    20 
    23 
    21 INDEX_ENTRY_DEBUG_COLUMN = []
    24 INDEX_ENTRY_DEBUG_COLUMN = []
    22 
    25 
    23 NODE_SIZE = object()
    26 NODE_SIZE = object()
   617             )
   620             )
   618             ui.writenoi18n(
   621             ui.writenoi18n(
   619                 b'deltas against other : '
   622                 b'deltas against other : '
   620                 + fmt % pcfmt(numother_nad, numdeltas)
   623                 + fmt % pcfmt(numother_nad, numdeltas)
   621             )
   624             )
       
   625 
       
   626 
       
   627 def debug_delta_find(ui, revlog, rev, base_rev=nodemod.nullrev):
       
   628     """display the search process for a delta"""
       
   629     deltacomputer = deltautil.deltacomputer(
       
   630         revlog,
       
   631         write_debug=ui.write,
       
   632         debug_search=not ui.quiet,
       
   633     )
       
   634 
       
   635     node = revlog.node(rev)
       
   636     p1r, p2r = revlog.parentrevs(rev)
       
   637     p1 = revlog.node(p1r)
       
   638     p2 = revlog.node(p2r)
       
   639     full_text = revlog.revision(rev)
       
   640     btext = [full_text]
       
   641     textlen = len(btext[0])
       
   642     cachedelta = None
       
   643     flags = revlog.flags(rev)
       
   644 
       
   645     if base_rev != nodemod.nullrev:
       
   646         base_text = revlog.revision(base_rev)
       
   647         delta = mdiff.textdiff(base_text, full_text)
       
   648 
       
   649         cachedelta = (base_rev, delta)
       
   650         btext = [None]
       
   651 
       
   652     revinfo = revlogutils.revisioninfo(
       
   653         node,
       
   654         p1,
       
   655         p2,
       
   656         btext,
       
   657         textlen,
       
   658         cachedelta,
       
   659         flags,
       
   660     )
       
   661 
       
   662     fh = revlog._datafp()
       
   663     deltacomputer.finddeltainfo(revinfo, fh, target_rev=rev)