【问题标题】:Perforce: submit files with "Version in workspace is not latest version"?Perforce:使用“工作区中的版本不是最新版本”提交文件?
【发布时间】:2013-03-06 15:30:02
【问题描述】:

(我通过 perforce 插件从 eclipse 中使用 perforce)。

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

当文件处于此状态时,该文件的提交被禁用。

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

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

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

问题是...通过“解决”perforce 会用仓库中的文件覆盖我工作区中的所有文件。因此,在将工作空间与 perforce 关联之前,我对工作空间所做的所有更改都已消失。

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

我该怎么做?

【问题讨论】:

    标签: eclipse commit perforce


    【解决方案1】:

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

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

    另一个选项,如果您从早期版本中签出文件,并且您想在不做任何更改的情况下更新到最新版本,您可能会使用的另一个选项是告诉 Perforce 更新元数据,以便它认为您拥有更新版本的文件,而不会实际更改任何文件。在命令行中,这是p4 sync -k (whatever you want to sync)。如果使用不当,这也可能很危险。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        如果 perforce 说您无法提交,因为“工作区中的版本不是最新版本”,那么这意味着您打开了一个已被其他人更改并提交的文件以进行编辑,即您正在处理旧的文件的版本。 您绝对不应该尝试将您的(旧)版本强加在仓库中的新版本之上。 你真的需要解决。 Perforce 不会“覆盖”您工作区的所有文件并放弃您的更改。

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

        【讨论】:

        • 当我对我更改的文件进行“解析”时,Perforce 确实覆盖了。谢天谢地,我备份了我的工作区。它只会在第一次覆盖 - 但它仍然不是我想要发生的事情。我确实想强制使用旧版本的原因是,现在我是唯一参与该项目的人。所以我的更改实际上是最新版本。
        • 如果 perforce 这样做了,那么我假设您在更改文件时没有将文件标记为编辑。 Perforce 依赖于知道您打开了哪些文件进行更改。如果您使用 eclipse 并将您的项目连接到 perforce 客户端/工作区,那么这会自动发生。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 2020-10-05
        • 1970-01-01
        相关资源
        最近更新 更多