【问题标题】:Migrate TFS 2013 to Git将 TFS 2013 迁移到 Git
【发布时间】:2016-04-20 07:25:51
【问题描述】:

在过去的 24 小时内,我一直在努力解决以下问题。

由于我们的开发团队使用 TFS(当前版本 2013)已经有一段时间了,我们决定将所有项目迁移到 git。

但不幸的是,这看起来并不容易。首先,我尝试过使用 git tfs,但每次我尝试克隆一个集合时,它都会说:

Access to path 'x' denied. 

相反,列出所有分支运行顺利。

因此,我试图通过尝试将 TFS 存储库转换为 TFS Git 存储库来解决问题,这将允许我克隆它并将其推送到我们的 BitBucket 存储库。不幸的是,我找不到如何将 TFS 存储库转换为 TFS Git 存储库 - 只找到了如何创建现有的。

最后但并非最不重要的一点是,我什至尝试过使用 git tf - 但每次我尝试访问我的存储库时,它都会显示:“Java ....Main.class”未找到。

关于如何成功从 TFS 迁移到 Git 的任何提示和技巧?

提前致谢!

【问题讨论】:

    标签: git visual-studio tfs git-tfs


    【解决方案1】:

    很遗憾,我找不到如何将 TFS 存储库转换为 TFS Git 存储库

    只是因为没有办法做到!由于 git 和 TFVC 的特殊性,这是一项非常困难的任务,因此微软甚至从未尝试过!

    从某种意义上说,这就是 git-tfs 和 git-tf 工具试图解决很多困难的原因,主要是由于 TFVC 如何(可怕!)在其存储库中管理和存储分支数据。

    您唯一的希望是这两种工具之一。

    不幸的是,git-tf 自 2 年以来不再支持并且不支持分支:-(

    git-tfs 尝试做得更好,但一些分支模式仍然会导致大问题 :-( 在这种最后的情况下,没有分支支持的克隆是你最后的解决方案......

    一些关于如何做的文档 https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/working_with_no_branches.md#clone-just-the-trunk

    随时在 git-tfs github 站点上阅读更多文档。

    拒绝访问路径“x”。

    您确定这不仅仅是一些权限访问问题吗?因为没听说过这样的问题……

    Ps:微软看到从TFVC迁移到git的方式,是更新到tfs 2015 update 2,并在现有TFVC项目之外的同一个项目中创建一个git存储库,并将源代码复制到git存储库。 TFVC 保留历史...如果需要。

    【讨论】:

      【解决方案2】:

      TFVC 和 Git 是完全不同的版本控制模型(有关更多信息,请参阅 https://en.wikipedia.org/wiki/Version_control):就像将数据从 Files&Directory 移动到关系 DBMS 或将电动汽车与内燃机进行比较。

      我的建议是回归基础并清楚地说明要求。 :

      • 我需要迁移所有源代码吗?
      • 我需要迁移历史记录吗?
      • 我需要所有的分支吗?

      我的建议是专注于您真正需要的东西,并寻求最快和最便宜的解决方案,通常是:

      1. 仅将我需要的源文件移至新系统,并删除旧的未使用的东西(称为车库清洁)
      2. 将旧系统锁定为只读
      3. 拍摄最少分支的快照并将它们提交到新系统(无需特殊工具)
      4. 不要在主要版本发布之前进行迁移,明智地选择时机,以便团队有时间学习新技术并解决问题
      5. 开始使用新系统并将旧系统留作参考

      可以通过删除除管理员之外的所有人的权限来实施第 2 项。我对第 3 步的想法是:克隆空仓库,在单独的 TFVC 工作区中获取最新的主分支,将文件同步到 Git 仓库(例如 robocopy /MIR /XD .git),提交、推送、创建和切换 Git 到分支 X,获取最新的 TFVC分支 X、同步等。对要迁移的所有分支重复此操作。

      还考虑对代码库布局进行一些次要重构,并将其拆分为单独的 Git 子树甚至子模块。

      【讨论】:

      • 我完全同意大部分建议。最后,我只是决定采用这个解决方案,即迁移代码库,而 TFVC 可以作为参考,以防需要检查任何工作项。感谢您的建议
      猜你喜欢
      • 2011-02-21
      • 2016-01-02
      • 2019-08-11
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2021-06-09
      相关资源
      最近更新 更多