1785 """parse and display a date""" |
1785 """parse and display a date""" |
1786 if opts["extended"]: |
1786 if opts["extended"]: |
1787 d = util.parsedate(date, util.extendeddateformats) |
1787 d = util.parsedate(date, util.extendeddateformats) |
1788 else: |
1788 else: |
1789 d = util.parsedate(date) |
1789 d = util.parsedate(date) |
1790 ui.write("internal: %s %s\n" % d) |
1790 ui.write(("internal: %s %s\n") % d) |
1791 ui.write("standard: %s\n" % util.datestr(d)) |
1791 ui.write(("standard: %s\n") % util.datestr(d)) |
1792 if range: |
1792 if range: |
1793 m = util.matchdate(range) |
1793 m = util.matchdate(range) |
1794 ui.write("match: %s\n" % m(d[0])) |
1794 ui.write(("match: %s\n") % m(d[0])) |
1795 |
1795 |
1796 @command('debugdiscovery', |
1796 @command('debugdiscovery', |
1797 [('', 'old', None, _('use old-style discovery')), |
1797 [('', 'old', None, _('use old-style discovery')), |
1798 ('', 'nonheads', None, |
1798 ('', 'nonheads', None, |
1799 _('use old-style discovery with non-heads included')), |
1799 _('use old-style discovery with non-heads included')), |
1819 remote = localrepo.locallegacypeer(remote.local()) |
1819 remote = localrepo.locallegacypeer(remote.local()) |
1820 common, _in, hds = treediscovery.findcommonincoming(repo, remote, |
1820 common, _in, hds = treediscovery.findcommonincoming(repo, remote, |
1821 force=True) |
1821 force=True) |
1822 common = set(common) |
1822 common = set(common) |
1823 if not opts.get('nonheads'): |
1823 if not opts.get('nonheads'): |
1824 ui.write("unpruned common: %s\n" % " ".join([short(n) |
1824 ui.write(("unpruned common: %s\n") % " ".join([short(n) |
1825 for n in common])) |
1825 for n in common])) |
1826 dag = dagutil.revlogdag(repo.changelog) |
1826 dag = dagutil.revlogdag(repo.changelog) |
1827 all = dag.ancestorset(dag.internalizeall(common)) |
1827 all = dag.ancestorset(dag.internalizeall(common)) |
1828 common = dag.externalizeall(dag.headsetofconnecteds(all)) |
1828 common = dag.externalizeall(dag.headsetofconnecteds(all)) |
1829 else: |
1829 else: |
1830 common, any, hds = setdiscovery.findcommonheads(ui, repo, remote) |
1830 common, any, hds = setdiscovery.findcommonheads(ui, repo, remote) |
1831 common = set(common) |
1831 common = set(common) |
1832 rheads = set(hds) |
1832 rheads = set(hds) |
1833 lheads = set(repo.heads()) |
1833 lheads = set(repo.heads()) |
1834 ui.write("common heads: %s\n" % " ".join([short(n) for n in common])) |
1834 ui.write(("common heads: %s\n") % " ".join([short(n) for n in common])) |
1835 if lheads <= common: |
1835 if lheads <= common: |
1836 ui.write("local is subset\n") |
1836 ui.write(("local is subset\n")) |
1837 elif rheads <= common: |
1837 elif rheads <= common: |
1838 ui.write("remote is subset\n") |
1838 ui.write(("remote is subset\n")) |
1839 |
1839 |
1840 serverlogs = opts.get('serverlog') |
1840 serverlogs = opts.get('serverlog') |
1841 if serverlogs: |
1841 if serverlogs: |
1842 for filename in serverlogs: |
1842 for filename in serverlogs: |
1843 logfile = open(filename, 'r') |
1843 logfile = open(filename, 'r') |
1877 |
1877 |
1878 @command('debugfsinfo', [], _('[PATH]')) |
1878 @command('debugfsinfo', [], _('[PATH]')) |
1879 def debugfsinfo(ui, path = "."): |
1879 def debugfsinfo(ui, path = "."): |
1880 """show information detected about current filesystem""" |
1880 """show information detected about current filesystem""" |
1881 util.writefile('.debugfsinfo', '') |
1881 util.writefile('.debugfsinfo', '') |
1882 ui.write('exec: %s\n' % (util.checkexec(path) and 'yes' or 'no')) |
1882 ui.write(('exec: %s\n') % (util.checkexec(path) and 'yes' or 'no')) |
1883 ui.write('symlink: %s\n' % (util.checklink(path) and 'yes' or 'no')) |
1883 ui.write(('symlink: %s\n') % (util.checklink(path) and 'yes' or 'no')) |
1884 ui.write('case-sensitive: %s\n' % (util.checkcase('.debugfsinfo') |
1884 ui.write(('case-sensitive: %s\n') % (util.checkcase('.debugfsinfo') |
1885 and 'yes' or 'no')) |
1885 and 'yes' or 'no')) |
1886 os.unlink('.debugfsinfo') |
1886 os.unlink('.debugfsinfo') |
1887 |
1887 |
1888 @command('debuggetbundle', |
1888 @command('debuggetbundle', |
1889 [('H', 'head', [], _('id of head node'), _('ID')), |
1889 [('H', 'head', [], _('id of head node'), _('ID')), |
2323 return basepcfmtstr % (len(str(max)), ' ' * padding) |
2323 return basepcfmtstr % (len(str(max)), ' ' * padding) |
2324 |
2324 |
2325 def pcfmt(value, total): |
2325 def pcfmt(value, total): |
2326 return (value, 100 * float(value) / total) |
2326 return (value, 100 * float(value) / total) |
2327 |
2327 |
2328 ui.write('format : %d\n' % format) |
2328 ui.write(('format : %d\n') % format) |
2329 ui.write('flags : %s\n' % ', '.join(flags)) |
2329 ui.write(('flags : %s\n') % ', '.join(flags)) |
2330 |
2330 |
2331 ui.write('\n') |
2331 ui.write('\n') |
2332 fmt = pcfmtstr(totalsize) |
2332 fmt = pcfmtstr(totalsize) |
2333 fmt2 = dfmtstr(totalsize) |
2333 fmt2 = dfmtstr(totalsize) |
2334 ui.write('revisions : ' + fmt2 % numrevs) |
2334 ui.write(('revisions : ') + fmt2 % numrevs) |
2335 ui.write(' merges : ' + fmt % pcfmt(nummerges, numrevs)) |
2335 ui.write((' merges : ') + fmt % pcfmt(nummerges, numrevs)) |
2336 ui.write(' normal : ' + fmt % pcfmt(numrevs - nummerges, numrevs)) |
2336 ui.write((' normal : ') + fmt % pcfmt(numrevs - nummerges, numrevs)) |
2337 ui.write('revisions : ' + fmt2 % numrevs) |
2337 ui.write(('revisions : ') + fmt2 % numrevs) |
2338 ui.write(' full : ' + fmt % pcfmt(numfull, numrevs)) |
2338 ui.write((' full : ') + fmt % pcfmt(numfull, numrevs)) |
2339 ui.write(' deltas : ' + fmt % pcfmt(numdeltas, numrevs)) |
2339 ui.write((' deltas : ') + fmt % pcfmt(numdeltas, numrevs)) |
2340 ui.write('revision size : ' + fmt2 % totalsize) |
2340 ui.write(('revision size : ') + fmt2 % totalsize) |
2341 ui.write(' full : ' + fmt % pcfmt(fulltotal, totalsize)) |
2341 ui.write((' full : ') + fmt % pcfmt(fulltotal, totalsize)) |
2342 ui.write(' deltas : ' + fmt % pcfmt(deltatotal, totalsize)) |
2342 ui.write((' deltas : ') + fmt % pcfmt(deltatotal, totalsize)) |
2343 |
2343 |
2344 ui.write('\n') |
2344 ui.write('\n') |
2345 fmt = dfmtstr(max(avgchainlen, compratio)) |
2345 fmt = dfmtstr(max(avgchainlen, compratio)) |
2346 ui.write('avg chain length : ' + fmt % avgchainlen) |
2346 ui.write(('avg chain length : ') + fmt % avgchainlen) |
2347 ui.write('compression ratio : ' + fmt % compratio) |
2347 ui.write(('compression ratio : ') + fmt % compratio) |
2348 |
2348 |
2349 if format > 0: |
2349 if format > 0: |
2350 ui.write('\n') |
2350 ui.write('\n') |
2351 ui.write('uncompressed data size (min/max/avg) : %d / %d / %d\n' |
2351 ui.write(('uncompressed data size (min/max/avg) : %d / %d / %d\n') |
2352 % tuple(datasize)) |
2352 % tuple(datasize)) |
2353 ui.write('full revision size (min/max/avg) : %d / %d / %d\n' |
2353 ui.write(('full revision size (min/max/avg) : %d / %d / %d\n') |
2354 % tuple(fullsize)) |
2354 % tuple(fullsize)) |
2355 ui.write('delta size (min/max/avg) : %d / %d / %d\n' |
2355 ui.write(('delta size (min/max/avg) : %d / %d / %d\n') |
2356 % tuple(deltasize)) |
2356 % tuple(deltasize)) |
2357 |
2357 |
2358 if numdeltas > 0: |
2358 if numdeltas > 0: |
2359 ui.write('\n') |
2359 ui.write('\n') |
2360 fmt = pcfmtstr(numdeltas) |
2360 fmt = pcfmtstr(numdeltas) |
2361 fmt2 = pcfmtstr(numdeltas, 4) |
2361 fmt2 = pcfmtstr(numdeltas, 4) |
2362 ui.write('deltas against prev : ' + fmt % pcfmt(numprev, numdeltas)) |
2362 ui.write(('deltas against prev : ') + fmt % pcfmt(numprev, numdeltas)) |
2363 if numprev > 0: |
2363 if numprev > 0: |
2364 ui.write(' where prev = p1 : ' + fmt2 % pcfmt(nump1prev, |
2364 ui.write((' where prev = p1 : ') + fmt2 % pcfmt(nump1prev, |
2365 numprev)) |
2365 numprev)) |
2366 ui.write(' where prev = p2 : ' + fmt2 % pcfmt(nump2prev, |
2366 ui.write((' where prev = p2 : ') + fmt2 % pcfmt(nump2prev, |
2367 numprev)) |
2367 numprev)) |
2368 ui.write(' other : ' + fmt2 % pcfmt(numoprev, |
2368 ui.write((' other : ') + fmt2 % pcfmt(numoprev, |
2369 numprev)) |
2369 numprev)) |
2370 if gdelta: |
2370 if gdelta: |
2371 ui.write('deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas)) |
2371 ui.write(('deltas against p1 : ') |
2372 ui.write('deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas)) |
2372 + fmt % pcfmt(nump1, numdeltas)) |
2373 ui.write('deltas against other : ' + fmt % pcfmt(numother, |
2373 ui.write(('deltas against p2 : ') |
|
2374 + fmt % pcfmt(nump2, numdeltas)) |
|
2375 ui.write(('deltas against other : ') + fmt % pcfmt(numother, |
2374 numdeltas)) |
2376 numdeltas)) |
2375 |
2377 |
2376 @command('debugrevspec', [], ('REVSPEC')) |
2378 @command('debugrevspec', [], ('REVSPEC')) |
2377 def debugrevspec(ui, repo, expr): |
2379 def debugrevspec(ui, repo, expr): |
2378 """parse and apply a revision specification |
2380 """parse and apply a revision specification |
2446 _('revision to check'), _('REV'))], |
2448 _('revision to check'), _('REV'))], |
2447 _('[-r REV] [REV]')) |
2449 _('[-r REV] [REV]')) |
2448 def debugsub(ui, repo, rev=None): |
2450 def debugsub(ui, repo, rev=None): |
2449 ctx = scmutil.revsingle(repo, rev, None) |
2451 ctx = scmutil.revsingle(repo, rev, None) |
2450 for k, v in sorted(ctx.substate.items()): |
2452 for k, v in sorted(ctx.substate.items()): |
2451 ui.write('path %s\n' % k) |
2453 ui.write(('path %s\n') % k) |
2452 ui.write(' source %s\n' % v[0]) |
2454 ui.write((' source %s\n') % v[0]) |
2453 ui.write(' revision %s\n' % v[1]) |
2455 ui.write((' revision %s\n') % v[1]) |
2454 |
2456 |
2455 @command('debugwalk', walkopts, _('[OPTION]... [FILE]...')) |
2457 @command('debugwalk', walkopts, _('[OPTION]... [FILE]...')) |
2456 def debugwalk(ui, repo, *pats, **opts): |
2458 def debugwalk(ui, repo, *pats, **opts): |
2457 """show how files match on given patterns""" |
2459 """show how files match on given patterns""" |
2458 m = scmutil.match(repo[None], pats, opts) |
2460 m = scmutil.match(repo[None], pats, opts) |