簡體   English   中英

帶有單獨存儲庫的 git-tf

[英]git-tf with separate repositories

我所在的組織不幸使用 TFS/TFVC 進行源代碼控制。 我的小團隊的任務是使用 git 進行某種“概念驗證”,但我們必須能夠將我們的更改推送到 TFS。 幸運的是,存在 git-tf 和 git-tfs。 但是,我們的 TFS 存儲庫是一個包含 20 多個不同項目/應用程序的整體存儲庫。 在 git 中執行此操作的正確方法是讓每個項目成為它自己的 git 存儲庫。 我知道我可以使用帶有 git-tf 的橋接器從 TFS 中查看單個項目,如果我們永久轉換為 git,這就是我會做的。

我擔心的是,如果我們仍然需要推回 TFVC,如果我將每個項目都檢出為自己的 git 存儲庫,那么當我們將更改推回時,TFVC 會因為每個項目獨立更改而變得混亂嗎? 也就是說,如果我從變更集 123 中檢出項目 A,也從 123 中檢出項目 B,在 A 中進行更改,然后將它們作為變更集 124 推送回 TFVC,當我們稍后進行更改時,TFVC 會認為存在合並沖突或其他問題嗎?到 B 並推送它們,因為它是 TFVC 下的一個大存儲庫。

git-tf 或 git-tfs 是否正確處理了這個問題? 或者我是否需要將整個 TFS 存儲庫作為單個 git 存儲庫檢出並按原樣使用? 或者在這種情況下,最好將各種 TFS 項目檢出到單個本地工作區中,並使用 git 創建存儲庫而不使用 git-tf 橋,並將更改檢回 TFS,就好像它們是在工作區(基本上忽略所有 git 歷史記錄和提交日志,僅將其用於本地更改跟蹤)?

是的,您可以為每個 TFS 團隊項目創建多個 Git 存儲庫。 這與在一個團隊項目中統治多個 Git 存儲庫相同。

在此處輸入圖片說明

您可以查看此鏈接的更多詳細信息: 許多 Git 存儲庫,但一個團隊項目來統治它們

如果我從變更集 123 中檢出項目 A 和從 123 中檢出項目 B,在 A 中進行更改,然后將它們作為變更集 124 推送回 TFS,當我們稍后對 B 進行更改時,TFS 會認為存在合並沖突或其他問題嗎?將它們推高,因為它們都是 TFS 上的一個大存儲庫。

正如jessehouwing評論的那樣,TFS只會檢測相應的文件和代碼。 只有當兩個 git 存儲庫中的文件都已更改時,您才會遇到沖突。 例如,變更集 123 中的文件具有版本 a,並在變更集 124 中使用來自 git rep1 的版本 b 進行編輯。 並且此文件還檢查了 repB 的版本 a。 如果您沒有在 git rep2 中將其更改為版本 b。 當您推送更改時,您肯定會遇到沖突。


更新

git-tfs是 TFS 和 git 之間的雙向橋梁。 比如使用git tfs checkintool命令通過 tfs checkin 窗口提交。 因此結果與在一個 GIT 團隊項目中使用多個 git 存儲庫相同。 唯一的區別是一次推送提交,另一次檢查更改。 您上面提到的所有三種方法都應該有效。 最好的方法是使用 git-tfs 來跟蹤所有歷史記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM