如何批量将Accurev Stream B中新增文件同步至Stream A?
Accurev跨流迁移新增文件解决方案
一、获取Stream B独有的文件列表
由于GUI对比存在局限,推荐用Accurev命令行工具精准提取差异:
- 打开终端/命令提示符,切换到任意已关联Accurev的工作区目录(确保已完成Accurev登录)
- 执行以下命令,直接输出Stream B有但Stream A没有的文件:
accurev diff -t "Stream A" -t "Stream B" -f | grep "^+" | awk '{print $2}' - 若需要保存结果到文件,方便后续批量操作:
accurev diff -t "Stream A" -t "Stream B" -f | grep "^+" | awk '{print $2}' > b_only_files.txt
二、批量迁移新增文件到Stream A
命令行批量操作(高效推荐)
- 切换到Workspace A的本地目录,确保当前工作区关联的是Stream A
- 执行以下脚本,批量添加并保留文件:
while read file; do accurev add "$file" accurev keep "$file" done < b_only_files.txt - 提交变更到Stream A:
accurev promote -s "Workspace A" -t "Stream A" -c "Migrate new files from Stream B"
GUI操作(适合不熟悉命令行的场景)
- 打开Accurev客户端,切换到Workspace B(关联Stream B)
- 右键点击Workspace B根目录,选择Show History
- 在历史面板中,筛选出共同祖先之后所有新增文件的变更集(可通过时间范围或变更集编号定位)
- 选中这些变更集,右键选择Promote to Stream,目标流选择Stream A
- 回到Workspace A,执行Update操作,即可同步所有新增文件
注意:操作前建议备份工作区,避免目录结构冲突导致的异常;若命令行无法识别
accurev命令,需将Accurev安装目录添加到系统环境变量PATH中。
内容的提问来源于stack exchange,提问作者Chris Giarla
相关产品推荐
相关产品推荐

