Skip to content

Commit

Permalink
Merge pull request #1618 from bodograumann/fix-set-tracking-branch-wi…
Browse files Browse the repository at this point in the history
…th-imports

Disable merge_includes in config writers
  • Loading branch information
Byron committed Jul 22, 2023
2 parents b543c72 + 41ecc6a commit 1c8310d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
2 changes: 1 addition & 1 deletion git/repo/base.py
Expand Up @@ -600,7 +600,7 @@ def config_writer(self, config_level: Lit_config_levels = "repository") -> GitCo
system = system wide configuration file
global = user level configuration file
repository = configuration file for this repository only"""
return GitConfigParser(self._get_config_path(config_level), read_only=False, repo=self)
return GitConfigParser(self._get_config_path(config_level), read_only=False, repo=self, merge_includes=False)

def commit(self, rev: Union[str, Commit_ish, None] = None) -> Commit:
"""The Commit object for the specified revision
Expand Down
21 changes: 21 additions & 0 deletions test/test_refs.py
Expand Up @@ -15,6 +15,7 @@
SymbolicReference,
GitCommandError,
RefLog,
GitConfigParser,
)
from git.objects.tag import TagObject
from test.lib import TestBase, with_rw_repo
Expand Down Expand Up @@ -172,6 +173,26 @@ def test_heads(self, rwrepo):
assert log[0].oldhexsha == pcommit.NULL_HEX_SHA
assert log[0].newhexsha == pcommit.hexsha

@with_rw_repo("HEAD", bare=False)
def test_set_tracking_branch_with_import(self, rwrepo):
# prepare included config file
included_config = osp.join(rwrepo.git_dir, "config.include")
with GitConfigParser(included_config, read_only=False) as writer:
writer.set_value("test", "value", "test")
assert osp.exists(included_config)

with rwrepo.config_writer() as writer:
writer.set_value("include", "path", included_config)

for head in rwrepo.heads:
head.set_tracking_branch(None)
assert head.tracking_branch() is None
remote_ref = rwrepo.remotes[0].refs[0]
assert head.set_tracking_branch(remote_ref) is head
assert head.tracking_branch() == remote_ref
head.set_tracking_branch(None)
assert head.tracking_branch() is None

def test_refs(self):
types_found = set()
for ref in self.rorepo.refs:
Expand Down

0 comments on commit 1c8310d

Please sign in to comment.