2015-10-15 5 views
0

Я пытаюсь использовать API TFS для отката набора изменений. Я пробовал использовать все методы Workspace.Rollback, но действие ничего не делает (возвращается GetStatus: NoActionNeeded: true). Неужели кому-то удалось заставить это работать и может отправить образец рабочего кода?Использование TFS API для откат набора изменений

Из документации метода: общественного GetStatus Откат ( строки [] путей, RecursionType рекурсии, VersionSpec itemSpecVersion, VersionSpec versionFrom, VersionSpec versionTo, LockLevel lockLevel, RollbackOptions опции, строка [] itemAttributeFilters ) Я не понимаю, что означает параметр VersionSpec itemSpecVersion. В нем говорится: «Спецификация версии, которая идентифицирует элемент, к которому обращается пользователь». но тогда как он отличается от версии параметра? Что я должен передать как itemAttributeFilters (последний параметр)?

+0

Вы должны просто установить нуль для параметра VersionSpec itemSpecVersion. –

ответ

0

Вы можете откатить программно с ревизии следующим кодом:

TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("tfsCollectionURL")); 
     VersionControlServer vcs = (VersionControlServer)tpc.GetService(typeof(VersionControlServer)); 
     string workingDirectory = @"localPath"; 
     string[] workigDnirectoryArr = new string[] { workingDirectory }; 
     Workspace ws = vcs.GetWorkspace("$/serverPath"); 

     int fromCS = 456; //changesetid 
     int toCS = 495; //changesetid 
     VersionSpec versionSpecFrom = new ChangesetVersionSpec(fromCS); 
     VersionSpec versionSpecTo = new ChangesetVersionSpec(toCS); 

     var status = ws.Rollback(workigDnirectoryArr, RecursionType.None,null, versionSpecFrom, versionSpecTo,LockLevel.None,RollbackOptions.None,null);