summaryrefslogtreecommitdiff
path: root/hgsubversion/wrappers.py
diff options
context:
space:
mode:
authorQijiang Fan <fqj1994@gmail.com>2012-06-08 17:42:38 +0800
committerQijiang Fan <fqj1994@gmail.com>2012-06-08 17:42:38 +0800
commit41ab46d551a1287a4dfb60d04e132af468923d95 (patch)
treee3523593e894b9ae7dffb9e57856b5909096737c /hgsubversion/wrappers.py
parent4d96cae645ca33d56b4a4961f2b59bef82773b58 (diff)
Upstream version 1.4
Diffstat (limited to 'hgsubversion/wrappers.py')
-rw-r--r--hgsubversion/wrappers.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/hgsubversion/wrappers.py b/hgsubversion/wrappers.py
index 3c16b31..e255569 100644
--- a/hgsubversion/wrappers.py
+++ b/hgsubversion/wrappers.py
@@ -1,6 +1,11 @@
from hgext import rebase as hgrebase
from mercurial import cmdutil
+try:
+ from mercurial import discovery
+ discovery.nullid # force demandimport to import the module
+except ImportError:
+ discovery = None
from mercurial import patch
from mercurial import hg
from mercurial import util as hgutil
@@ -90,7 +95,14 @@ def findcommonoutgoing(repo, other, onlyheads=None, force=False, commoninc=None)
meta = repo.svnmeta(svn.uuid, svn.subdir)
parent = repo.parents()[0].node()
hashes = meta.revmap.hashes()
- return util.outgoing_common_and_heads(repo, hashes, parent)
+ common, heads = util.outgoing_common_and_heads(repo, hashes, parent)
+ if discovery is not None:
+ outobj = getattr(discovery, 'outgoing', None)
+ if outobj is not None:
+ # Mercurial 2.1 and later
+ return outobj(repo.changelog, common, heads)
+ # Mercurial 2.0 and earlier
+ return common, heads
def findoutgoing(repo, dest=None, heads=None, force=False):
@@ -98,7 +110,7 @@ def findoutgoing(repo, dest=None, heads=None, force=False):
"""
assert dest.capable('subversion')
# split off #rev; TODO implement --revision/#rev support
- #svnurl, revs, checkout = util.parseurl(dest.svnurl, heads)
+ # svnurl, revs, checkout = util.parseurl(dest.svnurl, heads)
svn = dest.svn
meta = repo.svnmeta(svn.uuid, svn.subdir)
parent = repo.parents()[0].node()
@@ -354,11 +366,11 @@ def pull(repo, source, heads=[], force=False):
converted = True
firstrun = False
- except svnwrap.SubversionRepoCanNotReplay, e: #pragma: no cover
+ except svnwrap.SubversionRepoCanNotReplay, e: # pragma: no cover
ui.status('%s\n' % e.message)
stupidmod.print_your_svn_is_old_message(ui)
have_replay = False
- except svnwrap.SubversionException, e: #pragma: no cover
+ except svnwrap.SubversionException, e: # pragma: no cover
if (e.args[1] == svnwrap.ERR_RA_DAV_REQUEST_FAILED
and '502' in str(e)
and tries < 3):
@@ -476,6 +488,8 @@ def clone(orig, ui, source, dest=None, **opts):
data['srcrepo'], data['dstrepo'] = orig(ui, *args, **opts)
+ return data['srcrepo'], data['dstrepo']
+
for opt, (section, name) in optionmap.iteritems():
if opt in opts and opts[opt]:
ui.setconfig(section, name, str(opts.pop(opt)))