これは TFS2010 API を使用しています。
ファイル名を指定すると、ファイルのフォルダー パス、最後にチェックインしたユーザー、最後のチェックインの日時などの詳細を取得する必要があります。
これを解決するのに役立つ API/WIQL はありますか?
最初の部分では、ファイル名からこのファイルへの SourceControl パスを取得しましたが、これ以外のものは見つかりませんでした:
tf dir $/*file.cs /recursive /server:http://TFSServer:8080
ファイルへの SourceControl パスを取得したら、これを試すことができます。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
namespace ChangesetDetails
{
class Program
{
static void Main(string[] args)
{
TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSServer:8080"));
VersionControlServer vcs = (VersionControlServer) tpc.GetService(typeof (VersionControlServer));
IEnumerable results = vcs.QueryHistory(@"$/../file.cs",
VersionSpec.Latest, 0, RecursionType.Full, null, null, null, int.MaxValue, true, true);
List<Changeset> changesets = results.Cast<Changeset>().ToList();
Changeset latestChangeset = changesets.ElementAt(0);
}
}
}
これにより、 の最新の変更セットが取得され、目的$/../file.cs
のプロパティが明らかになります。
string lastCommiter = latestChangeset.Owner;
DateTime dateCommited = latestChangeset.CreationDate;