2012-04-30 5 views
2

한 프로젝트에서 저는 라텍스를 사용하여 보고서를 타이핑했고, 이제는 교수님이 저의 "report.tex"파일에서 만든 모든 차이점을 보여주는 "revision.diff"파일을 보냈습니다. diff 파일의 변경 사항을 수용 할 수있는 방법이 있는지 궁금합니다.diff 파일에서 수정본을받는 방법?

답변

3

유닉스 시스템 (Linux 또는 Mac)을 사용하고 있다고 가정합니다.

차이점을 사용하는 표준 방법은 (git 당신이 잠재적으로 git를 사용할 수있는 이유입니다 밀접한 관련이 형식을 사용하지만 patch 거의 확실 컴퓨터있을 것이며, 더 간단)를 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. 

... 다음 위의 의지^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 

-p11 '수준을 제거 사용해야합니다 '파일의 상단에 언급 된 파일 이름의 슬래시.

그건 기본적으로. 자세한 내용은 patch (1) (즉, patch 명령 맨 페이지)를 참조하십시오. 특히이 방법으로 패치를 보내는 사람은 패치 맨 페이지 하단에있는 '패치 발송자를위한 노트'를 읽고 소화해야합니다.

당신이 이야기의이 부분의 도덕적 당신의 교수 (버전 제어 시스템을 사용을 보내는 것보다 당신의 report.tex약간 다른 버전으로 시작하고, 태그 또는 버전의 메모를 유지하고있는 경우 보낸 경우), patch 명령은 오류를보고하고 report.tex.rej이라는 파일을 같은 디렉토리에 작성하는 것과 같은 작업을 수행합니다. 이렇게하면 관련 변경 사항을한데 모아 손으로 적용 할 수 있습니다.

+0

잠시만 기다려주십시오. 당신은 당신의 질문에 'git'이라는 태그를 붙였습니다. 그러나 질문에는 git이 전혀 언급되어 있지 않습니다. 실제로 git을 사용하고 있습니까?어떤 경우에는 자식 문서는 아마 당신의 친구 (아, 내가 문제를 참조하십시오 : 나의 경험에있는 자식 문서는 아무도 친구가 아닙니다 ...) –

3

표준 통합 된 diff 형식의 파일입니까? 그렇다면 git apply revision.diff을 사용하여 패치를 적용하십시오.