{"record":{"id":"2c49d2a78714a4e3","repo":"golang/go","slug":"unable-to-parse-output-of-fossil-info-v","errorCode":null,"errorMessage":"unable to parse output of fossil info: %v","messagePattern":"unable to parse output of fossil info: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cmd/go/internal/vcs/vcs.go","lineNumber":358,"sourceCode":"\tif i < 0 {\n\t\treturn Status{}, errFossilInfo\n\t}\n\tcheckout := out[i+len(prefix):]\n\ti = strings.Index(checkout, suffix)\n\tif i < 0 {\n\t\treturn Status{}, errFossilInfo\n\t}\n\tcheckout = strings.TrimSpace(checkout[:i])\n\n\ti = strings.IndexByte(checkout, ' ')\n\tif i < 0 {\n\t\treturn Status{}, errFossilInfo\n\t}\n\trev := checkout[:i]\n\n\tcommitTime, err := time.ParseInLocation(time.DateTime, checkout[i+1:], time.UTC)\n\tif err != nil {\n\t\treturn Status{}, fmt.Errorf(\"%v: %v\", errFossilInfo, err)\n\t}\n\n\t// Also look for untracked changes.\n\toutb, err = vcsFossil.runOutputVerboseOnly(rootDir, \"changes --differ\")\n\tif err != nil {\n\t\treturn Status{}, err\n\t}\n\tuncommitted := len(outb) > 0\n\n\treturn Status{\n\t\tRevision:    rev,\n\t\tCommitTime:  commitTime,\n\t\tUncommitted: uncommitted,\n\t}, nil\n}\n\nfunc (v *Cmd) String() string {\n\treturn v.Name","sourceCodeStart":340,"sourceCodeEnd":376,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/go/internal/vcs/vcs.go#L340-L376","documentation":"For Fossil repositories, the go tool parses the checkout info line for a revision hash and a commit timestamp in Go's DateTime layout (2006-01-02 15:04:05). If the timestamp portion doesn't match that format, this error fires, wrapping the predefined errFossilInfo sentinel.","triggerScenarios":"A Fossil repository where `fossil info` returns a checkout line whose date portion doesn't match the expected DateTime layout — different Fossil version, locale-specific formatting, or unexpected output.","commonSituations":"Different Fossil version producing altered output format; non-English locale; corrupted Fossil checkout metadata; Fossil not installed or broken.","solutions":["Run `fossil info` manually to inspect the checkout line format","Ensure Fossil is a modern version with standard output format","Set LC_ALL=C to force consistent date/time formatting","Rebuild/reopen the Fossil checkout if metadata is corrupted"],"exampleFix":"# before: locale interferes with fossil date output\nexport LC_TIME=fr_FR.UTF-8\ngo get ./...\n\n# after: neutral locale\nexport LC_ALL=C\ngo get ./...","handlingStrategy":"try-catch","validationCode":"# Verify fossil info output format\nfossil info 2>/dev/null | head -5\n# Ensure neutral locale\nexport LC_ALL=C","typeGuard":null,"tryCatchPattern":"# Retry with neutral locale on Fossil parse failure\nif ! go get ./... 2>&1 | grep -q 'unable to parse output of fossil info'; then\n  echo 'ok'\nelse\n  LC_ALL=C go get ./...\nfi","preventionTips":["Set LC_ALL=C in environments using Fossil repositories","Keep Fossil at a modern standard version","Verify the Fossil checkout is not corrupted"],"tags":["vcs","fossil","parsing","date","locale"],"backgroundTag":null,"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}