私はC#で小さなリリースノートプログラムを書こうとしています。指定された日付の間に指定されたプロジェクトに属するすべてのチェンジセットと関連する作業項目をフェッチする必要があります。
QueryHistoryメソッドを使用しようとしましたが、日付フィルターを指定する方法が見つかりませんでした。
設定できます
VersionSpec versionFrom = GetDateVSpec(date);
VersionSpec versionTo = GetDateVSpec(DateTime.Now);
その後、
IEnumerable results = versionServer.QueryHistory(sourceControlPath, VersionSpec.Latest, 0, RecursionType.Full, null, versionFrom, versionTo, int.MaxValue, true, true);
List<Changeset> changesets = results.Cast<Changeset>().ToList();
あなたはあなたが求めているチェンジセットを手に入れます。
GetDateVSpec
次のようになります:
private static VersionSpec GetDateVSpec(DateTime date)
{
string dateSpec = string.Format("D{0:yyy}-{0:MM}-{0:dd}T{0:HH}:{0:mm}", date);
return VersionSpec.ParseSingleSpec(dateSpec, "");
}
私はこれを自分のツールの1つで使用しています。元々、ここでこのコアを見つけました(Robaticusによるすばらしい投稿)。
VersionSpecから継承し、作業を実行し、非常に使いやすいクラスがいくつかあることがわかりました。たとえば、DateTimeを受け入れるDateVersionSpecがあります。特定のVersionSpecクラスの完全なリストは次のとおりです。
WorkspaceVersionSpec LaterVersionSpec LabelVersionSpec DateVersionSpec ChangesetVersionSpec
お役に立てれば。