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

cla*_*amp 9 perforce

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

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

谢谢!

jhw*_*ist 7

根本不需要外部工具,假设你在unix机器上(或者在Windows下有一个正确的cygwin设置,没有测试它.)唯一需要注意的是Perforce p4 diff产生的输出稍微不相容patch,因此你需要它指向你的unix diff-command.在你的客户端root中,你可以做到

P4DIFF=/usr/bin/diff p4 diff -du > pending-changes.patch
Run Code Online (Sandbox Code Playgroud)

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

p4 revert `p4 opened|awk -F\# '{print $1}'`
Run Code Online (Sandbox Code Playgroud)

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

patch < pending-patches
Run Code Online (Sandbox Code Playgroud)

根据您在客户端root中的路径布局,您必须使用-p#numpatch选项来干净地应用补丁.


Bre*_*Bim 5

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

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


Dou*_*der 5

与P4Shelve相关联的是P4tar,它看起来非常有用,并且在客户端上进行操作,而不是在服务器上进行分支.

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