Perforce API:Repository.GetChangeLists返回没有文件的列表

时间:2016-07-26 07:43:45

标签: c# api perforce

我正在使用p4api.net(版本2015.1.105.4164)尝试检索影响某个路径的一些更改列表。 我的问题是:返回的所有列表都声明根本没有文件,这是相当矛盾的,因为没有受影响的文件的更改列表根本不代表更改。在P4V中,返回的更改列表当然至少显示一个文件。

我做错了什么?为什么每个返回的更改列表的Files.Property总是为空?

  private void ListSubmittedChangeLists(string path, string client, string user, int maxLists)
  {
     ChangesCmdFlags flags = ChangesCmdFlags.IncludeTime & ChangesCmdFlags.FullDescription;
     var options = new Options(flags, client, maxLists, ChangeListStatus.Submitted, user);
     IList<Changelist> lists = Repository.GetChangelists(options, new FileSpec(new DepotPath(path), VersionSpec.Head));
     Console.WriteLine("{0} lists found.", lists.Count);
     foreach (Changelist list in lists)
     {            
        Console.WriteLine("{0} files found in changelist {1}.", list.Files.Count, list.Id);
        foreach (FileMetaData file in list.Files)
        {               
           Console.WriteLine(file.ClientPath);
        }
     }
     Console.WriteLine("Done.");
     Console.ReadLine();
  }

编辑:我找到了一个解决方法:对于返回的每个更改列表,我必须调用Repository.GetChangeList(list.Id);这将返回一个列表对象,其文件集合已填充...

1 个答案:

答案 0 :(得分:2)

您在编辑问题时描述的解决方法实际上是正确的答案。

GetChangelists返回有关更改的摘要信息,但不返回有关更改中每个文件的信息。 GetChangeList返回有关更改中文件的详细信息。