8

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

とにかく、Subversion、cvs、git などの VCS に関する問題だと思いますか? 多くの望ましくない競合を引き起こす可能性はありますか?

ありがとうございました。

4

9 に答える 9

16

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

とはいえ、全員が同じ方法でコードをオートフォーマットすれば (つまり、その XML テンプレートをチームに配布する)、うまくいくかもしれません。問題は、全員が同じことをしているわけではない場合にのみ発生します。

于 2008-09-11T11:44:21.603 に答える
7
  • ソリューション全体を一度再フォーマットするだけです
  • そして、すべての開発者がResharperを使用していることを確認してください
  • そして、フォーマットオプションが共有され、バージョン管理されていることを確認してください(コードスタイル共有オプション)
于 2008-10-09T12:49:27.973 に答える
7

ソース コードを常にいくつかのベースライン フォーマット ルールを使用して保存し、個々の開発者が自分の好みのフォーマットでコードを表示および編集できるようにする IDE またはエディターを待っています。そうすれば、あなたが異教徒のすべてがそれが行くと思っているように見える現在の行の終わりではなく、次の行の先頭に開いた中括弧を置くことができます。

私の推測では、私は長い間待っていると思います。

于 2008-09-11T12:12:18.540 に答える
2

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

于 2008-09-11T11:33:38.913 に答える
2

StyleCopを使用して、すべての人が同じレイアウト スタイルを使用することをほとんど強制する包括的な一連の標準を強制することができます。あとは、これに適合する ReSharper コード スタイル仕様を開発し、チームに配布するだけです。

ReSharper が完全な StyleCop 準拠を基本的に保証できるようにするために、他の誰かがこれを行うのを待っています。

于 2008-09-11T22:56:10.240 に答える
0

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

于 2010-03-23T13:51:06.897 に答える
0

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

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

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

于 2008-09-11T11:45:12.597 に答える
0

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

コードの再フォーマットを計画している場合は、少なくとも再フォーマット チェックインと実際のコードの機能を変更するチェックインを混在させないようにしてください。このようにして、単純な再フォーマットである過去のチェックインをスキップできます。また、その分野で進行中の作業がある場合に反対できるように、改革が近づいていることを全員が知っていることを確認することもお勧めします。

于 2008-09-11T11:59:36.900 に答える
0

ソース コード レベルでリファクタリングを行うための作業を進めています。私たちはこれを Xmerge と呼び、現在はPlasticの一部です。より高度なソリューションに取り組んでいるため、これは最初のアプローチにすぎません。ここで確認してください

于 2009-04-02T14:18:54.147 に答える