2011-08-25 34 views
9

我們正在做一些重大的重構,並且在這個過程中我們正在移動大量文件。我們使用ReSharper,這使得這個(相對)無痛,因爲當我們移動文件時,它更新了所有地方的所有用途 - 甚至是一個不同的項目。所以一切都很好。TFS版本控制 - 刪除文件,添加 - 我們如何告訴TFS這是一個舉動?

除了我們今天剛剛發現ReSharper會告訴TFS刪除舊位置中的文件,然後作爲新文件插入新位置。我們如何告訴TFS這個刪除/插入實際上是一個舉動?

+0

Resharper 9已經出來......這個bug被修復的可能性有多大? – felickz

回答

4

簡答題:你沒有。

長答案:除非要運行完全控制源代碼控制的可能性,否則不要這樣做。

從TFS的角度來看,新位置中的文件是完全不同的文件。它甚至在數據庫服務器中有一個不同的ID。

現在你可以在你的TFS數據庫中進行探測,並嘗試手動更新文件ID關聯。但是,這極有可能會徹底搞砸你自己......除非你是TFS的主要開發人員之一,他非常熟悉產品的後端。在這種情況下,你不會問這個問題。 ;)

有點偏題:你應該聯繫jetbrains並告訴他們解決這個問題。

+2

{inappropiate swear word} - 這不好。如果我們知道ReSharper在做什麼,我們可以使用它來進行所有編輯,然後將文件複製到別處,撤消結帳,移動文件,檢出它們,然後複製回去。但是我們後來知道了這一點。 –

+0

@David Thielen:你總是可以回滾並重新開始...... – NotMe

+0

是的,我們正在考慮這樣做。 –

4

「tf rename」會告訴TFS文件已經移動。

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

如果你是在VS,並從一個文件夾移動文件到另一個,你可以看到TFS暫時擱置的重命名。您也可以將文件從一個文件夾移到另一個文件夾,然後重命名文件。 TFS掛起重命名。

顯然,當resharper移動文件時,它並未使用在VS項目系統中移動和重命名apis,或者我希望這會「正常工作」。

+1

在VS中的* projects *之間移動文件。它實際上做了刪除/添加不動作。因此,我想這實際上是一個VS錯誤。 –

4

我面臨着類似的情況,我想在項目之間移動文件,我希望讓Resharper儘可能地做更多的工作。以下是我最終做的步驟:

  1. 將文件移到Resharper中。這將對目標項目文件進行適當的更改。
  2. 關閉解決方案或禁用Resharper。
  3. 撤消TFS中的刪除/添加。
  4. 在TFS中移動文件。
  5. 確保移動的文件不再在源項目中。
  6. 重新加載解決方案或重新啓用Resharper。
  7. 使用resharper進行任何名稱空間更改。

顯然,一次只能有一個以上的文件。這是一個痛苦,但TFS結束了正確的改變,並且Resharper負責改變引用。

相關問題