Goのgofmtツールについて公式のGo仕様に従ってプログラムの出力を自動的にフォーマットするツールがあります(たとえば、Goで仕様が確定しているので、 。次のページでGoのgofmtとdiff/VCSの問題?
:例として
は、 にコメントを並べるの時間を費やす必要はありません:「フォーマット」の規定に基づく
http://golang.org/doc/effective_go.html
、次のことが書かれています構造体のフィールド。 Gofmtはあなたのためにそれを行います。 宣言
type T struct {
name string // name of the object
value int // its value
}
考えるgofmtは、列を整列します:
type T struct {
name string // name of the object
value int // its value
}
私はこれはおそらく差分とVCSesで素晴らしいプレーができる方法を理解していませんが。
私は新しい行があった場合たとえば、:
2d1
< confuzzabler int // doo doo be doo
7d5
<
と生活のすべてが良いでしょう:diffのショー
confuzzabler int // doo doo be doo
をして差分を実行し、私はこれを取得する必要がありますが変更された唯一の行。私はこの得た私gofmt再実行があれば
:
type T struct {
confuzzabler int // doo doo be doo
name string // name of the object
value int // its value
}
をそして今、私は再実行差分をし、私が手にこの:非常に混乱して
2,4c2,3
< confuzzabler int // doo doo be doo
< name string // name of the object
< value int // its value
---
> name string // name of the object
> value int // its value
7d5
<
と誤ったdiff出力が1行だけ変更されたためです。
Goデベロッパーとしてこれをどう対処しますか?
は、ここでは「offtopic」をお読みくださいSOよくある質問と投票します: http://stackoverflow.com/faq明確SOプログラミングに関する質問をする「適切な場所」[原文のまま]であると述べて ツール(私は最近、私が最近ツールをdownvotedについての質問を持っていると誰かがそれを閉じるために投票...私の質問を投稿する他のどこに示唆せずにこれを述べなければならない)。 – SyntaxT3rr0r
これは主に、ソースコードが実際に全く同じGoプログラムであることを理解するにはあまりにも愚かな* diff *ツールの欠点を主に強調していますが、私はこの* gofmt *の問題をどう扱うべきかを知りたいと思っています。 – SyntaxT3rr0r
@Jonathan Leffler:私の質問を丁寧に読んでいただければ、それは**正確に**私が説明している問題であることがわかります。 * gofmt *の性質のために、ソースコードを簡単に変更すると、1行だけを変更したとしても、* gofmt *はいくつかの行を変更することができます。あなたが追加したものだけ)。これは、「何のためのものでもない」diffを生成するため、一般的に開発者のナットを推進するものです。ここで何人いるのかを見てみましょう。これは、「diffがうまくいけないので」というgofmt *のようなアライメントをしている人たちに不満を寄せています。 – SyntaxT3rr0r