используя TFS API, как я могу получить идентификатор набора изменений для файла на определенную дату? - PullRequest
0 голосов
/ 21 марта 2010

Я надеялся, что смогу передать DateVersionSpec в VersionControlServer.DownloadFile(), но это не сработает. Он говорит мне, что элемент не существует в этой версии, даже если файл существовал в источнике на прошедшую дату.

Нужно ли запрашивать историю элементов, чтобы я мог выяснить, в какой версии был файл на указанную дату? Использовать QueryHistory(...) метод?

Мой текущий код:

version = new DateVersionSpec(date);
var changeSets = this.vcServer.QueryHistory(remoteFile, VersionSpec.Latest, 0,      
    RecursionType.None, user, version, version, 50, true, false);
if (changeSets == null) 
{
throw new Exception("Failed to find..."); 
}

foreach (var item in changeSets)
 {

 }

В настоящее время я ничего не получаю, когда вытаскиваю перечислимые наборы изменений.

Я использую код, похожий на этот: http://blogs.microsoft.co.il/blogs/srlteam/archive/2009/06/14/how-to-get-a-file-history-in-tfs-source-control-using-code.aspx

Обновление: код, который у меня есть, довольно близок (практически идентичен коду из поста), но он умирает, если файл был добавлен на дату раньше, чем дата, и не был изменен, т. Е. Он имеет только одно изменение, и это дополнение.

1 Ответ

1 голос
/ 23 марта 2010

Это дало мне то, что я искал в своем приложении. Если это не работает, проверьте правильность пути к файлу. Это то, что я ошибался в первый раз.

this.vcServer.GetItem(remoteFile, new DateVersionSpec(date));
...