如果我在 TFS 中创建了一个标签,并将其分配给多个文件,我的同事将无法将文件的版本(也不能添加其他文件)更改为该标签。我们得到这个错误:
TF14077: The owner of a label cannot be changed.
研究这个问题,我发现了这篇文章,其中指出:
可能允许用户操作开发文件夹中的共享标签 ,但只能操作他们在生产文件夹中拥有的标签。(强调我的)
尽我所能,我找不到任何对“共享标签”的引用。据我所知,标签必须有所有者。
FWIW,我正在尝试使用“浮动”标签,以便开发人员可以通过使用特定标签标记他们的代码已准备好成为构建的一部分。然后构建过程只需要获取具有该标签的所有内容,并自动获取实际准备好构建的最新内容,忽略过去的版本以及尚未准备好迎接黄金时段的新内容。
更新: 我想如果我不能制作一个真正共享的标签,我至少可以给用户编辑由他们的同事创建的标签的权利。这是非常明确的支持。普通Contributor用户没有此权限,但根据 MSDN(参见文章Team Foundation Server Permissions,在Source Control Permissions下),可以通过LabelOther权限授予:
源代码控制权限特定于源代码文件和文件夹。您可以通过右键单击源代码管理资源管理器中的文件夹或文件,单击属性,然后在安全选项卡上,选择要更改权限的用户或组,然后编辑权限中列出的权限来设置这些权限。您可以使用 tf 命令行实用程序进行源代码控制来设置这些权限。
...
管理标签 | tf:标签其他| 拥有此权限的用户可以编辑或删除其他用户创建的标签。
因此,如上所述,我已将该权限分配给包含所有开发人员的域组。我可以使用tf 权限命令验证它是否已设置:
tf permission /group:"CORP\Web Team"
结果如预期(我还分配了标签,只是为了好玩)
===============================================================================
Server item: $/Test1/TeamBuildTypes (Inherit: Yes)
Identity: CORP\Web Team
Allow:
Deny:
Allow (Inherited): Label, LabelOther
Deny (Inherited):
然而,我的测试用户仍然不允许编辑我创建的标签。