使用p4 api查看挂起的更改列表的文件

时间:2013-07-10 21:58:42

标签: c# perforce changelist

我希望能够输出任何给定的待定更改列表的文件。 p4 api中唯一看起来很接近的属性是Changelist.Files,但这会返回FileMetaData列表而不是文件本身。

另一个有趣或可能不相关的有趣的事情就是跑步......

Console.WriteLine(changelist);

...我得到了更改列表的说明,例如客户端,用户,状态等,但在“文件”字段中,从未列出任何文件。不确定是否因为文件还没有被添加到软件仓库,但是感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

以下是最终为我工作的代码:

var changes = rep.GetChangelists(new Options(ChangesCmdFlags.FullDescription, null, -1, ChangeListStatus.Pending, con.UserName));
foreach (var change in changes)
{
    Console.WriteLine(change.Id);
    GetOpenedFilesOptions getOpenedFiles = new GetOpenedFilesOptions(GetOpenedFilesCmdFlags.None, change.Id.ToString(), con.Client.Name, con.UserName, -1);
    IList<Perforce.P4.File> fileList = rep.GetOpenedFiles(null, getOpenedFiles);
    foreach (var f in fileList)
    {
        Console.WriteLine(f);
    }
}

这将通过挂起的更改列表并输出其ID#和文件名。 GetOpenedFilesOptions的参数允许您将搜索限制为特定客户端,用户或两者。此外,通过在rep.GetChangelists中包含FileSpec参数,知道您可以通过文件名或目录进一步限制搜索可能会有所帮助。