# HG changeset patch # User David Schleimer # Date 1366842213 25200 # Node ID d507c1a12dcb9b69a6f61e5eeabafb7b3fb645be # Parent e8cd211684c47c85851f9f3f89baab6896d8eb8f layouts: refactor mercurial branch to svn path mapping out of svnmeta This leaves the existing svnmeta.remotename as a proxy to the new layout objects rather than updating any of the callsites. diff --git a/hgsubversion/layouts/base.py b/hgsubversion/layouts/base.py --- a/hgsubversion/layouts/base.py +++ b/hgsubversion/layouts/base.py @@ -18,3 +18,7 @@ class BaseLayout(object): """Compute the local name for a branch located at path. """ self.__unimplemented('localname') + + def remotename(self, branch): + """Compute a subversion path for a mercurial branch name""" + self.__unimplemented('remotename') diff --git a/hgsubversion/layouts/single.py b/hgsubversion/layouts/single.py --- a/hgsubversion/layouts/single.py +++ b/hgsubversion/layouts/single.py @@ -7,3 +7,6 @@ class SingleLayout(base.BaseLayout): def localname(self, path): return 'default' + + def remotename(self, branch): + return '' diff --git a/hgsubversion/layouts/standard.py b/hgsubversion/layouts/standard.py --- a/hgsubversion/layouts/standard.py +++ b/hgsubversion/layouts/standard.py @@ -12,3 +12,10 @@ class StandardLayout(base.BaseLayout): elif path.startswith('branches/'): return path[len('branches/'):] return '../%s' % path + + def remotename(self, branch): + if branch == 'default' or branch is None: + return 'trunk' + elif branch.startswith('../'): + return branch[3:] + return 'branches/%s' % branch diff --git a/hgsubversion/svnmeta.py b/hgsubversion/svnmeta.py --- a/hgsubversion/svnmeta.py +++ b/hgsubversion/svnmeta.py @@ -225,13 +225,7 @@ class SVNMeta(object): return self.layoutobj.localname(path) def remotename(self, branch): - if self.layout == 'single': - return '' - if branch == 'default' or branch is None: - return 'trunk' - elif branch.startswith('../'): - return branch[3:] - return 'branches/%s' % branch + return self.layoutobj.remotename(branch) def genextra(self, revnum, branch): extra = {}