diff options
author | Qijiang Fan <fqj1994@gmail.com> | 2012-06-08 17:42:38 +0800 |
---|---|---|
committer | Qijiang Fan <fqj1994@gmail.com> | 2012-06-08 17:42:38 +0800 |
commit | 41ab46d551a1287a4dfb60d04e132af468923d95 (patch) | |
tree | e3523593e894b9ae7dffb9e57856b5909096737c /hgsubversion/wrappers.py | |
parent | 4d96cae645ca33d56b4a4961f2b59bef82773b58 (diff) |
Upstream version 1.4
Diffstat (limited to 'hgsubversion/wrappers.py')
-rw-r--r-- | hgsubversion/wrappers.py | 22 |
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))) |