From 9a4bf4548713d6021f4ce8a48bc2d7d65ff06106 Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Wed, 31 Jan 2007 23:15:38 +0000 Subject: [PATCH] Add caching to the new config class. Signed-off-by: Yann Dirson --- stgit/config.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/stgit/config.py b/stgit/config.py index d42754b..901f600 100644 --- a/stgit/config.py +++ b/stgit/config.py @@ -39,6 +39,8 @@ class GitConfig: 'stgit.shortnr': '5' } + __cache={} + def __run(self, cmd, args=None): """__run: runs cmd using spawnvp. @@ -59,20 +61,31 @@ class GitConfig: return 0 def get(self, name): + if self.__cache.has_key(name): + return self.__cache[name] + stream = os.popen('git repo-config --get %s' % name, 'r') value = stream.readline().strip() stream.close() if len(value) > 0: - return value + pass elif (self.__defaults.has_key(name)): - return self.__defaults[name] + value = self.__defaults[name] else: - return None + value = None + + self.__cache[name] = value + return value def getall(self, name): + if self.__cache.has_key(name): + return self.__cache[name] + stream = os.popen('git repo-config --get-all %s' % name, 'r') values = [line.strip() for line in stream] stream.close() + + self.__cache[name] = values return values def getint(self, name): -- 2.11.0