获取特定变更集的唯一文件列表

时间:2018-07-08 08:13:02

标签: visual-studio-2015 tfs2015 tfvc

有什么方法可以获取特定变更集的唯一文件列表吗?使用任何前端技术(例如jquery)。 例如-我想检索所有路径更改为2223、2224、2250的文件列表,例如-

tfs\prod\072418\yellow.aspx
tfs\prod\072418\bg.jpeg
tfs\prod\072418\sent.xml
tfs\prod\072418\home.cs

1 个答案:

答案 0 :(得分:0)

您可以轻松地将整个工作空间放在特定的变更集中。您将映射一个新的工作区,然后获取特定版本的源。

看起来您可能正在寻找“只是更改的文件”,基本上是更改集本身的内容。这实际上很难。寻找它也可能是错误的事情。让我们先调查一下,好吗?

当您打开任何TFVC变更集的变更集详细信息时,您将看到与该变更集关联的文件的列表。为了您的目的,任何editadd操作都是更改后的文件。但是任何deletemerge或其他项目都将导致内容不变的文件或不再存在的文件。

如果您只想列出更改(而不是文件内容),则可以从命令行使用:

C:\Users\JesseHouwing\Source\Workspaces\>tf changeset 29 /noprompt
Changeset: 29
User: Jesse Houwing
Date: Thursday, 14 September 2017 20:02:54

Comment:

Items:
  delete, source rename $/vsts-tfvc-tasks-test/changes.122204;X2
  rename                $/vsts-tfvc-tasks-test/changes.122204,old

它将列出所有项目以及对它们执行的操作类型。  您可以使用tf vc view保存单个文件:

C:\Users\JesseHouwing\Source\Workspaces\>tf vc view /output:changes.122204,old changes.122204,old /version:c29

没有内置命令可以仅捕获单个变更集的文件。您可以使用the VersionControlServer object和powershell相对轻松地完成此操作。或通过调用上述tf vc命令并解析其输出。


要通过API执行此操作,您有两个选择:

REST

如果您正在使用最新的TFS服务器/ VSTS,则可以使用REST API to query TFVC changesets to get to their details。这是向前发展的首选方法。直接使用WebClient(.NET)或Invoke-RestMethod(Powershell)或任何其他Web客户端。 guidance to get started with the REST API is here

SOAP客户端

如果您正在使用旧的TFS服务器,或者需要同时支持新旧服务器,则可以使用Client Object Model to get access to the Changeset

var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(registeredProjectCollection);
var versionControl = projectCollection.GetService<VersionControlServer>();