P4 Shelve:实际节省了什么?

时间:2013-06-07 11:22:08

标签: version-control perforce

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

搁置变化就是其中之一。

本周我处在一个工作中间的状态,需要改变焦点并为某人快速修复工作。旧的工作是基于较旧的修订,对于新工作我需要最迟。所以我......

  • 搁置了我当前的更改列表。
  • 将我的工作区更新为最新版本
  • 我的工作
  • 提交。
  • 取消原先的更改

我知道我在最近的修订时没有取消,但是“没关系,我还是需要更新”。让我感到惊讶的是,我不需要解析任何文件。不确定为什么会这样......

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

此时perforce要求我解决文件问题,这不是一个微不足道的决心(即不能自动完成)。

这给我留下了一些问题:

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

1 个答案:

答案 0 :(得分:1)

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

因此,您对最新修订步骤(p4 sync)的更新将所有未打开的文件更新到了主要版本,但是将您打开的文件保留为搁置它们之前的文件。

你的unhelve命令没有任何实际效果,因为文件已经处于你搁置它们之前留下它们的状态。

关于你的问题:

  • 搁置正在复制文件(可能作为一个三角形,但对我来说对我来说并不重要)到你(或你的同事)以后可以得到它们的地方,但它不是“不在路上” ,“因为它不会自动还原您在本地工作区中搁置的更改

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

  • 吃力。

相关问题