我做了一个相当大的重构,构建了一个二进制文件并提交给QA进行测试。我希望在等待QA回来的同时开始研究新功能,并假设我可能需要根据QA结果返回并更改一些内容。
在Git中,我会在分支bigRefactor
上进行重构,根据它进行构建,提交给QA,然后从postBigRefactorNewFeature
分支bigRefactor
并继续工作。当QA返回所需的更改时,我会切换回bigRefactor
,进行必要的更改,提交,然后切换到postBigRefactorNewFeature
以及git rebase
或git cherry-pick
带来我的从bigRefactor
更改为postBigRefactorNewFeature
。
在Perforce中,我能想到的最好的方法是将我在QA上用于QA的文件搁置在更改列表A上,并在没有本地恢复的情况下使用描述'big refactor',将本地更改(现在复制到工具架)移动到新的更改列表B,描述'post big refactor new feature',然后继续工作。当QA回来时,我将不得不搁置我在变更清单B中工作的东西,还原,从变更清单A取消搁置,进行必要的更改,然后以某种方式将变更清单B中的货架上的文件合并到工作空间中。
据我所知,没有办法将架子合并到工作区的当前状态。我怎么能这样做?
答案 0 :(得分:1)
是的,您可以使用您描述的工作流程将货架用作微型分支。 Perforce采用"以某种方式合并来自货架的文件"一部分。
您可以将更改从工具架合并到工作空间的当前状态,只要您有最新的服务器版本(我相信此功能是在2011.1版本中添加的,尽管它可能稍晚于此)
您可以“放弃打开文件”&#39 ;;当您取消搁置已编辑当前已打开的文件的工具架时,Perforce会在搁置的更改和打开的文件之间安排解决方案。
整个过程与其他结果非常相似,使用起来非常简单。
这是新功能的发布说明。
#299614 (Bug #38221, #39099) **
Unshelving a file opened for edit over a file already opened
for edit in the workspace is now allowed. A resolve record is
created when unshelving, and the user must then run 'p4 resolve'
to resolve the workspace files with the shelved files.
其他最近的搁置功能包括能够通过分支规范取消搁置,以及直接提交搁置变更而不首先取消搁置变更的能力。在最近的版本中,货架已经发展了很多。
您可能会设置一个小型测试服务器并对其进行一些实验,以便您更详细地了解它的工作原理,并在Perforce行为令人困惑的情况下提出更准确的问题。
那就是说,我自己的经验是,如果你的工作流程足够复杂,那么做“使用架子作为小型分支机构”会让人感到困惑。方法,所以在某些时候,简单地做分支是可以的。当然,Perforce完全支持分支,即使精确的机制与git不同。