Skip to content

[Brownfield] Incremental Merge — Phase 완료마다 main 동기화 체크 #5

Description

@KyubumShin

배경

Frontier 파이프라인은 4+ 페이즈로 장시간 실행됨. 이 동안 동료가 main에 변경을 머지하면, 전체 작업이 완료된 후에야 충돌을 발견하게 됨.

Phase 1 완료 (10분) → Phase 2 완료 (15분) → Phase 3 완료 (10분) → Phase 4 완료 (10분)
                                                                         ↓
                                                              main과 충돌 발견!
                                                              45분 작업 전체에 충돌 해결 필요

제안

각 Phase의 5-Gate 통과 후 main 동기화 체크를 삽입.

구현 방안

Phase N 완료 → 5-Gate 통과
    │
    ▼
git fetch origin main
    │
    ├─ main에 새 커밋 없음 → 다음 Phase 계속
    │
    └─ main에 새 커밋 있음 → 충돌 검사
        │
        ├─ 충돌 없음 → 자동 리베이스 후 계속
        │
        └─ 충돌 있음 → Phase 중단 + 사용자 알림
            "Phase 2 완료. main에서 src/auth/types.ts가 변경되어
             충돌이 예상됩니다. 지금 해결할까요?"

티어별 적용

  • Quick: 해당 없음 (단일 페이즈)
  • Standard: Phase 완료 후 체크 (비차단 — 충돌 없으면 자동 진행)
  • Frontier: Phase 완료 후 체크 + 선택적 중간 PR 전략

선택적 확장: Stacked PR 방식

대규모 변경 시 Phase별로 독립 PR을 생성하고 체인으로 연결:

Phase 1 PR → Phase 2 PR (Phase 1 기반) → Phase 3 PR → ...

각 Phase를 독립적으로 리뷰/머지 가능. gstack의 /ship이 이 자동화를 담당.

예상 구현 난이도

  • 기본 (동기화 체크): 낮음 (1-2일) — git fetch + merge-base 비교
  • 자동 리베이스: 중간 (2-3일) — 충돌 감지 + 사용자 인터랙션
  • Stacked PR: 높음 (5-7일) — git + GitHub API 자동화

참고

  • OMC의 merge-coordinator (워커 간 충돌 관리) 참고
  • OMX의 $team (독립 git worktree 기반 병렬 작업) 참고
  • gstack의 /ship + /land-and-deploy (PR 자동화) 참고

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions