2011-03-03 7 views
38

암을 건너 뛰는 너무 많은 파일 설정이 아니라면 잘못된 병합, 누락 된 코드가 있습니까? 거대한 변경 사항이있는 2 개의 분기를 병합 (git merge)하려고합니다.GIT의 경고 : 기본 이름 변경 제한이 100이 설정 인 경우, 설정 "diff.renamelimit 설정"</p>은 무엇 걱정입니다 <p>를 사용하여이 값을 증가시킬 수 있음을 인식 부정확 한 이름 변경 감지

누군가이 구성 설정에 대해 더 많은 것을 밝힐 수 있습니까?

답변

28

귀하의 콘텐츠는 안전합니다.

는 내가 알고있는 것처럼, git 실제로 일류 rename 작업의 개념이없는 (만 bzr 큰 3 DVCSs의, 않습니다) 다음 mv는 기본적으로 기본 기계, 위에 설탕이다 addrm. git은 이러한 작업 중에 변경되는 콘텐츠를 추적 할 수 있기 때문에 addrm이 실제로 mv 일 때 추측을 통해 추측 할 수 있습니다. 실제로는 git이 실제로 기록 된 것보다 더 많은 작업이 필요하기 때문에 git-diff에 대한 문서에서는 "... O (n^2) 처리 시간이 필요합니다. 여기서 n은 잠재적 이름 바꾸기/복사 대상의 번호입니다."- git 원 ' 너무 많은 파일이 관련되어 있으면 시도해보십시오. 언급 한 설정은 임계 값을 제어합니다.

+14

"내용이 안전합니다"- 병합의 한쪽에서 이름이 변경되고 다른 쪽에서 변경된 파일이 탐지에서 누락 된 경우 이름이 변경되지 않은 병합 충돌이 발생합니다. 병합은 * 잘못된 것은 아니지만 완료하는 데 더 많은 사용자의 노력이 필요할 수 있습니다. – Cascabel

+0

감사합니다 행크와 Jefromi. "diff.renamelimit config"를 설정하면 어떤 상황에서도 유용할까요? –

+0

이 설정이 유용 할 경우 다른 사람이 궁금해하는 경우 : 예, 한 지점에서 수백 개의 파일을 이동하고 다른 지점에서 해당 파일을 많이 변경하면 분기를 병합하는 데 도움이 될 수 있습니다. 한 지점에서 거대한 코드 리팩토링을하고 다른 지점에서 진행중인 작업을 할 때와 같은 상황이있었습니다. – korda