diff mercurial/hg.py @ 83:9fd5b35cfc45

Add -q quiet option Make -d and -v do something Add a bunch of debug and note messages
author mpm@selenic.com
date Tue, 17 May 2005 11:06:59 -0800
parents 837d473d54d5
children 58a1a0425c9b
line wrap: on
line diff
--- a/mercurial/hg.py	Tue May 17 10:13:00 2005 -0800
+++ b/mercurial/hg.py	Tue May 17 11:06:59 2005 -0800
@@ -468,6 +468,7 @@
         new = {}
         linkrev = self.changelog.count()
         for f in update:
+            self.ui.note(f + "\n")
             try:
                 t = file(f).read()
             except IOError:
@@ -515,6 +516,7 @@
         l.sort()
         stats = []
         for f in l:
+            self.ui.note(f + "\n")
             r = self.file(f)
             t = r.revision(mmap[f])
             try:
@@ -656,23 +658,29 @@
 
     def getchangegroup(self, remote):
         tip = remote.branches([])[0]
+        self.ui.debug("remote tip branch is %s:%s\n" %
+                      (short(tip[0]), short(tip[1])))
         m = self.changelog.nodemap
         unknown = [tip]
         search = []
         fetch = []
 
         if tip[0] in m:
+            self.ui.note("nothing to do!\n")
             return None
 
         while unknown:
             n = unknown.pop(0)
             if n == nullid: break
             if n[1] and n[1] in m: # do we know the base?
+                self.ui.debug("found incomplete branch %s\n" % short(n[1]))
                 search.append(n) # schedule branch range for scanning
             else:
                 for b in remote.branches([n[2], n[3]]):
                     if b[0] in m:
                         if n[1] not in fetch:
+                            self.ui.debug("found new changeset %s\n" %
+                                          short(n[1]))
                             fetch.append(n[1]) # earliest unknown
                     else:
                         unknown.append(b)
@@ -685,15 +693,22 @@
             for i in l + [n[1]]:
                 if i in m:
                     if f <= 4:
+                        self.ui.debug("found new branch changeset %s\n" %
+                                          short(p))
                         fetch.append(p)
                     else:
+                        self.ui.debug("narrowed branch search to %s:%s\n"
+                                      % (short(p), short(i)))
                         search.append((p, i))
                     break
                 p, f = i, f * 2
 
         for f in fetch:
             if f in m:
-                raise "already have", hex(f[:4])
+                raise "already have", short(f[:4])
+
+        self.ui.note("merging new changesets starting at " +
+                     " ".join([short(f) for f in fetch]) + "\n")
 
         return remote.changegroup(fetch)
     
@@ -752,13 +767,13 @@
         tr = self.transaction()
         simple = True
 
-        print "merging changesets"
+        self.ui.status("merging changesets\n")
         # pull off the changeset group
         csg = getchunk()
         co = self.changelog.tip()
         cn = self.changelog.addgroup(csg, lambda x: self.changelog.count(), tr)
 
-        print "merging manifests"
+        self.ui.status("merging manifests\n")
         # pull off the manifest group
         mfg = getchunk()
         mo = self.manifest.tip()
@@ -770,7 +785,7 @@
             resolverev = self.changelog.count()
 
         # process the files
-        print "merging files"
+        self.ui.status("merging files\n")
         new = {}
         while 1:
             f = getchunk(4)
@@ -848,6 +863,7 @@
         self.ui = ui
 
     def do_cmd(self, cmd, **args):
+        self.ui.debug("sending %s command\n" % cmd)
         q = {"cmd": cmd}
         q.update(args)
         qs = urllib.urlencode(q)
@@ -884,8 +900,10 @@
         return localrepository(ui, path, create)
 
 class ui:
-    def __init__(self, verbose=False, debug=False):
-        self.verbose = verbose
+    def __init__(self, verbose=False, debug=False, quiet=False):
+        self.quiet = quiet and not verbose and not debug
+        self.verbose = verbose or debug
+        self.debugflag = debug
     def write(self, *args):
         for a in args:
             sys.stdout.write(str(a))
@@ -896,13 +914,13 @@
             if re.match(pat, r):
                 return r
     def status(self, *msg):
-        self.write(*msg)
+        if not self.quiet: self.write(*msg)
     def warn(self, msg):
         self.write(*msg)
     def note(self, msg):
         if self.verbose: self.write(*msg)
     def debug(self, msg):
-        if self.debug: self.write(*msg)
+        if self.debugflag: self.write(*msg)
     def edit(self, text):
         (fd, name) = tempfile.mkstemp("hg")
         f = os.fdopen(fd, "w")