在Perforce中,递归列出给定父流的所有子流

时间:2016-07-05 20:31:32

标签: perforce

给定父流,我可以使用以下命令找到它的直接子流:

p4 streams -F "Parent=<parent_stream_path>"  

但是,有没有办法递归列出给定父流的所有后代流?

2 个答案:

答案 0 :(得分:0)

为什么不用首选语言编写脚本来执行此操作?

从父母开始。以父项作为唯一元素初始化队列。使用p4 streams获取子流列表。将它们存储在队列中,并将第一个节点(父节点)附加到不同的列表中。重复此过程,将每个子节点作为父节点。基本上,Breadth First Search以父节点作为根节点。

答案 1 :(得分:0)

我写了一个小的perl函数来获取子列表。 像这样的东西:

sub getChildrenList {
  my $child = shift;
  $child =~ s/^\s+|\s+$//g;
  my $get_children_cmd="p4 streams -F \"Parent=<parent_stream_path>\"";
  my @children= `$get_children_cmd`;
  if (@children != 0){
  foreach my $child_name (@children){
    getChildrenList($child_name);
    }
  }
  push(@children_list,$child);
}