如何绕过有关已删除目录的字符路径限制的 TFS 错误? (Visual Studio 2013)
How to bypass TFS error regarding character path limits for directories that have been removed? (Visual Studio 2013)
我正在使用 TFS 对我的 C# ASP.NET MVC 项目进行源代码控制。我有一个名为 ProjectA
的项目,它有两个分支(即 ProjectA
和 ProjectA-Dev
。)ProjectA
是我的生产分支,ProjectA-Dev
是我的开发分支. ProjectA-Dev
包含我的项目即将发布的大量新代码。
我正处于需要将生产中的任何更改合并到开发中的阶段。当我在 ProjectA-Dev
中开发我的下一个版本时,我的生产版本收到了一些错误修复。我想将添加的错误修复合并到我的 ProjectA-Dev
分支中。
为了将 ProjectA
合并到 ProjectA-dev
,我打开了“Solution Control Explorer”,右键单击 ProjectA
,然后单击“Branching and Merging”,然后单击“Merge”。
在源代码管理合并向导中,我在源代码分支中选择了 $/TFS/ProjectA
。然后我在目标分支中选择 $/TFS/ProjectA-Dev
。然后我点击“下一步”,选择“最新版本”,然后点击“完成”。
这个过程运行了大约 10 秒,然后它给我这个错误
这个错误完全有道理。然而,令我困惑的是 node_modules
目录在任何一个分支上都不存在。另外,我从本地项目中删除了文件夹 node_modules
。
我还应该注意到 node_modules
曾经在 TFS 中,但几周前我使用变更集 20000 从 TFS 中删除了它。但是,今天,在最新版本中,文件夹 node_modules
在 TFS 上不存在。我还通过门户网站验证了同样的事情。
我尝试通过删除此文件夹的内容来在本地删除 TFS 缓存 %localappdata%\Microsoft\Team Foundation.0\Cache
,但问题仍然存在。
如何绕过此错误并正确合并这些更改?
TFS 可能不知道您更改了什么(删除了 node_modules 个文件)以及在分支 projectA 中的长变更集期间更改是否与分支相关。
您可以找到您首先删除 node_modules 个文件的特定变更集。然后只需使用 tf merge command 和 /discard
选项。
/discard Does not perform the merge operation, but updates the merge
history to track that the merge occurred. This discards a changeset
from being used for a particular merge.
示例命令:
tf merge $/Project/SourceBranch $/Project/TargetBranch /discard /recursive /version:C56693~C56693
它丢弃了变更集 56693。版本是从 ~ 到,因此您可以一次丢弃多个变更集。在您的情况下,丢弃变更集,直到特定变更集 node_modules 文件被删除。命令完成后,您仍然需要检查合并。
在此之后再次执行正常的合并操作。
我终于在 运行 之后开始工作了
tf destroy "$/MyPath/To/Project/node_module"
我正在使用 TFS 对我的 C# ASP.NET MVC 项目进行源代码控制。我有一个名为 ProjectA
的项目,它有两个分支(即 ProjectA
和 ProjectA-Dev
。)ProjectA
是我的生产分支,ProjectA-Dev
是我的开发分支. ProjectA-Dev
包含我的项目即将发布的大量新代码。
我正处于需要将生产中的任何更改合并到开发中的阶段。当我在 ProjectA-Dev
中开发我的下一个版本时,我的生产版本收到了一些错误修复。我想将添加的错误修复合并到我的 ProjectA-Dev
分支中。
为了将 ProjectA
合并到 ProjectA-dev
,我打开了“Solution Control Explorer”,右键单击 ProjectA
,然后单击“Branching and Merging”,然后单击“Merge”。
在源代码管理合并向导中,我在源代码分支中选择了 $/TFS/ProjectA
。然后我在目标分支中选择 $/TFS/ProjectA-Dev
。然后我点击“下一步”,选择“最新版本”,然后点击“完成”。
这个过程运行了大约 10 秒,然后它给我这个错误
这个错误完全有道理。然而,令我困惑的是 node_modules
目录在任何一个分支上都不存在。另外,我从本地项目中删除了文件夹 node_modules
。
我还应该注意到 node_modules
曾经在 TFS 中,但几周前我使用变更集 20000 从 TFS 中删除了它。但是,今天,在最新版本中,文件夹 node_modules
在 TFS 上不存在。我还通过门户网站验证了同样的事情。
我尝试通过删除此文件夹的内容来在本地删除 TFS 缓存 %localappdata%\Microsoft\Team Foundation.0\Cache
,但问题仍然存在。
如何绕过此错误并正确合并这些更改?
TFS 可能不知道您更改了什么(删除了 node_modules 个文件)以及在分支 projectA 中的长变更集期间更改是否与分支相关。
您可以找到您首先删除 node_modules 个文件的特定变更集。然后只需使用 tf merge command 和 /discard
选项。
/discard Does not perform the merge operation, but updates the merge history to track that the merge occurred. This discards a changeset from being used for a particular merge.
示例命令:
tf merge $/Project/SourceBranch $/Project/TargetBranch /discard /recursive /version:C56693~C56693
它丢弃了变更集 56693。版本是从 ~ 到,因此您可以一次丢弃多个变更集。在您的情况下,丢弃变更集,直到特定变更集 node_modules 文件被删除。命令完成后,您仍然需要检查合并。
在此之后再次执行正常的合并操作。
我终于在 运行 之后开始工作了
tf destroy "$/MyPath/To/Project/node_module"