繁体   English   中英

带有单独存储库的 git-tf

[英]git-tf with separate repositories

我所在的组织不幸使用 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 历史记录和提交日志,仅将其用于本地更改跟踪)?

是的,您可以为每个 TFS 团队项目创建多个 Git 存储库。 这与在一个团队项目中统治多个 Git 存储库相同。

在此处输入图片说明

您可以查看此链接的更多详细信息: 许多 Git 存储库,但一个团队项目来统治它们

如果我从变更集 123 中检出项目 A 和从 123 中检出项目 B,在 A 中进行更改,然后将它们作为变更集 124 推送回 TFS,当我们稍后对 B 进行更改时,TFS 会认为存在合并冲突或其他问题吗?将它们推高,因为它们都是 TFS 上的一个大存储库。

正如jessehouwing评论的那样,TFS只会检测相应的文件和代码。 只有当两个 git 存储库中的文件都已更改时,您才会遇到冲突。 例如,变更集 123 中的文件具有版本 a,并在变更集 124 中使用来自 git rep1 的版本 b 进行编辑。 并且此文件还检查了 repB 的版本 a。 如果您没有在 git rep2 中将其更改为版本 b。 当您推送更改时,您肯定会遇到冲突。


更新

git-tfs是 TFS 和 git 之间的双向桥梁。 比如使用git tfs checkintool命令通过 tfs checkin 窗口提交。 因此结果与在一个 GIT 团队项目中使用多个 git 存储库相同。 唯一的区别是一次推送提交,另一次检查更改。 您上面提到的所有三种方法都应该有效。 最好的方法是使用 git-tfs 来跟踪所有历史记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM