2015-09-08 3 views
4

У меня есть 3 файлов a\test.txt, b\test.txt и c\test.txt:завершающий пробел. патч не применяется

a\test.txt:

x 
y 
z 

b\test.txt:

x 
z 
p 
q 

c\test.txt:

x 
y 

Теперь я создал патч между а и Ь:

git diff --no-prefix --binary a b > mypatch.patch 

, в результате чего этот патч:

diff --git a/test.txt b/test.txt 
index 1b2c8f8..e0b3aec 100644 
--- a/test.txt 
+++ b/test.txt 
@@ -1,3 +1,4 @@ 
x 
-y 
-z 
\ No newline at end of file 
+z 
+p 
+q 
\ No newline at end of file 

Далее я хочу применить mypatch.patch на c\test.txt:

cd c:\ 
git apply --ignore-space-change --ignore-whitespace ../mypatch.patch 

I получить ошибку:

../mypatch.patch:10: trailing whitespace. 
z 
../mypatch.patch:11: trailing whitespace. 
p 
error: patch failed: test.txt:1 
error: test.txt: patch does not apply 

Я прочитал кучу сообщений здесь, на SO, но до сих пор не удалось заставить его применить какие-либо идеи?

Я не вижу каких-либо завершающие пробелы в mypatch.patch

ответ

2

Тот факт, что патч не применяется не относится к заднему пробельных.

Патч пытается удалить y и z линии, но z не существует в файле вы пытаетесь применить ее к (c/text.txt).

что-то вроде следующего будет применяться:

diff --git a/test.txt b/test.txt 
index 66455a1..1a0d96d 100644 
--- a/test.txt 
+++ b/test.txt 
@@ -1,2 +1,4 @@ 
x 
-y 
\ No newline at end of file 
+z 
+p 
+q 
\ No newline at end of file 
Смежные вопросы