ReSharper コードのクリーンアップ/コード再フォーマット機能とバージョン管理システムの比較

StackOverflow https://stackoverflow.com/questions/56313

  •  09-06-2019
  •  | 
  •  

質問

ReSharper コードのクリーンアップ機能 (「メンバーを並べ替える" そして "コードを再フォーマットする" が有効になっています) は本当に素晴らしいです。XML を使用してレイアウト テンプレートを定義すると、単純なキーの組み合わせによって、テンプレートに設定したルールに従ってソース ファイル (またはフォルダー/プロジェクト/ソリューション) 全体が再編成されます。

とにかく、それは Subversion、CVS、git などの VCS に関する問題である可能性があると思いますか。?それが多くの望ましくない衝突を引き起こす可能性はありますか?

ありがとう。

役に立ちましたか?

解決

はい、間違いなく問題が発生します。手動で解決する必要がある競合が発生するだけでなく、再フォーマットされたファイルをチェックインすると、VCS はほぼすべての行が変更されたものとして記録します。これにより、あなたやチームメイトが歴史を振り返って、いつ何が変わったのかを確認することが困難になります。

とはいえ、全員が同じ方法でコードを自動フォーマットする場合 (つまり、XML テンプレートをチームに配布する場合)、うまく機能する可能性があります。実際に問題が発生するのは、誰もが同じことをしているわけではない場合だけです。

他のヒント

私は、常にベースラインの書式設定ルールを使用してソース コードを保存し、各開発者が独自の好みの形式でコードを表示および編集できる IDE またはエディタを待っています。そうすれば、異教徒がそう思っている現在の行末ではなく、次の行の先頭に開き中括弧を置くことができます。

長い間待つことになると思います。

  • ソリューション全体を一度再フォーマットするだけです
  • すべての開発者がResharperを使用していることを確認してください
  • フォーマットオプションが共有およびバージョンになっていることを確認してください(コードスタイル共有オプション)

使用できます スタイルコップ 包括的な標準セットを強制し、ほぼ全員が同じレイアウト スタイルを使用することを強制します。次に、これに一致する ReSharper コード スタイル仕様を開発し、チームに配布するだけです。

私はまだ待っています 他の誰かがこれをする, そして、JetBrains は、ReSharper が基本的に完全な StyleCop 準拠を保証できるように、完全にはサポートされていないすべての細かい詳細をクリアします。

間違いなく競合が発生する可能性があるため、ファイルを並行して作業している人がいる場合は、ファイル全体を再フォーマットしないようにしてください。

それは間違いなく紛争を引き起こす可能性があります。

これをマルチユーザー環境で使用する場合、Resharper の構成は、ユーザーが Resharper を使用するかどうかに関係なく、組織内で強制される一連の標準に合わせてコードをフォーマットする必要があります。

そうすることで、設定をコードベース全体に一括適用するのではなく、独自のコードが標準を満たしていることを確認するためにツールを使用することになります。

競合が発生する可能性があり、さらにその可能性があるという以前の回答に同意します。

コードを再フォーマットする予定がある場合は、少なくとも再フォーマット チェックインと実際のコードの機能を変更するチェックインを混在させないように注意してください。このようにして、ユーザーは単純な再フォーマットである過去のチェックインをスキップできます。また、再フォーマットが近づいていることを全員に知らせて、その分野で進行中の作業がある場合に反対できるようにするのも良い考えです。

私たちはソースコードレベルでリファクタリングを行うための取り組みを行っています。私たちはそれを Xmerge と呼んでいますが、現在は プラスチック. 。私たちはより高度なソリューションに取り組んでいるため、これは最初のアプローチにすぎません。チェックしてください ここ.

ソース管理履歴内のすべてのバージョンをチェックアウトし、コード クリーニングを適用して、新しいリポジトリにチェックインするスクリプトを作成することをお勧めします。その後、今後のすべての作業にそのリポジトリを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top