我是一个不幸地使用 TFS/TFVC 进行源代码控制的组织的一员。我的小团队的任务是使用 git 运行一种“概念验证”,但我们必须能够将我们的更改推送到 TFS。幸运的是,存在 git-tf 和 git-tfs。但是,我们的 TFS 存储库是一个单一的存储库,包含 20 多个不同的项目/应用程序。在 git 中执行此操作的正确方法是让每个项目成为自己的 git 存储库。我知道我可以使用带有 git-tf 的桥从 TFS 签出一个单独的项目,如果我们永久转换为 git,我会这样做。
我担心的是如果我们仍然需要推回 TFVC,如果我将每个项目都作为自己的 git 存储库签出,当每个项目独立更改时,当我们推回更改时,TFVC 是否会变得混乱?也就是说,如果我从变更集 123 中签出项目 A,也从 123 中签出项目 B,在 A 中进行更改,然后将其作为变更集 124 推送回 TFVC,当我们稍后进行更改时,TFVC 是否会认为存在合并冲突或其他问题到 B 并将它们向上推,因为它是 TFVC 下的一个大存储库。
git-tf 或 git-tfs 是否正确处理此问题?还是我需要将整个 TFS 存储库作为单个 git 存储库检查并按原样使用?或者在这种情况下,最好将各种 TFS 项目签出到单个本地工作区中,并使用 git 创建存储库而不使用 git-tf 桥,然后将更改检查回 TFS,就好像它们是在直接工作区(基本上忽略所有 git 历史记录和提交日志,仅将其用于本地更改跟踪)?