C# 如何绕过关于已删除目录的字符路径限制的TFS错误?(Visual Studio 2013)

C# 如何绕过关于已删除目录的字符路径限制的TFS错误?(Visual Studio 2013),c#,visual-studio,visual-studio-2013,tfs,merge,C#,Visual Studio,Visual Studio 2013,Tfs,Merge,我正在使用TFS对我的c#ASP.NET MVC项目进行源代码控制。我有一个名为ProjectA的项目,它有两个分支(即ProjectA和ProjectA Dev)ProjectA是我的生产分支,ProjectA Dev是我的开发分支ProjectA Dev为我即将发布的项目包含大量新代码 我正处于需要将生产中的任何更改合并到开发中的阶段。当我在ProjectA dev中编写下一个版本时,我的生产版本收到了一些错误修复。我想将添加的错误修复合并到我的ProjectA Dev分支中 要将Proje

我正在使用TFS对我的c#ASP.NET MVC项目进行源代码控制。我有一个名为
ProjectA
的项目,它有两个分支(即
ProjectA
ProjectA Dev
ProjectA
是我的生产分支,
ProjectA Dev
是我的开发分支
ProjectA Dev
为我即将发布的项目包含大量新代码

我正处于需要将生产中的任何更改合并到开发中的阶段。当我在
ProjectA dev
中编写下一个版本时,我的生产版本收到了一些错误修复。我想将添加的错误修复合并到我的
ProjectA Dev
分支中

要将
ProjectA
合并到
ProjectA dev
,我打开了“解决方案控制资源管理器”,右键单击
ProjectA
,然后单击“分支和合并”,然后单击“合并”

在源代码管理合并向导中,我在源代码分支中选择了
$/TFS/ProjectA
。然后,我在目标分支中选择了
$/TFS/ProjectA Dev
。然后我点击“下一步”,选择“最新版本”,点击“完成”

这个过程运行了大约10秒,然后它给了我这个错误

这个错误完全有道理。然而,让我困惑的是,
node\u modules
目录在两个分支上都不存在。此外,我还从本地项目中删除了文件夹
node\u modules

我还应该注意到,
node\u modules
以前在TFS中,但几周前我使用changeset 20000将其从TFS中删除。但是,在最新版本中,TFS上不存在文件夹
node\u modules
。我还通过web门户验证了同样的东西

我试图通过删除此文件夹
%localappdata%\Microsoft\Team Foundation\5.0\cache
的内容本地删除TFS缓存,但问题仍然存在


如何绕过此错误并正确合并这些更改?

TFS可能不知道您更改了什么(已删除的节点模块文件),也不知道更改是否与分支项目a中的长更改集期间的分支相关

您可以找到首先删除节点\模块文件的特定变更集。然后只需使用
/discard
选项

/discard不执行合并操作,但更新合并 跟踪合并发生的历史记录。这将丢弃变更集 用于特定的合并

示例命令:

tf merge $/Project/SourceBranch $/Project/TargetBranch /discard /recursive /version:C56693~C56693
它丢弃变更集56693。版本是从~到,因此您可以一次放弃多个变更集。在您的情况下,放弃变更集,直到删除特定的变更集节点文件。命令完成后,仍然需要签入合并


在此之后,只需再次执行正常的合并操作。

在运行之后,我终于让它工作了
tf destroy“$/MyPath/To/Project/node\u module”

我通过“团队资源管理器”窗格签入我的代码。在每个文件上,您可以右键单击并“与工作区版本进行比较”。从那里,我可以看到我所做的改变。如果不执行hat并签入代码,您将收到冲突通知。然后可以使用合并工具@我的问题不是冲突。我的问题是TFS抱怨本地或TFS上甚至不存在文件夹。我怎样才能比较一个不存在的项目的版本呢?除了您的问题之外,您还应该将node_modules文件夹添加到.gitignore以避免出现这样的问题(文件夹名称太长),package.json文件足以恢复依赖项。我知道这听起来很愚蠢,但您是否在Windows资源管理器中查找该文件夹?有时VS并不能显示所有内容……或者在解决方案资源管理器的顶部栏中,选择“显示所有文件”按钮。如果所有其他操作都失败,我将删除本地存储库并与TFS重新同步。@MarkBeleski我已经在名为
.tfignore
的文件中添加了
\node\u modules
,感谢您的帮助。在变更集20000上,我从多个不同的项目中删除了node_modules文件夹(是的,这是错误的做法,但实际情况就是如此)。我执行了以下命令:tf merge“$/ProjectA”$/ProjectA Dev/discard/recursive/version:C20000~20000,该命令返回以下内容:没有要合并的变更。