Perforce和PhpStorm / WebStorm:默认更改列表中的搁置文件消失

时间:2017-08-20 03:40:31

标签: phpstorm webstorm perforce

我正在学习如何使用Perforce进行版本控制,因此我对其过程的理解很薄弱。 PhpStorm 2017是我的IDE。

我希望尽可能使用IDE进行版本控制操作,因此我成功地将IDE连接到Perforce客户端(instructions)。我创建了一些文件,在P4V中,它们出现在Default pending changelist中。完成后,在PhpStorm中,我选择了“菜单栏>> VCS>>搁置更改...”希望看到文件移动到Perforce中更改列表中的架子。

相反,文件已经消失了,我能说清楚。它们已从OS文件夹结构中删除,并且不会在默认更改列表或任何工具架中显示在Perforce中。

我需要帮助搞清楚:

  • 我的文件发生了什么变化?
  • 我如何让他们回来?
  • 可以使用PhpStorm / WebStorm与Perforce搁置/搁置吗?如果是这样,怎么做呢?

1 个答案:

答案 0 :(得分:1)

首先我需要了解一些概念:

PhpStorm提供自己的shelve/unshelve functionality,独立于任何版本控制系统

无法找到我的文件,因为“主菜单&gt;&gt; VCS&gt;&gt;搁置更改... ”将它们放在IDE的架子上,而不是Perforce的。 IDE的架子位于<project-root>/.idea/shelf

搁置的是自上次提交以来的一组更改,而不是文件本身

这导致了我的基本误解。我以为我的文件丢失了,因为我在操作系统文件夹中看不到它们,但缺少的是更改对这些文件。这是因为文件是新的 - 因此更改是由整个文件组成 - 看起来好像文件本身丢失了。

当我搁置时实际发生了什么:文件被回滚到之前提交的状态(在我的情况下不存在),并且更改保存在架子上

可以从版本控制工具窗口

访问所有搁架/取消搁置

Alt + 9会显示此工具窗口。物品被搁置后,会有一个Shelf标签。从那里,我能够看到变化,并取消了它们。因此我收回了我的文件!

Perforce Shelf可作为单独的菜单项

访问

打开版本控制工具窗口,然后选择“本地更改”选项卡。右键单击该选项卡中已更改文件时可见的一个上下文选项是“搁置更改... ”。这相当于我最初的做法,它将把文件更改放在IDE的架子上。当Perforce集成到IDE项目中时,我实际想要的选项显示为:“在Perforce中搁置......

此选项将在Perforce工具架(在Perforce服务器上)中放置文件更改,并将工作目录回滚到上次提交状态。在版本控制工具的“工具”选项卡中不会显示更改(因为此选项卡仅显示IDE工具架)。要浏览Perforce功能区,请转到该工具的“本地更改”选项卡,右键单击相应的Perforce更改列表 - 看起来像<LIST-NAME> - Perforce #<LIST-NUMBER>; x shelved changes - 并选择“浏览Perforce搁板...