我一直在寻找相当于 git reset
. 我发现TFPT scorch
,但是这是在构建服务器(jenkins)上使用的,我似乎无法安装(以标准方式)或工作(非标准,复制)电动工具。
有没有
- 一种在构建服务器上安装 tfpt.exe 的方法(没有也不能有 Visual Studio)?
- 一种使用 TF.exe 命令集合来模拟此命令的方法?
我一直在寻找相当于 git reset
. 我发现TFPT scorch
,但是这是在构建服务器(jenkins)上使用的,我似乎无法安装(以标准方式)或工作(非标准,复制)电动工具。
有没有
您没有指定您使用的 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 年添加的,以允许真正的“离线”开发。
我在构建代理安装脚本中自动安装 TFPT:
msiexec /qb /i "tfpt.msi" ADDLOCAL=CLI /l*v tfpt-log.log
TFSPowerToolDir
然后使用env var轻松找到它。更新:这确实需要 Visual Studio - 我安装了它的一个子集,只是vs_teamExplorer.exe
和vstf_testagent.exe
.
此外,tf.exe
现在也有一个/scorch
选项。它在 VS2013 中不存在,但在 VS2013 SP4 中存在。
如果您愿意编写自己的“scorch”功能,则可以针对TFS Java SDK执行此操作,这不需要您安装 Visual Studio。
scorch 背后的基本机制是获取工作区版本中的项目列表和有待更改的项目列表,将其与磁盘上的项目列表进行比较,删除任何不在磁盘上的项目服务器(或有待处理的更改)。
(您需要将服务器项目集与待处理更改集结合起来,以避免删除待处理的添加。但是,如果您希望将此特殊情况用于构建服务器并且您将永远不会有待处理的更改,请随时省略此步骤。)
Workspace.QueryItems
您可以使用工作区版本 收集服务器上的项目列表。
我刚刚在构建过程的末尾添加了一个删除文件任务,并使用 ** 作为其参数。因此,每个构建都应该从头开始更新,而不必担心可能未提前在代理上正确安装的 TFS 实用程序。这个解决方案对我来说似乎要简单得多。