diff options
Diffstat (limited to 'git/config.py')
-rw-r--r-- | git/config.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/git/config.py b/git/config.py index 0ce3e831..19ce1f84 100644 --- a/git/config.py +++ b/git/config.py @@ -34,7 +34,7 @@ import configparser as cp from typing import (Any, Callable, IO, List, Dict, Sequence, TYPE_CHECKING, Tuple, Union, cast, overload) -from git.types import Lit_config_levels, ConfigLevels_Tup, PathLike, TBD, assert_never +from git.types import Lit_config_levels, ConfigLevels_Tup, PathLike, TBD, assert_never, is_config_level if TYPE_CHECKING: from git.repo.base import Repo @@ -54,6 +54,7 @@ log.addHandler(logging.NullHandler()) CONFIG_LEVELS: ConfigLevels_Tup = ("system", "user", "global", "repository") + # Section pattern to detect conditional includes. # https://git-scm.com/docs/git-config#_conditional_includes CONDITIONAL_INCLUDE_REGEXP = re.compile(r"(?<=includeIf )\"(gitdir|gitdir/i|onbranch):(.+)\"") @@ -310,7 +311,7 @@ class GitConfigParser(with_metaclass(MetaParserBuilder, cp.RawConfigParser, obje if read_only: self._file_or_files = [get_config_path(f) for f in CONFIG_LEVELS - if f != 'repository'] + if is_config_level(f) and f != 'repository'] else: raise ValueError("No configuration level or configuration files specified") else: |