피드로 돌아가기
버전 관리의 미래
GeekNewsGeekNews
Backend

버전 관리의 미래

버전 관리 커뮤니티가 Git의 머지 UX 문제와 CRDT 기반 VCS의 실용성을 놓고 벌인 기술 논쟁

neo2026년 3월 23일12intermediate

Context

Git의 머지 충돌 표시 방식이 직관적이지 않아 개발자들이 충돌 원인을 파악하기 어렵다는 문제가 제기되었다. 동시에 새로운 버전 관리 시스템들(Pijul, Jujutsu 등)이 CRDT나 패치 기반 접근으로 머지 문제를 근본적으로 해결할 수 있다는 주장이 대두되었다.

Technical Solution

  • Git merge 설정 변경으로 가독성 향상: merge.conflictStyle을 "diff3" 또는 "zdiff3"로 설정하여 베이스 버전까지 표시
  • 외부 머지 도구 활용: p4merge(4패널 구조로 좌/우/공통 베이스/결과 표시) 또는 JetBrains IDE의 머지 UI 사용
  • 패치 단위 버전 관리: Pijul이 스냅샷 재적용 방식 대신 패치 기반으로 작동하여 순서 독립적 결과 도출
  • CRDT를 머지 계산에만 제한 적용: 파일 이름, 속성, 해시 추적 시 OR-set 활용하되 충돌 해결은 외부 인터페이스에서 처리
  • 리뷰 피드백 기반 커밋 관리: Jujutsu나 Gerrit으로 "리뷰 피드백 기반의 커밋 체인 관리" 지원
  • manana.py 구현: 473줄 Python 코드(실제 구현 240줄 + 테스트 코드)로 간소화된 머지 알고리즘 제공

Key Takeaway

Git의 머지 문제는 개념적 결함보다는 UX 디자인 문제이며, 기존 Git 위에 외부 도구나 설정 변경으로 충분히 개선 가능하다. 새로운 VCS 도입보다는 팀 규모별 코드 서브트리 분할, 에이전트 기반 자동화(Codex 등), 개념적으로 일관된 설계가 실질적 효과를 낸다.


Git을 사용하는 팀에서 머지 충돌 문제를 겪을 때, 새로운 VCS로 마이그레이션하기 전에 먼저 merge.conflictStyle을 "diff3"로 변경하거나 p4merge/JetBrains IDE 같은 외부 머지 도구를 도입하면 충돌 원인 파악이 용이해진다. 대규모 팀은 코드 영역별 전문화로 자연스럽게 충돌을 줄일 수 있으며, AI 기반 머지 해결(Codex 등)이 점점 더 실용적 대안이 되고 있다.

원문 읽기