【发布时间】:2017-02-06 13:52:38
【问题描述】:
我所在的组织不幸地使用 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 历史记录和提交日志,仅将其用于本地更改跟踪)?
【问题讨论】:
-
应该可以了。仅当两个 gt 存储库中的文件都已更改时,您才会遇到冲突。就像您在同一 git 存储库的两个分支尝试将同一文件的更改推送到同一上游远程时一样。
标签: git tfs tfvc git-tfs git-tf