view hg @ 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 659f34b833b9
children 73e4a02e6d23
line wrap: on
line source

#!/usr/bin/env python
#
# mercurial - scalable distributed SCM
#
# Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.

import os
import sys

libdir = '@LIBDIR@'

if libdir != '@' 'LIBDIR' '@':
    if not os.path.isabs(libdir):
        libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                              libdir)
        libdir = os.path.abspath(libdir)
    sys.path.insert(0, libdir)

# enable importing on demand to reduce startup time
try:
    from mercurial import demandimport; demandimport.enable()
except ImportError:
    import sys
    sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
                     ' '.join(sys.path))
    sys.stderr.write("(check your install and PYTHONPATH)\n")
    sys.exit(-1)

import mercurial.util
import mercurial.dispatch

for fp in (sys.stdin, sys.stdout, sys.stderr):
    mercurial.util.setbinary(fp)

mercurial.dispatch.run()