我是一名Git用户,想学习Perforce。
在Git中,用户可以从主分支进行检出,更改一些文件并将其推送到一个具有特定提交ID的不同分支上的服务器。
另一个Git用户可以使用其提交ID检出该新分支,并在其之上工作。
如何使用Perforce执行此操作?
我是一名Git用户,正在尝试学习Perforce。
抱歉。
如何使用Perforce执行此操作?
我是一名更擅长使用Git而非Perforce的用户,如果有任何错误请指正。我强烈建议阅读Perforce的手册和教程。
Perforce并不能像Git一样完全复制一个代码库状态来创建分支,在Perforce中,"分支"是基于文件的:也就是说,你可以将文件A分支到文件B,这时文件B会包含一个回溯到文件A的引用,表示 "我从这里来"。这个引用可以用于确定合并过程中的共同祖先。但是我的理解是,这些引用是基于每个文件的,你可以自由地将任何文件集成(合并)到任何其他文件中。而在Git中,"父提交"是你的回溯参考,但它是基于整个代码库的。
您可以使用p4 integrate
命令来分支一整组文件,并使用典型的Perforce语法(例如://depot/some/path/...
)。通常,您会将一个目录整体分支到另一个目录中,例如://depot/main/my_project
分支到 //depot/release-1.0/my_project
。Perforce并不关心路径的模式或合理性:这完全取决于您。
p4 branch
创建“分支规范”,这基本上是一种记录文件源集及其目的地以便更轻松进行分支处理的方法。(如果您采用发布示例,则可能希望最终合并更改或将更改进一步合并到发布中等)$ git checkout p4-integration
$ git p4 sync
$ git p4 rebase
$ git tag last-green <SHA1> # last green build
$ git rebase last-green develop
$ git checkout -b <my-feature>
$ git commit # as needed
# Sync Git->P4 (see Github:git-p4-helpers)
# Submit using P4
git p4 sync
以及其他一些非常烦人的操作,这使得我直接从我的Git存储库提交到P4非常困难)。因此,我编写了一个脚本来同步我的Git存储库和P4工作区,然后使用P4进行提交。
目前,这允许我在处理更改时使用Git的所有功能,然后只需使用P4进行提交。
请记住,Perforce 会为分支创建一个副本,而 Git 只会创建指向新分支的指针,这样速度更快。