在TFS中共享标签?

时间:2008-10-22 16:46:07

标签: tfs label

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

TF14077: The owner of a label cannot be changed. 

研究这个问题,我找到了this article,其中指出:

  

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

尽我所能,我找不到任何对“共享标签”的引用。据我所见,标签必须有所有者。

FWIW,我正在尝试使用“浮动”标签,以便开发人员可以通过使用特定标签对其进行标记来指示他们的代码已准备好成为构建的一部分。然后构建过程只需要获得具有该标签的所有内容,并自动获取实际上已准备好构建的最新内容,忽略过去版本以及尚未准备好进入黄金时段的新内容。


更新的 我想如果我不能制作一个真正的共享标签,我至少可以让用户有权编辑他们的同事创建的标签。这是非常明确支持的。常规 Contributor 用户没有这个权限,但根据MSDN(请参阅文章 Team Foundation Server权限,在源代码管理权限下),它可以通过 LabelOther 权限授予:

  

源控制权限是   特定于源代码文件和   文件夹。您可以设置这些权限   通过右键单击文件夹或文件   在Source Control Explorer中,单击   属性,在“安全”选项卡上,   选择其中的用户或组   你想要改变权限,和   然后编辑中列出的权限   权限。你可以设置这些   使用tf的权限   source的命令行实用程序   控制。

...

  

管理标签| tf: LabelOther |拥有此权限的用户可以编辑或删除其他用户创建的标签。

所以我已经将权限分配给包含所有开发人员的Domain组,如上所述。我可以使用 tf权限命令验证它是否已设置:

tf permission /group:"CORP\Web Team"

,结果如预期(我也指定了Label,只是为了好玩)

===============================================================================
Server item: $/Test1/TeamBuildTypes (Inherit: Yes)
  Identity: CORP\Web Team
    Allow:
    Deny:
    Allow (Inherited): Label, LabelOther
    Deny (Inherited):

但我的测试用户仍然无法编辑我创建的标签。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

我说我想要

  我正在尝试做的是雇用一个   “浮动”标签让开发者   可以表明他们的代码已准备就绪   通过标记成为构建的一部分   它带有特定的标签。

我上面概述的方案完全实现了这个目标,等等。