Merge lp:~jelmer/bzr-builddeb/register-lazy into lp:bzr-builddeb

Proposed by Jelmer Vernooij
Status: Merged
Approved by: James Westby
Approved revision: 726
Merged at revision: 731
Proposed branch: lp:~jelmer/bzr-builddeb/register-lazy
Merge into: lp:bzr-builddeb
Diff against target: 143 lines (+67/-45)
2 files modified
__init__.py (+54/-45)
directory.py (+13/-0)
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/register-lazy
Reviewer Review Type Date Requested Status
James Westby Approve
Review via email: mp+99931@code.launchpad.net

Description of the change

Use lazy registries if supported (introduced in bzr 2.6)

To post a comment you must log in.
Revision history for this message
James Westby (james-w) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '__init__.py'
2--- __init__.py 2012-03-02 16:19:53 +0000
3+++ __init__.py 2012-03-29 13:16:18 +0000
4@@ -29,10 +29,6 @@
5
6 import bzrlib
7 from bzrlib.commands import plugin_cmds
8-from bzrlib.directory_service import (
9- AliasDirectory,
10- directories,
11- )
12
13 from bzrlib.plugins.builddeb.info import (
14 bzr_plugin_version as version_info,
15@@ -78,23 +74,60 @@
16 default_result_dir = '..'
17
18
19-directories.register_lazy("apt:", 'bzrlib.plugins.builddeb.directory',
20- 'VcsDirectory',
21- "Directory that uses Debian Vcs-* control fields to look up branches")
22-
23-branch_aliases = getattr(AliasDirectory, "branch_aliases", None)
24-if branch_aliases is not None:
25- def upstream_branch_alias(b):
26- from bzrlib.plugins.builddeb.util import debuild_config
27- b.lock_read()
28- try:
29- tree = b.basis_tree()
30- config = debuild_config(tree, False)
31- return directories.dereference(config.upstream_branch)
32- finally:
33- b.unlock()
34- branch_aliases.register("upstream", upstream_branch_alias,
35- help="upstream branch (for packaging branches)")
36+try:
37+ from bzrlib.registry import register_lazy
38+except ImportError:
39+ from bzrlib.directory_service import (
40+ AliasDirectory,
41+ directories,
42+ )
43+
44+ directories.register_lazy("apt:", 'bzrlib.plugins.builddeb.directory',
45+ 'VcsDirectory',
46+ "Directory that uses Debian Vcs-* control fields to look up branches")
47+
48+ branch_aliases = getattr(AliasDirectory, "branch_aliases", None)
49+ if branch_aliases is not None:
50+ branch_aliases.register_lazy("upstream",
51+ "bzrlib.plugins.builddeb.directory", "upstream_branch_alias",
52+ help="upstream branch (for packaging branches)")
53+
54+ try:
55+ from bzrlib.tag import tag_sort_methods
56+ except ImportError:
57+ pass # bzr tags --sort= can not be extended
58+ else:
59+ tag_sort_methods.register_lazy("debversion",
60+ "bzrlib.plugins.builddeb.tagging", "sort_debversion",
61+ "Sort like Debian versions.")
62+
63+ try:
64+ from bzrlib.revisionspec import revspec_registry
65+ revspec_registry.register_lazy("package:",
66+ "bzrlib.plugins.builddeb.revspec", "RevisionSpec_package")
67+ revspec_registry.register_lazy("upstream:",
68+ "bzrlib.plugins.builddeb.revspec", "RevisionSpec_upstream")
69+ except ImportError:
70+ from bzrlib.revisionspec import SPEC_TYPES
71+ from bzrlib.plugins.builddeb.revspec import (
72+ RevisionSpec_package,
73+ RevisionSpec_upstream,
74+ )
75+ SPEC_TYPES.extend([RevisionSpec_package, RevisionSpec_upstream])
76+else:
77+ register_lazy("bzrlib.directory", "directories", "apt:",
78+ 'bzrlib.plugins.builddeb.directory', 'VcsDirectory',
79+ help="Directory that uses Debian Vcs-* control fields to look up branches")
80+ register_lazy("bzrlib.directory", "AliasDirectory.branch_aliases", "upstream",
81+ "bzrlib.plugins.builddeb.directory", "upstream_branch_alias",
82+ help="upstream branch (for packaging branches)")
83+ register_lazy("bzrlib.tag", "tag_sort_methods", "debversion",
84+ "bzrlib.plugins.builddeb.tagging", "sort_debversion",
85+ "Sort like Debian versions.")
86+ register_lazy("bzrlib.revisionspec", "revspec_registry", "package:",
87+ "bzrlib.plugins.builddeb.revspec", "RevisionSpec_package")
88+ register_lazy("bzrlib.revisionspec", "revspec_registry", "upstream:",
89+ "bzrlib.plugins.builddeb.revspec", "RevisionSpec_upstream")
90
91
92 def debian_changelog_commit_message(commit, start_message):
93@@ -382,29 +415,5 @@
94 "start_commit", start_commit_check_quilt,
95 "Check for (un)applied quilt patches")
96
97-try:
98- from bzrlib.revisionspec import revspec_registry
99- revspec_registry.register_lazy("package:",
100- "bzrlib.plugins.builddeb.revspec", "RevisionSpec_package")
101- revspec_registry.register_lazy("upstream:",
102- "bzrlib.plugins.builddeb.revspec", "RevisionSpec_upstream")
103-except ImportError:
104- from bzrlib.revisionspec import SPEC_TYPES
105- from bzrlib.plugins.builddeb.revspec import (
106- RevisionSpec_package,
107- RevisionSpec_upstream,
108- )
109- SPEC_TYPES.extend([RevisionSpec_package, RevisionSpec_upstream])
110-
111-try:
112- from bzrlib.tag import tag_sort_methods
113-except ImportError:
114- pass # bzr tags --sort= can not be extended
115-else:
116- tag_sort_methods.register_lazy("debversion",
117- "bzrlib.plugins.builddeb.tagging", "sort_debversion",
118- "Sort like Debian versions.")
119-
120-
121 def load_tests(standard_tests, module, loader):
122 return loader.loadTestsFromModuleNames(['bzrlib.plugins.builddeb.tests'])
123
124=== modified file 'directory.py'
125--- directory.py 2011-10-21 08:46:23 +0000
126+++ directory.py 2012-03-29 13:16:18 +0000
127@@ -108,3 +108,16 @@
128
129 raise errors.InvalidURL(path=url,
130 extra='unsupported VCSes %r found' % urls[version].keys())
131+
132+
133+def upstream_branch_alias(b):
134+ from bzrlib.directory_service import directories
135+ from bzrlib.plugins.builddeb.util import debuild_config
136+ b.lock_read()
137+ try:
138+ tree = b.basis_tree()
139+ config = debuild_config(tree, False)
140+ return directories.dereference(config.upstream_branch)
141+ finally:
142+ b.unlock()
143+

Subscribers

People subscribed via source and target branches