将TFS 2013迁移到Git

时间:2016-01-14 19:57:58

标签: git visual-studio tfs git-tfs

在过去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的任何提示和技巧?

提前致谢!

2 个答案:

答案 0 :(得分:4)

  

不幸的是,我找不到如何将TFS存储库转换为TFS Git存储库

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

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

你唯一的希望就是这2个工具中的一个。

不幸的是,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:Microsoft看到从TFVC迁移到git的方式是更新到tfs 2015 update 2并在与现有TFVC项目相同的项目中创建git存储库,并将源代码复制到git存储库。 TFVC保持历史...如果需要。

答案 1 :(得分:1)

TFVC和Git是截然不同的版本控制模型(有关其他信息,请参阅https://en.wikipedia.org/wiki/Version_control):这就像将数据从文件和目录移动到关系DBMS或将电动汽车与内燃机进行比较。 / p>

我的建议是回到基础并明确说明要求。 :

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

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

  1. 只移动新系统我需要的源文件,摆脱旧的未使用的东西(称之为车库清洁)
  2. 将旧系统锁定为只读
  3. 拍摄最少分支的快照并将其提交到新系统(无需特殊工具)
  4. 在主要版本发布之前不要迁移,明智地选择合适的时刻让团队有时间学习新技术并解决问题
  5. 开始使用新系统并将旧版作为参考
  6. 可以通过删除除管理员以外的所有人的权限来实现第2项。我对第3步的想法是:克隆空仓库,在单独的TFVC工作区中获取最新的主分支,将文件同步到Git仓库(例如robocopy /MIR /XD .git),提交,推送,创建并将Git切换到分支X,获取最新的TFVC分支X,同步等。对要迁移的所有分支重复。

    还要考虑一些重构代码库布局并拆分成单独的Git子树甚至子模块。