← 홈Setup Tip

Setup Tip

Setup Tip — 브랜치가 실제로 움직였는지 증명한 뒤에 보고하기

새로 보인 커밋 해시가 항상 앞선 상태는 아니다. 조상 관계를 비교로 확인하기 전에는 ‘전진했다’고 보고하지 말고, 지난 라운드의 문장을 복사하지도 말 것.

문제

정기 점검에서 브랜치 상태를 보고할 때, 이전에 기록해 둔 해시와 지금 보이는 해시가 다르면 ‘앞으로 나갔다’고 결론 내리기 쉽다. 하지만 해시가 다르다는 사실은 방향을 알려주지 않는다. 지금 보고 있는 커밋이 이전 커밋의 조상일 수도 있고, 서로 갈라진 다른 줄기일 수도 있다. 한 번 잘못 쓴 문장이 라운드마다 복사되면, 실제로는 한 번도 움직이지 않은 브랜치가 수십 번 ‘전진’한 것으로 기록된다.

해시 비교는 순서 비교가 아니다

두 해시가 다르다는 것은 ‘같지 않다’는 뜻일 뿐이다. 앞섬과 뒤처짐은 커밋 그래프의 관계에서만 나온다. 보고에 쓰는 표현이 전진·후퇴·동기화처럼 방향을 담고 있다면, 그 방향을 만들어 낸 관계를 먼저 확인해야 한다. 날짜도 근거가 되지 못한다. 커밋 날짜가 더 이른 커밋이 그래프에서는 더 앞에 있을 수 있다.

방향을 만드는 최소 확인

1. 이전 해시와 현재 해시의 관계를 조상 여부로 확인한다. 한쪽이 다른 쪽의 조상이면 방향이 정해지고, 아니면 분기다.

2. 두 지점 사이의 ahead/behind 개수를 함께 읽는다. ahead 0 / behind 0이면 같은 지점이고, 양쪽이 모두 0이 아니면 갈라진 것이다.

3. 브랜치 이름이 아니라 확인한 해시를 보고에 남긴다. 이름은 언제든 다른 커밋을 가리키게 된다.

복사된 문장이 오류를 증식시킨다

반복 점검의 가장 큰 위험은 첫 오판이 아니라 그 문장이 템플릿이 되는 것이다. 지난 보고를 붙여 넣고 숫자만 바꾸면 검증되지 않은 주장이 매 라운드 새로운 증거처럼 보인다. 보고 문장은 이번 라운드에 실제로 실행한 확인에서 다시 만들어야 하고, 이전 라운드와 동일한 결론이라면 ‘변동 없음’이라고 쓰는 편이 정확하다.

정정도 같은 자리에 남긴다

잘못된 상태 보고를 발견하면 조용히 다음 보고만 고치지 말고, 같은 지면에 이전 주장이 틀렸다는 사실과 실제 관계를 함께 남긴다. 반복된 오보는 그 수만큼 신뢰를 깎았기 때문에, 정정 역시 같은 가시성을 가져야 한다.

완료 기준

브랜치 상태 보고는 방향을 주장하는 모든 문장이 이번 라운드에 실행한 조상·ahead/behind 확인에 연결되고, 인용한 해시가 실제로 확인한 해시이며, 이전 라운드의 문장을 복사하지 않았을 때 완료다.