git-p4提交失败,补丁不适用

时间:2012-01-28 04:17:14

标签: git perforce git-p4

当我执行以下操作时:

$ git-p4 submit

我最终得到以下错误信息:

error: patch failed: foo/bar/blah.h:1
error: foo/bar/blah.h: patch does not apply
Unfortunately applying the change failed!
What do you want to do?
[s]kip this patch / [a]pply the patch forcibly and with .rej files / [w]rite the patch to a file (patch.txt) 

如何从这种情况中恢复并成功提交?

FWIW,我们的P4服务器配置为使用关键字扩展(filetype = text + k),并且在问题文件的第3行有一个扩展的关键字。我在第1行进行了更改。

我尝试删除第1行的delta,但是当我重试git-p4提交时错误仍然存​​在。

2 个答案:

答案 0 :(得分:6)

在发布此问题后想出来。

诀窍是在P4的背后,并剥离了关键字扩展。

chmod +w foo/bar/blah.h
edit foo/bar/blah.h #change $File: //depot/foo/bar/blah.h$ to $File$
chmod -w foo/bar/blah.h
git-p4 submit

这很有用。

答案 1 :(得分:1)

这也是我的意思。另一个选项是通过GUI工具或命令行更改文件类型,使其不再是text+ktext+ko文件类型(因此不会发生扩展)。如果你这样做,它将提交OK。