如何在取消保存文件时指示Perforce进行合并而不是覆盖或还原?

时间:2010-10-29 18:31:33

标签: perforce shelving unshelve

如何取消搁置在软件仓库中的文件时,如何指示Perforce将更改合并到工作区中的现有,打开和修改的文件中? Perforce似乎为用户提供的唯一选项是覆盖或还原工作区中的现有文件,但这不允许,例如,从多个更改列表中取消搁置并将更改集成到同一文件中。有没有解决这个限制的方法?

2 个答案:

答案 0 :(得分:25)

我通常做的是右键单击搁置文件并选择“Diff Against Workspace File”。打开Diff工具时,可以在工具栏中选择“在右窗格中编辑文件”按钮。这基本上开始了双向合并。通过每个差异,您可以从搁置文件中选择所需的更改(默认情况下,从工作区文件中选择差异)。

但是,如果Perforce添加了一种合并功能来更自动地执行此操作,那就太好了。

编辑以添加: Perforce现在具有内置功能,可在不受欢迎时合并文件。如果用户取消搁置也已检出的文件,并取消选中“在取消搁置之前恢复已检出文件”,则Perforce会将该文件标记为已解决。我查看了发行说明,但无法找到添加此功能的版本,但基于此link(请参阅p4 unshelve说明附近的底部),它的添加时间不晚于2012.1。

再次编辑添加: 该功能已在服务器的2011.1版中添加。这是发行说明:

#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.

答案 1 :(得分:-2)

如果您签出文件,然后尝试提交,它将为您提供获取最新版本的选项,而无需替换您的副本。然后,它将使您能够运行合并工具,您必须在提交之前解决任何冲突。