summaryrefslogtreecommitdiff
path: root/hgsubversion/svnrepo.py
diff options
context:
space:
mode:
authorJavi Merino <vicho@debian.org>2015-04-26 10:39:12 +0100
committerJavi Merino <vicho@debian.org>2015-04-26 10:39:12 +0100
commite3dadeacf189da700cbcc4dde9c535d07534a347 (patch)
treebd66f19794ead77a150ffbe20427e3f4b14dc7db /hgsubversion/svnrepo.py
parent6e1b099dbc4754626cb8972659b4b19b9ed5c717 (diff)
Upstream version 1.8
Diffstat (limited to 'hgsubversion/svnrepo.py')
-rw-r--r--hgsubversion/svnrepo.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/hgsubversion/svnrepo.py b/hgsubversion/svnrepo.py
index 1bf604f..1f8f817 100644
--- a/hgsubversion/svnrepo.py
+++ b/hgsubversion/svnrepo.py
@@ -17,6 +17,7 @@ subclass: pull() is called on the instance pull *to*, but not the one pulled
import errno
from mercurial import error
+from mercurial import localrepo
from mercurial import util as hgutil
try:
@@ -71,10 +72,6 @@ def generate_repo_class(ui, repo):
"""
original = getattr(repo, fn.__name__, None)
- # remove when dropping support for hg < 1.6.
- if original is None and fn.__name__ == 'findoutgoing':
- return
-
def wrapper(self, *args, **opts):
capable = getattr(args[0], 'capable', lambda x: False)
if capable('subversion'):
@@ -99,21 +96,25 @@ def generate_repo_class(ui, repo):
self.pushkey('phases', self[hash].hex(), str(phases.draft), str(phases.public))
return hash
- # TODO use newbranch to allow branch creation in Subversion?
- @remotesvn
- def push(self, remote, force=False, revs=None, newbranch=None):
- return wrappers.push(self, remote, force, revs)
+ if hgutil.safehasattr(localrepo.localrepository, 'push'):
+ # Mercurial < 3.2
+ # TODO use newbranch to allow branch creation in Subversion?
+ @remotesvn
+ def push(self, remote, force=False, revs=None, newbranch=None):
+ return wrappers.push(self, remote, force, revs)
- @remotesvn
- def pull(self, remote, heads=[], force=False):
- return wrappers.pull(self, remote, heads, force)
+ if hgutil.safehasattr(localrepo.localrepository, 'pull'):
+ # Mercurial < 3.2
+ @remotesvn
+ def pull(self, remote, heads=[], force=False):
+ return wrappers.pull(self, remote, heads, force)
@remotesvn
def findoutgoing(self, remote, base=None, heads=None, force=False):
return wrappers.findoutgoing(repo, remote, heads, force)
- def svnmeta(self, uuid=None, subdir=None):
- return svnmeta.SVNMeta(self, uuid, subdir)
+ def svnmeta(self, uuid=None, subdir=None, skiperrorcheck=False):
+ return svnmeta.SVNMeta(self, uuid, subdir, skiperrorcheck)
repo.__class__ = svnlocalrepo