Mercurial을 사용하는 상당수의 ASP.Net (C#) 웹 사이트가 있습니다. 때로는 "무언가"가 병합에 잘못되어 작은 수의 행이 결과 파일에 복제됩니다. 그러나 병합 중에 병합 충돌은 없었습니다.Mercurial 병합 중 중복 코드
복제 된 행은 일반적으로 블록 폐쇄 (중괄호, 닫기 태그 등)와 같이 매우 "일반적인"행입니다. 경우에 따라 컴파일러 오류가 발생합니다. 다른 경우에는 JS 오류가 발생합니다. 브라우저 호환성 문제를 야기하는 잘못된 마크 업입니다.
우리는 프로젝트에서 공동 작업을하는 사람들이 많으며, 그들은 종종 "메인"브랜치 (테스트 사이트를위한 것) 중 하나로 다시 합류하기 전에 서로의 브랜치를 분기하여 브랜치간에 병합하고, 다른 하나는 제작 사이트 용).
두 가지 분기가 독립적으로 시작되고 어떤 지점에서 병합 된 다음 두 분기가 독립적으로 테스트 사이트의 기본 분기로 다시 병합 될 때 문제가 가장 많이 발생하는 것으로 보입니다. 테스트로 병합되는 두 번째 분기에는 테스트로 병합 된 이력이 없으므로 첫 번째 분기 병합에 의해 이미 병합 된 모든 변경 세트가 포함되며 경우에 따라 컨텍스트가 너무 일반적이어서 적절하게 배치하고 그냥 포함합니다.
이 문제의 이름이 있습니까? 알려진 문제입니까? 그것을 피할 수있는 절차가 있습니까? 그것은 일반적인 문제가되어야 할 것 같지만, 그것에 대한 정보를 찾을 수없는 것 같습니다.
조상이 이미 대상 분기에 병합 된 하위 항목을 갖고 있지만 프로젝트 크기와 관련된 분기 수를 고려하면 매우 느릴 수 있으므로 병합을 금지하는 후크 추가를 고려했습니다.
또한 "깊이와 계보"컨트롤을 적용하기 위해 후크를 추가하여 형제, 사촌 또는 할아버지 지점이 아닌 상위 지점에서만 병합을 수행 할 수 있다고 생각했지만 여러 사람들이 협업 및 워크 플로.
생각하십니까?
가지고있는 문제를 보여주는 자급 한 예제를 만들 수 있습니까? 문제를 나타내는 repo를 만드는 짧은 쉘 스크립트로 충분할 것입니다. – ngoldbaum
잘 모르겠습니다. 우리의 대부분의 문제는 매우 복잡한 파일과 분기 패턴으로 발생했습니다. 나는 그것이 사소한 예와 함께 일어날 수 있는지 확신 할 수 없다. 그러나 나는 그것을 줄 것이다. – nhansen
사람들이 다른 라인 결말을 사용합니까? – planetmaker