2013-02-13 114 views
1

我有一些旧的搁置文件存在于长期未决的Perforce更改列表中,我可能永远不会提交。我想摆脱那些变更名单,因为他们正在污染我的空间,但我不想失去一切,以防我需要那些日子,所以我需要备份。Perforce:将搁置文件从工作区移动到备份

有没有办法将搁置文件从更改列表移动到文件系统的某个位置?

将搁置的文件从P4V拖放到Windows资源管理器不起作用。命令行工具p4 unshelve似乎没有这样的选项。我还希望避免在备份文件之前首先取消保存文件,因为如果这些文件已经被编辑检出,这将意味着额外的麻烦。

编辑

阅读的答案让我意识到我真正想要的是保持这种变更表的安全,但离视图(即,从我平时的工作空间中的距离)。我不在乎它是否在我的文件系统或其他地方。所以我的问题其实是:

有没有办法将搁置的文件从工作区移走以备份?

回答

5

扩展到威廉姆斯后,我建议你创建另一个工作区,不要同步,而是存储您搁置的更改列表!

要做到这一点,从“连接”菜单中选择“创建新的工作区”。取消选中“立即切换到新工作区”。使名称与当前工作区相同,并附加后缀,如“-shelf”。任何根路径都可以,你不需要它。现在只需选择要“放好”的更改列表,右键单击它们,选择“更改所有权”,输入新工作区名称的名称,然后将其转移到新工作区,并且当前的工作区将很好,整洁。

如果您想查看货架上的物品,只需在“待处理”选项卡顶部展开过滤器,然后单击工作区线上的小圆圈X,Perforce就会显示您所有的更改列表,让您可以浏览并取消搁置到当前工作区。

perforce服务器是备份的最佳位置。 Perforce会跟踪每个搁置文件的基本修订版,如果您将其移出该信息将会丢失,从而可能导致以后更难以整合。

+0

这显然是最快和最简单的解决方案,使用它一段时间后,我没有看到它的任何缺点。 – 2014-08-19 12:07:35

+0

这很好 - 我只需要再做一个步骤。在我的环境中,我们有很多分支机构。当我第一次尝试创建新的工作区时,出现错误:“客户端规范错误。”client-check'验证失败:客户端规范中的这种映射太大:“在New Workspace窗口中,我必须去进入Create Mappings twisty,在适当的分支上点鼠标右键,然后选择Include Files(我还必须清除顶级“Depot”行)。 – Chad 2015-12-01 17:58:18

2

如何创建一个临时工作空间,使用适当的映射和根位于您希望文件最终到达的位置,然后切换到该工作空间并取消搁置它们。这样就不会有任何冲突。

2

男孩,我认为让他们在服务器上是一个伟大的长期存储位置。我没有发现货架“污染了我的空间”;将它们保存在服务器中对我来说似乎是一种干净的方式,用于存储我想要记录的实验性工作,但尚未准备好提交。

有时,而不是制作一个书架,我在服务器上创建一个单独的分支;它可以是一个稀疏的分支,只包含在我的书架中的文件。然后我将搁置的文件提交给那个稀疏分支。

无论哪种方式,我宁愿让我在服务器上的部分完成的工作比在我的工作站上的一些随机文件夹。

+0

我喜欢这个分支解决方案,听起来像一个很好的实用方法,以保持这种旧的搁置变更列表安全,但远离视野。在接受之前,我会稍微等一下,以防万一出现另一个好的答案。 – 2013-02-14 08:45:53

3

你可以从你的搁置变更创建补丁文件,并存储在本地的补丁文件:

p4 describe -S -du CHANGE > CHANGE.patch 

如果您需要重新应用补丁,GNU的patch程序将不喜欢的Perforce使用文件标记,它看起来像:

==== //depot/path/file#revision (type) ==== 

,但你可以写一个脚本来按摩到这一点:

+++ //depot/path/file 

(甚至首先将文件同步到指定的修订版)。

请注意,p4 describe可悲的是没有列出添加或删除文件的差异,所以这只适用于编辑的文件。

相关问题