C# 如何绕过关于已删除目录的字符路径限制的TFS错误?(Visual Studio 2013)
我正在使用TFS对我的c#ASP.NET MVC项目进行源代码控制。我有一个名为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
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,该命令返回以下内容:没有要合并的变更。