comparison mercurial/subrepo.py @ 10666:4c50a90b90fc stable

subrepo: keep ui and hgrc in sync when creating new repo
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Fri, 12 Mar 2010 01:23:35 +0100
parents 664bb0ce95ed
children 97022cef0a20 c90d923fff64
comparison
equal deleted inserted replaced
10665:664bb0ce95ed 10666:4c50a90b90fc
175 def __init__(self, ctx, path, state): 175 def __init__(self, ctx, path, state):
176 self._path = path 176 self._path = path
177 self._state = state 177 self._state = state
178 r = ctx._repo 178 r = ctx._repo
179 root = r.wjoin(path) 179 root = r.wjoin(path)
180 if os.path.exists(os.path.join(root, '.hg')): 180 create = False
181 self._repo = hg.repository(r.ui, root) 181 if not os.path.exists(os.path.join(root, '.hg')):
182 else: 182 create = True
183 util.makedirs(root) 183 util.makedirs(root)
184 self._repo = hg.repository(r.ui, root, create=True) 184 self._repo = hg.repository(r.ui, root, create=create)
185 f = file(os.path.join(root, '.hg', 'hgrc'), 'w')
186 f.write('[paths]\ndefault = %s\n' % os.path.join(
187 _abssource(ctx._repo), path))
188 f.close()
189 self._repo._subparent = r 185 self._repo._subparent = r
190 self._repo._subsource = state[0] 186 self._repo._subsource = state[0]
187
188 if create:
189 fp = self._repo.opener("hgrc", "w", text=True)
190 fp.write('[paths]\n')
191
192 def addpathconfig(key, value):
193 fp.write('%s = %s\n' % (key, value))
194 self._repo.ui.setconfig('paths', key, value)
195
196 defpath = os.path.join(_abssource(ctx._repo), path)
197 addpathconfig('default', defpath)
198 fp.close()
191 199
192 def dirty(self): 200 def dirty(self):
193 r = self._state[1] 201 r = self._state[1]
194 if r == '': 202 if r == '':
195 return True 203 return True
196 w = self._repo[None] 204 w = self._repo[None]
197 if w.p1() != self._repo[r]: # version checked out changed 205 if w.p1() != self._repo[r]: # version checked out change
198 return True 206 return True
199 return w.dirty() # working directory changed 207 return w.dirty() # working directory changed
200 208
201 def commit(self, text, user, date): 209 def commit(self, text, user, date):
202 self._repo.ui.debug("committing subrepo %s\n" % self._path) 210 self._repo.ui.debug("committing subrepo %s\n" % self._path)