自从开始使用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完全忽略此更改?
答案 0 :(得分:24)
你无法制作TFS"忽略"改变。这就是TFS的目的 - 跟踪所有更改。
我解释你的问题的方式,你想要避免由于你的注释可能许多小但无害的签到的噪音。如果这是正确的,那么有一种方法可以使用TFS来最小化噪音:
答案 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-in或Source Control VSPackage。
答案 4 :(得分:1)
如果您的主要目标是在ReSharper的帮助下编写更好的代码,告诉您是否应该使用空值或产生其他警告,并且您不想打扰其他团队成员我会建议您考虑在代码中使用External Annotations而不是注释属性。
然后,您可以决定是要提交这些文件还是将它们保存在本地。即使您提交了代码,如果没有这些额外的属性,代码仍然是干净的。
至少我会尝试一下。