使用TFS API回滚变更集

时间:2015-10-15 14:14:58

标签: api tfs rollback workspace

我正在尝试使用TFS API来回滚变更集。 我尝试使用所有Workspace.Rollback方法,但操作不执行任何操作(返回的GetStatus表示NoActionNeeded:true)。 有没有人设法让这个工作,并可以发送一个工作代码样本?

从方法的文档中: public GetStatus Rollback(     string []路径,     RecursionType递归,     VersionSpec itemSpecVersion,     VersionSpec版本来自,     VersionSpec版本,     LockLevel lockLevel,     RollbackOptions选项,     string [] itemAttributeFilters ) 我不明白VersionSpec itemSpecVersion参数的含义。 它说明了标识用户所引用项目的版本规范。'但那么它与参数versionFrom有何不同? 我应该作为itemAttributeFilters(最后一个参数)传递什么?

1 个答案:

答案 0 :(得分: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);