我知道之前有人问过,但由于没有答案,我再问一遍。
我正在尝试将一个shelveset从一个分支迁移到另一个分支。我正在工作区DIR中运行以下命令:
tfpt unshelve changes;myusername /migrate /source:$/main /target:$/new-branch
当我运行该命令时,我会看到'shelveset details'窗口,包含更改和文件夹(指向$ / Main)
单击取消删除会给我带来冲突对话框,同样文件夹指向$ / main。如果我单击“解决”,我将获得以下选项:
我选择了哪个选项,我从未在'new-branch'中获得任何待定的更改。我有待处理的唯一更改是主分支。
任何想法?
答案 0 :(得分:7)
您需要从映射到目标分支($/new-branch
的目录)中运行此命令,在您的示例中。
例如,如果您当前的分支是=>在C:\Workspace\TeamProject\Main\...
并且您希望将更改移动到映射到D:\Workspace\TeamProject\Dev
然后,您需要从以下目录运行以下命令:
C:\Workspace\TeamProject\Main> tfpt unshelve "changes;muusername" /migrate /source:$/TeamProject/Main /target:$/TeamProject/Dev
有关详细信息,请参阅Tarun的博文:http://geekswithblogs.net/TarunArora/archive/2011/06/06/unshelve-shelveset-created-from-one-branch-to-another.aspx
答案 1 :(得分:2)
我也有这个问题,所发布的解决方案似乎都没有。
事实证明这是用户错误,我在/target
参数中使用反斜杠而不是正斜杠。
这是因为我最初复制了项目的本地路径而不是TFS路径,然后当我注意到我的错误时用$替换了根路径 - 但我错过了斜线方向的变化 - 显然这很重要并且意味着你的shelveset将在源分支中取消保留。
答案 2 :(得分:1)
我和使用TFPT的提问者有相同的经验 - Team Foundation Power Tools 2013.我会运行命令并收到消息“自动合并成功”,认为它正在工作,但是看不到对文件的更改目标分支。
我的命令是这样的:
C:\ Users \ dev \ TFS_TEST \ rel1.1>“C:\ Program Files(x86)\ Microsoft Team Foundation Server 2013 Power Tools \ tfpt.exe”取消支持cbbss02; xyz@gmail.com / migrate / source :$ / E Pluribus Unum / SourceCode / rel1.2 / target:$ / E Pluribus Unum / SourceCode / rel1.1
正如其他人所提到的,我在源和目标路径周围加上了引号:
“C:\ Program Files(x86)\ Microsoft Team Foundation Server 2013 Power Tools \ tfpt.exe”取消搁置cbbss02; xyz@gmail.com / migrate / source:“$ / E Pluribus Unum / SourceCode / rel1.2 “/ target:”$ / E Pluribus Unum / SourceCode / rel1.1“
让它实际上传播对目标分支的更改。 (我也确保Visual Stuido已关闭)