自从开始使用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完全忽略此更改?
你不能让TFS"忽略"这个改变.这就是TFS的目的 - 跟踪所有变化.
我解释你的问题的方式,你想要避免由于你的注释可能许多小但无害的签到的噪音.如果这是正确的,那么有一种方法可以使用TFS来最小化噪音:
从你当前工作的地方创建一个分支(让我们称之为"BranchA"),然后在该新分支("BranchB")中进行所有注释更改,定期检查它们
如果这需要一些时间(几天,几周)才能完成,那么请确保定期从BranchA合并到BranchB
当你认为你已经完成了从BranchA到BranchB的最终合并.如果你已经介绍了任何新方法,那么请确保对它们进行注释.如果进行了更改,请重复此步骤.
将所有更改从BranchB合并回BranchA.这样可以将所有较小的更改聚合到BranchA中的单个大型签入/变更集中.如果你一直在从BranchA到BranchB进行定期合并,即使你开始装修工作已经过了相当长的时间,这应该没有问题.
简而言之,你不应该,最接近的功能是tfignore,但这将忽略所有文件.
另一方面,如果你真的想要这个,你可以使用TFS API创建一个工具,你必须在签入之前运行它,它会验证你的解决方案中的所有待处理文件,并寻找这个小的变化和排除文件,但这可能会导致问题,在某些时候您可能会对已排除的文件进行更改,并且不会检入并导致问题.您需要添加额外的代码以验证应从排除列表中包含哪些文件.
VS中使用的外部工具在这里,您可以看到如何将工具添加到"工具"菜单并向其发送参数.
TFS API示例 此示例显示如何使用TFS API.有一个'workspace.AddIgnoreFileExclusion()',但我这里没有TFS,所以我稍后会验证如何忽略这些文件.
根据我的经验,我不想检查这些变化的唯一原因是避免与团队发生冲突.如果我在某些练习中看到很多有价值的东西,比如使用注释,我会与团队讨论让他们购买使用注释的想法,这样每个人都会使用它,很快每个文件都会有注释和不会有任何冲突.
您无法有选择地忽略文件,TFVC或我遇到过的任何其他SCM中的更改.
我同意其他答案,即微软没有正式支持此类功能.
但是如果确实需要,你也可以通过几种方式覆盖TFVC .您可以编写自己的Visual Studio插件或源代码控制VSPackage.