changeset 110:18897318f6e1

Merge from pmezard/hgforest-crew
author Michael Tharp <mtharp@rpath.com>
date Fri, 03 Dec 2010 14:02:18 -0500
parents 765bee053287 (current diff) 3647b4bed1a1 (diff)
children b3aa740a13f8
files forest.py
diffstat 2 files changed, 51 insertions(+), 69 deletions(-) [+]
line wrap: on
line diff
--- a/forest.py	Fri Dec 03 13:53:49 2010 -0500
+++ b/forest.py	Fri Dec 03 14:02:18 2010 -0500
@@ -98,7 +98,13 @@
     parseurl = cmdutil.parseurl
 except:
     try:
-        parseurl = hg.parseurl
+        _parseurl = hg.parseurl
+        def parseurl(url, branches=None):
+            url, revs = _parseurl(url, branches)
+            if isinstance(revs, tuple):
+                # hg >= 1.6
+                return url, revs[1]
+            return url, revs
     except:
         def parseurl(url, revs):
             """Mercurial <= 0.9.3 doesn't have this feature."""
@@ -210,6 +216,13 @@
 
 localrepo.localrepository.forests = _localrepo_forests
 
+def repocall(repo, *args, **kwargs):
+    if hasattr(repo, '_call'):
+        # hg >= 1.7
+        callfn = repo._call
+    else:
+        callfn = repo.do_read
+    return callfn(*args, **kwargs)
 
 def _sshrepo_forests(self, walkhg):
     """Shim this function into mercurial.sshrepo.sshrepository so
@@ -222,13 +235,7 @@
         raise util.Abort(_("Remote forests cannot be cloned because the "
                            "other repository doesn't support the forest "
                            "extension."))
-    if hasattr(self, 'call'):
-        # hg < 1.7
-        func = self.call
-    else:
-        # hg >= 1.7
-        func = self._call
-    data = func("forests", walkhg=("", "True")[walkhg])
+    data = repocall(self, "forests", walkhg=("", "True")[walkhg])
     return data.splitlines()
 
 sshrepo.sshrepository.forests = _sshrepo_forests
@@ -280,13 +287,7 @@
         raise util.Abort(_("Remote forests cannot be cloned because the "
                            "other repository doesn't support the forest "
                            "extension."))
-    if hasattr(self, 'do_read'):
-        # < 1.7
-        func = self.do_read
-    else:
-        # >= 1.7
-        func = self._call
-    data = func("forests", walkhg=("", "True")[walkhg])
+    data = repocall(self, "forests", walkhg=("", "True")[walkhg])
     return data.splitlines()
 
 httprepo.httprepository.forests = _httprepo_forests
@@ -681,13 +682,10 @@
         if paths:
             # Extract revisions from # syntax in path.
             paths[0], revs = parseurl(paths[0], opts['rev'])[0:2]
-            if isinstance(revs, tuple):
-                # hg >= 1.6
-                revs = revs[1]
         elif 'rev' in opts:
             revs = opts['rev']
         else:
-            revs = None
+            revs = []
         die_on_numeric_revs(revs)
         for tree in self.trees:
             rpath = relpath(self.top().root, tree.root)
@@ -1252,8 +1250,9 @@
         def __init__(self, transform, ui):
             self._transform = transform
             self._ui = ui
-        def write(self, output, **kwargs):
-            self._ui.write(self._transform(output), **kwargs)
+        def write(self, *args, **opts):
+            args = [self._transform(a) for a in args]
+            self._ui.write(*args, **opts)
         def __getattr__(self, attrname):
             return getattr(self._ui, attrname)
 
--- a/test-forest.out	Fri Dec 03 13:53:49 2010 -0500
+++ b/test-forest.out	Fri Dec 03 14:02:18 2010 -0500
@@ -37,23 +37,23 @@
 
 # fclone
 [.]
-updating working directory
+updating to branch default
 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [d/d/t]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [e/d]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t/t]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 # fsnap
@@ -239,42 +239,38 @@
 summary:     new line
 
 # fseed
-updating working directory
+updating to branch default
 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
 [d/d/t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [e/d]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t/t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [tree1]
@@ -413,7 +409,7 @@
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t/t]
@@ -422,7 +418,7 @@
 adding manifests
 adding file changes
 added 2 changesets with 2 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 # foutgoing
@@ -631,39 +627,35 @@
 
 # fseed and fpull, missing section
 [.]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 3 changes to 3 files
-updating working directory
+updating to branch default
 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [e/d]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t/t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 .
@@ -671,30 +663,27 @@
 t
 t/t
 [e/d]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t/t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 .
@@ -703,7 +692,6 @@
 t/t
 [.]
 pulling from HGTMP/test-forest/toplevel
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
@@ -727,48 +715,43 @@
 
 # fseed and fpull, named section
 [.]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 3 changes to 3 files
-updating working directory
+updating to branch default
 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [d/d/t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [e/d]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t/t]
-requesting all changes
 adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 .
@@ -821,15 +804,15 @@
 
 # fclone + mq
 [.]
-updating working directory
+updating to branch default
 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [d/d/t]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [e/d]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [t]
@@ -839,7 +822,7 @@
 skipped: 't/t' has mq patches applied
 
 [t/t/.hg/patches]
-updating working directory
+updating to branch default
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 # fsnap + mq
@@ -938,15 +921,15 @@
 adding f
 adding f
 [.]
-updating working directory
+updating to branch default
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [a]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [b]
-updating working directory
+updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 [.]