Perforce是否支持类似Git的单文件本地增量SCL开发方式?
Perforce中实现类似Git的本地增量提交方式
需求场景
假设我有一个名为
developers.txt的文件,我希望实现的操作(在git中可轻松完成)是:进行3-4次提交,每次提交添加一行内容。Git中的提交历史示例如下:
commit 2ad54bfe954006bafcb209f06ac0c12091d297c8 (HEAD -> main) Author: Anuraag <anuraag@something.com> Date: Thu Jun 1 15:04:57 2023 +0530 author #3 added developers.txt commit 26cabf7fa07154b19deff41c5cbb07bf0782bde7 Author: Anuraag <anuraag@something.com> Date: Thu Jun 1 15:04:43 2023 +0530 author #2 added developers.txt commit d9e57385b505e2e02a8dc6064466c3974f22e66d Author: Anuraag <anuraag@something.com> Date: Thu Jun 1 15:04:23 2023 +0530 author #1 added developers.txt commit 03e7f4abddfa26b4b0518994c81e0a724ba1a778 Author: Anuraag <anuraag@something.com> Date: Thu Jun 1 15:03:56 2023 +0530 adds heading developers.txt
最终文件内容:
% cat developers.txt Authors: 1. Arthur 2. Canon 3. Doyle
问题
我想了解,在使用Perforce时是否存在此类本地工作区增量开发方法?我希望变更集#3基于变更集#2、变更集#1构建,且每个变更集都针对同一个文件developers.txt
实现方法
Perforce中对应的核心概念是变更集(Changelist),完全可以实现这种增量式的提交流程,具体步骤如下:
1. 初始化文件到Perforce仓库
确保本地工作区已连接Perforce服务器,将目标文件加入仓库:
p4 add developers.txt
2. 提交第一个增量变更集
- 编辑文件添加标题行:
echo "Authors:" > developers.txt - 提交变更集(自动生成变更集并添加描述):
p4 submit -d "adds heading" developers.txt
3. 依次提交后续增量变更
每次修改文件后提交独立的变更集,每个变更集基于前一次的版本:
- 添加第一个作者并提交:
echo "1. Arthur" >> developers.txt p4 submit -d "author #1 added" developers.txt - 添加第二个作者并提交:
echo "2. Canon" >> developers.txt p4 submit -d "author #2 added" developers.txt - 添加第三个作者并提交:
echo "3. Doyle" >> developers.txt p4 submit -d "author #3 added" developers.txt
4. 查看变更历史
通过以下命令查看文件的所有变更集记录,确认增量关系:
p4 filelog developers.txt
输出会显示每个变更集的编号、作者、提交信息,以及文件版本的递进修改。
补充说明
如果需要在本地暂存变更而不立即提交到服务器,可以使用搁置变更集(Shelved Changelist):
# 创建一个未提交的变更集 p4 change -o | sed 's/<enter description here>/temp: author #1 added/' | p4 change -i # 将变更搁置 p4 shelve -c <变更集编号>
之后可以随时恢复搁置的变更或提交到服务器。
内容的提问来源于stack exchange,提问作者Anuraag Tummanapally
相关产品推荐
相关产品推荐

