+def git_config(filename):
+ """Open a git config file and convert it to be understood by
+ Python."""
+ try:
+ f = file(filename)
+ cont = False
+ lines = []
+ for line in f:
+ line = line.strip()
+
+ if cont:
+ # continued line, add a space at the beginning
+ line = ' ' + line
+
+ if line and line[-1] == '\\':
+ line = line[:-1].rstrip()
+ cont = True
+ else:
+ line = line + '\n'
+ cont = False
+
+ lines.append(line)
+
+ f.close()
+ cfg_str = ''.join(lines)
+ except IOError:
+ cfg_str = ''
+
+ strio = StringIO(cfg_str)
+ strio.name = filename
+
+ return strio
+