TFS で特定のプロジェクトの変更セットを取得する TFS ユーティリティに取り組んでいます。私は主にテストに使用するホーム TFS 2010 サーバーを持っていますが、私が貢献している codeplex プロジェクトに対して試してみることにしました。そうすれば、ローカルにあるよりも多くの変更セットに対して機能をテストできます。
私の環境では問題なく動作しますが、コードプレックスに有線で接続すると、困惑してしまいます。私のアプリケーションは履歴を照会しますが、履歴を繰り返し処理しようとすると (IEnumerable を遅延ロードするとき)、アプリケーションがハングします。
Intellitrace を見ると、「アイテムが指定されたバージョンに存在しない」という「最初のチャンス」の例外がいくつか見られます。これは、VersionSpec で「$/」の履歴を取得しようとしているため、明らかに真実ではありません。 。最新。
また、デバッグを強制的に一時停止した後、サーバー 500 エラーが 2 回または 3 回連続して返されます。
他の操作( などGetItems()
)は正常に機能するため、認証は問題ではないと確信しています。
何かご意見は?
コードは次のとおりです。
IEnumerable items = vcs.QueryHistory("$/", VersionSpec.Latest, 1, RecursionType.None, null, null, null, 5, true, false);
List<ChangesetItem> returnList = new List<ChangesetItem>();
foreach (Changeset cs in items) //hangs here on first iteraiton
{
ChangesetItem newItem = new ChangesetItem()
{
ChangesetId = cs.ChangesetId,
//ChangesetNote = cs.CheckinNote.Values[0].Value,
Comment = cs.Comment,
Committer = cs.Committer,
CreationDate = cs.CreationDate
};
returnList.Add(newItem);
}