디퓨틸 매뉴얼말하다, 안으로diff3 -A mine older yours
'--show-all' ('-A') 옵션은 충돌을 대괄호로 묶고 병합되지 않은 변경 사항뿐만 아니라
older
에서 까지의 모든 변경 사항을 출력한다는 점을 제외하면 '-e' 옵션과 유사하게 작동합니다 .yours
세 개의 파일이 있고 각 파일에는 네 줄의 숫자가 있습니다.
$ paste f1 f2 f3
0 0 1
2 1 2
2 3 3
4 5 6
병합된 변경 사항이 없으므로 및 둘 다 병합되지 않은 변경 사항만 출력해야 한다는 것이 맞 -A
습니까 -e
?
-A
에 의한 다음과 같은 다양한 출력을 어떻게 이해합니까 -e
? ed
를 이해 하기에는 지식이 부족한 것 같습니다 -A
. 예를 들어 이 명령이 출력 끝에서 무엇을 하는지 잘 모르겠습니다 -A
. 일반적으로 a
명령 다음에는 추가할 줄이 나오지만 명령 뒤에는 줄이 없는 것 같습니다.
0a
<<<<<<< f1
.
감사해요.
f2
에서 까지의 변경 사항 중 f3
병합되지 않은 변경 사항은 다음과 같습니다.
$ diff3 -e f1 f2 f3
1,4c
1
2
3
6
.
f2
에서 까지의 모든 변경 사항 f3
(병합되지 않은 변경 사항 및 병합된 변경 사항 포함)은 다음과 같습니다.
$ diff3 -A f1 f2 f3
4a
||||||| f2
0
1
3
5
=======
1
2
3
6
>>>>>>> f3
.
0a
<<<<<<< f1
.
답변1
ed
diff3 -A
생성된 스크립트를 원본 파일에 적용하면 실제로 수행되는 작업을 확인할 수 있습니다.
$ diff3 -A f[123] >script.ed
( patch
여기서 사용하고 있는데 여러분도 쓸 수 있지만 버퍼를 파일에 다시 쓰거나( ) 터미널에서 인쇄하려면( ) ed
스크립트 끝에 명령을 추가해야 합니다. )w
%p
$ patch f1 script.ed
Hmm... Looks like an ed script to me...
Patching file f1 using Plan A...
done
$ cat f1
<<<<<<< f1
0
2
2
4
||||||| f2
0
1
3
5
=======
1
2
3
6
>>>>>>> f3
이는 파일의 이 비트에 대한 편집을 나타냅니다.모두이 특정 예에서는 파일)이 충돌입니다( <<<<<<<
및 사이에 "동봉" 되어 있음 >>>>>>>
). ("My Files")의 내용과 f1
("Old Files" 및 "Your Files" 각각)의 내용을 제공하여 충돌이 무엇인지 보여줍니다.f2
f3
이 컨텐츠와 생성된 컨텐츠의 차이점 은 생성된 스크립트가 에서 가능한 충돌을 무시하고 로 변환된다는 diff3 -e
것입니다 .ed
diff3 -e
f1
f3
f2
$ diff3 -e f[123] >script.ed
$ patch f1 script.ed
Hmm... Looks like an ed script to me...
Patching file f1 using Plan A...
done
$ cat f1
1
2
3
6
따라서 설명서에 "충돌이 포함되어 있습니다"라고 적혀 있으면 diff를 패치로 적용하면 해당 충돌 표시가 결과 파일에 삽입된다는 의미입니다.
그 순간까지차이를 읽어라, 모르시면 좀 어렵습니다 ed
.
4a
||||||| f2
0
1
3
5
=======
1
2
3
6
>>>>>>> f3
.
0a
<<<<<<< f1
.
귀하의 의견의 마지막 부분은
0a
<<<<<<< f1
.
<<<<<<< f1
편집 중인 파일의 맨 위에 텍스트 줄을 삽입합니다. 이렇게 하면 diff 자체에 f1
(패치되는 파일의) 원본 내용이 포함될 필요가 없습니다 .