0

最近我必须使用 perforce,并且遇到了一些我在 git 中从未遇到过的问题。当我使用 git 时,我会在推送到远程之前进行与功能更改相对应的提交。我稍后可能会压缩一些提交并推送,因为上游可能需要一整套功能单元。

但是,在使用 perforce 时,似乎我无法实现上述目标。似乎一个文件只能存在于待处理的更改列表中,而我想在提交之前将更改存储在几个待处理的更改列表中。例如,我想让一个文件中的函数 A、B、C 在 git 中分阶段为三个提交。在 perforce 中,除非我先提交一个包含 A 的更改列表,然后提交一个包含 B,然后是 C 的更改列表,否则我找不到办法。

我的问题似乎与这个类似,但已经是两年前了,我想知道是否有新的或更好的方法来做这件事。

更新:Perforce 网站说 p4sandbox 提供类似于 git 的离线工作。我可以用它来实现我的目标吗?

4

2 回答 2

0

沙盒绝对不错。我自己,我用架子来做这个。我将每组相关的更改保存在一个架子上,我可以独立地使用每个架子。

于 2012-05-28T00:31:33.230 回答
0

如果我正确理解您的工作流程,您想对同一个文件进行多次顺序更改,但只将所有更改的最终结果推送到主代码库?对我来说,这听起来像是 Perforce 中的分支。在我工作的地方,我们在仓库中为这些分支机构指定了一个位置。沙盒可能有部分或不完整的更改提交给它们,但要理解它(尚)不属于主代码。然后,当开发完成后,将结果从分支集成回主代码。

唯一潜在的缺点是所有文件及其更改也存储在中央服务器上,而不是在本地机器上。这可能是好是坏,取决于你的观点。

于 2012-06-13T20:20:02.537 回答