Перечисление всех наборов изменений и связанных рабочих элементов относится к конкретному проекту между указанными датами - PullRequest
6 голосов
/ 08 декабря 2011

Я пытаюсь написать небольшую программу Relase Notes на C #. Мне нужно получить все наборы изменений и связанные рабочие элементы, принадлежащие указанному проекту, между указанными датами.

Я пытался использовать метод QueryHistory, но не мог найти, как я могу дать фильтр даты.

Ответы [ 2 ]

9 голосов
/ 08 декабря 2011

Вы можете установить

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, "");
}

Я использую это в одном из своих собственных инструментов, изначально я нашел ядро ​​для этого здесь (отличный пост от Robaticus)

3 голосов
/ 06 мая 2012

Только что обнаружил, что есть несколько классов, которые наследуются от VersionSpec, и сделают всю работу за вас и очень просты в использовании.Например, существует DateVersionSpec , который принимает DateTime.Полный список определенных классов VersionSpec:

WorkspaceVersionSpec LatestVersionSpec LabelVersionSpec DateVersionSpec ChangesetVersionSpec

Надеюсь, это поможет.

...