防止直接签入 TFS 2017 分支,仅允许合并

Prevent direct checkin on TFS 2017 branch, allow merge only

我想知道是否可以阻止用户使用 TFS 2017 直接在分支上签入,同时仍然允许对该分支进行合并签入。我知道这听起来很矛盾,如果你不能签入,你怎么能合并到那个分支?

无论如何,我们有一个典型的 dev-qa-prod 合并结构。我想让用户直接在 dev 分支上签入。然后在 qa 和 prod 分支上,只允许合并签入发生。这是为了防止想要 "bypass" 我们的部署模型并直接在 prod 分支中检查更改的用户。 (这里不是讨论他们为什么这样做的地方:-\)

如果有什么不清楚的地方,请告诉我,我会相应地更新问题。

谢谢。

不,这不可能。

要签入更改,您需要 Check in 权限(设置为 Allow

所以你可以为users/groups设置权限来防止用户检查到特定的分支,但同时也阻止了合并检查。

但是您可以使用签入策略强制执行 Code Review,这可以防止直接签入 TFS 分支。 (在签入代码之前,您必须请团队中的其他人对其进行审查。)

详情可以安装Colin's ALM Checkin Policies VS 2017 on client side. See Enable and Disable Check-In Policies

To enable a check-in policy:

  1. On the Team menu, click Project Settings, and then click Source Control.
  2. In the Source Control Settings dialog box, click the Check-in Policy tab.
  3. In the policy type list, select the policy type you want to enable, and click Enable.
  4. Click OK.