Perforce:使用“工作区中的版本不是最新版本”提交文件?

时间:2013-03-18 10:20:59

标签: eclipse commit perforce

(我通过perforce插件使用eclipse中的perforce工作)。

将我的工作区与perforce depot相关联后,所有文件的状态为“工作区中的版本不是最新版本”(黄色三角形)....

当文件具有此状态时,将禁用此文件的提交。

当我在项目上执行“与仓库同步”时,所有这些文件都显示冲突图标(即使没有冲突......)。

冲突?这是否意味着我需要解决?

以下是解决方法: http://www.perforce.com/perforce/doc.current/manuals/p4guide/05_resolve.html

问题是......通过“解析”perforce覆盖工作区中的所有文件和库中的文件。因此,在将它与perforce相关联之前,我对工作区所做的每一项更改都已消失。

我实际想要实现的是另一种方式:将我工作区中的所有文件提交到软件仓库。即覆盖仓库。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

正如其他答案所说,大多数情况下,您最好的选择是使用Perforce的工作流程并提前检查工作区并在那里进行更改,而不是先进行更改并稍后创建工作区。但有时,您确实需要打破Perforce的工作流程并覆盖软件仓库中的更改。如果你要这样做,你需要格外小心,不要回复重要的东西。 (即使是在一个人的项目中,你可能忘记了你检查过的东西,所以在提交之前仔细查看差异。)

最简单的方法是,当Perforce告诉您有冲突时,请解决但保留更改。在Perforce文档链接中,这是“解决,接受你的”,而不是接受Perforce认为合理的合并。从命令行开始,p4 resolve -ay。在p4v GUI中措辞略有不同,在Eclipse插件(我实际上没有使用过)中可能会有不同的措辞。

如果您从早期版本中检出文件,并且想要更新到最新修订版而不进行任何更改,则可以使用另一个选项,即告诉Perforce更新元数据,以便它认为您有一个较新版本的文件,而不实际更改任何文件。从命令行开始,p4 sync -k (whatever you want to sync)。如果使用不当,这也是危险的。

答案 1 :(得分:0)

如果perforce表示您无法提交,因为"工作空间中的版本不是最新版本",那么这意味着您打开了一个已经由其他人更改并提交的编辑文件,即您&# 39;重新处理旧版本的文件。 你绝对不应该试图强制你的(旧)版本在仓库中的新版本之上。 你真的需要解决。 Perforce不会覆盖"您工作区的所有文件并放弃更改。

对于合并(解析),您可以使用eclipse内置合并工具或p4merge(来自Perforce)。

答案 2 :(得分:0)

我认为你无法在Perforce中实现你想要的。您需要将已更改的文件复制到安全的位置,然后解析/还原所有文件以删除冲突/过期标记。完成后,复制您的更改并提交。这很痛苦,但在进行更改之前,您应该与Perforce建立联系。