Mercurial > hg
changeset 248:b7645b3c86ff
migrate remaining commands
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
migrate remaining commands
This removes basically everything from the top-level hg script
manifest hash: 34883e89d8def30e28936b38a9342d2f650f4c94
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCoiD7ywK+sNU5EO8RAh0cAKCeOO9vahYs0tGmMNKk8bflw35p2wCgr6Wr
y0SNLHSVBMCzXtC9zlfDPog=
=3nJx
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Sat, 04 Jun 2005 13:45:31 -0800 |
parents | 863b508c5b36 |
children | 619e775aa7f9 |
files | hg mercurial/commands.py |
diffstat | 2 files changed, 67 insertions(+), 101 deletions(-) [+] |
line wrap: on
line diff
--- a/hg Sat Jun 04 12:24:23 2005 -0800 +++ b/hg Sat Jun 04 13:45:31 2005 -0800 @@ -17,105 +17,7 @@ # pass import sys -from mercurial import hg, fancyopts, ui, commands - -try: - sys.exit(commands.dispatch(sys.argv[1:])) -except commands.UnknownCommand: - # fall through - pass - -options = {} -opts = [('v', 'verbose', None, 'verbose'), - ('d', 'debug', None, 'debug'), - ('q', 'quiet', None, 'quiet'), - ('y', 'noninteractive', None, 'run non-interactively'), - ] - -args = fancyopts.fancyopts(sys.argv[1:], opts, options, - 'hg [options] <command> [command options] [files]') - -try: - cmd = args[0] - args = args[1:] -except: - cmd = "help" - -ui = ui.ui(options["verbose"], options["debug"], options["quiet"], - not options["noninteractive"]) - -try: - repo = hg.repository(ui=ui) -except IOError: - ui.warn("Unable to open repository\n") - sys.exit(0) - -if cmd == "debugchangegroup": - newer = repo.newer(map(repo.lookup, args)) - for chunk in repo.changegroup(newer): - sys.stdout.write(chunk) - -elif cmd == "debugaddchangegroup": - data = sys.stdin.read() - repo.addchangegroup(data) - -elif cmd == "dump": - if args: - r = repo.file(args[0]) - n = r.tip() - if len(args) > 1: n = r.lookup(args[1]) - sys.stdout.write(r.read(n)) - else: - print "missing filename" +from mercurial import commands -elif cmd == "dumpmanifest": - n = repo.manifest.tip() - if len(args) > 0: - n = repo.manifest.lookup(args[0]) - m = repo.manifest.read(n) - files = m.keys() - files.sort() - - for f in files: - print hg.hex(m[f]), f - -elif cmd == "debugindex": - if ".hg" not in args[0]: - args[0] = ".hg/data/" + repo.file(args[0]).encodepath(args[0]) + "i" - - r = hg.revlog(open, args[0], "") - print " rev offset length base linkrev"+\ - " p1 p2 nodeid" - for i in range(r.count()): - e = r.index[i] - print "% 6d % 9d % 7d % 6d % 7d %s.. %s.. %s.." % ( - i, e[0], e[1], e[2], e[3], - hg.hex(e[4][:5]), hg.hex(e[5][:5]), hg.hex(e[6][:5])) +sys.exit(commands.dispatch(sys.argv[1:])) -elif cmd == "debugindexdot": - if ".hg" not in args[0]: - args[0] = ".hg/data/" + repo.file(args[0]).encodepath(args[0]) + "i" - - r = hg.revlog(open, args[0], "") - print "digraph G {" - for i in range(r.count()): - e = r.index[i] - print "\t%d -> %d" % (r.rev(e[4]), i) - if e[5] != hg.nullid: - print "\t%d -> %d" % (r.rev(e[5]), i) - print "}" - -elif cmd == "tags": - repo.lookup(0) # prime the cache - i = repo.tags.items() - i.sort() - for k, n in i: - try: - r = repo.changelog.rev(n) - except KeyError: - r = "?" - print "%-30s %5d:%s" % (k, repo.changelog.rev(n), hg.hex(n)) - -else: - if cmd: ui.warn("unknown command\n\n") - sys.exit(1)
--- a/mercurial/commands.py Sat Jun 04 12:24:23 2005 -0800 +++ b/mercurial/commands.py Sat Jun 04 13:45:31 2005 -0800 @@ -151,6 +151,12 @@ # this should eventually support remote repos os.system("cp -al %s/.hg .hg" % path) +def cat(ui, repo, file, rev = []): + r = repo.file(file) + n = r.tip() + if rev: n = r.lookup(rev) + sys.stdout.write(r.read(n)) + def checkout(ui, repo, changeset=None): '''checkout a given changeset or the current tip''' (c, a, d, u) = repo.diffdir(repo.root) @@ -167,6 +173,35 @@ """commit the specified files or all outstanding changes""" repo.commit(relpath(repo, files)) +def debugaddchangegroup(ui, repo): + data = sys.stdin.read() + repo.addchangegroup(data) + +def debugchangegroup(ui, repo, roots): + newer = repo.newer(map(repo.lookup, roots)) + for chunk in repo.changegroup(newer): + sys.stdout.write(chunk) + +def debugindex(ui, file): + r = hg.revlog(open, file, "") + print " rev offset length base linkrev"+\ + " p1 p2 nodeid" + for i in range(r.count()): + e = r.index[i] + print "% 6d % 9d % 7d % 6d % 7d %s.. %s.. %s.." % ( + i, e[0], e[1], e[2], e[3], + hg.hex(e[4][:5]), hg.hex(e[5][:5]), hg.hex(e[6][:5])) + +def debugindexdot(ui, file): + r = hg.revlog(open, file, "") + print "digraph G {" + for i in range(r.count()): + e = r.index[i] + print "\t%d -> %d" % (r.rev(e[4]), i) + if e[5] != hg.nullid: + print "\t%d -> %d" % (r.rev(e[5]), i) + print "}" + def diff(ui, repo, *files, **opts): revs = [] if opts['rev']: @@ -300,6 +335,17 @@ print changes[4].rstrip() print +def manifest(ui, repo, rev = []): + n = repo.manifest.tip() + if rev: + n = repo.manifest.lookup(rev) + m = repo.manifest.read(n) + files = m.keys() + files.sort() + + for f in files: + print hg.hex(m[f]), f + def parents(ui, repo, node = None): '''show the parents of the current working dir''' if node: @@ -381,6 +427,17 @@ for f in d: print "R", f for f in u: print "?", f +def tags(ui, repo): + repo.lookup(0) # prime the cache + i = repo.tags.items() + i.sort() + for k, n in i: + try: + r = repo.changelog.rev(n) + except KeyError: + r = "?" + print "%-30s %5d:%s" % (k, repo.changelog.rev(n), hg.hex(n)) + def tip(ui, repo): n = repo.changelog.tip() t = repo.changelog.rev(n) @@ -403,8 +460,13 @@ ('c', 'changeset', None, 'show changeset')], 'hg annotate [-u] [-c] [-n] [-r id] [files]'), "branch|clone": (branch, [], 'hg branch [path]'), + "cat|dump": (cat, [], 'hg cat <file> [rev]'), "checkout|co": (checkout, [], 'hg checkout [changeset]'), "commit|ci": (commit, [], 'hg commit [files]'), + "debugaddchangegroup": (debugaddchangegroup, [], 'debugaddchangegroup'), + "debugchangegroup": (debugchangegroup, [], 'debugchangegroup [roots]'), + "debugindex": (debugindex, [], 'debugindex <file>'), + "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'), "diff": (diff, [('r', 'rev', [], 'revision')], 'hg diff [-r A] [-r B] [files]'), "export": (export, [], "hg export <changeset>"), @@ -414,6 +476,7 @@ "help": (help, [], 'hg help [command]'), "init": (init, [], 'hg init'), "log": (log, [], 'hg log <file>'), + "manifest|dumpmanifest": (manifest, [], 'hg manifest [rev]'), "parents": (parents, [], 'hg parents [node]'), "patch|import": (patch, [('p', 'strip', 1, 'path strip'), @@ -438,12 +501,13 @@ ('t', 'templates', "", 'template map')], "hg serve [options]"), "status": (status, [], 'hg status'), + "tags": (tags, [], 'hg tags'), "tip": (tip, [], 'hg tip'), "undo": (undo, [], 'hg undo'), "verify": (verify, [], 'hg verify'), } -norepo = "init branch help" +norepo = "init branch help debugindex debugindexdot" def find(cmd): i = None