从tfs changeset获取文件列表

mir*_*akl 1 cruisecontrol.net msbuild tfs2010

我需要从chageset获取已更改文件的列表,并排除所有其他垃圾.

我可以从命令tf changeset/i $(changesetnumber)获取此信息,但除了文件列表之外,我还有很多其他信息,我不需要这些信息用于我的目的.

或者也许有人可以告诉如何从ccnet获取此文件列表,以便我可以通过属性将其发送到我的msbuild.proj文件.

Mar*_*ath 9

您可以使用TFS API获取所需的信息.下面是一些C#代码示例,它将选择所有已编辑,已添加和已删除文件的文件名

Uri serverUri = new Uri("http://mytfsserver:8080/");
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(serverUri);
tpc.EnsureAuthenticated();
VersionControlServer vcs = tpc.GetService<VersionControlServer>();
var changeset = vcs.GetChangeset(changesetId);
var changedFiles = from change in changeset.Changes where
       (  (change.ChangeType & ChangeType.Edit) == ChangeType.Edit
       || (change.ChangeType & ChangeType.Add) == ChangeType.Add
       || (change.ChangeType & ChangeType.Delete) == ChangeType.Delete)
     select change.Item.ServerItem;
Run Code Online (Sandbox Code Playgroud)

我担心我没有使用cc.net所以不能建议将其集成到ccnet中的最佳方法,但你可以将它编译成一个小实用程序或用脚本语言重写它(例如Powershell,IronPython)

  • 我只是想花一点时间来感谢你.您不知道这个简单的帖子在我创建自定义合并工具时有多么有用. (2认同)