# HG changeset patch # User Augie Fackler # Date 1457119982 18000 # Node ID e1619c051788692046f83b068fb063e6cef7a133 # Parent abc87a62ff51efcc3f71ba835e08b2fdb3f30b3c# Parent 2ae4fb5bfab90f93ebf074e382798a7d2e67137a Merge with stable. diff --git a/hgsubversion/__init__.py b/hgsubversion/__init__.py --- a/hgsubversion/__init__.py +++ b/hgsubversion/__init__.py @@ -195,7 +195,8 @@ hg.schemes.update({ 'file': _lookup, 'ht 'svn': svnrepo, 'svn+ssh': svnrepo, 'svn+http': svnrepo, 'svn+https': svnrepo}) -commands.optionalrepo += ' svn' +if hgutil.safehasattr(commands, 'optionalrepo'): + commands.optionalrepo += ' svn' cmdtable = { "svn": diff --git a/hgsubversion/svncommands.py b/hgsubversion/svncommands.py --- a/hgsubversion/svncommands.py +++ b/hgsubversion/svncommands.py @@ -490,6 +490,9 @@ def svn(ui, repo, subcommand, *args, **o else: raise +svn.optionalrepo=True +svn.norepo = False + table = { 'genignore': genignore, 'info': info, diff --git a/hgsubversion/util.py b/hgsubversion/util.py --- a/hgsubversion/util.py +++ b/hgsubversion/util.py @@ -72,7 +72,7 @@ def gcdisable(orig): def parentrev(ui, repo, meta, hashes): """Find the svn parent revision of the repo's dirstate. """ - workingctx = repo.parents()[0] + workingctx = repo[None].parents()[0] outrev = outgoing_revisions(repo, hashes, workingctx.node()) if outrev: workingctx = repo[outrev[-1]].parents()[0] diff --git a/hgsubversion/wrappers.py b/hgsubversion/wrappers.py --- a/hgsubversion/wrappers.py +++ b/hgsubversion/wrappers.py @@ -128,7 +128,7 @@ def findcommonoutgoing(repo, other, only # split off #rev; TODO implement --revision/#rev support svn = other.svn meta = repo.svnmeta(svn.uuid, svn.subdir) - parent = repo.parents()[0].node() + parent = repo[None].parents()[0].node() hashes = meta.revmap.hashes() common, heads = util.outgoing_common_and_heads(repo, hashes, parent) outobj = getattr(discovery, 'outgoing', None) @@ -147,7 +147,7 @@ def findoutgoing(repo, dest=None, heads= # svnurl, revs, checkout = util.parseurl(dest.svnurl, heads) svn = dest.svn meta = repo.svnmeta(svn.uuid, svn.subdir) - parent = repo.parents()[0].node() + parent = repo[None].parents()[0].node() hashes = meta.revmap.hashes() return util.outgoing_revisions(repo, hashes, parent) @@ -160,7 +160,7 @@ def diff(orig, ui, repo, *args, **opts): meta = repo.svnmeta() hashes = meta.revmap.hashes() if not opts.get('rev', None): - parent = repo.parents()[0] + parent = repo[None].parents()[0] o_r = util.outgoing_revisions(repo, hashes, parent.node()) if o_r: parent = repo[o_r[-1]].parents()[0] @@ -213,7 +213,7 @@ def push(repo, dest, force, revs): # Strategy: # 1. Find all outgoing commits from this head - if len(repo.parents()) != 1: + if len(repo[None].parents()) != 1: ui.status('Cowardly refusing to push branch merge\n') return 0 # results in nonzero exit status, see hg's commands.py workingrev = repo[None].parents()[0] @@ -564,7 +564,7 @@ def rebase(orig, ui, repo, **opts): """ extra['branch'] = ctx.branch() extrafn = opts.get('svnextrafn', extrafn2) - sourcerev = opts.get('svnsourcerev', repo.parents()[0].node()) + sourcerev = opts.get('svnsourcerev', repo[None].parents()[0].node()) meta = repo.svnmeta() hashes = meta.revmap.hashes() o_r = util.outgoing_revisions(repo, hashes, sourcerev=sourcerev)