我需要帮助解决以下问题:
我正在尝试将源分支中的代码搁置到目标分支上。
我正在使用以下内容:
- VS2012 遥控
- TFS 2012
- VS2012 x64 交叉工具命令提示符
当我使用命令提示符执行取消搁置操作时,会出现以下情况:
- 搁置集详细信息对话框显示更改文件列表。
- 单击取消搁置按钮。
- 观察命令提示符输出:“已添加具有相同键的项目。”
我已经为电动工具下载了 ServicePack1。但是,我未能解决此问题。
我需要帮助解决以下问题:
我正在尝试将源分支中的代码搁置到目标分支上。
我正在使用以下内容:
当我使用命令提示符执行取消搁置操作时,会出现以下情况:
我已经为电动工具下载了 ServicePack1。但是,我未能解决此问题。
当我从源分支重新搁置变更集但选择不在本地保留待处理的更改时,我遇到了同样的问题并修复了它。此后,新搁置集的迁移顺利进行。
(我还确保我遵循了从本网站的其他答案中收集的以下步骤)
使用Visual Studio 2013和以下命令时,我遇到了同样的错误:
> tfpt unshelve /migrate /source:"$/Root/Solution" /target:"$/Root/Branches/Solution" "The name of my shelveset"
> An item with the same key has already been added
研究
这是我试图解决的问题:
解决方案
打开相当于 VS2013 x86 Native Tools 命令提示符。
检查您是否安装了 Team Foundation Power Tools:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\tfpt
确保您有 0个待处理和已排除的更改。
我有一些被排除的更改被检测到但没有被添加,这就是我发现的原因。排除的更改应如下所示:
注意:没有“检测到:XX(添加)” -不应该是可见的
运行时tf status
,您应该会看到类似以下内容。.tfignore
文件
的 1 个更改或 0 个更改。其他任何事情都会破坏合并。
C:\tfs\Root\Solution>tf status
文件名 更改本地路径
$/Root .tfignore 编辑 C:\tfs\Root\Solution.tfignore
1 个更改
确保您tfpt
从源解决方案目录运行命令
您现在应该能够成功地将搁置集从一个分支合并到另一个分支。
关于 .tfsignore 的注意事项:
如果您有很多挂起的更改,无论出于何种原因都不想撤消,那么可以修改 .tfignore 文件。
如果这是您留下的唯一更改文件,它不会阻止合并。
.tfignore 参考 => stackoverflow - 如何忽略 tfs 中的文件/目录?
尝试撤消源和目标分支上的所有更改,然后重试...
尝试删除以下文件夹中的所有文件并重新启动VS2012(Source):
C:\Users[USERNAME]\AppData\Local\Microsoft\Team Foundation\4.0\Cache