docs(verification): 깃 그물망에서 합류점 dev 로 전환 기록

This commit is contained in:
2026-09-12 09:37:25 +09:00
parent cecd12e329
commit aea787cc8d
@@ -0,0 +1,94 @@
# 깃 운영 전환 — 그물망에서 합류점(`dev`)으로 (2026-09-12)
작성: desktop-main (Claude). 지시: 사용자.
바뀐 파일은 **전부 git 밖**(`.claude/` · `CLAUDE.md` · `AGENTS.md` · `OWNERS.md`) —
시놀로지로만 건너감. 이 문서만 git 에 남김.
---
## 1. 왜 — 실측
VSCode 에서 ORCA 로 옮기며 워크트리를 **넷에서 여섯으로** 늘리기로 함
(클로드 4 · 코덱스 1 · 안티그래비티 1). 늘리기 전에 깃 그림이 이미 엉켜 있었음.
| 본 것 | 값 |
| ------------------------------ | ------------------------------------------------------- |
| 최근 이틀(9/11~9/12) 커밋 | 머지 **27** / 실제 작업 **12** — 머지가 2.25배 |
| 저장소 전체 `Merge remote-tracking` | **319** / 전체 1,782 커밋 = 18% |
| 얽힘 구조 | 창마다 **남의 환경 브랜치를 전부** 되받음 (그물망) |
| 갈래 수 | 창 4개 = 12갈래 → **창 6개 = 30갈래** (2.5배 악화 예정) |
| `origin/main` | 이미 `main_desktop_1`**조상** — 합류점 자리가 비어 있었음 |
원인은 브랜치 개수가 아니라 `git-sync.ps1` **2.5단계**였음 — 세션·지시마다 다른 환경
브랜치를 전부 자기 브랜치로 merge 함. N개 창이 서로를 보므로 머지 커밋이 N×N 으로 늘어남.
## 2. 사용자 결정
- `main` = **정본 유지.** 창은 손대지 않음. 합류점은 **새로 만듦**(`dev`).
- **받기** — 미커밋이 있으면 **통째로 건너뜀.** 옛 판의 「docs/ 만 받기」 예외 **폐기**
(위키 작업도 코드 작업과 동일하게 운영).
- **밀기** — 커밋 뒤 **자기 브랜치로만** push. `dev` 는 다음 받기가 올림.
- **싱크** — 환경 브랜치 여섯을 한 점으로 모음.
- 저장소 무게(`.git` 9.1GB · 중단 찌꺼기 `tmp_pack` 3.5GB · 추적 중인 `resources` 3.18GB)는
**이번에 건드리지 않음** — 사용자 보류.
- 코덱스·안티그래비티도 **코드 작업 가능**하게 `AGENTS.md` 개정.
## 3. 새 한 바퀴
```
받기 미커밋이면 건너뜀. 깨끗하면
① origin/dev 담기(대개 빨리감기)
② dev 가 아직 못 품은 환경 브랜치를 **한 번의 옥토퍼스 머지로** 담기
③ dev 를 내 자리로 빨리감기로 올리기
작업 자기 브랜치에서
밀기 커밋 → 자기 브랜치로만 push
싱크 -Converge : 환경 브랜치 여섯을 내 자리로 빨리감기 (main 은 제외)
```
## 4. 고친 것
| 파일 | 무엇 |
| -------------------------- | ----------------------------------------------------------------------- |
| `.claude/git-sync.ps1` | 2.5단계를 그물망 되받기 → 합류점 따라오기로 교체(옥토퍼스 1회 + dev 올리기) |
| | 7단계 모으기에서 `main` 만 제외 — 코덱스·안티그래비티도 함께 모음 |
| | 3단계 「새 원격 브랜치」 알림에서 `dev` 제외 · `-Brief` 필터 갱신 |
| `.claude/git-autopush.ps1` | **안 고침** — 이미 자기 브랜치로만 push 함(사용자 규칙과 일치) |
| `CLAUDE.md` 6·7장 | 줄 셋(main/dev/환경6) · 새 한 바퀴 · 창 여섯 |
| `AGENTS.md` | 제목·1장(코덱스+안티그래비티, 코드 작업 경계) · **4장 코드 작업 규칙 신설** |
| | 5장 작업 보조 · 6장 작업 환경(6환경) + **깃 한 바퀴** · 7장 공통 원칙 |
| `OWNERS.md` | codex · antigravity 두 줄 추가 (포트 8002·5175 / 8003·5176) |
| ORCA 저장소 설정 | `worktreeBaseRef``origin/dev`, setup 문구 되살림 |
`dev` 는 **원격 전용**으로 둠(로컬 브랜치 안 만듦) — 워크트리가 물고 있지 않아야
어느 창에서도 `HEAD:dev` 로 올릴 수 있음. 끊은 자리는 `cecd12e3` — 그때 여섯 브랜치가
모두 `main_desktop_1` 에 흡수돼 있어 **머지 0회**로 출발함.
## 5. 자체검증 — 모형 저장소 실행
진짜 저장소를 건드리지 않으려고 `git init` 으로 작은 모형(bare 1 + 워크트리 3)을 세워
**고친 스크립트를 그대로** 돌림.
| 시험 | 결과 |
| ------------------------------------ | --------------------------------------------------------- |
| ② 밀린 브랜치 1개 흡수 + ③ dev 올리기 | ✅ 머지 커밋 **1개**, dev 3커밋 전진 |
| ① dev 받기 (내 것이 이미 dev 에 있음) | ✅ **빨리감기** — 새 머지 커밋 0개 |
| ② 밀린 브랜치 **2개** 동시 | ✅ 옥토퍼스 **한 방** — 머지 커밋 1개, 부모 2개 |
| 미커밋 있을 때 받기 | ✅ 통째로 건너뜀 + 「커밋·push 한 뒤 다시 하세요」 |
| `-Converge` 모으기 | ✅ dev·main_desktop_1·sub_laptop_1 **세 브랜치가 같은 SHA** |
| 진짜 저장소에서 훅 실행 | ✅ 최신일 때 조용함, `-Brief` 는 아무것도 안 찍음 |
⚠ 옥토퍼스 실패 시 하나씩 다시 머지하는 갈래는 **모형에서 안 걸림**(충돌을 못 만듦) —
코드상 각 머지를 `--abort` 로 감싸 둠. 실제로 부딪히면 작업 트리는 그대로 두고 보고만 함.
⚠ 옥토퍼스가 `Fast-forwarding to:` 같은 줄을 stderr 로 뱉음. PowerShell 5.1 에서
네이티브 stderr 를 돌리면 `$?` 가 뒤집히는 자리라 **일부러 안 막음.**
## 6. 남은 것 · 주의
- **창 여섯을 전부 다시 켜야 함.** 한 창이 옛 훅으로 남으면 그 창 혼자 그물을 다시 침.
`.claude` 는 데스크탑은 심볼릭 링크 한 벌, 랩탑은 시놀로지가 옮김.
- ORCA setup 문구는 앱이 자기 상태로 **되돌려 쓴 적이 있음**(이번에도 `npm install`
돌아가 있었음). ORCA 를 다시 켠 뒤 `orca repo show --repo id:<id> --json` 으로 확인할 것.
- 코덱스·안티그래비티는 클로드 훅이 안 돎 — `AGENTS.md` 6장대로 **손으로**
`.claude\git-sync.ps1` 을 자기 워크트리 폴더에서 부를 것.
- 저장소 무게 정리(찌꺼기 팩 3.5GB · `resources` PDF 원문 3GB)는 사용자 보류 중.