2015-10-15 76 views
0

我正在嘗試使用TFS API回滾更改集。 我試過使用所有的Workspace.Rollback方法,但是這個動作什麼都不做(GetStatus返回說NoActionNeeded:true)。 有沒有人設法讓這個工作,並可以發送一個工作代碼示例?使用TFS API回滾更改集

從方法的文檔: 公共的getStatus回滾( 串[]的路徑, RecursionType遞歸, VersionSpec itemSpecVersion, VersionSpec versionFrom, VersionSpec versionTo, LockLevel lockLevel, RollbackOptions選項, 串[] itemAttributeFilters ) 我不明白參數VersionSpec itemSpecVersion的含義。它說'識別用戶所指的項目的版本規格'。但是它與參數versionFrom有什麼不同呢? 我應該通過什麼作爲itemAttributeFilters(最後一個參數)?

+0

你應該只設置爲null 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);