# HG changeset patch # User Michael Tharp # Date 1291402938 18000 # Node ID 18897318f6e115827f81a72c88d43a7aa09d6d84 # Parent 765bee053287f53e61be9b29a4fd101537eea018# Parent 3647b4bed1a156156330b7bc000b7a116f06ee07 Merge from pmezard/hgforest-crew diff -r 765bee053287 -r 18897318f6e1 forest.py --- 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) diff -r 765bee053287 -r 18897318f6e1 test-forest.out --- 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 [.]