我已经搜索并搜索了这个网站,我找不到任何真正有用的信息,这让我对此迁移的方法充满信心。
目前公司正在使用TFS,当我到达这里时,我计划将我们搬到Git或类似的地方,因此我将所有项目分组到一个分支机构,因为它们分散在各地。现在我们有这样的设置。
Root
---|Releases
-------|Dev
-------|Test
-------|Main
---|Features
-------|Feature1
-------|Feature2
Main是我们的生产分支,是最精致,最干净的工作代码,测试和开发当然不那么精致。它们都包含相同的应用程序文件夹集。
features文件夹包含功能开发的分支,所以基本上它们是从Dev修改后分支的,然后我们在完成时将它们合并回dev。
我想知道将源代码管理迁移到Git或Mecurial的最佳方法是什么。
我正在考虑将Main复制到主源,然后从中创建一个分支,并将测试复制到该文件夹中,然后将测试分支到dev分支并执行相同的操作。然后单独留下功能分支并丢失其中的内容或让开发人员创建自己的分支以将它们合并。
有没有更好的方法来帮助保持历史?如果没有,上述方法是否会起作用?我担心的是,当我分支Main然后将Test中的文件复制到测试分支中的文件时,它将失去关系或无法有效地确定更改。有什么想法吗?
我发现了这一点,但我不确定如何使用它来获取我现有的TFS设置并使用我上面提到的设置将其移动到git存储库中。
答案 0 :(得分:0)
Team Foundation Server似乎在其2013版本中具有本机GIT支持。见http://en.wikipedia.org/wiki/Team_Foundation_Server#Source_Control
这看起来很简单:更新您的版本,然后使用GIT。完成。
答案 1 :(得分:0)
我认为你的问题没有一个简单的答案。我本来可以做的就是在一个周末的干净利落,以便在短跑之间切换。我会让每个人在周末之前检查他们得到了什么,然后我会合并从Dev到Test的所有内容,并将其用作我新Git存储库中的主干。从Git中的Trunk我将创建必要的功能分支和发布分支。
在功能分支方案中,您不需要Dev和feature brances。只要功能分支集成了代码,就可以测试Trunk中的所有内容。然后,只要您需要稳定或验收测试版本,就可以从主干创建发布分支。
等
在我的方法中你不会保留任何历史记录,你必须在TFS中保留你的发布分支(紧急修补等)一段时间,但我认为这是最干净的方式,你将在它们之间建立新的,新的关系文件夹。可以在TFS中查找历史记录,因此只需锁定所有brances中的签入(如果您需要执行紧急补丁等,则可能是Main),这样您就不会冒险将人们作为一种旧习惯进行检查。
祝你好运,无论你选择哪种方式。
顺便说一句:如果您还没有决定使用新的SCM,请查看PlasticSCM。这具有Git的分支/合并灵活性,以及与TFS匹配的可视化工具。