如果我在 TFS 中创建了一个标签,并将其分配给多个文件,我的同事将无法更改该标签的文件版本(也无法添加其他文件)。我们得到这个错误:

TF14077: The owner of a label cannot be changed. 

研究这个问题,我发现 本文, ,其中指出:

可以允许用户操纵用户 共享标签在开发文件夹中,但仅操纵他们在生产文件夹中拥有的标签。(强调我的)

尽我所能,我找不到任何有关“共享标签”的参考。据我所知,标签必须有一个所有者。

FWIW,我想做的是采用“浮动”标签,以便开发人员可以通过用特定标签标记其代码来表明他们的代码已准备好成为构建的一部分。然后构建过程只需要获取具有该标签的所有内容,并自动获取实际准备好构建的最新内容,忽略过去的版本以及尚未准备好黄金时间的较新内容。


更新:我想如果我不能制作一个真正共享的标签,我至少可以赋予用户编辑同事创建的标签的权利。这是非常明确支持的。常规的 贡献者 用户没有这个权利,但是根据MSDN(参见文章 Team Foundation 服务器权限, , 在下面 源代码控制权限),它可以通过以下方式授予 标签其他 允许:

源控制权限特定于源代码文件和文件夹。您可以通过右键单击“源控件资源管理器”中的文件夹或文件来设置这些权限,并在“安全性”选项卡上,选择要更改权限的用户或组,然后编辑权限中列出的权限。您可以使用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):

然而我的测试用户仍然不被允许编辑我创建的标签。

有帮助吗?

解决方案 2

我从来没能用标签来完成这项工作。相反,我们使用分支设计了一个完全不同的过程,我现在强烈推荐给任何阅读本文的人。

我们建立了一个分支方案,以便有一个通用的开发分支;由此,每个开发人员都有他/她自己的分支,他们可以用它来做他们想做的事情,并且有一个生产分支。

  • 开发人员在他们的私人分支中做“肮脏”的工作,而不用担心意外发布东西,甚至干扰他们的同事。
  • 当他们准备好集成时,他们会将更改合并到开发分支中。我们在那里进行持续构建,并测试结果。
  • 当集成构建经过全面测试并准备好部署时,更改将合并到生产分支。这是构建和部署的。

我说过我想要

我要做的是采用“浮动”标签,以便开发人员可以通过使用特定标签对其进行标记来表示他们的代码准备成为构建的一部分。

我上面概述的方案完全实现了这一点,甚至更多。

其他提示

搁置套装是否是您正在做的更好的解决方案? IIRC有一个相当丰富的API用于处理搁置集,例如将它们作为构建(或其他)过程的一部分提交。

我发现TFS中的标签在使用时非常有限。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top