Mercurial > hg
changeset 17873:573bec4ab7ba stable
subrepo: isolate configuration between each repositories in subrepo tree
Before this patch, repository local configurations are not isolated
between repositories in subrepo tree, because "localrepository"
objects for each subrepositories are created with "ui" instance of the
parent of each ones.
So, local configuration of the parent or higher repositories are
visible also in children or lower ones.
This patch uses "baseui" instead of "ui" to create repository object:
the former contains only global configuration.
This patch also copies 'ui.commitsubrepos' configuration to commit
recursively in subrepo tree, because it may be set in not
"repo.baseui" but "repo.ui".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sat, 29 Sep 2012 20:11:24 +0900 |
parents | 7d4e98bf114d |
children | 2ba70eec1cf0 |
files | mercurial/subrepo.py |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/subrepo.py Sat Oct 27 16:39:47 2012 -0500 +++ b/mercurial/subrepo.py Sat Sep 29 20:11:24 2012 +0900 @@ -395,7 +395,11 @@ if not os.path.exists(os.path.join(root, '.hg')): create = True util.makedirs(root) - self._repo = hg.repository(r.ui, root, create=create) + self._repo = hg.repository(r.baseui, root, create=create) + for s, k in [('ui', 'commitsubrepos')]: + v = r.ui.config(s, k) + if v: + self._repo.ui.setconfig(s, k, v) self._initrepo(r, state[0], create) def _initrepo(self, parentrepo, source, create):