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 <davvid@gmail.com>
Reported-by: Josh Guilfoyle <jasta00@gmail.com>
diff --git a/git_config.py b/git_config.py
index a5b5b4d..e658b05 100644
--- a/git_config.py
+++ b/git_config.py
@@ -259,21 +259,26 @@
       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.
 
-      key = _key(d[0:lf])
-      val = d[lf + 1:nul]
+    This internal method populates the GitConfig cache.
+
+    """
+    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):