migrate remaining commands
authormpm@selenic.com
Sat, 04 Jun 2005 13:45:31 -0800
changeset 248 b7645b3c86ff
parent 247 863b508c5b36
child 249 619e775aa7f9
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-----
hg
mercurial/commands.py
--- 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