19

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

4

2 回答 2

27

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

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

编辑添加: Perforce 现在具有内置功能,可在取消搁置时合并文件。如果用户取消搁置一个也已签出的文件,并且未选中“在取消搁置之前恢复已签出的文件”,Perforce 将标记该文件以进行解析。我查看了发行说明,无法找到在哪个版本中添加了此功能,但基于此链接(请参阅描述底部附近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.
于 2010-10-29T20:06:16.713 回答
-2

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

于 2012-06-21T16:00:47.600 回答