통합 패치 형식의 패치 파일이 있는 경우(아래 예 참조), (적용된) 패치가 해당 줄을 추가하도록 파일에 줄을 추가하려면 어떻게 해야 합니까?
--- lao 2002-02-21 23:30:39.942229878 -0800
+++ tzu 2002-02-21 23:30:50.442260588 -0800
@@ -1,7 +1,6 @@
-The Way that can be told of is not the eternal Way;
-The name that can be named is not the eternal name.
The Nameless is the origin of Heaven and Earth;
-The Named is the mother of all things.
+The named is the mother of all things.
+
Therefore let there always be non-being,
so we may see their subtlety,
And let there always be being,
@@ -9,3 +8,6 @@
The two are the same,
But after they are produced,
they have different names.
+They both may be called deep and profound.
+Deeper and more profound,
+The door of all subtleties!
답변1
간단히 말해서, 당신은 그렇지 않습니다.
팀장: 그게 이유야
- 균일한 차이는스크립트, 사용줄 번호그리고세다diff의 내용과 관련이 있습니다.
- 이 스크립트를 수동으로 간단하게 변경할 수는 있지만(저는 이렇게 합니다...)
- Unified-diff는 주로 프로그램에 유용합니다
patch
. patch
diff 부분 간의 일관성을 확인하고patch
일치하지 않는 것으로 확인된 섹션은 거부됩니다.
다음 줄에는 줄 번호와 개수가 포함됩니다.
@@ -1,7 +1,6 @@
@@ -9,3 +8,6 @@
그리고 그 개수는 차이의 나머지 줄에 있는 선행 또는 토큰의 +
수와 일치 해야 합니다.-
따라서 이 작업을 수동으로 수행하지 않습니다. 누구할 수 있다이를 수행하는 프로그램을 작성하십시오. 그러나 그것은 없습니다patchutils
(패치 파일을 조작하는 데 유용한 응용 프로그램에 대한 누군가의 아이디어) 패치 파일을 수동으로 편집하는 데 유용한 응용 프로그램 rediff
과 combinediff
스크립트를 찾을 수 있습니다.
어쨌든 패치 파일을 처리하는 응용 프로그램은 거의 없습니다(아마도누구나는 이미 하나를 썼습니다).
여기서 일반적인 접근 방식은 다음을 통해 diff를 재생성하는 것입니다.
- 원본 소스 받기(패치 전)
- 소스 코드의 패치 버전 만들기(패치 적용)
- 추가 변경
- 새 패치(두 가지 변경 사항 모두 포함) 또는 증분 패치(변경 사항에만 해당)를 빌드합니다.
이를 달성하는 것은 및 를 사용하여 diff
간단합니다 patch
. 너무 간단하기 때문에 이를 수행하는 도구를 작성하는 사람은 많지 않습니다.
추가 자료: