簡體   English   中英

如何將 tfvc 遷移到 Git,包括歷史記錄

[英]How to migrate tfvc to Git including history

我們計划從 tfvc 遷移到 Git 版本控制。

我們有一些 GB 的代碼和數千個變更集。 我閱讀了一些文章並瀏覽了 Microsoft 文檔並找到了 2 個選項。

  1. 提示遷移 - 我可以在其中使用 Azure Devops 內置工具“導入存儲庫”。 它有一些限制,比如導入的存儲庫應該是 1GB,我們可以獲得 180 天的歷史記錄。

  2. Git TFS - 這符合我的要求。 但不確定它是否可以遷移整個代碼和整個歷史。

我怎樣才能做到這一點? 除此之外還有其他選擇嗎?

GIT-TFS - 這符合我的要求。 但不確定它是否可以遷移整個代碼和整個歷史。

因為 TFVC 和 Git 存儲數據的方式非常不同,所以沒有任何工具是完美的。 因此,您將不得不嘗試很多事情並找到最適合您需求的方式。 但我很確定沒有一個是完美的。

在這里,您真正有 2 個選項是 git-tfs 和 git-tf。

但是 git-tfs 有一些優勢。 看:

git-tf 和 git-tfs 有什么區別?

我怎樣才能做到這一點?

我只能說我已經在本文檔中添加的內容: https : //github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md

但是因為這種遷移不是一個完美的過程,您將不得不進行大量的試驗和錯誤,直到找到適合您的好方法。 所以從一個小的歷史開始,因為從 TFVC 檢索數據非常慢😕

除此之外還有其他選擇嗎?

有但沒有一個完美的解決方案(但仍然有解決方案可以嘗試)

https://github.com/viceroypenguin/tfs-fast-export https://github.com/kunom/tfsdb-fast-export

如果您搜索得好,您會發現其他自定義解決方案,這些解決方案可以為特定遷移工作 1 或 2 次...

提示遷移 - 我可以在其中使用 Azure Devops 內置工具“導入存儲庫”。 它有一些限制,比如導入的存儲庫應該是 1GB,我們可以獲得 180 天的歷史記錄。

您的歷史記錄越大,遷移所有歷史記錄的意義就越小。 因此,僅遷移幾個月並將 TFVC 歷史記錄作為存檔保留是完全有意義的。

您還可以嘗試使用 git-tfs 或 git-tf 復制此“提示遷移”,只需選擇要開始遷移的變更集即可。

當 TFVC 歷史非常奇怪並且您並不真正需要它時,最后的方法可能是從最后一個變更集的檢出開始。 這就是微軟的建議(即使我不完全同意)。

這種遷移的成功在於靈活,接受它肯定不會完美(主要是由於 TFVC 存儲數據的瘋狂方式並讓您做奇怪的事情)並找到繼續前進的好方法!

git-tfsgit-tf工具運行良好。 Git-tfs 在自​​述文件中有一些很好的文檔。 不過,請記住這是如何工作的。 TFS 非常有限。 發生的情況是您將提取所有 tf​​s 歷史記錄並從中創建一個本地 git 存儲庫。 從那里你可以把任何你想要的 git 遠程。 它應該能夠很好地保留歷史和作者姓名。 如果您要在 Azure DevOps 中遷移到 git,有一個遷移工具可以幫助您。

另外,請記住,這是一個受歡迎的問題,以前曾被

暫無
暫無

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

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