# HG changeset patch # User Sean Farley # Date 1393115208 21600 # Node ID f06bb42bd2b2b8dbf074e55ff2f8672afee49cf2 # Parent d62c53c7a37d72735b857b0135ce4f4d9cbc9623 svnmeta: turn tags into lazy property This has no effect currently but will be used in a future patch to make it possible to create a SVNMeta object without having to load the tags file (for use in rebuilding metadata). Tests have been updated. diff --git a/hgsubversion/svnmeta.py b/hgsubversion/svnmeta.py --- a/hgsubversion/svnmeta.py +++ b/hgsubversion/svnmeta.py @@ -42,7 +42,7 @@ class SVNMeta(object): self.branches = util.load(self.branch_info_file) or {} self.prevbranches = dict(self.branches) - self.tags = maps.Tags(repo) + self._tags = None self._layout = layouts.detect.layout_from_file(self.metapath, ui=self.repo.ui) self._layoutobj = None @@ -167,6 +167,12 @@ class SVNMeta(object): # called tagmap for backwards compatibility return os.path.join(self.metapath, 'tagmap') + @property + def tags(self): + if self._tags is None: + self._tags = maps.Tags(self.repo) + return self._tags + @property def tagmapfile(self): # called tag-renames for backwards compatibility diff --git a/tests/test_tags.py b/tests/test_tags.py --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -175,6 +175,8 @@ rename a tag repo = self._load_fixture_and_fetch('tag_name_same_as_branch.svndump') tm = os.path.join(repo.path, 'svn', 'tagmap') open(tm, 'w').write('1\n') + # force tags to load since it is lazily loaded when needed + repo.svnmeta().tags commands.pull(repo.ui, repo) self.assertEqual(open(tm).read().splitlines()[0], '2')