# HG changeset patch # User Dirkjan Ochtman # Date 1244788659 -7200 # Node ID 6086363e8230ab616468e326a5db533b81de5939 # Parent 8277113036f107543c0a7baa1128a1abec839c6b svnmeta: move util.build_extra() to SVNMeta.genextra() diff --git a/hgsubversion/editor.py b/hgsubversion/editor.py --- a/hgsubversion/editor.py +++ b/hgsubversion/editor.py @@ -173,7 +173,7 @@ class HgEditor(delta.Editor): revlog.nullid) if parents[0] in closedrevs and branch in self.meta.closebranches: continue - extra = util.build_extra(rev.revnum, branch, self.meta.uuid, self.meta.subdir) + extra = self.meta.genextra(rev.revnum, branch) if branch is not None: if (branch not in self.meta.branches and branch not in self.repo.branchtags()): @@ -233,7 +233,7 @@ class HgEditor(delta.Editor): if self.current.emptybranches[branch]: #pragma: no cover raise hgutil.Abort('Empty commit to an open branch attempted. ' 'Please report this issue.') - extra = util.build_extra(rev.revnum, branch, self.meta.uuid, self.meta.subdir) + extra = self.meta.genextra(rev.revnum, branch) if not self.meta.usebranchnames: extra.pop('branch', None) current_ctx = context.memctx(self.repo, diff --git a/hgsubversion/stupid.py b/hgsubversion/stupid.py --- a/hgsubversion/stupid.py +++ b/hgsubversion/stupid.py @@ -599,7 +599,7 @@ def convert_rev(ui, meta, svn, r, tbdelt # something is very wrong assert f[0] != '/' - extra = util.build_extra(r.revnum, b, svn.uuid, svn.subdir) + extra = meta.genextra(r.revnum, b) if not meta.usebranchnames: extra.pop('branch', None) diff --git a/hgsubversion/svnmeta.py b/hgsubversion/svnmeta.py --- a/hgsubversion/svnmeta.py +++ b/hgsubversion/svnmeta.py @@ -159,6 +159,26 @@ class SVNMeta(object): return branch[3:] return 'branches/%s' % branch + def genextra(self, revnum, branch): + extra = {} + branchpath = 'trunk' + if branch: + extra['branch'] = branch + branchpath = 'branches/%s' % branch + + subdir = self.subdir + if subdir and subdir[-1] == '/': + subdir = subdir[:-1] + if subdir and subdir[0] != '/': + subdir = '/' + subdir + + extra['convert_revision'] = 'svn:%(uuid)s%(path)s@%(rev)s' % { + 'uuid': self.uuid, + 'path': '%s/%s' % (subdir , branchpath), + 'rev': revnum, + } + return extra + def normalize(self, path): '''Normalize a path to strip of leading slashes and our subdir if we have one. @@ -410,7 +430,7 @@ class SVNMeta(object): return context.memfilectx(path='.hgtags', data=src, islink=False, isexec=False, copied=None) - extra = util.build_extra(rev.revnum, b, self.uuid, self.subdir) + extra = self.genextra(rev.revnum, b) if not self.usebranchnames: extra.pop('branch', None) if b in endbranches: diff --git a/hgsubversion/util.py b/hgsubversion/util.py --- a/hgsubversion/util.py +++ b/hgsubversion/util.py @@ -59,24 +59,6 @@ def outgoing_revisions(repo, reverse_map if sourcerev.node() != node.nullid: return outgoing_rev_hashes -def build_extra(revnum, branch, uuid, subdir): - extra = {} - branchpath = 'trunk' - if branch: - extra['branch'] = branch - branchpath = 'branches/%s' % branch - if subdir and subdir[-1] == '/': - subdir = subdir[:-1] - if subdir and subdir[0] != '/': - subdir = '/' + subdir - extra['convert_revision'] = 'svn:%(uuid)s%(path)s@%(rev)s' % { - 'uuid': uuid, - 'path': '%s/%s' % (subdir , branchpath), - 'rev': revnum, - } - return extra - - def is_svn_repo(repo): return os.path.exists(os.path.join(repo.path, 'svn', 'uuid'))