The patch pre-populates the cached config options with the default values. It also removes an unused option (stgit.extensions). Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxxxx> --- stgit/config.py | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) diff --git a/stgit/config.py b/stgit/config.py index 796f2c9..811138d 100644 --- a/stgit/config.py +++ b/stgit/config.py @@ -28,16 +28,15 @@ class GitConfigException(StgException): class GitConfig: __defaults={ - 'stgit.smtpserver': 'localhost:25', - 'stgit.smtpdelay': '5', - 'stgit.pullcmd': 'git pull', - 'stgit.fetchcmd': 'git fetch', - 'stgit.pull-policy': 'pull', - 'stgit.autoimerge': 'no', - 'stgit.keepoptimized': 'no', - 'stgit.extensions': '.ancestor .current .patched', - 'stgit.shortnr': '5', - 'stgit.pager': 'less' + 'stgit.smtpserver': ['localhost:25'], + 'stgit.smtpdelay': ['5'], + 'stgit.pullcmd': ['git pull'], + 'stgit.fetchcmd': ['git fetch'], + 'stgit.pull-policy': ['pull'], + 'stgit.autoimerge': ['no'], + 'stgit.keepoptimized': ['no'], + 'stgit.shortnr': ['5'], + 'stgit.pager': ['less'] } __cache = None @@ -47,7 +46,7 @@ class GitConfig: done already.""" if self.__cache is not None: return - self.__cache = {} + self.__cache = self.__defaults lines = Run('git', 'config', '--null', '--list' ).discard_exitcode().raw_output() for line in filter(None, lines.split('\0')): @@ -56,9 +55,10 @@ class GitConfig: def get(self, name): self.load() - if name not in self.__cache: - self.__cache[name] = [self.__defaults.get(name, None)] - return self.__cache[name][-1] + try: + return self.__cache[name][-1] + except KeyError: + return None def getall(self, name): self.load() -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html