2

多年来我使用了许多版本控制系统,并且会说我已经掌握了 SVN 和 Mercurial,但现在我有一份合同要求我使用 perforce。我已经掌握了基础知识,但偶尔我会发现一个不清楚 perforce 到底在做什么的领域。

搁置更改就是其中之一。

本周,我处于一种工作状态,需要改变重点并为某人快速解决问题。旧作品是基于旧版本的,而对于新作品,我最迟需要完成。所以我...

  • 搁置了我当前的更改列表。
  • 将我的工作区更新到最新版本
  • 我的工作
  • 提交它。
  • 搁置我原来的更改

当我取消搁置时,我知道我处于最新版本,但是“没关系,我无论如何都需要更新”。令我惊讶的是我不需要解析任何文件。不确定为什么会是我...

  • 还原了我的工作区
  • 更新到我最初工作的版本
  • 再次取消搁置我的文件(我没有删除搁置的版本)
  • 更新到最新版本

在这一点上,perforce 要求我解析文件,这不是一个简单的解析(即不是一个可以自动完成的解析)。

这给我留下了疑问:

  • 搁置只是将文件复制出来,然后将其复制回来吗?还是存储增量?
  • 是否可以通过使用搁置来撤消其他人的更改?
  • 将来出现这种情况时,我应该如何工作?
4

1 回答 1

1

p4 shelve 将您的文件保存在 Perforce 服务器上,但不会从您当前的工作区中删除您的待定更改。发出 p4 shelve 命令后,您可以发出 p4 revert 命令将工作区恢复到文件的未修改版本,但从您的描述来看,您似乎没有这样做。

因此,您对最新修订步骤(p4 同步)的更新将所有未打开的文件都带到了头修订版,但将打开的文件保留在您搁置它们之前的状态。

您的取消搁置命令没有实际效果,因为文件已经处于您搁置它们之前的状态。

至于你的问题:

  • shelve 正在将文件(可能作为 delta 版,但对我作为用户而言并不重要)复制到您(或您的同事)以后可以获取它们的地方,但它不是“不碍事”,因为它没有t 自动恢复本地工作区中搁置的更改

  • 搁置本身不会更改 Perforce 中文件的主要版本;它更像是一个微分支。但是,当您取消搁置文件时,您可能必须将搁置文件之前所做的更改与自搁置后对该文件所做的更改进行整合。如果您不小心,这可能会导致其他人的更改被撤消。

  • 用力地。

于 2013-06-08T10:37:12.760 回答