간단히 말해서, 병합은 종종 무언가 잘못 될 수있는 또 다른 장소이기 때문에 사람들이 다시 다루기를 매우 두려워하기 위해 한 번만 잘못하면됩니다 (한 번 두 번 부끄러워하는 경우).
새 계정 관리 화면에서 작업 중이고 새 계정 워크 플로에서 버그가 발견되었다고 가정하겠습니다. OK, 우리는 두 가지 경로를 취합니다-계정 관리를 마치고 새 계정으로 버그를 수정합니다. 우리는 모두 계정을 다루기 때문에 매우 유사한 코드로 작업하고 있습니다. 아마도 동일한 코드 조각을 조정해야 할 수도 있습니다.
이제이 시점에서 서로 다른 두 가지 버전의 소프트웨어가 있습니다. 우리는 모두 변경 사항에 대한 커밋을 실행했으며, 코드를 충실히 테스트했으며, 독립적으로 우리는 훌륭한 일을 해냈다 고 확신합니다. 이제 뭐?
글쎄, 이제 합병 할 때가되었지만 ..... 이제 어떻게됩니까? 계정 관리 기능이 작동하지 않고 새 계정이 손상되어 이전 버그가 여전히 있는지 알 수없는 두 개의 작동하는 소프트웨어 세트에서 하나의 통합 된 끔찍하게 부서진 새로 버그가있는 소프트웨어로 바뀔 수 있습니다. .
어쩌면 소프트웨어가 영리했고 충돌이 있다고 말하고 우리가 그것을 인도한다고 주장했습니다. 글쎄, 쓰레기-나는 그것을하기 위해 앉아서 내가 즉시 이해하지 못하는 복잡한 코드를 추가 한 것을 보았습니다. 나는 그것이 변경 한 내용과 충돌한다고 생각합니다 ... 나는 당신에게 묻습니다. 분이 지나면 확인하고 이해하지 못하는 코드를 보게됩니다. 우리 중 하나 또는 둘 다 시간을내어 앉아, 적절한 병합을 해시하고, 우리가 그것을 깨뜨리지 않았는지 확인하기 위해 전체 댕글 링을 다시 테스트해야합니다.
한편 8 명의 다른 사람들은 모두 사디스트처럼 코드를 작성하고 있습니다. 몇 가지 작은 버그를 수정하여 병합 충돌이 있다는 것을 알기 전에 제출했습니다. 오후에 쉬거나 회의에 갇혀 있거나 어쩌면 그냥 휴가를 가야 할 것 같습니다. 또는 경력을 바꾸십시오.
그래서,이 악몽을 피하기 위해, 어떤 사람들은 헌신을 매우 두려워하게되었습니다 (새로운 것이 무엇입니까?). 우리는 이런 시나리오에서 당연히 위험에 빠질 수 있습니다. 우리가 어리석게 생각하고 그것을 망쳐 놓지 않는다면, 사람들은 무모한 포기로 행동하기 시작합니다. 한숨
그래서 당신은 간다. 그렇습니다. 현대의 시스템은 이러한 고통을 완화 시키도록 설계되었으며, 쉽게베이스를 풀고베이스를 해제하고베이스를 해제하고 프리베이스와 Hanglide 등을 쉽게 수행 할 수 있어야합니다.
그러나 그것은 더 많은 일이며, 우리는 전자 레인지의 버튼을 누르고 포크를 찾을 시간이 있기 전에 4 코스 식사를하고 싶습니다. 매우 만족스럽지 않습니다. 코드는 작동합니다. 의미는 있지만 합병을 정상적으로 처리하는 것은 중요하지 않습니다.
일반적으로 프로그래머는 훌륭한 작업 메모리를 개발 한 다음 문제를 완료하자마자 모든 정크 및 변수 이름과 범위를 즉시 잊어 버리고 병합 충돌을 처리하는 경향이 있습니다. 잘못 처리 된 병합)은 사망률을 상기시키기위한 초대입니다.