2012-01-28 98 views
7

當我做到以下幾點:的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提交時,錯誤仍然存​​在。

回答

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

這也是我一樣。另一種選擇是通過GUI工具或命令行更改文件類型,使其不再是text+ktext+ko文件類型(因此不會發生擴展)。如果你這樣做,它會確認。