You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[user]
name = "Colin Watson"
email = "cjwatson@debian.org"
It's been like that for a long time, so I don't remember whether an old version of git config wrote it like that, or whether I put it there by hand. Anyway, git itself has always been fine with this. The relevant part of git-config(1) says:
A line that defines a value can be continued to the next line by ending it with a ; the backslash and the end-of-line are stripped. Leading whitespaces after name =, the remainder of the line after the first comment character # or ;, and trailing whitespaces of the line are discarded unless they are enclosed in double quotes. Internal whitespaces within the value are retained verbatim.
Inside double quotes, double quote " and backslash \ characters must be escaped: use " for " and \ for .
The following escape sequences (beside " and \) are recognized: \n for newline character (NL), \t for horizontal tabulation (HT, TAB) and \b for backspace (BS). Other char escape sequences (including octal escape sequences) are invalid.
But when I create a commit using IndexFile.commit(), I get this in the commit metadata, which I'm pretty sure is malformed:
Author: "Colin Watson" <"cjwatson@debian.org">
I think GitConfigParser should match the parsing rules that git config follows.
The config parser here is based on the INI config parser, which makes it very much non-conforming to the Git specification.
Fixes on top of that can certainly be done though, hoping they won't introduce more problems than they solve.
Activity
Byron commentedon Jun 1, 2024
Thanks a lot for reporting!
The config parser here is based on the INI config parser, which makes it very much non-conforming to the Git specification.
Fixes on top of that can certainly be done though, hoping they won't introduce more problems than they solve.
katexochen commentedon Nov 2, 2024
This is a problem as GitHub won't recognize the quoted version, so commits aren't liked to the authors profile.
betaboon commentedon Jun 6, 2025
i just stumbled upon the same problem and tried my hand at a fix in #2035.
Test a quoted config var with meaningful edge whitespace
Test a quoted config var with meaningful edge whitespace
Don't remove quotes if `\` or `"` are present inside
Don't remove quotes if `\` or `"` are present inside
Don't remove quotes if `\` or `"` are present inside
Don't remove quotes if `\` or `"` are present inside
Don't remove quotes if `\` or `"` are present inside