2012-04-30 34 views
2

對於一個項目,我使用了Latex並輸入了報告,現在我的教授發給我一個「revision.diff」文件,顯示她在「report.tex」文件中所做的所有不同之處。我想知道是否有一種方法可以接受diff文件中的更改?如何接受diff文件的修訂?

回答

3

我假設你在某種類型的unix機器上(即Linux或Mac)。

使用的diff的標準方法是與patch程序(git使用密切相關的格式,這就是爲什麼你可以潛在地使用git,但patch幾乎肯定會出現你的機器,更簡單)。

首先,請確保您的教師收到的.tex文件的版本完全相同。

然後

% patch <revision.diff 

...是一個簡短的回答。

不幸的是,完全沒有創建補丁的標準方法,不僅僅是因爲有幾種或多或少「標準」方式來格式化差異。所以有一些潛在的複雜性。

如果補丁文件開始看起來像這樣

2c2 
< Blah blah 
--- 
> Blah blah wibble. 

或本:

--- report.tex 2012-04-30 21:05:51.000000000 +0100 
+++ report-modified.tex 2012-04-30 21:06:08.000000000 +0100 
@@ -1,5 +1,5 @@ 
\documentclass{article} 
-Blah blah 
+Blah blah wibble. 

...然後將上面^ Wshould工作。

如果它開始看起來像這樣:

--- a/report.tex 2012-04-30 21:05:51.000000000 +0100 
+++ b/report.tex 2012-04-30 21:06:08.000000000 +0100 
@@ -1,5 +1,5 @@ 
\documentclass{article} 
-Blah blah 
+Blah blah wibble. 

(注意頂部的a/b/),那麼你就必須使用

% patch -p1 <revision.diff 

-p1刪除1「水平'來自文件頂部提到的文件名的斜線。

基本上就是這樣。請參閱修補程序(1)(即修補程序命令的手冊頁)以獲得更多討論。特別是,任何以這種方式發送補丁的人都應該閱讀補丁聯機幫助頁底部的「補丁發送者注意事項」並將其消化。

如果你開始用略有不同版本的report.tex比你發送你的教授(道德這個故事的一部分,使用版本控制系統之一,標籤或保存版本的筆記你然後補丁命令會報告錯誤,並執行類似於在同一目錄中創建名爲report.tex.rej的文件。這應該讓你拼湊出相關的變化並手工應用。

+0

掛上。你用'git'標記了你的問題,但你的問題根本沒有提到git。你真的在使用git嗎?在這種情況下,git文檔可能是你的朋友(啊,我看到了問題:根據我的經驗,git文檔是沒有人的朋友......) –

3

它是標準的統一差異格式文件嗎?如果是這樣,請使用git apply revision.diff來應用該修補程序。