perforce:创建当前待处理列表的本地备份

时间:2009-11-12 13:40:37

标签: perforce

在perforce中,我有一个包含一些已更改文件的待处理列表。现在我想恢复到基础,但不会失去我的更改,所以我想在某个地方支持它们。比如保存每个文件的DIFF。在以后,我想恢复这些变化并继续我的工作。

这可能吗?如果是这样,怎么样?

谢谢!

5 个答案:

答案 0 :(得分:7)

根本不需要外部工具,假设您使用的是unix机器(或者在Windows下进行了正确的cygwin设置,还没有测试过它。)唯一需要注意的是Perforce的p4 diff产生了输出与patch稍微不兼容,因此您需要它指向您的unix diff-command。在您的客户端root中,您可以执行

P4DIFF=/usr/bin/diff p4 diff -du > pending-changes.patch

可选(如果要从命令行恢复打开的文件,否则使用p4v):

p4 revert `p4 opened|awk -F\# '{print $1}'`

稍后您将打开要编辑的文件(可以通过从补丁文件pending-changes.patch中提取受影响的文件来自动执行,然后:

patch < pending-patches

根据您在客户端root中的路径布局,您必须使用补丁的-p#num选项才能完全应用补丁。

答案 1 :(得分:5)

你应该可以搁置一下。这是一种保存更改列表以供将来编辑的方法。下面的链接是Perforce的Python加载项,用于实现搁置。另外,我知道Practical Perforce有两种方法可以在没有外部脚本的情况下搁置当前的更改。我没有这本书摆在我面前,但今晚我会尝试更新这个问题。

http://public.perforce.com/wiki/P4_Shelve

答案 2 :(得分:5)

从P4Shelve链接到,P4tar看起来非常有用,并且在客户端上进行操作,而不是在服务器上进行分支。

当然,我很快会考虑做类似的事情。

答案 3 :(得分:2)

另见这个问题:

Sending my changelist to someone else without checking in.

这基本上是一回事。

答案 4 :(得分:1)

  • 在适当的位置创建这些文件的分支
  • 查看已编辑文件的分支版本
  • 将已编辑的文件从主干复制并提交
  • 还原主干上的文件

现在你已经得到了你想要安全存档的那些“差异”。当您准备好稍后应用这些更改时,只需将它们集成回主干。

这就是Brett mentioned所做的Python脚本。这是在没有任何特殊工具的情况下手动完成的方法。