2017-06-16 45 views
2

我们使用TFS作为项目管理界面,我们使用Git来管理存储库。TFS和Git - 使用户被限制为推送代码

我们希望用户限于推送文件并推送到存储库中的分支。

例如: 在分支A,USER1不能更改文件1,用户2不能更改到file2,用户3可以在分支机构等

改变每一个文件是否有可能在TFS?

+0

我们无法准确设置您提到的限制,我们只能根据存在的设置相应地设置权限,请参阅类似的线程https://stackoverflow.com/questions/27989974/how-can-i-allow - 只 - 某些-人对提交 - 在视觉工作室 - 在线 –

回答

0

TFS中可能吗?

不是我知道的。

你可以做的是设置一个中介仓库,它将作为一个关守:如果推动成功,那个仓库(through a post-receive hook)将推到实际的目标:TFS Git仓库。

这中间回购应该由授权层等管理gitolite:gitolite可以限制推到一个分支或者甚至一个文件:详见“restricting pushes by dir/file name

0

的唯一途径,我可以看到你可能这样做是通过TFS server-side plugin。您可以实施订阅Git PushNotification事件的ISubscriber。这将允许您检查推送的提交,并阻止推送,如果您的政策不满意。但是,您必须在TFS之外的某种结构化格式中定义您的分支/用户限制。

我已经使用这个项目的成功,它提供了在推到TFS托管的Git回购实施政策一个很好的框架:

https://github.com/giuliov/GitPushFilterPlugin

唯一需要注意的(我自己的经验)是, PushNotification事件中可用的数据量可能不足以确定IncludedCommits所属的哪些分支。