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
=== modified file '__init__.py'
--- __init__.py 2012-03-02 16:19:53 +0000
+++ __init__.py 2012-03-29 13:16:18 +0000
@@ -29,10 +29,6 @@
2929
30import bzrlib30import bzrlib
31from bzrlib.commands import plugin_cmds31from bzrlib.commands import plugin_cmds
32from bzrlib.directory_service import (
33 AliasDirectory,
34 directories,
35 )
3632
37from bzrlib.plugins.builddeb.info import (33from bzrlib.plugins.builddeb.info import (
38 bzr_plugin_version as version_info,34 bzr_plugin_version as version_info,
@@ -78,23 +74,60 @@
78default_result_dir = '..'74default_result_dir = '..'
7975
8076
81directories.register_lazy("apt:", 'bzrlib.plugins.builddeb.directory',77try:
82 'VcsDirectory',78 from bzrlib.registry import register_lazy
83 "Directory that uses Debian Vcs-* control fields to look up branches")79except ImportError:
8480 from bzrlib.directory_service import (
85branch_aliases = getattr(AliasDirectory, "branch_aliases", None)81 AliasDirectory,
86if branch_aliases is not None:82 directories,
87 def upstream_branch_alias(b):83 )
88 from bzrlib.plugins.builddeb.util import debuild_config84
89 b.lock_read()85 directories.register_lazy("apt:", 'bzrlib.plugins.builddeb.directory',
90 try:86 'VcsDirectory',
91 tree = b.basis_tree()87 "Directory that uses Debian Vcs-* control fields to look up branches")
92 config = debuild_config(tree, False)88
93 return directories.dereference(config.upstream_branch)89 branch_aliases = getattr(AliasDirectory, "branch_aliases", None)
94 finally:90 if branch_aliases is not None:
95 b.unlock()91 branch_aliases.register_lazy("upstream",
96 branch_aliases.register("upstream", upstream_branch_alias,92 "bzrlib.plugins.builddeb.directory", "upstream_branch_alias",
97 help="upstream branch (for packaging branches)")93 help="upstream branch (for packaging branches)")
94
95 try:
96 from bzrlib.tag import tag_sort_methods
97 except ImportError:
98 pass # bzr tags --sort= can not be extended
99 else:
100 tag_sort_methods.register_lazy("debversion",
101 "bzrlib.plugins.builddeb.tagging", "sort_debversion",
102 "Sort like Debian versions.")
103
104 try:
105 from bzrlib.revisionspec import revspec_registry
106 revspec_registry.register_lazy("package:",
107 "bzrlib.plugins.builddeb.revspec", "RevisionSpec_package")
108 revspec_registry.register_lazy("upstream:",
109 "bzrlib.plugins.builddeb.revspec", "RevisionSpec_upstream")
110 except ImportError:
111 from bzrlib.revisionspec import SPEC_TYPES
112 from bzrlib.plugins.builddeb.revspec import (
113 RevisionSpec_package,
114 RevisionSpec_upstream,
115 )
116 SPEC_TYPES.extend([RevisionSpec_package, RevisionSpec_upstream])
117else:
118 register_lazy("bzrlib.directory", "directories", "apt:",
119 'bzrlib.plugins.builddeb.directory', 'VcsDirectory',
120 help="Directory that uses Debian Vcs-* control fields to look up branches")
121 register_lazy("bzrlib.directory", "AliasDirectory.branch_aliases", "upstream",
122 "bzrlib.plugins.builddeb.directory", "upstream_branch_alias",
123 help="upstream branch (for packaging branches)")
124 register_lazy("bzrlib.tag", "tag_sort_methods", "debversion",
125 "bzrlib.plugins.builddeb.tagging", "sort_debversion",
126 "Sort like Debian versions.")
127 register_lazy("bzrlib.revisionspec", "revspec_registry", "package:",
128 "bzrlib.plugins.builddeb.revspec", "RevisionSpec_package")
129 register_lazy("bzrlib.revisionspec", "revspec_registry", "upstream:",
130 "bzrlib.plugins.builddeb.revspec", "RevisionSpec_upstream")
98131
99132
100def debian_changelog_commit_message(commit, start_message):133def debian_changelog_commit_message(commit, start_message):
@@ -382,29 +415,5 @@
382 "start_commit", start_commit_check_quilt,415 "start_commit", start_commit_check_quilt,
383 "Check for (un)applied quilt patches")416 "Check for (un)applied quilt patches")
384417
385try:
386 from bzrlib.revisionspec import revspec_registry
387 revspec_registry.register_lazy("package:",
388 "bzrlib.plugins.builddeb.revspec", "RevisionSpec_package")
389 revspec_registry.register_lazy("upstream:",
390 "bzrlib.plugins.builddeb.revspec", "RevisionSpec_upstream")
391except ImportError:
392 from bzrlib.revisionspec import SPEC_TYPES
393 from bzrlib.plugins.builddeb.revspec import (
394 RevisionSpec_package,
395 RevisionSpec_upstream,
396 )
397 SPEC_TYPES.extend([RevisionSpec_package, RevisionSpec_upstream])
398
399try:
400 from bzrlib.tag import tag_sort_methods
401except ImportError:
402 pass # bzr tags --sort= can not be extended
403else:
404 tag_sort_methods.register_lazy("debversion",
405 "bzrlib.plugins.builddeb.tagging", "sort_debversion",
406 "Sort like Debian versions.")
407
408
409def load_tests(standard_tests, module, loader):418def load_tests(standard_tests, module, loader):
410 return loader.loadTestsFromModuleNames(['bzrlib.plugins.builddeb.tests'])419 return loader.loadTestsFromModuleNames(['bzrlib.plugins.builddeb.tests'])
411420
=== modified file 'directory.py'
--- directory.py 2011-10-21 08:46:23 +0000
+++ directory.py 2012-03-29 13:16:18 +0000
@@ -108,3 +108,16 @@
108108
109 raise errors.InvalidURL(path=url,109 raise errors.InvalidURL(path=url,
110 extra='unsupported VCSes %r found' % urls[version].keys())110 extra='unsupported VCSes %r found' % urls[version].keys())
111
112
113def upstream_branch_alias(b):
114 from bzrlib.directory_service import directories
115 from bzrlib.plugins.builddeb.util import debuild_config
116 b.lock_read()
117 try:
118 tree = b.basis_tree()
119 config = debuild_config(tree, False)
120 return directories.dereference(config.upstream_branch)
121 finally:
122 b.unlock()
123

Subscribers

People subscribed via source and target branches