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

如何获取指定用户指定日期范围的Perforce变更列表详情(CSV格式)

收集指定用户指定日期范围的Perforce变更列表并导出为CSV

需求说明

需要收集指定用户在指定日期范围(例如:2022年6月1日至2022年12月25日)内的Perforce变更列表详情,并导出为CSV格式。导出的CSV每条记录需包含以下字段:

  • 序号(S.No)
  • Perforce用户名
  • 变更列表编号
  • 提交日期
  • 工作空间
  • 描述

示例数据

  1. Perforce用户名:dary.spitzer,变更列表编号:123456,提交日期:02-08-2022,工作空间:Daryl_Spitzer_Workspace,描述:修复告警问题
  2. Perforce用户名:shadkam.san,变更列表编号:78910,提交日期:24-12-2022,工作空间:Shadkam_san_Workspace,描述:新增PostgreSQL支持

实现方法

方法一:命令行+脚本批量生成(适用于类Unix系统)

  1. 确保已配置Perforce客户端环境(p4命令可用,已完成服务器地址配置与登录)
  2. 修改并执行以下bash脚本,生成目标CSV:
#!/bin/bash
# 配置参数,根据实际需求修改
TARGET_USER="dary.spitzer"
START_DATE="2022/06/01"
END_DATE="2022/12/25"
OUTPUT_CSV="pcl_changes.csv"

# 写入CSV表头
echo "S.No,Perforce用户名,变更列表编号,提交日期,工作空间,描述" > $OUTPUT_CSV

# 遍历符合条件的变更列表,提取详情并写入CSV
p4 changes -u $TARGET_USER -s submitted @$START_DATE,@$END_DATE | awk '{print $2}' | while read -r CL; do
    DESC=$(p4 describe -s $CL)
    USER=$(echo "$DESC" | grep "^User:" | awk '{print $2}')
    # 转换提交日期为DD-MM-YYYY格式
    SUBMIT_DATE=$(echo "$DESC" | grep "^Date:" | awk '{print $3,$2,$4}' | xargs -I {} date -d {} +"%d-%m-%Y")
    WORKSPACE=$(echo "$DESC" | grep "^Client:" | awk '{print $2}')
    # 处理描述字段的换行与逗号,避免CSV格式错乱
    DESCRIPTION=$(echo "$DESC" | sed -n '/^Description:/,$p' | sed '1d' | tr '\n' ' ' | sed 's/,/ /g')
    SNO=$(($(wc -l < $OUTPUT_CSV)))
    echo "$SNO,$USER,$CL,$SUBMIT_DATE,$WORKSPACE,$DESCRIPTION" >> $OUTPUT_CSV
done

echo "CSV文件已生成:$OUTPUT_CSV"

方法二:P4V图形化客户端导出(适用于全平台)

  1. 打开P4V客户端,进入「变更」视图
  2. 设置筛选条件:指定目标用户、提交日期范围,筛选出符合要求的变更列表
  3. 选中所有目标变更列表,右键选择「导出」,选择CSV格式
  4. 在导出设置界面勾选需要的字段(序号、用户名、变更列表编号、提交日期、工作空间、描述),确认导出即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:35:19