You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Perforce Perl API获取指定变更列表的文件列表?

获取Perforce指定变更列表的纯文件列表

命令行验证方法

如果需要先在命令行快速确认目标变更列表的文件,直接用以下命令,输出结果仅包含文件路径,无冗余信息:

p4 files @=123456

Perl API实现代码

使用Perl的P4模块(需提前安装),可以精准获取指定变更列表的文件并存入哈希:

use P4;

# 初始化并连接Perforce
my $p4 = P4->new();
$p4->connect() or die "连接Perforce失败: " . $p4->errors();

# 指定目标变更列表ID
my $changelist = 123456;
# 获取该变更列表的所有文件
my @file_results = $p4->files( "@=$changelist" );

# 将文件路径存入哈希(键为仓库文件路径,值可按需定义)
my %cl_files;
foreach my $file_entry (@file_results) {
    $cl_files{$file_entry->{'depotFile'}} = 1;
}

# 示例:遍历哈希输出文件
foreach my $depot_path (keys %cl_files) {
    print "$depot_path\n";
}

$p4->disconnect();

关键说明

  • @=变更号是Perforce的专用语法,用于定位某变更列表包含的全部文件
  • P4模块返回的每个文件对象中,depotFile字段对应仓库内的完整文件路径,直接提取即可满足哈希存储需求
  • 这种方式完全规避了p4 describe -s的冗余输出,只获取核心的文件列表数据

内容的提问来源于stack exchange,提问作者daveg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:54:54