如何接受diff文件的修订?

时间:2012-04-30 15:41:43

标签: git version-control

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

使用差异的标准方法是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'级别'的斜杠。

基本上就是这样。有关更多讨论,请参阅patch(1)(即patch命令的联机帮助页)。特别是,任何以这种方式发送补丁的人都应该在补丁手册页的底部阅读并消化“补丁发件人的笔记”。

如果您的report.tex略微版本不同于您发送给教授的版本(故事的这一部分的道德,请使用版本控制系统,并且标记或记录您发送的版本的注释,然后patch命令将报告错误,并执行类似在同一目录中创建名为report.tex.rej的文件的操作。这应该让你把相关的变化拼凑起来并手工应用。