在perforce中,我有一个包含一些已更改文件的待处理列表。现在我想恢复到基础,但不会失去我的更改,所以我想在某个地方支持它们。比如保存每个文件的DIFF。在以后,我想恢复这些变化并继续我的工作。
这可能吗?如果是这样,怎么样?谢谢!
答案 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有两种方法可以在没有外部脚本的情况下搁置当前的更改。我没有这本书摆在我面前,但今晚我会尝试更新这个问题。
答案 2 :(得分:5)
从P4Shelve链接到,P4tar看起来非常有用,并且在客户端上进行操作,而不是在服务器上进行分支。
当然,我很快会考虑做类似的事情。
答案 3 :(得分:2)
答案 4 :(得分:1)
现在你已经得到了你想要安全存档的那些“差异”。当您准备好稍后应用这些更改时,只需将它们集成回主干。
这就是Brett mentioned所做的Python脚本。这是在没有任何特殊工具的情况下手动完成的方法。