TFS 2010:获取变更集ID列表

我需要创建两个方法如下:

  1. 检索TFS中的所有更改集。
  2. 检索比指定变更集更新的所有变更集。

我做了一些谷歌搜索,发现了一些链接,并设法提出了一些代码。 我似乎无法找出调用方法来获取变更集项的完整列表。 我已经把一些东西混在一起得到这个,但是想知道是否有人可以帮助我:

TfsTeamProjectCollection projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://mydomain.com:8080/tfs")); VersionControlServer versionControl = projectCollection.GetService(); int latestId = versionControl.GetLatestChangesetId(); List changesetList = new List(); for (int i = 1; i < latestId; i++) { try { Changeset cs = versionControl.GetChangeset(i); if (cs != null) { changesetList.Add(cs); } } catch (ResourceAccessException) { } } 

获取某些Id的变更集会抛出“ResourceAccessException”exception,这就是添加处理程序的原因。

关于如何以“正确”的方式做到这一点的任何想法?

我正在使用Visual Studio 2010和TFS 2010.应用程序是用C#编写的.Net 4.0应用程序。

TIA

试试这个:

  // Replace with your setup var tfsServer = @"http://tfsserver:8080/tfs/SW"; var serverPath = @"$/PCSW/ProjectX/Main"; // Connect to server var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsServer)); tfs.Connect(ConnectOptions.None); var vcs = tfs.GetService(); // Create versionspec's. Example start with changeset 529 VersionSpec versionFrom = VersionSpec.ParseSingleSpec("C529", null); // If you want all changesets use this versionFrom: // VersionSpec versionFrom = null; VersionSpec versionTo = VersionSpec.Latest; // Get Changesets var changesets = vcs.QueryHistory( serverPath, VersionSpec.Latest, 0, RecursionType.Full, null, versionFrom, versionTo, Int32.MaxValue, true, false ).Cast(); 

如果它只是所需范围内的变更集编号,则可以使用以下代码。

 foreach (var changeset in changesets) { Console.WriteLine(changeset.ChangesetId); }