7

私はC#で小さなリリースノートプログラムを書こうとしています。指定された日付の間に指定されたプロジェクトに属するすべてのチェンジセットと関連する作業項目をフェッチする必要があります。

QueryHistoryメソッドを使用しようとしましたが、日付フィルターを指定する方法が見つかりませんでした。

4

2 に答える 2

10

設定できます

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によるすばらしい投稿)。

于 2011-12-08T11:30:32.677 に答える
3

VersionSpecから継承し、作業を実行し、非常に使いやすいクラスがいくつかあることがわかりました。たとえば、DateTimeを受け入れるDateVersionSpecがあります。特定のVersionSpecクラスの完全なリストは次のとおりです。

WorkspaceVersionSpec LaterVersionSpec LabelVersionSpec DateVersionSpec ChangesetVersionSpec

お役に立てれば。

于 2012-05-06T09:26:39.763 に答える