TF.exe的等效命令是TFPT.exe scorch。

13

我一直在寻找与git reset相当的TF.exe命令行等效命令。 我发现了TFPT scorch,但是这是用于构建服务器(jenkins)上使用的,并且我似乎无法安装Power Tools(以标准方式)或使其工作(非标准方式,复制)。

是否存在以下方法:

  1. 在构建服务器上安装tfpt.exe的方法(不需要也不能安装Visual Studio)?
  2. 使用一系列TF.exe命令来模拟此命令?

你可以复制tf(请参见https://dev59.com/7m035IYBdhLWcg3wTuFu的第二个评论),但在这种情况下,我正在使用Team Explorer Everywhere(它基本上是由MS提供的跨平台java tf)http://www.microsoft.com/en-us/download/confirmation.aspx?id=30661。 - major-mann
从您的个人资料中我看到您熟悉该软件 :P - major-mann
我明白了。我认为仅使用 tf 命令行客户端没有简单的方法来执行烧录等价操作。 - Edward Thomson
如果你愿意编写一些代码并想使用TEE SDK,那么你可以自己开发。 - Edward Thomson
我创建了一个关于如何驱动SDK的答案。您可以尝试使用folderdiff将工作目录与工作区版本进行比较,以获取应删除的文件列表。这取决于您是想编写批处理脚本还是Java脚本...!我会记录下来,我们应该在TEE CLC中将scorch包含为tf命令。 - Edward Thomson
显示剩余4条评论
4个回答

26

您没有说明使用的TFS版本。不过,有一个等价的命令:tf reconcile /clean

根据tf文档:

Microsoft (R) TF - Team Foundation Version Control Tool, Version 12.0.30501.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Compares the current state of the workspace on disk with the server's view,
either to clean the workspace or to promote unpended local changes.

tf reconcile /clean [/diff] [/noprompt] [/preview] [/recursive] [/ignore]
             [/unmapped] [/exclude:itemspec1,itemspec2,...] [itemspec]

tf reconcile /promote [/adds] [/deletes] [/diff] [/noprompt] [/preview]
             [/recursive] [/noignore] [/exclude:itemspec1,itemspec2,...]
             [itemspec]

运行: tf reconcile /clean /diff /noprompt /recursive *.*

等价于: tfpt scorch *.* /noprompt /recursive /deletes /diff

有趣的事实是,这个命令在当前的tf.exe文档中并不存在。

另外,正如@Jonathan所提到的,现在也有一个tf scorch命令,它与tf reconcile非常相似。如果有区别,我找不到支持它的文档。很可能与2013年添加的允许真正“离线”开发的本地与服务器工作区有关。


这是一段时间以前的事了,我会确保查看调和命令。谢谢! - major-mann

2

我在构建代理安装脚本中自动安装TFPT:

msiexec /qb /i "tfpt.msi" ADDLOCAL=CLI /l*v tfpt-log.log

然后,使用TFSPowerToolDir环境变量很容易找到它。更新:这需要Visual Studio - 我安装了其中的一个子集,只有vs_teamExplorer.exevstf_testagent.exe
另外,tf.exe现在也有/scorch选项。它在VS2013中不存在,但在VS2013 SP4中存在。

抱歉给你点了踩...但我明确要求使用TF.exe而不是TFPT的等效命令。 - major-mann
OP说:“在构建服务器上安装tfpt.exe的方法”,我已经提供了。这不相关吗? - Jonathan
如果你重新阅读问题,你会注意到我提到目标机器上没有安装Visual Studio。因此,你无法安装tfpt... - major-mann
没错,我安装了 Visual Studio 的一个子集。我会修正答案。 - Jonathan
我撤销了具体提及的反对票,因为这可能有助于其他人实现类似的目标。 - major-mann

1
如果您愿意编写自己的“scorch”功能,可以针对不需要安装Visual Studio的TFS Java SDK进行操作。
“scorch”的基本机制是获取工作区版本中的项目列表和具有挂起更改的项目列表,将其与磁盘上的项目列表进行比较,并删除不在服务器上(或有挂起更改)的任何项目。
(您需要将服务器项目集合与挂起更改集合合并,以避免删除挂起添加。但是,如果您希望为构建服务器特别处理此类情况并且永远不会有挂起更改,请随意省略此步骤。)
您可以使用Workspace.QueryItems在工作区版本中收集服务器上的项目列表。

我认为在这种情况下,我可能可以不必关注待处理的更改,因为我只是想撤消在磁盘上进行的更改(手动删除只读,并在构建之前修改AssemblyInfo.cs文件)。我将接受这个答案,因为我认为它充分描述了所需的步骤。感谢您的帮助! - major-mann

1
我刚刚在构建过程的末尾添加了一个Delete Files任务,参数为**。这样每次构建都应该从头开始获取最新内容,而无需费心使用可能没有正确安装在代理上的TFS实用程序。对我来说,这个解决方案似乎更简单。

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