【问题标题】:TFS 2017: Check in policy is working on check outTFS 2017:签入政策正在制定签出
【发布时间】:2018-09-11 19:24:30
【问题描述】:

我有一个用于公司某些项目的自定义 TFS 签入策略。有些项目很大,为它们运行策略大约需要 10 秒左右。每次有人签到时花费 10 秒是可以的,因为这将防止可能需要数小时的问题产生。所以政策确实有帮助。我遇到的问题是,VS 触发策略不仅仅是为了签入,它是从结账中触发并保存签出的文件。这对每个人来说真的很烦人。现在我看到开发人员正在禁用该策略以避免 VS 冻结。

任何人都知道为什么 Visual Studio 会在结帐期间运行策略并保存?

我认为 VS 没有任何设置可以阻止除签入以外的运行,但是代码中是否有方法可以识别操作是签入、签出还是保存,以便我可以相应地编写我的逻辑?

【问题讨论】:

    标签: visual-studio tfs visual-studio-2017 team-explorer vcs-checkout


    【解决方案1】:

    通常,签入政策仅在签入待处理的更改时才有效。所以请仔细检查问题是否真的是由自定义签入政策引起的。

    对于签入策略,您可以在签出要编辑的文件时禁用它,然后在您想要签入待处理的更改时启用它。

    启用签到政策

    1. 团队菜单上,点击团队项目设置,然后点击Source 控制
    2. 源代码管理设置对话框中,点击签入策略 标签。
    3. 在策略类型列表中,选择要启用的策略类型, 并点击启用
    4. 点击确定

    禁用签到政策

    1. 团队菜单上,点击团队项目设置,然后点击Source Control
    2. 源代码管理设置对话框中,点击签入策略 标签。
    3. 在策略类型列表中,选择要删除的策略类型, 并点击禁用
    4. 点击确定

    详情请见Enable and Disable Check-In Policies


    更新:

    请参考本文查看How Does Check-in Policy Work?

    在您签入之前,TFS 会评估您工作中的待定更改 目录。

    所以它会花时间评估未决的更改,这是预期的行为。

    除了此链接中提到的设置之外,VS 中没有任何其他设置用于自定义策略:https://docs.microsoft.com/en-us/vsts/tfvc/set-enforce-quality-gates?view=tfs-2017#in-this-section

    【讨论】:

    • 我不认为在结帐时禁用策略并在签入时重新启用它是一个好主意。例如:在我们公司,他们有 20 多个开发人员,那真的是时候消费。
    • @Dilshod 是的,回复是根据您的原始要求。正如我在上面的答案中提到的,您应该首先检查问题是否真的是由自定义签入策略引起的。通常签入政策不限制签出操作。如果确实是策略,那么您需要检查自定义策略的代码以进行调试。否则没有任何有效的方法可以满足您的要求。
    • 如果我正确理解了这个问题,自定义策略在结帐和保存编辑的文件期间有效。政策本身的执行没有问题。只是 VS 在奇数时间启动策略。我想知道VS是否有一些设置可以更改,以便在结帐和保存文件期间不启动策略,或者以某种方式进入策略本身当前操作是什么(如签入、签出、保存)并退出如果这不是签到。
    • @Dilshod 请参考这篇文章检查How Does Check-in Policy Work?Before you check-in, TFS evaluates pending changes in your working directory。所以它会花时间做这件事,这是预期的行为。 VS 中没有任何其他设置用于自定义策略,除了此链接中提到的设置:docs.microsoft.com/ja-jp/vsts/tfvc/…
    • 这就是我调试它的方式。我有一个代码可以在政策生效时生成日志。因此,我清除了所有日志并尝试签出文件以进行编辑,并且该策略正在运行。保存编辑后的文件时也是如此。我找不到有关您发送给我的那些链接的任何信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多