使用p4api查看挂起的变更列表的文件

本文关键字:列表 文件 挂起 p4api 使用 | 更新日期: 2023-09-27 18:21:57

我希望能够输出任何给定挂起变更列表的文件。p4api中唯一接近的属性是Changelist.Files,但它返回的是FileMetaData列表,而不是文件本身。

另一件可能相关也可能不相关的有趣的事情是,在跑步时。。。

Console.WriteLine(changelist);

我得到了变更列表的描述,如客户端、用户、状态等,但在"文件"字段中,从来没有列出任何文件。不确定这是否是因为文件尚未添加到仓库,但我们非常感谢您的帮助!

使用p4api查看挂起的变更列表的文件

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

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参数来进一步限制文件名或目录的搜索,这可能会有所帮助