无论如何,我有一个包含一些已更改文件的待处理列表。现在我想恢复到基础,但又不想丢失我的更改,所以我想将它们备份到某个地方。就像保存每个文件的差异一样。稍后,我想恢复这些更改并继续我的工作。
这可能吗?如果是这样,怎么办?
谢谢!
最佳答案
根本不需要外部工具,假设您使用的是 unix 机器(或者在 Windows 下有正确的 cygwin 设置,尚未测试它。)唯一需要注意的是 Perforce 的 p4 diff
产生的输出与 patch 稍微不兼容,因此您需要它指向您的 unix diff 命令。在你的客户端根目录中你可以这样做
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
根据客户端根目录中的路径布局,您必须使用补丁的 -p#num
选项才能干净地应用补丁。
关于perforce:创建当前挂起列表的本地备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722240/