equal
deleted
inserted
replaced
1280 |
1280 |
1281 data = {} |
1281 data = {} |
1282 if opts.get(b'old'): |
1282 if opts.get(b'old'): |
1283 |
1283 |
1284 def doit(pushedrevs, remoteheads, remote=remote): |
1284 def doit(pushedrevs, remoteheads, remote=remote): |
1285 if not util.safehasattr(remote, 'branches'): |
1285 if not hasattr(remote, 'branches'): |
1286 # enable in-client legacy support |
1286 # enable in-client legacy support |
1287 remote = localrepo.locallegacypeer(remote.local()) |
1287 remote = localrepo.locallegacypeer(remote.local()) |
1288 if remote_revs: |
1288 if remote_revs: |
1289 r = remote._repo.filtered(b'debug-discovery-remote-filter') |
1289 r = remote._repo.filtered(b'debug-discovery-remote-filter') |
1290 remote._repo = r |
1290 remote._repo = r |
1480 fm = ui.formatter(b'debugextensions', opts) |
1480 fm = ui.formatter(b'debugextensions', opts) |
1481 for extname, extmod in sorted(exts, key=operator.itemgetter(0)): |
1481 for extname, extmod in sorted(exts, key=operator.itemgetter(0)): |
1482 isinternal = extensions.ismoduleinternal(extmod) |
1482 isinternal = extensions.ismoduleinternal(extmod) |
1483 extsource = None |
1483 extsource = None |
1484 |
1484 |
1485 if util.safehasattr(extmod, '__file__'): |
1485 if hasattr(extmod, '__file__'): |
1486 extsource = pycompat.fsencode(extmod.__file__) |
1486 extsource = pycompat.fsencode(extmod.__file__) |
1487 elif getattr(sys, 'oxidized', False): |
1487 elif getattr(sys, 'oxidized', False): |
1488 extsource = pycompat.sysexecutable |
1488 extsource = pycompat.sysexecutable |
1489 if isinternal: |
1489 if isinternal: |
1490 exttestedwith = [] # never expose magic string to users |
1490 exttestedwith = [] # never expose magic string to users |
1720 |
1720 |
1721 fm = ui.formatter(b'debugformat', opts) |
1721 fm = ui.formatter(b'debugformat', opts) |
1722 if fm.isplain(): |
1722 if fm.isplain(): |
1723 |
1723 |
1724 def formatvalue(value): |
1724 def formatvalue(value): |
1725 if util.safehasattr(value, 'startswith'): |
1725 if hasattr(value, 'startswith'): |
1726 return value |
1726 return value |
1727 if value: |
1727 if value: |
1728 return b'yes' |
1728 return b'yes' |
1729 else: |
1729 else: |
1730 return b'no' |
1730 return b'no' |
1945 @command(b'debugindexstats', []) |
1945 @command(b'debugindexstats', []) |
1946 def debugindexstats(ui, repo): |
1946 def debugindexstats(ui, repo): |
1947 """show stats related to the changelog index""" |
1947 """show stats related to the changelog index""" |
1948 repo.changelog.shortest(repo.nullid, 1) |
1948 repo.changelog.shortest(repo.nullid, 1) |
1949 index = repo.changelog.index |
1949 index = repo.changelog.index |
1950 if not util.safehasattr(index, 'stats'): |
1950 if not hasattr(index, 'stats'): |
1951 raise error.Abort(_(b'debugindexstats only works with native code')) |
1951 raise error.Abort(_(b'debugindexstats only works with native code')) |
1952 for k, v in sorted(index.stats().items()): |
1952 for k, v in sorted(index.stats().items()): |
1953 ui.write(b'%s: %d\n' % (k, v)) |
1953 ui.write(b'%s: %d\n' % (k, v)) |
1954 |
1954 |
1955 |
1955 |
1981 err, |
1981 err, |
1982 ) |
1982 ) |
1983 |
1983 |
1984 # Python |
1984 # Python |
1985 pythonlib = None |
1985 pythonlib = None |
1986 if util.safehasattr(os, '__file__'): |
1986 if hasattr(os, '__file__'): |
1987 pythonlib = os.path.dirname(pycompat.fsencode(os.__file__)) |
1987 pythonlib = os.path.dirname(pycompat.fsencode(os.__file__)) |
1988 elif getattr(sys, 'oxidized', False): |
1988 elif getattr(sys, 'oxidized', False): |
1989 pythonlib = pycompat.sysexecutable |
1989 pythonlib = pycompat.sysexecutable |
1990 |
1990 |
1991 fm.write( |
1991 fm.write( |
2063 b'+'.join(hgver.split(b'+')[1:]), |
2063 b'+'.join(hgver.split(b'+')[1:]), |
2064 ) |
2064 ) |
2065 |
2065 |
2066 # compiled modules |
2066 # compiled modules |
2067 hgmodules = None |
2067 hgmodules = None |
2068 if util.safehasattr(sys.modules[__name__], '__file__'): |
2068 if hasattr(sys.modules[__name__], '__file__'): |
2069 hgmodules = os.path.dirname(pycompat.fsencode(__file__)) |
2069 hgmodules = os.path.dirname(pycompat.fsencode(__file__)) |
2070 elif getattr(sys, 'oxidized', False): |
2070 elif getattr(sys, 'oxidized', False): |
2071 hgmodules = pycompat.sysexecutable |
2071 hgmodules = pycompat.sysexecutable |
2072 |
2072 |
2073 fm.write( |
2073 fm.write( |
2647 repo.unfiltered(), b'debugnodemap', file_, pycompat.byteskwargs(opts) |
2647 repo.unfiltered(), b'debugnodemap', file_, pycompat.byteskwargs(opts) |
2648 ) |
2648 ) |
2649 if isinstance(r, (manifest.manifestrevlog, filelog.filelog)): |
2649 if isinstance(r, (manifest.manifestrevlog, filelog.filelog)): |
2650 r = r._revlog |
2650 r = r._revlog |
2651 if opts['dump_new']: |
2651 if opts['dump_new']: |
2652 if util.safehasattr(r.index, "nodemap_data_all"): |
2652 if hasattr(r.index, "nodemap_data_all"): |
2653 data = r.index.nodemap_data_all() |
2653 data = r.index.nodemap_data_all() |
2654 else: |
2654 else: |
2655 data = nodemap.persistent_data(r.index) |
2655 data = nodemap.persistent_data(r.index) |
2656 ui.write(data) |
2656 ui.write(data) |
2657 elif opts['dump_disk']: |
2657 elif opts['dump_disk']: |