繁体   English   中英

Perforce分支vs git分支

[英]Perforce branching vs git branching

我是尝试学习Perforce的Git用户。

在Git中,用户可以从主分支签出,更改一些文件,然后将其代码通过特定提交ID推送到其他分支上的服务器。

另一个Git用户可以使用其提交ID签出该新分支并在其顶部工作。

如何使用Perforce执行此操作?

我是尝试学习Perforce的Git用户。

对不起。

如何使用Perforce执行此操作?

我是一个比Perforce用户更好的Git用户,因此如果出现任何问题,请更正我。 我强烈建议阅读手册页和教程

它“不可能”,至少不是Git做到的方式。

git ,当您创建分支时,您将分支存储库的整个状态 Perforce不支持此功能,而是针对每个文件进行 “分支”:即,将文件A分支到文件B,此时文件B包含对文件A的反向引用,说“我来自这里”。 然后可以使用此反向参考来确定用于合并目的的共同祖先。 但是,我的理解是这些反向引用是每个文件的,您可以自由地将任何文件集成(合并)到其他文件中。 (与git相比,其中“父提交”是您的反向引用,但在整个存储库范围内。)

您可以使用典型的Perforce语法(例如//depot/some/path/... )使用p4 integrate来分支整个文件集。 通常,您会将整个目录分支到其他目录,例如//depot/main/my_project//depot/release-1.0/my_project或类似的目录中。 据我所知,Perforce并不真正关心路径:它只是将文件从一个位置“分支”到另一个位置。 路径中的任何模式或理智都取决于您。

此外,您可以使用p4 branch创建“分支规范”,这基本上是记录文件的源集及其目的地的一种方法,以使分支更加容易。 (如果以发行版为例,您可能最终希望合并回更改,或将其他更改合并到发行版中,等等。)

我两次与Perforce一起工作时,分支都是与Git不同性质的野兽,这里的文化也有所不同。 分支比较少见。 (我只看到过它们用于发布。)除了功能最大的部分外,我们没有将它们用于功能分支。 git ,对我来说,“功能分支”通常是“花费> 1次提交”。

如果您像我一样鄙视Perforce,则应该继续使用Git。 我应该说,使用Git会让我更加自在。

我目前使用Git-P4 +我编写的一组Bash脚本( git-p4-helpers

我遵循此工作流程的简化形式:

$ 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提交到P4(每次我尝试使用git p4 sync都要花很多时间,然后再进行其他一系列操作,这使它很烦人从我的Git仓库直接提交到P4。所以我编写了一个脚本,将我的Git仓库与我的P4工作区同步,然后使用P4提交。

现在,这使我可以在进行更改时使用Git的所有功能,然后仅使用P4提交即可。

请记住,perforce为分支创建副本,而Git只是为新分支创建了一个指针,这要快得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM