summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--morphlib/gitdir.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py
index fea26c2e..6b04b773 100644
--- a/morphlib/gitdir.py
+++ b/morphlib/gitdir.py
@@ -355,6 +355,7 @@ class GitDirectory(object):
# so we just use the provided dirname
if not self.dirname:
self.dirname = dirname
+ self._config = {}
def _runcmd(self, argv, **kwargs):
'''Run a command at the root of the git directory.
@@ -447,12 +448,15 @@ class GitDirectory(object):
'''
self._runcmd(['git', 'config', key, value])
+ self._config[key] = value
def get_config(self, key):
'''Return value for a git repository configuration variable.'''
- value = self._runcmd(['git', 'config', '-z', key])
- return value.rstrip('\0')
+ if key not in self._config:
+ value = self._runcmd(['git', 'config', '-z', key])
+ self._config[key] = value.rstrip('\0')
+ return self._config[key]
def get_remote(self, *args, **kwargs):
'''Get a remote for this Repository.