Rev 1726: Allow setting default mapping for a repository in config. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Sun Aug 31 02:15:59 BST 2008


At file:///data/jelmer/bzr-svn/trunk/

------------------------------------------------------------
revno: 1726
revision-id: jelmer at samba.org-20080831011557-23y6c529ktau872y
parent: jelmer at samba.org-20080830234511-6pkd922cykoguu7f
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sun 2008-08-31 03:15:57 +0200
message:
  Allow setting default mapping for a repository in config.
modified:
  config.py                      config.py-20070624185721-0j8f1ly75uo4s1lk-1
  mapping.py                     mapping.py-20080128201303-6cp01phc0dmc0kiv-1
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
=== modified file 'config.py'
--- a/config.py	2008-08-25 01:58:11 +0000
+++ b/config.py	2008-08-31 01:15:57 +0000
@@ -83,6 +83,13 @@
             return BranchingScheme.find_scheme(schemename.encode('ascii'))
         return None
 
+    def get_default_mapping(self):
+        """Get the default mapping.
+
+        :return Mapping name.
+        """
+        return self._get_user_option("default-mapping", use_global=True)
+
     def get_guessed_branching_scheme(self):
         """Get the guessed branching scheme.
 

=== modified file 'mapping.py'
--- a/mapping.py	2008-08-30 21:11:14 +0000
+++ b/mapping.py	2008-08-31 01:15:57 +0000
@@ -320,7 +320,7 @@
 
         :param revid: The revision id.
         :raises: InvalidRevisionId
-        :return: Tuple with uuid, branch path, revision number and scheme.
+        :return: Tuple with uuid, branch path, revision number and mapping.
         """
         raise NotImplementedError(self.revision_id_bzr_to_foreign)
 
@@ -708,7 +708,7 @@
 mapping_registry.register_lazy('v4', 'bzrlib.plugins.svn.mapping4', 
                                'BzrSvnMappingv4',
                                'Fourth format (bzr-svn 0.5.x)')
-mapping_registry.set_default('v3')
+mapping_registry.set_default('v4')
 
 def parse_mapping_name(name):
     assert isinstance(name, str)

=== modified file 'repository.py'
--- a/repository.py	2008-08-30 21:11:14 +0000
+++ b/repository.py	2008-08-31 01:15:57 +0000
@@ -44,6 +44,7 @@
                      parse_tags_property,
                      BzrSvnMapping,
                      get_default_mapping, 
+                     mapping_registry,
                      is_bzr_revision_revprops, is_bzr_revision_fileprops,
                      parse_svn_dateprop)
 from bzrlib.plugins.svn.parents import DiskCachingParentsProvider
@@ -366,9 +367,16 @@
         result['revisions'] = self.get_latest_revnum()+1
         return result
 
+    def get_mapping_class(self):
+        config_mapping_name = self.get_config().get_default_mapping()
+        if config_mapping_name is not None:
+            return mapping_registry.get(config_mapping_name)
+        return get_default_mapping()
+
     def get_mapping(self):
         if self._default_mapping is None:
-            self._default_mapping = get_default_mapping().from_repository(self, self._hinted_branch_path)
+            mappingcls = self.get_mapping_class()
+            self._default_mapping = mappingcls.from_repository(self, self._hinted_branch_path)
         return self._default_mapping
 
     def _make_parents_provider(self):




More information about the bazaar-commits mailing list