gofmt在Go 1.11中发生了变化,而git-codereview使用的是$PATH中的gofmt,所以当它是Go 1.10版本时,它会抱怨为git-codereview: gofmt needs to format these files (run 'git gofmt')。它应该使用GOROOT中的gofmt。
git-codereview: gofmt needs to format these files (run 'git gofmt')
11dmarpk1#
https://golang.org/cl/130695提到了这个问题:git-codereview: add -g flag to the gomft command
git-codereview: add -g flag to the gomft command
t1qtbnec2#
它应该使用GOROOT中的gofmt。这对我来说并不明显。为什么在这种情况下,GOROOT比PATH更好?我们费尽心思告诉人们不要设置GOROOT环境变量,因为它是导致严重困惑的主要原因。(这是@davecheney最喜欢的一个。)而且记住它们所构建的工具链的工具真的很令人沮丧。在我看来,在你的PATH中使用gofmt是最好的可用解决方案。或者最多修复#27166,然后使用该结果。
huwehgph3#
这似乎需要进一步讨论。适当地重新标记。
8zzbczxx4#
我们费尽心思告诉人们不要设置GOROOT环境变量我猜@FiloSottile的意思是类似于go env GOROOT或runtime.GOROOT(),如果未设置,它们都会自动检测目录。虽然我通常同意Josh的观点,但我们告诉人们,要“选择”应该使用的Go版本,他们应该修改PATH,以便go执行他们想要的版本。为什么gofmt应该不同?
go env GOROOT
runtime.GOROOT()
PATH
go
gofmt
r8uurelv5#
git-codereview 意味着你正在向你正在工作的仓库提交代码。如果该仓库是 go tree,你应该使用它附带的 gofmt。
git-codereview
axkjgtzd6#
好的,这仅适用于Go仓库本身,使用该克隆的bin/gofmt。如果在git-codereview中特别处理它是可以的,这似乎合理。我认为原始问题标题在谈论GOROOT时有点令人困惑。
bin/gofmt
GOROOT
az31mfrm7#
同意,那是一个措辞不当的意图。
szqfcxe28#
请根据上述讨论的逻辑更新CL,谢谢。
8条答案
按热度按时间11dmarpk1#
https://golang.org/cl/130695提到了这个问题:
git-codereview: add -g flag to the gomft command
t1qtbnec2#
它应该使用GOROOT中的gofmt。这对我来说并不明显。为什么在这种情况下,GOROOT比PATH更好?
我们费尽心思告诉人们不要设置GOROOT环境变量,因为它是导致严重困惑的主要原因。(这是@davecheney最喜欢的一个。)而且记住它们所构建的工具链的工具真的很令人沮丧。
在我看来,在你的PATH中使用gofmt是最好的可用解决方案。或者最多修复#27166,然后使用该结果。
huwehgph3#
这似乎需要进一步讨论。适当地重新标记。
8zzbczxx4#
我们费尽心思告诉人们不要设置GOROOT环境变量
我猜@FiloSottile的意思是类似于
go env GOROOT
或runtime.GOROOT()
,如果未设置,它们都会自动检测目录。虽然我通常同意Josh的观点,但我们告诉人们,要“选择”应该使用的Go版本,他们应该修改PATH
,以便go
执行他们想要的版本。为什么gofmt
应该不同?r8uurelv5#
git-codereview
意味着你正在向你正在工作的仓库提交代码。如果该仓库是 go tree,你应该使用它附带的 gofmt。axkjgtzd6#
好的,这仅适用于Go仓库本身,使用该克隆的
bin/gofmt
。如果在git-codereview
中特别处理它是可以的,这似乎合理。我认为原始问题标题在谈论GOROOT
时有点令人困惑。az31mfrm7#
同意,那是一个措辞不当的意图。
szqfcxe28#
请根据上述讨论的逻辑更新CL,谢谢。