あるプロジェクトで、私は Latex を使用してレポートを作成しました。そして今、私の教授が私の「report.tex」ファイルで行ったすべての違いを示す「revision.diff」ファイルを送ってくれました。差分ファイルの変更を受け入れる方法があるかどうか疑問に思っていますか?
2 に答える
標準の統合 diff 形式のファイルですか? その場合は、 を使用git apply revision.diff
してパッチを適用します。
何らかの UNIX マシン (つまり、Linux または Mac) を使用していると想定しています。
diff を使用する標準的な方法は、patch
プログラムをgit
使用することです ( は密接に関連した形式を使用します。これが を使用できる可能性がある理由ですがgit
、patch
ほぼ確実にマシンに存在し、より簡単です)。
まず、教授が受け取った .tex ファイルとまったく同じバージョンから始めていることを確認してください。
それで
% patch <revision.diff
...簡単な答えです。
残念ながら、パッチを作成するための完全に標準的な方法はありません。特に、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.
...そして、上記は^Wはずです。
次のように開始する場合:
--- 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/
(上部のandに注意してくださいb/
)、次に使用する必要があります
% patch -p1 <revision.diff
は、ファイルの先頭に記載されているファイル名からスラッシュの「レベル」を削除-p1
します。1
基本的にはそれだけです。詳細については、 patch(1) (つまり、 patch コマンドのマンページ) を参照してください。特に、この方法でパッチを送信する人は、パッチのマンページの下部にある「パッチ送信者向けの注意事項」を読んで理解する必要があります。
教授に送ったバージョンとは少し異なるバージョンから始めている場合report.tex
(ストーリーのこの部分の教訓、バージョン管理システムを使用し、送信したバージョンにタグを付けるかメモをとっておいてください)、パッチコマンドはエラーを報告report.tex.rej
し、同じディレクトリに呼び出されたファイルを作成するなどのことを行います。これにより、関連する変更をまとめて手動で適用できるようになります。