我正在使用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);这将返回一个列表对象,其文件集合已填充...
答案 0 :(得分:2)
您在编辑问题时描述的解决方法实际上是正确的答案。
GetChangelists
返回有关更改的摘要信息,但不返回有关更改中每个文件的信息。 GetChangeList
返回有关更改中文件的详细信息。