기본 주소를 다시 정할 때 충돌의 정확한 차이를 표시합니다

4189 단어 vim-fugitive

묘사

이 패치는 @qstrahl이 #407에서 보고한 문제를 해결했습니다.최신 버전
의git가 통합되지 않은 파일의 상태 표시 방식을 변경했습니다
다시 기초를 정할 때.결과적으로 통합되지 않은 파일이 기초를 재설정할 때 충돌이 발생했다
임시 저장 파일로 간주되다.이 패치는 다음과 같은 방법으로 이 문제를 수정합니다.
어떤 상태를 결정하기 위해 실행된 검사를 다시 정렬합니다
병합되지 않은 파일을 검사하기 위해 파일이 있는 부분
임시 저장 파일을 검사하기 전에 발생합니다.

토론 #1

이 변화는 비교적 오래된 버전의git에 불량 행위를 가져올 수 있습니까?

토론 #2

바로 나의 문제:)
2014년 2월 19일, 수요일, 쿠이나 스텔라[email protected]
쓰기:

Does this change introduce bad behaviour for older versions of git?

Reply to this email directly or view it on GitHubhttps://github.com/tpope/vim-fugitive/pull/440#issuecomment-35545246 .

토론 #셋

간단한 대답


아니야.

답이 길다


이 패치는 응용 테스트의 순서만 변경할 뿐 실제 내용은 변경하지 않습니다.이전 버전의 다른 부분에서 아래 문자열 git add/rm 을 포함하는 설명을 하지 않으면, 이것은 정확한 부분으로 일관되게 해석되어야 한다.

경고


불행히도, 나는 이 점을 테스트하기 위해 구 버전의git가 없다.최초의 문제가 보도된 이래로 적어도 3개월이 되었다.따라서 이러한 변화는git 코드 라이브러리에 적어도 그렇게 오래 존재해 왔다.
또한git의 비영어 로컬화를 사용할 때 이 복구 프로그램도 이 문제를 해결할 수 없습니다.섹션 제목 아래에 인쇄하는 실제 명령이 변경되었습니다.

토론 #4

우리는 무엇을 해야만 그것을 합병할 수 있습니까?Gerrit의 사용자로서 기본 충돌을 재정비하는 것은 나의 작업 절차에서 흔히 볼 수 있는 부분이다.그러나git에는 구버전과 로컬화된 버전이 많다.실용적인 테스트 방법이 있습니까?아니면 불량 행위의 샘플이 도입되지 않았음을 검증하기 위해 이 변화를 테스트해야 합니까?

토론 #5

ping@tpope만 있으면 될 수 있습니다.그는 매우 바쁜 사람이다

토론 #6

나한테 먼저 새로운 상태 좀 보여줄래?

토론 #7

인치:Gstatus입니까 아니면 생git status입니까?그리고 어떤 조건하에서?

토론 #8

똑같지 않아요?나는 내 기계의 옛 판본과 비교하기 위해 합병 충돌을 보고 싶다.

토론 #9

Aren't they the same?


구문 강조 표시가 중요한 경우

I want to see a merge conflict so I can compare with the older version on my machine.


나는 #407에서 이 예를 발표했다.
# rebase in progress; onto 2a78977
# You are currently rebasing branch 'master' on '2a78977'.
#   (fix conflicts and then run "git rebase --continue")
#   (use "git rebase --skip" to skip this patch)
#   (use "git rebase --abort" to check out the original branch)
#
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add <file>..." to mark resolution)
#
#   both modified:      test.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

토론 #10

그래, 확실히 생각보다 일이 많이 진전됐어.도주범은 두 가지 다른 탐색법을 사용하여 이 부분을 확정한다.
1. 섹션 제목, 영어 로케일에만 적용.
2.advice.statusHints가짜가 아니라면 이 힌트들은 유효하다.
다시 배열하면 정확한 헤더가 일치할 수 있지만, 진정한 문제는 단계와 통합되지 않은 알림 검사가 충분하지 않다는 것이다.특히 미통합에 대한 힌트는 하나multitude of possibilities였다.버전 제어가 작용할 수 있지만, 설령 나의 구 1.8.1이라도 같은 문제가 있다.
나는 약간의 개선된 제시 계발법을 내놓았다.나는 여전히 git reset 부분이 생략되었는지 잘 모르겠기 때문에 그것들은 완벽하지 않을 수도 있다.알려줘.

토론 #11

신성한 스모그.노력해 주셔서 감사합니다.

토론 #12

직접 합병 충돌은 git-reset 부분을 생략한 것이 분명하다.(git 1.9.3 버전)과 새로운 알림 검출 계발법을 사용합니다. 이것은 일반적인 합병은 통합되지 않은 파일이 아니라 추적되지 않은 파일로 일치하는 것을 의미합니다.
참조를 용이하게 하기 위해 git-merge 결합 충돌로 인해 발생한 결합되지 않은 부분의 형식은 다음과 같습니다.
# Unmerged paths:
#   (use "git add <file>..." to mark resolution)
#
#       both added:      B.txt
#
추적되지 않은 파일:
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       C.txt
#
불행하게도, 이것은git의 로컬화된 텍스트를 사용하지 않으면, 통합되지 않은 파일, 추적되지 않은 파일을 확정할 수 없다는 것을 의미한다. 왜냐하면 둘은 알림 텍스트에서 같은git 명령을 사용하기 때문이다.
정확한 해결 방안은 로컬화된 파일을 검사하고 로컬화된 텍스트 검사 섹션 제목에 따라 하는 것입니다.

토론 #13

추적되지 않은 섹션의 첫 번째 파일을 포함할 수 없다는 요구가 추가되었습니다:.나는 이렇게 하는 것이 매우 안전하다고 생각한다.

토론 #14

장기적으로 보면 이사하고 싶은데git status --short 큰 변화예요.

좋은 웹페이지 즐겨찾기