2016-08-13 6 views
1

Если у меня есть следующий дифференциал:Как я могу определить, добавляет ли мой редактор или удаляет строки в конце файла из diff?

diff --git a/file.txt b/file.txt 
index abcdef..ghijkl mnopqr 
--- a/file.txt 
+++ b/file.txt 
@@ -2,4 +2,4 @@ 

-This is a line of code. 
\ No newline at end of file 
+This is a line of code 

Я понимаю, что I want the newline at the end of the file. Однако из этого diff мой редактор добавляет или удаляет новую строку в конце файла?

Я не могу сказать, ссылается ли \No newline at end of file на то, что удалил мой текстовый редактор (выше) или что он добавил (см. Ниже).

ответ

1

Сообщение, указанное в вашем вопросе, указывает, что новая строка была добавлена ​​в новую версию файла, который отличается.

Если вместо новой строки были удалены в новой версии файла, сравнить при, вы увидите следующее:

diff --git a/file.txt b/file.txt 
index abcdef..ghijkl mnopqr 
--- a/file.txt 
+++ b/file.txt 
@@ -2,4 +2,4 @@ 
-This is a line of code. 
+This is a line of code. 
\ No newline at end of file 

То есть, \ No newline at end of file часть будет самой последней строке дифф.


Если вы хотите проверить это самостоятельно, здесь два файла, вы можете запустить diff -u на:

  • noeol.txt (который не имеет символ новой строки в конце файла)
  • eol.txt (который имеет новой строки в конце файла)

diff -u noeol.txt eol.txt даст вам следующее:

--- noeol.txt 2016-08-13 12:55:16.000000000 +0900 
+++ eol.txt 2016-08-13 12:55:23.000000000 +0900 
@@ -1 +1 @@ 
-This is a line of code. 
\ No newline at end of file 
+This is a line of code. 

diff -u eol.txt noeol.txt даст вам это:

--- eol.txt 2016-08-13 12:55:23.000000000 +0900 
+++ noeol.txt 2016-08-13 12:55:16.000000000 +0900 
@@ -1 +1 @@ 
-This is a line of code. 
+This is a line of code. 
\ No newline at end of file