Skip to content

Commit

Permalink
plumbing: config, Branch name with hash can be cloned. Fixes #309
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrian Pronk committed Jul 24, 2021
1 parent b4368b2 commit 9acce50
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion plumbing/format/config/encoder.go
Expand Up @@ -59,7 +59,7 @@ func (e *Encoder) encodeSubsection(sectionName string, s *Subsection) error {
func (e *Encoder) encodeOptions(opts Options) error {
for _, o := range opts {
pattern := "\t%s = %s\n"
if strings.Contains(o.Value, "\\") {
if strings.ContainsAny(o.Value, `"#\"`) || strings.HasPrefix(o.Value, " ") || strings.HasSuffix(o.Value, " ") {
pattern = "\t%s = %q\n"
}

Expand Down
18 changes: 18 additions & 0 deletions plumbing/format/config/fixtures_test.go
Expand Up @@ -42,6 +42,24 @@ var fixtures = []*Fixture{
Text: "[core]\n\trepositoryformatversion = 0\n",
Config: New().AddOption("core", "", "repositoryformatversion", "0"),
},
{
Raw: "[section]\n",
Text: `[section]
option1 = "has # hash"
option2 = "has \" quote"
option3 = "has \\ backslash"
option4 = " has leading spaces"
option5 = "has trailing spaces "
option6 = has no special characters
`,
Config: New().
AddOption("section", "", "option1", `has # hash`).
AddOption("section", "", "option2", `has " quote`).
AddOption("section", "", "option3", `has \ backslash`).
AddOption("section", "", "option4", ` has leading spaces`).
AddOption("section", "", "option5", `has trailing spaces `).
AddOption("section", "", "option6", `has no special characters`),
},
{
Raw: `
[sect1]
Expand Down

0 comments on commit 9acce50

Please sign in to comment.