克隆一个git-tfs中央仓库,并隐藏TFS

时间:2012-01-20 02:36:30

标签: git git-tfs

我在TFS(Microsoft Team Foundation Server)中有一个代码存储库。我可以使用git-tfs将其转换为git存储库。

但我想要做的是设置一个中央git仓库推送到TFS,并让所有开发人员克隆git仓库,而能够推送到TFS。对于来自中央仓库的“下游”的任何人,我不希望任何迹象表明有TFS回购。

由于TFS服务器信息包含在git-tfs生成的repo中,我该怎么做?

2 个答案:

答案 0 :(得分:2)

要解决这个问题需要解决几个问题。最突出的是从git用户映射到TFS凭据,这些凭据将在将更改签入TFS时使用。

其他麻烦的事情可能与其他TFS用户发生冲突(即如果有人决定直接将事情推送到TFS)。

这就是为什么它不是作为git-tfs的一部分开发的,我相信(至少这就是几个月前我没有添加此功能的原因)。

如果您可以在纯文本文件中使用TFS登录/密码对,并且可以确保无冲突的工作流程(例如,除了通过您的git中央存储库以外,禁止​​以任何其他方式签入TFS) - 您可以实现使用提交挂钩甚至简单的调度程序你需要什么(所以推送不是立即的,而是延迟的和异步的,因此加速推送到git中央存储库)。

实际的脚本应该非常简单,但是还没有人打算写一个(至少我不知道这样的事情)。

答案 1 :(得分:0)

首先,使用--no-metadata标志从提交中删除TFS元数据。然后使用--authors="path-to-authors.txt"标志将TFS用户映射到当前。

git tfs clone http://tfs:8080/tfs/DefaultCollection $/Project1 --authors="c:\project1\authors.txt" --no-metadata

在authors.txt中,将您的用户TFS ID映射到他们的电子邮件中,如下所示:

TFSDOMAIN\peter.pan = Peter Pan <peter.pan@disney.com>

克隆存储库后,运行git tfs bootstrap并删除.git/config文件中的TFS配置。您现在不应该签入TFS,但仍然可以在开发人员之间共享仓库。

有关git tfs clone https://github.com/git-tfs/git-tfs/blob/master/doc/commands/clone.md

的更多详情