From 438c54713a7ca56fba2a7985b6563aa076b17169 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Sun, 28 Jun 2009 15:09:16 -0700 Subject: git_config: handle configuration entries with no values A git-config entry with no value was preventing repo from initializing. This modifies _ReadGit() to handle config entries with empty values. Signed-off-by: David Aguilar Reported-by: Josh Guilfoyle --- git_config.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'git_config.py') diff --git a/git_config.py b/git_config.py index a5b5b4d9..e658b059 100644 --- a/git_config.py +++ b/git_config.py @@ -259,21 +259,26 @@ class GitConfig(object): os.remove(self._pickle) def _ReadGit(self): - d = self._do('--null', '--list') - c = {} - while d: - lf = d.index('\n') - nul = d.index('\0', lf + 1) + """ + Read configuration data from git. + + This internal method populates the GitConfig cache. - key = _key(d[0:lf]) - val = d[lf + 1:nul] + """ + d = self._do('--null', '--list').rstrip('\0') + c = {} + for line in d.split('\0'): + if '\n' in line: + key, val = line.split('\n', 1) + else: + key = line + val = None if key in c: c[key].append(val) else: c[key] = [val] - d = d[nul + 1:] return c def _do(self, *args): -- cgit v1.2.3-54-g00ecf