diff hgsubversion/wrappers.py @ 1092:cd0d14e25757

layouts: add custom layout for those of us that need weird mappings This adds a config-driven custom layout, targeted at the case where you need to fetch a small subset of a large number of subversion branches, or where your subversion layout doesn't match the standard trunk/branches/tags layout very well.
author David Schleimer <dschleimer@fb.com>
date Mon, 26 Aug 2013 16:40:31 -0700
parents 2d7398fffd0d
children 791382a21cc4
line wrap: on
line diff
--- a/hgsubversion/wrappers.py
+++ b/hgsubversion/wrappers.py
@@ -544,7 +544,13 @@ optionmap = {
     'startrev': ('hgsubversion', 'startrev'),
 }
 
-dontretain = { 'hgsubversion': set(['authormap', 'filemap', 'layout', ]) }
+extrasections = set(['hgsubversionbranch'])
+
+
+dontretain = {
+    'hgsubversion': set(['authormap', 'filemap', 'layout', ]),
+    'hgsubversionbranch': set(),
+    }
 
 def clone(orig, ui, source, dest=None, **opts):
     """
@@ -602,7 +608,9 @@ def clone(orig, ui, source, dest=None, *
             fd = dstrepo.opener("hgrc", "a", text=True)
         else:
             fd = dst.opener("hgrc", "a", text=True)
-        for section in set(s for s, v in optionmap.itervalues()):
+        preservesections = set(s for s, v in optionmap.itervalues())
+        preservesections |= extrasections
+        for section in preservesections:
             config = dict(ui.configitems(section))
             for name in dontretain[section]:
                 config.pop(name, None)