有什么方法可以获取特定变更集的唯一文件列表吗?使用任何前端技术(例如jquery)。 例如-我想检索所有路径更改为2223、2224、2250的文件列表,例如-
tfs\prod\072418\yellow.aspx
tfs\prod\072418\bg.jpeg
tfs\prod\072418\sent.xml
tfs\prod\072418\home.cs
答案 0 :(得分:0)
您可以轻松地将整个工作空间放在特定的变更集中。您将映射一个新的工作区,然后获取特定版本的源。
看起来您可能正在寻找“只是更改的文件”,基本上是更改集本身的内容。这实际上很难。寻找它也可能是错误的事情。让我们先调查一下,好吗?
当您打开任何TFVC变更集的变更集详细信息时,您将看到与该变更集关联的文件的列表。为了您的目的,任何edit
和add
操作都是更改后的文件。但是任何delete
或merge
或其他项目都将导致内容不变的文件或不再存在的文件。
如果您只想列出更改(而不是文件内容),则可以从命令行使用:
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执行此操作,您有两个选择:
如果您正在使用最新的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。
如果您正在使用旧的TFS服务器,或者需要同时支持新旧服务器,则可以使用Client Object Model to get access to the Changeset。
var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(registeredProjectCollection);
var versionControl = projectCollection.GetService<VersionControlServer>();