Jesse Keating 29d71ce
From 705d844aa102a2824bc860feb843e660e614771c Mon Sep 17 00:00:00 2001
Jesse Keating 871014a
From: Jesse Keating <jkeating@redhat.com>
Jesse Keating 871014a
Date: Fri, 27 May 2011 19:55:15 -0700
Jesse Keating 29d71ce
Subject: [PATCH 1/2] Handle indented comments in git config files
Jesse Keating 871014a
Jesse Keating 871014a
It's perfectly valid for a git config file to contain comments inside
Jesse Keating 871014a
sections, e.g.:
Jesse Keating 871014a
Jesse Keating 871014a
[core]
Jesse Keating 871014a
    # This is a shared repository
Jesse Keating 871014a
    sharedRepository = true
Jesse Keating 871014a
Jesse Keating 871014a
The git tools all parse this fine while GitPython was choking on it.
Jesse Keating 871014a
---
Jesse Keating 871014a
 lib/git/config.py |    3 ++-
Jesse Keating 871014a
 1 files changed, 2 insertions(+), 1 deletions(-)
Jesse Keating 871014a
Jesse Keating 871014a
diff --git a/lib/git/config.py b/lib/git/config.py
Jesse Keating 29d71ce
index e5fd990..d893ebc 100644
Jesse Keating 871014a
--- a/lib/git/config.py
Jesse Keating 871014a
+++ b/lib/git/config.py
Jesse Keating 871014a
@@ -190,13 +190,14 @@ class GitConfigParser(cp.RawConfigParser, object):
Jesse Keating 871014a
         optname = None
Jesse Keating 871014a
         lineno = 0
Jesse Keating 871014a
         e = None                                  # None, or an exception
Jesse Keating 871014a
+        comment_re = re.compile('^\s*[#;]')
Jesse Keating 871014a
         while True:
Jesse Keating 871014a
             line = fp.readline()
Jesse Keating 871014a
             if not line:
Jesse Keating 871014a
                 break
Jesse Keating 871014a
             lineno = lineno + 1
Jesse Keating 871014a
             # comment or blank line?
Jesse Keating 871014a
-            if line.strip() == '' or line[0] in '#;':
Jesse Keating 871014a
+            if line.strip() == '' or comment_re.match(line):
Jesse Keating 871014a
                 continue
Jesse Keating 871014a
             if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR":
Jesse Keating 871014a
                 # no leading whitespace
Jesse Keating 871014a
-- 
Jesse Keating 871014a
1.7.4.4
Jesse Keating 871014a