2011-08-25 12 views
9

私たちはいくつかの大きなリファクタリングを行っており、その過程でたくさんのファイルを移動しています。 ReSharperを使用すると、ファイルを移動するときにはどこからでもすべての用途が更新されるので、これは(比較的)痛みのないものになります。だからすべてが素晴らしいです。TFSのバージョン管理 - ファイルが削除され、追加されました - TFSに移動する方法を教えてください

ReSharperがTFSに古い場所のファイルを削除して、新しい場所に新しいファイルとして挿入するように指示したことを発見したことを除いては、この削除/挿入が実際に移動であったことをTFSにどのように伝えることができますか?

+0

Resharper 9がリリースされました...このバグはどのように修正されるのですか? – felickz

答えて

4

短い回答:そうではありません。

長い回答:ソースコントロールを完全にホースする可能性がある場合を除き、あなたはそうしません。

TFSの観点からは、新しい場所にあるファイルはまったく別のファイルです。それはデータベースサーバ内で異なるIDを持つことさえあります。

あなたは確かにあなたのTFSデータベースでspelunkingに行き、ファイルIDの関連付けを手動で更新しようとすることができます。しかし、これは非常に高い確率で完全にあなた自身をねじ込む...あなたがTFSの主な開発者の一人で、製品のバックエンドに精通していない限り。あなたはこの質問をしていないでしょう。 ;)

トピックを多少オフトピック:jetbrainsに連絡して、これを修正するように指示する必要があります。

+2

{偽の言葉にならない} - これは良いことではありません。ReSharperが何をしているのか分かっていれば、それを使ってすべての編集を行い、ファイルを別の場所にコピーし、チェックアウトを取り消し、ファイルを移動してチェックアウトしてからコピーします。しかしその後、私たちはこれを学びました。 –

+0

@David Thielen:あなたはいつでもロールバックしてから始めることができます... – NotMe

+0

ええ、私たちはそれをやろうと考えています。 –

4

"tf rename"は、ファイルが移動したことをTFSに通知します。

http://msdn.microsoft.com/en-us/library/a79bz90w.aspx

あなたはVSであり、別のフォルダにファイルを移動する場合は、TFSは、名前の変更を保留し見ることができます。あるフォルダーから別のフォルダーにファイルを移動し、ファイルの名前を変更することもできます。 TFSは名前を変更します。

どうやらresharperがファイルを動かしているときに、VSプロジェクトシステムでmoveとrename apisを使用していない、またはこれが「うまくいく」と思っています。

+1

VS内の* projects *の間でファイルを移動してください。それは実際には削除/追加を行いません。したがって、私はこれが実際にVSのバグだと思います。 –

4

私はプロジェクト間でファイルを移動したいと思っていましたが、私はResharperにできるだけ多くの作業をさせたいと思っていました。ここで私がやった手順は次のとおりです。

  1. Resharperでファイルを移動します。これにより、対象のプロジェクトファイルが適切に変更されます。
  2. ソリューションを閉じるか、Resharperを無効にします。
  3. TFSの削除/追加を元に戻します。
  4. ファイルをTFSに移動します。
  5. 移動したファイルがソースプロジェクトに存在しないことを確認してください。
  6. Resharperを再ロードするか、Resharperを再度有効にします。
  7. Resharperを使用して名前空間を変更します。

明らかに、一度に複数のファイルで行うことができます。それは苦痛ですが、TFSは正しい変更に終わり、Resharperは参照を変更します。

関連する問題