忽略具有特定更改模式的签入文件

时间:2017-01-17 01:40:34

标签: c# .net visual-studio visual-studio-2013 tfs

自从开始使用JetBrains Annotations以来,为了我自己的利益,我使用[CanBeNull][NotNull]

装饰了所有方法

例如,以下行:

public AccountController(IAccountService accountService)

将更改为:

    public AccountController([CanBeNull] IAccountService accountService)

另一个例子是:

public Account CreateAccountEntity(Account accountEnttity)

将更改为:

    [CanBeNull]
    public Account CreateAccountEntity([NotNull] Account accountEnttity)

如何绕过注释的待定更改,特别是“[CanBeNull]”,并让TFS完全忽略此更改?

5 个答案:

答案 0 :(得分:24)

你无法制作TFS"忽略"改变。这就是TFS的目的 - 跟踪所有更改。

我解释你的问题的方式,你想要避免由于你的注释可能许多小但无害的签到的噪音。如果这是正确的,那么有一种方法可以使用TFS来最小化噪音:

  • 从您当前工作的地方创建一个分支(让我们称之为" BranchA"),然后在该新分支中进行所有注释更改(" BranchB") ,定期检查
  • 如果这需要一些时间(几天,几周)才能完成,那么请确保定期从BranchA合并到BranchB
  • 当您认为已经完成从BranchA到BranchB的最终合并时。如果您已经使用了任何新方法,请确保对其进行注释。如果进行了更改,请重复此步骤。
  • 将BranchB中的所有更改合并回BranchA。这样可以将所有较小的更改聚合到BranchA中的单个大型签入/变更集中。如果你一直在从BranchA到BranchB进行定期合并,即使你开始装修工作已经过了相当长的时间,这应该是没有问题的。

答案 1 :(得分:8)

简而言之,您不应该,最接近的功能是tfignore,但这会忽略所有文件。

另一方面,如果你真的想要这个,你可以使用TFS API创建一个工具,你必须在签入之前运行它,它会验证你的解决方案中的所有待处理文件并寻找这个小的更改并排除文件,但这可能会导致问题,在某些时候您可能会对已排除的文件进行更改,并且不会检入并导致问题。您需要添加额外的代码来验证应该从排除列表中包含哪些文件。

External tool used inside VS在这里,您可以看到如何将工具添加到“工具”菜单并向其发送参数。

TFS API Example 此示例显示如何使用TFS API。有一个'workspace.AddIgnoreFileExclusion()',但我这里没有TFS,所以我稍后会验证如何忽略这些文件。

根据我的经验,我不想检查这些变化的唯一原因是避免与团队发生冲突。 如果我在某些练习中看到很多有价值的东西,比如使用注释,我会与团队讨论让他们购买使用注释的想法,这样每个人都会使用它,很快每个文件都会有注释和不会有任何冲突。

答案 2 :(得分:7)

您无法有选择地忽略文件,TFVC或我遇到的任何其他SCM中的更改。

答案 3 :(得分:6)

我同意其他答案,即微软没有正式支持此类功能。

但如果真的需要,你也可以在a few ways覆盖TFVC。您可以自己编写Visual Studio plug-inSource Control VSPackage

答案 4 :(得分:1)

如果您的主要目标是在ReSharper的帮助下编写更好的代码,告诉您是否应该使用空值或产生其他警告,并且您不想打扰其他团队成员我会建议您考虑在代码中使用External Annotations而不是注释属性。

然后,您可以决定是要提交这些文件还是将它们保存在本地。即使您提交了代码,如果没有这些额外的属性,代码仍然是干净的。

至少我会尝试一下。