2

对于一个项目,我使用了 Latex 并输入了报告,现在我的教授给我发了一个“revision.diff”文件,其中显示了她在我的“report.tex”文件中所做的所有差异。我想知道是否有一种方法可以接受差异文件中的更改?

4

2 回答 2

3

它是标准的统一差异格式文件吗?如果是这样,请使用git apply revision.diff来应用补丁。

于 2012-04-30T15:56:33.923 回答
3

我假设您使用的是某种 unix 机器(即 Linux 或 Mac)。

使用 diffs 的标准方法是使用patch程序(git使用密切相关的格式,这就是为什么你可以使用 diffs 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.

...那么以上将^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

That's basically it. See patch(1) (that is, the manpage for the patch command) for more discussion. In particular, anyone sending patches this way should read and digest the 'notes for patch senders' towards the bottom of the patch manpage.

If you're starting with a slightly different version of your report.tex than the one you sent your professor (moral of this part of the story, use a version control system, and tag or keep notes of the version you sent off), then the patch command will report errors, and do something like create a file called report.tex.rej in the same directory. This should let you piece together the relevant changes and apply them by hand.

于 2012-04-30T20:20:39.397 回答