我們在發佈週期中維護多個TFS分支。當前的過程是在用戶故事完成時從WIP分支挑選變更集到測試分支。git-tf允許合併遠程分支嗎?櫻桃採摘怎麼樣?
我很想知道git-tf是否允許以這種方式使用多個遠程分支,以及它是否能夠檢查合併與檢查看起來像新代碼的代碼。
有關於這個在這裏討論:
Merge two TFS branches with git tfs
,並有人提到的git-TFS不會玩好跟別人誰還會直接使用VS。有誰知道這是否與git-tf的情況?
我們在發佈週期中維護多個TFS分支。當前的過程是在用戶故事完成時從WIP分支挑選變更集到測試分支。git-tf允許合併遠程分支嗎?櫻桃採摘怎麼樣?
我很想知道git-tf是否允許以這種方式使用多個遠程分支,以及它是否能夠檢查合併與檢查看起來像新代碼的代碼。
有關於這個在這裏討論:
Merge two TFS branches with git tfs
,並有人提到的git-TFS不會玩好跟別人誰還會直接使用VS。有誰知道這是否與git-tf的情況?
目前,git-tf
不代表具有git分支的TFS分支,也不會向任一方向轉換合併 - 也就是說它不會檢入合併,也不會將TFS合併的結果顯示爲一個混帳合併。這是一個非平凡的問題,因爲兩種架構的合併之間存在一些根本性的差異。
TFS合併爲git的合併:
在Git中,您合併兩次提交,並用得到的承諾結束。 TFS看起來很相似 - 因爲您選擇合併源和目標變更集,但合併源不必是變更集。您可以根據標籤,工作區版本,日期等進行合併。這意味着您最終可以合併來自多個不同更改的不同文件。這是一個容易解決的問題(最終,我會假設,將它表示爲一些瘋狂的八爪魚合併)。
難以解決的問題是創建基於TFS分支的git分支。這更多的是一個設置問題 - 即,你想要哪些分支?他們全部?他們中有一些?如果答案是「全部」,那麼當你完成初始克隆時很容易設置。但對我而言,這是 - 數以百計的分支機構和第一次成立昂貴的。如果答案是「其中一些」,那麼當你進行克隆時,你必須指定它們,否則你最終會在後來以不好的方式重寫git歷史。
混帳合併爲TFS合併:
在Git中,分支是那種短暫的。它實際上只是一個指向樹中節點的指針......沒有長期存在的狀態,表示「提交1b4caf
曾經在分支branch
」。想象一下,你有一些git分支master
指向TFS分支$/Proj/main
和另一個git分支test
指向$/Proj/test
。在git中,您將test
合併爲main
。沒問題,在這一點main
的HEAD
承諾有一個父母是test
的HEAD
。但是如果你開始改變test
分支中的東西,這很快會很快變得很難確定。
此外,現在git-tf
將單個git分支映射到您的TFS服務器路徑。對於合併簽入,我們必須一次簽入多個分支。假設您提交了一些提交到master
和一些提交至test
,然後合併它們的各個HEAD
s。現在我們必須檢查幾個提交到每個TFS分支,然後進行合併。這並不一定困難,但它與git-tf
目前的工作方式相去甚遠。
這絕不是一個不可能的問題,但它需要一些聰明的工程和一大堆聰明的測試。但它還沒有。