【问题标题】:Migration from TFVC to Git - how does it handle branches?从 TFVC 迁移到 Git - 它如何处理分支?
【发布时间】:2020-03-14 21:24:26
【问题描述】:

我正在考虑使用 Azure DevOps 中提供的“导入”选项(存储库 -> 文件 -> [新 Git 存储库] ->“导入”按钮)将我们的 TFVC 存储库迁移到 Git。

我们的 TFVC 存储库目前有两个分支:

$/MyProject/Dev
$/MyProject/Release_1.0  (currently our one and only production version)

“导入”选项 (here) 的文档说“只会迁移一个分支”。如果是这样,我如何将两个分支迁移到我的新 Git 存储库保持分支之间的“关系”?即,一旦在 Git 中,我仍然希望能够(比如说)修复“Release_1.0”分支中的错误并将更改合并回“Dev”。

【问题讨论】:

  • 使用git-tfs。这支持迁移分支。

标签: azure-devops azure-devops-server-2019


【解决方案1】:

对于这个问题,同意Daniel,可以使用git-tfs来实现这个迁移。

首先在本地 git 存储库中获取所有源历史记录(包括所有分支):

git tfs clone http://tfs:8080/tfs/DefaultCollection $/project/trunk . --branches=all

稍等片刻,从 TFS 获取所有变更集的时间更长。

优点:

  • 您在 git 存储库中拥有所有历史记录
  • 管理分支之间的合并!一个分支合并到另一个分支中 在 git 存储库中实现。

详情请参考documentissue(将多个TFS分支克隆到一个Git repo)。

【讨论】:

  • MS“TFVS 到 Git 迁移”文档建议不要迁移历史,那么上面的命令有排除历史的开关吗?如果没有,迁移历史有什么缺点?
  • 克隆一个特定的变更集(没有历史记录),你可以使用quick-clone 命令。这个document 列出了这次迁移的限制。
  • 另外,愚蠢的问题,但我如何指定克隆到哪里?使用上面的命令我得到错误“指定的 git 存储库目录不为空”。如果我替换“。”有一个空文件夹的路径,然后我得到“系统找不到指定的文件”。
  • 你可以关注这个guide
  • 快速克隆命令无法迁移所有分支。如文档中所述,它将采用指定的repo(路径)并将指定的变更集作为版本,并且不采用任何历史信息沿着(所以没有分支)。这个case 中的方法适合你。
猜你喜欢
  • 2019-08-11
  • 2018-02-22
  • 2021-06-01
  • 2021-06-20
  • 1970-01-01
  • 2014-11-05
  • 2018-06-21
  • 2021-01-05
  • 2022-10-25
相关资源
最近更新 更多