繁体   English   中英

克隆git-tfs中央存储库,并隐藏TFS

[英]cloning a git-tfs central repo, and hiding TFS

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

但是我要做的是设置一个推送到TFS的中央git repo,并让所有开发人员克隆该git repo 而不能够推送到TFS。 至于从中央存储库“下游”的任何人,我都不希望有任何迹象表明存在TFS存储库。

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

要使其正常工作,需要解决几个问题。 最突出的是从git用户到TFS凭证的映射,这些值将在将更改签回到TFS时使用。

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

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

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

实际的脚本应该很简单,但是没有人愿意编写一个脚本(至少我不知道这样的事情)。

首先,使用--no-metadata标志从提交中删除TFS元--no-metadata 然后使用--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

暂无
暂无

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

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