TFS 2012取消对不同分支的支持 - >已添加具有相同密钥的项目

Sco*_*rod 10 tfs tfs-power-tools

我需要帮助解决以下问题:

我试图将源分支中的代码卸载到目标分支上.

我使用以下内容:

  • VS2012 RC
  • TFS 2012
  • VS2012 x64交叉工具命令提示符

当我使用命令提示符执行取消搁置操作时,会发生以下情况:

  1. 显示Shelveset详细信息对话框,其中包含更改文件列表.
  2. 单击"取消搁置"按钮.
  3. 观察命令提示符输出:"已添加具有相同键的项目."

我已经下载了PowerPack1用于电动工具.但是,我未能解决此问题.

idl*_*ind 8

当我从源分支重新搁置变更集但是选择不在本地保留挂起的更改时,我遇到了同样的问题并修复了它.在此之后,新货架的迁移顺利进行.

(我也确保我按照以下步骤从本网站的其他答案中收集)

  • 使用包含源和目标分支的工作空间
  • 从映射到源分支的文件夹中运行该命令
  • 检查包含空格的任何路径周围的引号
  • 删除C:\ Users [USERNAME]\AppData\Local\Microsoft\Team Foundation\4.0\Cache中的缓存并重新启动Visual Studio


Ral*_*oss 8

使用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
Run Code Online (Sandbox Code Playgroud)


研究

这是我试图解决的问题:

  • 根据Andrey的答案清除缓存
  • 尝试从Source - > Branch and Branch - > Source运行命令
  • 我的工作区已包含源和目标分支


打开等效的VS2013 x86 Native Tools命令提示符.

  1. 检查您是否安装了Team Foundation Power Tools:

    C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\tfpt

  2. 确保您有0个待处理排除的更改.
    我有一些被排除的变化被检测到但没有被添加,这就是让我失望的原因.排除的更改应如下所示:

    在此输入图像描述
    注意:不应该"检测到:XX(添加)" - 可见

  3. 当你跑步时tf status,你应该看到如下的东西..tfignore文件的
    1个更改或0个更改.任何其他事情都会扰乱合并.

    C:\ tfs\Root\Solution> tf status
    文件名更改本地路径


    $/Root .tfignore编辑C:\ tfs\Root\Solution.tfignore

    1个更改

  4. 确保tfpt从源Solution目录运行命令

您现在应该能够成功地将搁置集从一个分支合并到另一个分支.

关于.tfsignore的注意事项:
如果您有许多因任何原因而不想撤消的挂起更改,则可以修改.tfignore文件.

如果这是您保留更改的唯一文件,则不会制动合并.
.tfignore reference => stackoverflow - 如何忽略tfs中的文件/目录?


And*_*zov 2

尝试删除以下文件夹中的所有文件并重新启动VS2012():

C:\Users[用户名]\AppData\Local\Microsoft\Team Foundation\4.0\Cache