2

如果我在 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):

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

4

2 回答 2

1

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

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

于 2008-10-22T16:50:44.240 回答
0

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

我们建立了一个分支方案,以便有一个通用的开发分支;从那以后,每个开发人员都有他/她自己的分支,他们可以用它做他们想做的事,还有一个生产分支。

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

我说过我想要

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

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

于 2010-06-22T16:55:32.277 回答