Rev 6319: (gz) Move merge_type_registry from bzrlib.options to bzrlib.merge (Martin in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/

Patch Queue Manager pqm at pqm.ubuntu.com
Mon Nov 28 19:47:50 UTC 2011


At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 6319 [merge]
revision-id: pqm at pqm.ubuntu.com-20111128194749-ngknllszanig1epd
parent: pqm at pqm.ubuntu.com-20111128162949-cx0obntgfj3rzhgr
parent: martin.packman at canonical.com-20111128192207-4o6r6wiugbolw3nf
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2011-11-28 19:47:49 +0000
message:
  (gz) Move merge_type_registry from bzrlib.options to bzrlib.merge (Martin
   Packman)
modified:
  bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
  bzrlib/option.py               option.py-20051014052914-661fb36e76e7362f
  bzrlib/tests/per_merger.py     per_merger.py-20091216002111-bzeo6wx2tcfpuj67-1
  doc/en/release-notes/bzr-2.5.txt bzr2.5.txt-20110708125756-587p0hpw7oke4h05-1
=== modified file 'bzrlib/merge.py'
--- a/bzrlib/merge.py	2011-10-27 15:38:14 +0000
+++ b/bzrlib/merge.py	2011-11-28 19:07:58 +0000
@@ -44,6 +44,7 @@
     decorators,
     errors,
     hooks,
+    registry,
     )
 from bzrlib.symbol_versioning import (
     deprecated_in,
@@ -2038,13 +2039,24 @@
     merger.set_base_revision(get_revision_id(), this_branch)
     return merger.do_merge()
 
+
+merge_type_registry = registry.Registry()
+merge_type_registry.register('diff3', Diff3Merger,
+                             "Merge using external diff3.")
+merge_type_registry.register('lca', LCAMerger,
+                             "LCA-newness merge.")
+merge_type_registry.register('merge3', Merge3Merger,
+                             "Native diff3-style merge.")
+merge_type_registry.register('weave', WeaveMerger,
+                             "Weave-based merge.")
+
+
 def get_merge_type_registry():
-    """Merge type registry is in bzrlib.option to avoid circular imports.
+    """Merge type registry was previously in bzrlib.option
 
-    This method provides a sanctioned way to retrieve it.
+    This method provides a backwards compatible way to retrieve it.
     """
-    from bzrlib import option
-    return option._merge_type_registry
+    return merge_type_registry
 
 
 def _plan_annotate_merge(annotated_a, annotated_b, ancestors_a, ancestors_b):

=== modified file 'bzrlib/option.py'
--- a/bzrlib/option.py	2011-11-23 18:59:43 +0000
+++ b/bzrlib/option.py	2011-11-28 19:07:58 +0000
@@ -519,21 +519,6 @@
             _verbosity_level = -1
 
 
-class MergeTypeRegistry(_mod_registry.Registry):
-
-    pass
-
-
-_merge_type_registry = MergeTypeRegistry()
-_merge_type_registry.register_lazy('diff3', 'bzrlib.merge', 'Diff3Merger',
-                                   "Merge using external diff3.")
-_merge_type_registry.register_lazy('lca', 'bzrlib.merge', 'LCAMerger',
-                                   "LCA-newness merge.")
-_merge_type_registry.register_lazy('merge3', 'bzrlib.merge', 'Merge3Merger',
-                                   "Native diff3-style merge.")
-_merge_type_registry.register_lazy('weave', 'bzrlib.merge', 'WeaveMerger',
-                                   "Weave-based merge.")
-
 # Declare the standard options
 _standard_option('help', short_name='h',
                  help='Show help message.')
@@ -560,8 +545,8 @@
                         value_switches=True, title='Log format',
                         short_value_switches={'short': 'S'})
 _global_registry_option('merge-type', 'Select a particular merge algorithm.',
-                        _merge_type_registry, value_switches=True,
-                        title='Merge algorithm')
+                        lazy_registry=('bzrlib.merge', 'merge_type_registry'),
+                        value_switches=True, title='Merge algorithm')
 _global_option('message', type=unicode,
                short_name='m',
                help='Message string.')

=== modified file 'bzrlib/tests/per_merger.py'
--- a/bzrlib/tests/per_merger.py	2011-01-12 01:01:53 +0000
+++ b/bzrlib/tests/per_merger.py	2011-11-28 19:22:07 +0000
@@ -22,7 +22,6 @@
 from bzrlib import (
     errors,
     merge as _mod_merge,
-    option,
     )
 from bzrlib.tests import (
     multiply_tests,
@@ -38,7 +37,7 @@
     result = loader.suiteClass()
     scenarios = [
         (name, {'merge_type': merger})
-        for name, merger in option._merge_type_registry.items()]
+        for name, merger in _mod_merge.merge_type_registry.items()]
     return multiply_tests(standard_tests, scenarios, result)
 
 

=== modified file 'doc/en/release-notes/bzr-2.5.txt'
--- a/doc/en/release-notes/bzr-2.5.txt	2011-11-28 15:59:39 +0000
+++ b/doc/en/release-notes/bzr-2.5.txt	2011-11-28 19:14:01 +0000
@@ -144,6 +144,9 @@
   using the ``error_translators`` and ``no_context_error_translators``
   registries. (Jelmer Vernooij)
 
+* The registry of merge types has been moved to ``merge`` from ``option`` but
+  ``merge.get_merge_type_registry`` remains as an accessor. (Martin Packman)
+
 Testing
 *******
 




More information about the bazaar-commits mailing list