From 89df64132ccd76568ade04b5cf4e68cb67f0c5c0 Mon Sep 17 00:00:00 2001 From: Luc Ritchie Date: Fri, 14 Sep 2018 13:10:37 -0400 Subject: Respect _common_dir when finding repository config file Among other things, remotes are now correctly identified when in a separate worktree. --- AUTHORS | 1 + git/repo/base.py | 2 +- git/test/test_repo.py | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 9c3a52c0..2e006ba2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,5 +27,6 @@ Contributors are: -Charles Bouchard-Légaré -Yaroslav Halchenko -Tim Swast +-William Luc Ritchie Portions derived from other open source works and are clearly marked. diff --git a/git/repo/base.py b/git/repo/base.py index 023582b5..125ab802 100644 --- a/git/repo/base.py +++ b/git/repo/base.py @@ -416,7 +416,7 @@ class Repo(object): elif config_level == "global": return osp.normpath(osp.expanduser("~/.gitconfig")) elif config_level == "repository": - return osp.normpath(osp.join(self.git_dir, "config")) + return osp.normpath(osp.join(self._common_dir or self.git_dir, "config")) raise ValueError("Invalid configuration level: %r" % config_level) diff --git a/git/test/test_repo.py b/git/test/test_repo.py index e65ead89..7fc49f3b 100644 --- a/git/test/test_repo.py +++ b/git/test/test_repo.py @@ -974,6 +974,11 @@ class TestRepo(TestBase): commit = repo.head.commit self.assertIsInstance(commit, Object) + # this ensures we can read the remotes, which confirms we're reading + # the config correctly. + origin = repo.remotes.origin + self.assertIsInstance(origin, Remote) + self.assertIsInstance(repo.heads['aaaaaaaa'], Head) @with_rw_directory -- cgit v1.2.1