2010-07-09 89 views
0

我想在一個文件應用標籤標籤,但由於標籤上的舊版本文件已經存在,我得到這個錯誤:TFS 2008:覆蓋的文件

TF203007:無法創建標籤,因爲受版本控制的項目$/MyProj/MyFile.cs已經存在或已被指定多次。

我想從舊版本的標籤移動到最新。

可能嗎?

非常感謝!

回答

0

聽起來好像它試圖將標籤應用到已具有該標籤的文件的版本。如果你使用tf label,它會移動標籤,如果可以的話,那麼你就是這樣做的。

要檢查的一件事是工作區中的版本是否是要標記的版本。否則,指定versionspec(例如下面會標註最新版本的文件,無論你目前在你的工作空間):

tf label "$/MyProj/MyFile.cs" /version:T /server:http://tfs:8080

如果你可以發佈你使用它的tf label命令行也可能有所幫助。

(編輯:上面的tf命令適用於tfs 2005和2008。您需要爲tfs 2010指定項目集合而不是服務器)。

1

一個非常簡單的解決方法(如果它允許你的情況)來解決這個錯誤MESG是(尤其是當每個人都站在你身後,以解決緊迫的基礎上,這個問題):

  • 只要改變buildnumber。 txt文件(保存上一次成功的buildnumber「number」的文件),並將該數字碰到新值,即如果得到的錯誤是TFS>。 ...無法標記...文件,並且在構建時間期間,TFS試圖應用的構建標籤(可以說)是:TFS_RELEASE_BUILD_5,然後,將構建編號修改爲10或20或50,即下一個您的構建腳本將自動生成的構建編號將爲11,21或51.

問題已解決。

我的情況:

  1. 我創建了一個分支 「11.0」 有時2週迴來。在這個分支,我們創建構建從1到10的版本標籤是格式:TUD_COR_11.0.0.1 ..to 10

  2. 昨天,我刪除了11.0支。

  3. 昨天,我們不得不從一個新的源分支所以我們所做的事情又重新創建分公司:

    一個。刪除11.0分支。檢查改變,所以分支現在不見了。

    b。刪除由構建定義創建的所有構建,並最終刪除構建定義(因爲其他團隊成員希望我從頭開始爲新的11.0分支(將從新的源分支創建)創建新的構建定義。在創建構建定義時,我成功地看到了標籤/ etc /中的「tick」標記,與現有構建定義相關的任何東西都將按照Delete操作進行刪除。

  4. 現在我創造了新的再支11.0從最新的數據從源分支今天的。

  5. 再次創建構建定義。

  6. 創建COR與構建標籤TUD_COR_11.0.0.1再次建立。現在TFS給了我上面提到的類似的「error mesg」。

可能的解決方案:

A.刪除文件「按生成日誌」裏TFS標籤操作失敗。你可以使用sidekick -OR TF標籤命令。注意:如果從文件中刪除標籤(或者在此標籤下刪除此文件,即此標籤不再應用於此標籤),這會非常耗時。

*注意:這裏我們不是從源代碼管理中刪除文件。 剛剛從標籤概念

B.或刪除文件只是增加了buildnumber.txt ..這構建腳本用來生成構建標籤也就是說,如果我的buildnumber.txt(這是在源代碼控制的地方它包含一個值「0」,它創建的標籤爲TUD_COR_11.0.0.1(其中分支爲11.0,構建系列爲11.0.0.1)即格式的版本爲「1」。現在,如果我只是將此buildnumber.txt的值更改爲「10」(爲什麼這是我們在HAD 11.0分支之前成功創建的最後一個內部版本號(在我們刪除它之前)..所以我將buildnumber值顛倒爲10即現在如果我再次運行構建定義(即構建構建隊列),構建腳本將生成一個新的構建,編號爲11,即構建標籤爲「TUD_COR_11.0.0.11」。問題在少數SECONDS中解決。公司中沒有人提出了在做這個,因爲這是一個發展分支,使他們不在乎我們建(SCM團隊)都提供給他們。他們只是想要一個成功的版本號有任何懷疑。