2008-09-11 19 views
8

ReSharperコードクリーンアップ機能( "reorder members"と "reformat code"が有効)は本当に素晴らしいです。 XMLを使用してレイアウトテンプレートを定義すると、単純なキーコンビネーションによって、テンプレートに設定したルールに従って、ソースファイル全体(またはフォルダ/プロジェクト/ソリューション)が再編成されます。ReSharperコードクリーンアップ/再フォーマットコード機能とバージョン管理システム

とにかく、subversion、cvs、gitなどのようなVCSに関する問題が考えられますか?多くの望ましくない競合が起きる可能性はありますか?

ありがとうございます。

答えて

16

はい、間違いなく問題が発生します。手動で解決する必要がある競合を作成することに加えて、再フォーマットされたファイルをチェックインすると、VCSはほぼすべての行を変更したものとして認識します。これにより、あなたやチームメイトが履歴を振り返り、いつ変化したかを見ることが難しくなります。

つまり、誰もが自分のコードを同じ方法で(つまり、そのXMLテンプレートをチームに配布して)自動フォーマットすると、うまくいく可能性があります。問題は本当に誰もが同じことをやっていないときに来るだけです。

+10

私がこれらの状況でお勧めするのは、2つの部分に分かれています。 1回のスイープでコードをクリーンアップし、2回目に変更を加えます。 2つの異なるコミットメッセージ。こうすることで、あなたがやったことを元に戻すことが簡単になり、あなたの修正で何を変えるべきかを知ることができます。私の意見では、複数のコミットであまりにも多くのことにコミットするのは良い方法です。他の人に、何が、なぜ、それほど簡単であるかを知ることができます。 –

2

これは間違いなく競合を引き起こす可能性があるため、並列に作業する人がいる場合は、ファイル全体を再フォーマットしないようにします。

0

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

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

あなたのコードが標準を満たしているかどうかを確認するツールを使用しているので、コードベース全体に設定を適用することはできません。

0

私は、競合が可能であり、そうである可能性があるという前の回答に同意します。

コードを再フォーマットする場合は、少なくとも実際のコードの機能を変更するものと再フォーマットチェックインを混ぜないようにしてください。これにより、人々は簡単な再フォーマットである過去のチェックインをスキップすることができます。また、その地域で進行中の作業があれば、異議を唱えることができるように、誰もが再フォーマットが行われていることを知っておくことをお勧めします。

7

基本的なフォーマットルールを使用してソースコードを保存するIDEまたはエディタを待っていますが、個々の開発者が独自の好みのフォーマットでコードを表示および編集できるようにしています。そうすれば、開いている中括弧を次の行の冒頭に置くことができます。現在の行末ではなく、すべての熱意があると思えるように見えます。

私は長い間待っていると思います。

2

StyleCopを使用すると、誰もが同じレイアウトスタイルを使用するように強制する包括的な標準を適用することができます。それに合わせてReSharperコードスタイルの仕様を開発し、チームに配布するだけです。

私はまだsomeone else to do thisを待っています.JetBrainsは、完全にサポートされていないすべてのnigglingの詳細をクリアして、ReSharperが基本的に完全なStyleCop準拠を保証できるようにします。ただ、

  • たら、ソリューション全体を再フォーマットし、すべての開発者 はReSharperの
  • を使用して オプションをフォーマットすると、共有し、 (コードスタイルの共有オプションを)バージョン管理されていることを確認していることを確認してください

  • 7
    0

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

    0

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

    関連する問題