2016-11-30 14 views
-3

Visual Studioは、空白をどのようにフォーマットするかなど、作業環境を完全にカスタマイズできるこの素晴らしい機能を提供します。私はスペースや中括弧などを表示する方法と場所について非常に具体的です。TFSにファイルをコミットする前に空白を削除する

たとえば、私はスペースとして挿入するタブを好む。私はまた、インデント(Tab size/Indent size)を2スペースにすることをお勧めします(私はラインがインデントされていることを確かめるために4スペースは必要ありません)。

私が協力して作業するまでは、これはすべてうまいです。私が扱う人はすべて、空白/書式のデフォルトを使うようです。これは、TFSのようなソースコントロールを使用するときに問題を引き起こします。私が働いているファイルと同僚のファイルを比較すると、空白の変化も表示されます。私はこれらの変化を見たくない。彼らは重要ではない。

答えは、チーム全体で同じ設定を使用する必要があるということです。これは正解ではありません。その答えは、悪い設計のための対処です。誰もが同じ設定を使用する必要がある場合、環境をカスタマイズできるのはなぜですか?

TFS(またはその他のソースコントロール)は、ファイルタイプに基づいてファイルをコミットする前に、不要な空白を削除しないのはなぜですか?これにはいくつかの利点があります。 1つは、ファイルを保持するために必要なストレージが少なくて済みます。 2つ目は、ソース管理サーバーへのファイルの転送は、ファイルが小さいため効率的でなければなりません(これらの最初の2つの利点はおそらくファイルがおそらく圧縮されるためおそらく無視されます)。 3つ、最も重要なことに、TFS(または任意のソースコントロール)は、ファイルdiffを実行するときに、空白の変更を報告しなくなります。

自分の環境でファイルを表示/編集すると、そのファイルの定義方法が再フォーマットされます。他の誰かがファイルを表示/編集すると、その仕様に再フォーマットされます。

現在、TFSでこれを行う方法はありますか?

+1

。 Pythonのような、構文的に重要な空白を持つ言語はどうですか?平文文書はどうですか?マークダウンはどうですか? 空白が役に立たないと考えることはできません。 –

+0

@ mo mojo、あなたは困難であり、 "正しい道"を持つ唯一の英雄プログラマーになろうとしています。チーム全体がデフォルトを使用したい場合は、それも同様に行う必要があります。 –

+0

@MrHinsh私は "ヒーロープログラマー"になろうとはしていないし、自分の道が正しい方法だと言っているわけでもありません。私は自分の道がうまくいくのが好きです。私は誰もが自分のやり方を採用するよう求めているわけではありません。私はインデントのために4つの代わりに2つのスペースが好きです。コミットする前に不要な空白を取り除くのに十分なほどスマートにできないのはなぜですか?なぜ私たちはすべて同じものを使用する必要がある場合、私の書式をカスタマイズする能力があります。誰もが4つのスペースを好む理由を知っていますか? 「それはいつもそうだったから」それは、何かが何らかの形で行われた理由について与えられた最悪の答えでもある。 –

答えて

0

あなたが言ったことは非常に合理的ですが、最良の解決策は、チーム全体でコード内の空白に同じ基準を使用させることです。結局のところ、あなたはチームです。

この問題を回避するには、次のようにしてください(ローカルマシンでのみ有効です)。

Visual Studioで、[ツール/オプション/ソース管理/ Visual Studio Team Foundation System]を選択し、[ユーザーツールの構成]ボタンをクリックします。

ダイアログで、以下の設定の項目を追加します。

  • 拡張子:*
  • 操作:
  • コマンドの比較:C:%1%2%6:\ Program Files \ MicrosoftビジュアルStudio 10.0 \ Common7 \ IDE \は
  • 引数をdiffmerge.exeあなたののVisual Studioバージョンインスタレーションパス(のx64/x86の)によって

ignorespace%7%5 /、コマンドオプションがあることも...

VS2010: C:\プログラムファイル(x86の)は、MicrosoftのVisual Studio 10.0 \ Common7 \ IDE \のdiffmerge \。exeファイル
VS2012: C:\プログラムファイル
VS2013 diffmerge.exe 11.0 \ Common7 \ IDE \のMicrosoft Visual Studioの\(x86の)
C:\プログラムファイル(x86の) \マイクロソフトのVisual Studioを12.0 \ Common7 \ IDE \ vsDiffMerge.exe
VS2015: C:\プログラムファイル(x86の)のMicrosoftのVisual Studio \ 14.0 \ Common7 \ IDE \ vsDiffMerge.exe

引数オプションでは、とそれを残します引き数と同じ数VSは暗黙のうちに最後に追加する/無視することを示唆しています。例えば、VS2015でそれは次のようになります。あなたがこのブログを参照することができ

%1 %2 /ignorespace 

詳細:Configure Diff to Show Whitespace

また別の代替を使用することができます。 WinMergeはです。また、空白を無視するオプションもあります(メニューの編集 - >オプション - >比較 - >すべてを無視する(グループボックスの "Whitespace"の一番上))。

は、TFSとWinMergeのを使用するためにはどのように参照することができます:私は、これはソースコントロールに関係しているか見ていない

関連する問題