git diff -- patientity는 무엇을 위한 것일까요?
인내 알고리즘이 기본값과 어떻게 다릅니까?git diff
알고리즘, 그리고 언제 사용하고 싶은데요?
인내 diff 알고리즘의 저자인 Bram Cohen의 게시물을 읽을 수 있지만, 저는 인내 diff 알고리즘을 매우 잘 요약하기 위해 이 블로그 게시물을 찾았습니다.
대신 인내심 디프는 텍스트에서 중요한 내용의 마커 또는 서명 역할을 하는 저주파 고내용 라인에 에너지를 집중합니다.핵심은 여전히 LCS 기반의 차이이지만, 중요한 차이점은 서명 줄의 가장 긴 공통 후속만을 고려하기 때문입니다.
양쪽에서 정확히 한 번 발생하는 모든 선을 찾은 다음 해당 선에 대해 가장 긴 공통 연속을 수행하여 일치시킵니다.
인내심을 언제까지 사용해야 합니까?브람에 따르면 인내심 차이는 이 상황에 좋다고 합니다.
정말 안 좋은 경우는 두 가지 버전이 크게 달라져서 개발자가 패치 크기를 통제하는 데 주의를 기울이지 않는 경우입니다.이러한 상황에서 diff 알고리즘은 긴 부분의 곱슬곱슬한 괄호를 함께 일치시키기 때문에 때때로 '오정렬' 될 수 있지만, 결국 한 버전의 함수들의 곱슬곱슬한 괄호와 다른 버전의 함수들의 곱슬곱슬한 괄호를 상관시키게 됩니다.이런 상황은 매우 추하고, 그런 것들을 가장 일관성 있게 제시해야 하는 상황에서 전혀 사용할 수 없는 충돌 파일이 될 수 있습니다.
병합에 사용할 수도 있습니다(일부 XML 충돌의 경우 여기서는 매우 잘 작동했습니다).
git merge --strategy-option=patience ...
인내 diff 알고리즘은 더 느린 diff 알고리즘으로 경우에 따라 더 나은 결과를 보여줍니다.
git에 다음 파일을 체크인했다고 가정합니다.
.foo1 {
margin: 0;
}
.bar {
margin: 0;
}
이제 섹션의 순서를 변경하고 새 줄을 추가합니다.
.bar {
margin: 0;
}
.foo1 {
margin: 0;
color: green;
}
기본 diff 알고리즘은 횡단 제목이 변경되었다고 주장합니다.
$ git diff --diff-algorithm=myers
diff --git a/example.css b/example.css
index 7f1bd1e..6a64c6f 100755
--- a/example.css
+++ b/example.css
@@ -1,7 +1,8 @@
-.foo1 {
+.bar {
margin: 0;
}
-.bar {
+.foo1 {
margin: 0;
+ color: green;
}
반면 인내심의 차이는 거의 틀림없이 더 직관적인 결과를 보여줍니다.
$ git diff --diff-algorithm=patience
diff --git a/example.css b/example.css
index 7f1bd1e..6a64c6f 100755
--- a/example.css
+++ b/example.css
@@ -1,7 +1,8 @@
-.foo1 {
- margin: 0;
-}
-
.bar {
margin: 0;
}
+
+.foo1 {
+ margin: 0;
+ color: green;
+}
여기서 주관적 diffurious에 대한 좋은 논의가 있고 git 2.11은 diffurious를 더 탐색하고 있습니다.
인내심 차이 알고리즘에는 아직 알려진 병리학적 사례가 있습니다.
언급URL : https://stackoverflow.com/questions/4045017/what-is-git-diff-patience-for
'it-source' 카테고리의 다른 글
Oracle에서 Select Exists를 사용하는 방법? (0) | 2023.10.18 |
---|---|
오류: 오류 1064:SQL 구문에 오류가 있습니다. MariaDB 서버에 해당하는 설명서를 확인하십시오. (0) | 2023.10.18 |
지도 내에서 비동기 함수를 호출하는 가장 좋은 방법은? (0) | 2023.10.18 |
C 전처리기 매크로에 전처리기 지시사항이 포함되는 것이 가능합니까? (0) | 2023.10.18 |
장고 모델:부울 필드의 기본값이 Maria에서 설정되지 않았습니다.DB (0) | 2023.10.18 |