
[英]Visual Studio 2015 added files not being added to source control automatically in release branch
[英]Visual Studio 2015 new files not being added to source control automatically
我刚刚升级到 VS2015,遇到了一个我以前从未见过的问题。 使用源代码控制下的现有解决方案,我能够修改文件,并且它们会被提取为准备签入 TFS 的待定更改。
但是,我添加了一个新文件(在此屏幕截图中以 Test.cs 为例),它不会作为新文件被拾取。
我需要右键单击它并单击“将文件添加到源代码管理”
这在以前从来都不是问题。 我希望我作为新文件添加的所有内容都作为待处理的更改被提取。 我怎样才能做到这一点? 我以前在以前的 Visual Studio 版本中没有见过这个。
我可以确认这个问题在另一台机器上是一样的。 此外,“Promote Candidate Changes”中也不会选取新文件。
如果我然后单击“将文件添加到源代码管理”,则会收到此消息。
“所选文件被忽略。无论如何将其添加到源代码管理中?”
我的 .tfignore 文件只有一个忽略包的指令,所以我不认为这个文件是问题所在。
我怎样才能让我的设置回到正轨?
更新:
我注意到这只发生在我工作区的“发布”分支上。 所有其他分支都按预期运行。 此外,如果我再取一个分支“Release”并将其称为“Release1”,问题就会完全消失!
具有特定名称“Release”的分支是否具有 TFS 中的任何特殊功能?
名为 Release 的文件夹及其内容会自动从 TFS 中排除(以及 Debug 和许多文件类型)。 您可以通过创建 .tfignore 文件来覆盖特定文件夹的这一点,如本 链接的“自定义版本控制忽略哪些文件”部分所述
自定义版本控制忽略哪些文件
默认情况下,版本控制会忽略某些类型的文件(例如,.dll 文件)。 结果:
将忽略的文件添加到映射到本地工作区的文件夹时,它们不会出现在团队资源管理器的“待定更改”页面中。
当您尝试使用“添加到源代码管理”对话框添加被忽略的文件(例如通过将它们拖到源代码管理资源管理器中)时,它们会自动出现在“排除的项目”选项卡中。
您可以通过将名为 .tfignore 的文本文件放在要应用规则的文件夹中来配置忽略哪些类型的文件。 .tfignore 文件的效果是递归的。 但是,您可以在子文件夹中创建 .tfignore 文件以覆盖父文件夹中 .tfignore 文件的效果。
.tfignore 文件规则
以下规则适用于 .tfignore 文件:
# 开始注释行
* 和 ? 支持通配符。
除非以 \\ 字符为前缀,否则文件规范是递归的。
! 否定文件规范(匹配模式的文件不会被忽略)
.tfignore 文件示例
忽略 ProjA 子文件夹及其所有子文件夹中的 .cpp 文件
项目A*.cpp忽略此文件夹中的 .txt 文件
*.txt忽略此文件夹及其所有子文件夹中的 .xml 文件
*.xml忽略 Temp 子文件夹中的所有文件
\\Temp不要忽略此文件夹及其任何子文件夹中的 .dll 文件
!*.dll
我们也遇到了这个问题,但在我们的例子中是因为我们有以“.Lib”结尾的文件夹。 从这个 SO 问题中弄清楚: Visual Studio 2015. Files not added to TFS
由于名为“Release”的分支,我们遇到了同样的问题。 但问题仅出现在 Visual Studio 2015 Update 3 中。使用 Visual Studio 2015 Update 2,一切正常。 所以 Visual Studio Update 3 肯定已经改变了它的行为。 返回到它的旧行为会很有用。
将 .tfignore 文件添加到包含您希望它不要忽略的扩展名的发布文件夹中:
!*.vb
我尝试将其添加到我的解决方案文件夹中存在的 .tfignore 中,但没有帮助。 它仅在我将一个添加到父发布文件夹时才起作用。
..\Release
..\Release\.tfignore <-- this one
..\Release\SolutionA\
..\Release\SolutionA\.tfignore
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.