# HG changeset patch # User Patrick Mezard # Date 1292164345 -3600 # Node ID f025d00bfc4a3d88ca3b18b75fad15d5f51cdfae # Parent 7597ea43a37e6f717cf9cb147b14fb4485fddc7c svnexternals: add 'ignore' mode to avoid converting externals diff --git a/hgsubversion/help/subversion.rst b/hgsubversion/help/subversion.rst --- a/hgsubversion/help/subversion.rst +++ b/hgsubversion/help/subversion.rst @@ -316,7 +316,7 @@ settings: Set to ``subrepos`` to switch to subrepos-based externals support (requires Mercurial 1.7.1 or later.) Default is ``svnexternals``, which uses a custom hgsubversion-specific format and works on - older versions of Mercurial. + older versions of Mercurial. Use ``ignore`` to avoid converting externals. The following options only have an effect on the initial clone of a repository: diff --git a/hgsubversion/svnexternals.py b/hgsubversion/svnexternals.py --- a/hgsubversion/svnexternals.py +++ b/hgsubversion/svnexternals.py @@ -343,6 +343,8 @@ def getchanges(ui, repo, parentctx, exts hgsubstate.append('%s %s\n' % (rev, path)) files['.hgsub'] = ''.join(hgsub) files['.hgsubstate'] = ''.join(hgsubstate) + elif mode == 'ignore': + files = {} else: raise hgutil.Abort(_('unknown externals modes: %s') % mode) @@ -375,6 +377,8 @@ def parse(ui, ctx): rev = 'HEAD' line = norevline.replace('{REV}', rev) external.setdefault(base, []).append(line) + elif mode == 'ignore': + pass else: raise hgutil.Abort(_('unknown externals modes: %s') % mode) return external diff --git a/tests/test_externals.py b/tests/test_externals.py --- a/tests/test_externals.py +++ b/tests/test_externals.py @@ -214,6 +214,15 @@ 2 deps/project2 def test_hgsub_stupid(self): self.test_hgsub(True) + def test_ignore(self): + repo = self._load_fixture_and_fetch('externals.svndump', + externals='ignore') + for rev in repo: + ctx = repo[rev] + self.assertTrue('.hgsvnexternals' not in ctx) + self.assertTrue('.hgsub' not in ctx) + self.assertTrue('.hgsubstate' not in ctx) + def test_updatehgsub(self): def checkdeps(ui, repo, rev, deps, nodeps): commands.update(ui, repo, node=str(rev))