在Visual Studio 2017上使用tfpt.exe

28

即使我安装了Visual Studio 2017的Productivity Power Tools扩展,我仍然无法运行tfpt.exe来执行此文章中建议的命令:

C:\Development> tfpt unshelve "ShevesetName;UserName" /migrate /source:"$/Project/Source" /target:"$/Project/Target"

我该在哪里找到这个程序?

5个回答

14

“Productivity Power Tools”与“TFS Power Tools”不是同一件事,因此安装它并不能帮助你。

没有针对TFS 2017的Power Tools。根据TFS 2017 发布说明

问题:未发布适用于TFS 2017的Power Tools。

解决方法:我们很高兴地告诉您,大多数以前的Power Tools已集成到TFS 2017中。 Process Template Editor是其中一个未被集成的工具,但我们将会在TFS 2017可用后不久,在Visual Studio Gallery上发布适用于TFS 2017的Process Template Editor工具。我们将在此处提供链接,一旦发布,即刻更新。


12
那么,tf和tfpt指令在哪里(它们与模板编辑器无关,是由团队基础架构电源工具安装的)? - BrainSlugs83
这已经是1.5年前他们说要提供链接了,但我仍然找不到它。有人找到了吗? - Jroonk
我找到了这个链接,但还没想出如何运行该命令:https://marketplace.visualstudio.com/items?itemName=KarthikBalasubramanianMSFT.TFSProcessTemplateEditor - Jroonk

8
正如 Daniel 所说,它们是完全不同的东西。 附加说明:TFS 2017流程模板编辑器可用 在您的情况下,您正在尝试使用 unshelve 命令将 shelveset 恢复到 TFS 中的另一个分支。作为解决方法,您可以使用 tf UnshelveRename 命令,以两个步骤实现此目的。
或者只需安装早期版本的 VS 和 Power Tools,例如 VS2015 和Microsoft Visual Studio Team Foundation Server 2015 Power Tools。毕竟,您只需要匹配 TFS Power Tools 的版本与您的 Visual Studio 客户端即可。

14
可以详细说明将未提交的更改还原到另一个分支的解决方法吗? - StingyJack
3
tf Unshelve和Rename似乎不能像tfpt unshelve migrate一样完成相同的任务。从Rename文档链接中可以看到:"如果...新名称已存在,则无法重命名项",这对于移动操作是有意义的,但对于迁移操作来说就不太合适了,因为开发者很可能会更新现有的项。我没有在2017版本中找到实现这种行为的方法,这很遗憾,因为这是一个每年都会出现几次的非常有用的特殊情况。 - icrf
1
这是微软希望我们转向 git 的又一个明确迹象。TFS onprem 和 Visual Studio 团队服务中的 Git 支持比微软自己的 TFS VCS 好得多。即使是微软自身的开发,也更倾向于使用 Git 而不是 TFS VC。 - bitbonk
2
正如已经指出的那样,重命名不是tfpt迁移的替代品。 - Polyfun
4
我已经将“从未上架到分支”的功能添加到了我的Visual Studio扩展程序,名为MultiMerge。请查看此链接,或在Visual Studio的“工具和扩展程序”中查看。 - Dutchman
显示剩余8条评论

3

以下是可能会帮助到你的解决方法!

  1. 创建一个新的工作空间,不要下载所有文件。
  2. 将你修改过的变更还原至这个新的工作空间,这样你就只有当前分支中被修改的文件。
  3. 比较并手动合并你的变更到另一个分支中。

这不是“可能的解决方法”。这就是做事的方式。你的帖子应该回答所有这些问题。所有开发人员都应该至少有2个命名空间。否则你怎么工作?大多数情况下,你在一个项目上工作,然后出现了一个bug。你不想混淆这些……我一直在多个工作区工作。其中1个用于修复错误,1个用于合并,1个用于日常工作。 - T.S.

0

-4

您可以使用git-tfs来完成此操作。在安装了git和git-tfs之后,您应该执行以下步骤:

  1. 创建一个git分支(git_branch_a)从保留集中。
  2. 初始化一个基于TFS目标分支(tfs_branch_b)的git分支(git_branch_b)。
  3. 将git_branch_a合并到git_branch_b中。
  4. 基于git_branch_b 创建一个保留集。
  5. 现在可以在tfs_branch_b中取消保留新的保留集。

OP正在使用TFS VC,而不是Git。更不用说Git和TFS VC之间分支方法的差异需要使用2个单独的Git存储库才能将文件放入表示TFS VC分支的新路径中了。 - Josh Gust
针对@JoshGust和其他投反对票的人:看起来你们对git-tfs是什么有些困惑。它是一个独立的项目,比TFS中的git支持早几年,并且与之无关。相反,它为使用TFS VC跟踪的项目创建和维护本地git存储库,这允许实现比简单移动货架更大的功能。 - Tomek Szpakowicz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接