mercurial/commands.py
changeset 17956 a08775ec89f2
parent 17950 a1f94e2f5da2
child 17969 6c67deb3d373
equal deleted inserted replaced
17955:4ae21a7568f3 17956:a08775ec89f2
  1511         nodeids = []
  1511         nodeids = []
  1512         id = 0
  1512         id = 0
  1513         ui.progress(_('building'), id, unit=_('revisions'), total=total)
  1513         ui.progress(_('building'), id, unit=_('revisions'), total=total)
  1514         for type, data in dagparser.parsedag(text):
  1514         for type, data in dagparser.parsedag(text):
  1515             if type == 'n':
  1515             if type == 'n':
  1516                 ui.note('node %s\n' % str(data))
  1516                 ui.note(('node %s\n' % str(data)))
  1517                 id, ps = data
  1517                 id, ps = data
  1518 
  1518 
  1519                 files = []
  1519                 files = []
  1520                 fctxs = {}
  1520                 fctxs = {}
  1521 
  1521 
  1572                 nodeid = repo.commitctx(cx)
  1572                 nodeid = repo.commitctx(cx)
  1573                 nodeids.append(nodeid)
  1573                 nodeids.append(nodeid)
  1574                 at = id
  1574                 at = id
  1575             elif type == 'l':
  1575             elif type == 'l':
  1576                 id, name = data
  1576                 id, name = data
  1577                 ui.note('tag %s\n' % name)
  1577                 ui.note(('tag %s\n' % name))
  1578                 tags.append("%s %s\n" % (hex(repo.changelog.node(id)), name))
  1578                 tags.append("%s %s\n" % (hex(repo.changelog.node(id)), name))
  1579             elif type == 'a':
  1579             elif type == 'a':
  1580                 ui.note('branch %s\n' % data)
  1580                 ui.note(('branch %s\n' % data))
  1581                 atbranch = data
  1581                 atbranch = data
  1582             ui.progress(_('building'), id, unit=_('revisions'), total=total)
  1582             ui.progress(_('building'), id, unit=_('revisions'), total=total)
  1583         tr.close()
  1583         tr.close()
  1584 
  1584 
  1585         if tags:
  1585         if tags:
  1593     """lists the contents of a bundle"""
  1593     """lists the contents of a bundle"""
  1594     f = hg.openpath(ui, bundlepath)
  1594     f = hg.openpath(ui, bundlepath)
  1595     try:
  1595     try:
  1596         gen = changegroup.readbundle(f, bundlepath)
  1596         gen = changegroup.readbundle(f, bundlepath)
  1597         if all:
  1597         if all:
  1598             ui.write("format: id, p1, p2, cset, delta base, len(delta)\n")
  1598             ui.write(("format: id, p1, p2, cset, delta base, len(delta)\n"))
  1599 
  1599 
  1600             def showchunks(named):
  1600             def showchunks(named):
  1601                 ui.write("\n%s\n" % named)
  1601                 ui.write("\n%s\n" % named)
  1602                 chain = None
  1602                 chain = None
  1603                 while True:
  1603                 while True:
  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')),
  1977         filelog = repo.file(file_)
  1977         filelog = repo.file(file_)
  1978         if len(filelog):
  1978         if len(filelog):
  1979             r = filelog
  1979             r = filelog
  1980     if not r:
  1980     if not r:
  1981         r = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), file_)
  1981         r = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), file_)
  1982     ui.write("digraph G {\n")
  1982     ui.write(("digraph G {\n"))
  1983     for i in r:
  1983     for i in r:
  1984         node = r.node(i)
  1984         node = r.node(i)
  1985         pp = r.parents(node)
  1985         pp = r.parents(node)
  1986         ui.write("\t%d -> %d\n" % (r.rev(pp[0]), i))
  1986         ui.write("\t%d -> %d\n" % (r.rev(pp[0]), i))
  1987         if pp[1] != nullid:
  1987         if pp[1] != nullid:
  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)