Visual Studio 2015新建文件未自动添加到源代码控制

32

我刚升级到VS2015,遇到了一个之前没有见过的问题。在使用源代码控制下的现有解决方案时,我能够修改文件,并被标记为待提交更改以准备检入TFS。

然而,如果我添加新文件(例如此处截图中的Test.cs),它将不会被视为新文件。

新文件和修改过的文件的截图

我必须右键单击该文件并单击“添加文件至源代码控制”

添加文件至源代码控制的截图

这在以前从未发生过。我希望我添加的所有新文件都能被标记为待提交更改。我该如何做才能实现这一点?我在以前的Visual Studio版本中从未见过这种情况。

我可以确认,在另一台机器上也存在此问题。此外,“Promote Candidate Changes”中也未能找到新文件。

如果我然后点击“添加文件至源代码控制”,我会看到以下消息。

所选文件被忽略 - 仍要添加?

“所选文件被忽略。是否仍要将其添加到源代码控制?”

我的.tfignore文件只包含一个指示以忽略packages的指令,因此我认为该文件不是问题所在。

我该如何恢复设置?

更新:

我发现这只适用于我的工作区“Release”分支。所有其他分支都表现正常。此外,如果我将一个名为“Release”的分支克隆并将其称为“Release1”,则问题完全消失!

在TFS中,特定名称为“Release”的分支是否具有任何特殊功能?

4个回答

21

名为Release的文件夹及其内容会自动从TFS中排除(以及Debug和许多文件类型)。您可以通过创建.tfignore文件来覆盖特定文件夹的设置,详见“自定义版本控制忽略哪些文件”部分link

定制哪些文件被版本控制忽略
默认情况下,某些类型的文件(例如.dll文件)会被版本控制忽略。因此:
当您将被忽略的文件添加到本地工作区中映射的文件夹中时,在 Team Explorer 中的“待处理更改”页面中不会显示它们。
当您尝试使用“添加到源代码控制”对话框(例如,将它们拖入“源代码控制资源管理器”中)添加被忽略的文件时,它们会自动出现在“排除的项目”选项卡中。
您可以通过在要应用规则的文件夹中放置名为.tfignore的文本文件来配置所忽略的文件类型。.tfignore文件的效果是递归的。但是,您可以在子文件夹中创建.tfignore文件以覆盖父文件夹中.tfignore文件的效果。
.tfignore文件规则
以下规则适用于.tfignore文件:
#表示注释行开头
支持*和?通配符。
文件规范是递归的,除非前缀带有\字符。
!否定一个文件规范(与模式匹配的文件不会被忽略)
.tfignore文件示例
忽略ProjA子文件夹及其所有子文件夹中的.cpp文件
ProjA*.cpp 忽略此文件夹中的.txt文件
*.txt
忽略此文件夹及其所有子文件夹中的.xml文件
*.xml
忽略Temp子文件夹中的所有文件
\Temp 不要忽略此文件夹或任何子文件夹中的.dll文件
!*.dll

1
@MartW 这个问题最近出现了。看起来在 TFS 的最新更新中,他们改变了这个策略的一些东西。 - Pavel Voronin

12

8

我们有同样的问题,因为有一个名为“Release”的分支。但这个问题只出现在Visual Studio 2015 Update 3中。使用Visual Studio 2015 Update 2则一切正常。因此,Visual Studio Update 3必须已经改变了它的行为。回到旧的行为将是有用的。


1
是的,我们在升级到VS 2015 Update 3后也遇到了同样的问题。使用之前的VS2015更新没有问题。 - Christian Rodriguez
我可以确认,在每个分支名称为“Release”的情况下,我在VS 2015 Update 3上遇到了相同的问题。相同的分支在VS 2015 Update 2上正常运行。 - ThomazMoura

5
在发布文件夹中添加.tfignore文件,其中包含您希望不被忽略的扩展名:
!*.vb

我尝试将这个内容添加到我的解决方案文件夹中已经存在的 .tfignore 文件中,但是没有起作用。只有当我将其添加到父级发布文件夹中时才能起作用。

..\Release
..\Release\.tfignore <-- this one
..\Release\SolutionA\
..\Release\SolutionA\.tfignore

这是有关该主题的msdn帖子


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接