我從ALM流浪者分支的指導意見「標準」分支圖案創建一個團隊項目:如何從層次結構中刪除分支?
創建它之後,我發現我只有真正需要的‘基本’的格局。也就是說,我不需要「Service Pack」分支。
有沒有辦法讓我刪除「Service Pack」分支並「治療」層次結構,使「Release」位於層次結構中的「Main」之下?目前,「服務包」層次結構中的每個變更集在「發佈」層次結構中都有相應的變更集,因爲「服務包」剛剛起步。
我從ALM流浪者分支的指導意見「標準」分支圖案創建一個團隊項目:如何從層次結構中刪除分支?
創建它之後,我發現我只有真正需要的‘基本’的格局。也就是說,我不需要「Service Pack」分支。
有沒有辦法讓我刪除「Service Pack」分支並「治療」層次結構,使「Release」位於層次結構中的「Main」之下?目前,「服務包」層次結構中的每個變更集在「發佈」層次結構中都有相應的變更集,因爲「服務包」剛剛起步。
最簡單的解決方案是不要刪除或重新。
服務包分支只是名義上的「服務包分支」。刪除「發佈」分支並將「服務包分支」重命名爲「發佈」。
簡單而優雅,以及答案。 –
不幸的是,TFS中的分支是老式的(或者,如果你問Torvalds,那就是「類恐龍」);在創建後,結構已經設置,不能改變。我相信你將不得不直接在主下創建一個新的版本分支,然後執行從舊版本分支到新版本的baseless merge。我認爲你應該使用/noprompt
參數給merge命令來停止顯示「Resolve Conflicts」對話框。
這會給你更多的衝突比真正需要,因爲TFS不會知道使用什麼祖先。但是由於您希望從原始發佈分支中獲取全部,您可以使用命令tf resolve /recursive /auto:TakeTheirs
來告訴TFS始終在源分支中進行更改。
之後,你應該能夠刪除舊的分支樹。
複雜,但並非不可能。
在使用baseless合併時使用/ discard參數時,您不會發生衝突,也不會在兩側都更改代碼 –
以下類似的場景爲我工作
tf merge /baseless /recursive /noprompt /discard $/TFS/Path/To/Release $/TFS/Path/To/Main
則:
現在,您可以執行正常的GUI從「發佈」合併到「主」
注意:正如很多人已經提到的那樣,小心一些沒有根據的合併,他們會在受到虐待時在珠寶後面咬珠寶。
好吧,我不知道老版TFS
,但至少在TFS2012
/VS2013
,你可以這樣做:
Source Control Explorer
>Branching and Merging
>Reparent
,選擇主(新的父母)完成!
有時,嚮導窗口需要時間才能加載可能的父母 – RMalke
爲什麼世界上任何人都會低估這個問題? –