使TFS分支只读

44
我们正在尝试遵循TFS分支指南中的分支策略,并已经到达了创建代表发布的分支的阶段,现在应该将其设置为只读。
在分支的属性|安全选项卡中,它显示了六个用户组,每个组都有10个权限,除了读取之外。我是否需要逐个点击60个复选框上的拒绝,或者有更好的方法使这个分支变成只读?
6个回答

52

右键单击源代码控制资源管理器中的分支,选择锁定...选项。

编辑: 当一个人锁定某个项目时,锁定将出现为“挂起更改”。只要锁定有效,它就会显示为挂起更改。当对该挂起更改进行提交时,锁定将被释放。在锁定生效期间,被锁定的分支实际上是只读的,因为(简言之),锁定者是唯一能进行提交的用户。提交操作会释放分支上的任何锁定。

感谢@AakashM在评论中指出这一点。


21
这会让锁定状态挂起来等待变更。移除提交权限是正确的做法。 - Ian Goldby
1
+1 这个锁根本不起作用... 作为一个锁定器,我有“添加锁定”更改待处理,此外,我可以自由地检查文件。 在我看来,更改权限效果更好。 - Etienne
1
添加了锁定,尝试提交,服务器响应“所有更改都是未修改的文件或锁定。服务器已撤消更改。” - amhed
1
正如@AakashM在他的回答评论中所说,“...勾选锁定项目后单击签入按钮即可释放锁定。这有点不直观。” - Josh E
很不错的...令人惊叹的用户交互。 我一直在尝试修复“已解锁”分支,当我提交时检查了2个小时...啊 :\ 谢谢你指出来。 - Ignacio Soler Garcia
现在唯一的问题是我不断被要求签入。 - xr280xr

11
作为一种简单的方法,您可以将其锁定以进行签出(尽管锁定者必须记住将锁定保留在待处理更改中……这让我想到有更好的方法)。

储物柜不需要记得保持锁定状态 - 它只需防止签入。在这种情况下,最好的策略是让具有待处理更改的开发人员将它们搁置在服务器上。 - Josh E
我的意思是,锁定项会出现在待更改的窗口中,就像它是一个实际的“待处理更改”一样 - 并且勾选锁定项后单击“签入”按钮才会释放锁定。这有点不直观。 - AakashM
10
我有一个“管理”工作空间,用于执行合并、保持锁定等任务,这样我在日常开发中就不会看到它们。 - Richard Berg
@JoshE,创建一个专用账户用于锁定事物,比如LockUserAccount,只有该账户才能进行锁定和解锁操作,这个想法怎么样? - Legends
@Legends 没有什么阻止你这样做,但我不确定你会得到什么价值... 你仍然需要处理锁定/签入的待处理更改以解锁,这只是比之前多了一步。 - Josh E

9
回答第二部分的问题——移除或拒绝读取权限有效地拒绝了其他所有权限。

5
如上所述,锁定并不是一个很好的策略。正确的处理方式是设置权限。您可以有效地将文件设置为只读。试图修改文件的用户将收到“拒绝签出”的消息。
在VS2013中:团队资源管理器 -> 设置 -> 安全性/版本控制。
参考链接:https://msdn.microsoft.com/en-us/library/ms252587.aspx#project_level

3

拒绝域\域用户的签入


2

如果您的继承设置为“开启”,我发现最好的方法是:

  1. 将所有权限除了“读取”权限设为“拒绝”,并且
  2. 将除项目管理员之外的所有其他组添加到“读者”组中。

然后,“读者”组内的所有组都会继承“拒绝”权限,不能进行任何操作,只能阅读。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接