comparison hgsubversion/svnmeta.py @ 1005:5bba4d1becde

layouts: refactor layout loading based on config into function Refactor the logic for loading the layout based on config, and for validating that config is sane into a single function.
author David Schleimer <dschleimer@fb.com>
date Wed, 17 Apr 2013 15:00:33 -0700
parents 1bdd075a490a
children 7a3b938825cd
comparison
equal deleted inserted replaced
1004:b2d89ba6b871 1005:5bba4d1becde
8 from mercurial import revlog 8 from mercurial import revlog
9 from mercurial import node 9 from mercurial import node
10 10
11 import util 11 import util
12 import maps 12 import maps
13 import layouts
13 import editor 14 import editor
14 15
15 16
16 def pickle_atomic(data, file_path): 17 def pickle_atomic(data, file_path):
17 """pickle some data to a path atomically. 18 """pickle some data to a path atomically.
105 def layout(self): 106 def layout(self):
106 # this method can't determine the layout, but it needs to be 107 # this method can't determine the layout, but it needs to be
107 # resolved into something other than auto before this ever 108 # resolved into something other than auto before this ever
108 # gets called 109 # gets called
109 if not self._layout or self._layout == 'auto': 110 if not self._layout or self._layout == 'auto':
110 lo = self.repo.ui.config('hgsubversion', 'layout', default='auto') 111 self._layout = layouts.detect.layout_from_config(self.repo.ui)
111 if lo == 'auto':
112 raise hgutil.Abort('layout not yet determined')
113 elif not lo in ('single', 'standard'):
114 raise hgutil.Abort("unknown layout '%s'" % lo)
115 self._layout = lo
116 f = open(self.layoutfile, 'w') 112 f = open(self.layoutfile, 'w')
117 f.write(self._layout) 113 f.write(self._layout)
118 f.close() 114 f.close()
119 return self._layout 115 return self._layout
120 116