8차 E-1 기록: 다섯 길을 사람 순서 그대로 다시 끝까지
제품 코드 변경 없음. 병합 · pull · rebase · cherry-pick · revert 를 길마다 새 저장소에서 파일 비교 탭을 미리 열지 않고 MergeHub 만으로 끝까지 갔다. - 다섯 길 모두 커밋(rebase 끝)까지 · 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0 - 7차 A-1 · A-2 · B-1, 8차 A-1 · B-1 · B-2 다시 안 남 · F-1 병합 · pull 본문 26개 - 새로 걸린 것(9차): cherry-pick 마지막 저장 뒤 요약 "내 쪽 대비" 가 실제 기준(이력에서 고른 커밋)과 다름, 한 번 다른 브랜치 커밋이 기준으로 잡힘(따로 재니 재현 안 됨) - 8차 전부 끝 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
f87f3c9b59
commit
18f9ca3a9f
@ -420,3 +420,59 @@ Accept Theirs (상대 쪽 파일 그대로) 15
|
|||||||
- 병합 커밋 **작성자**는 지금처럼 git `user.name` 이고, 본문의 이름은 MergeHub 의 작업자 이름(설정 [머지 주석] 작성자 → 켤 때 이름 → git `user.name` 순)이다. 둘이 다르면 둘 다 남는다.
|
- 병합 커밋 **작성자**는 지금처럼 git `user.name` 이고, 본문의 이름은 MergeHub 의 작업자 이름(설정 [머지 주석] 작성자 → 켤 때 이름 → git `user.name` 순)이다. 둘이 다르면 둘 다 남는다.
|
||||||
- 메시지 칸에서 본문을 지워도 커밋할 때 다시 붙는다 — 파일 단위 Accept 의 유일한 기록이라 뺄 수 없게 했다.
|
- 메시지 칸에서 본문을 지워도 커밋할 때 다시 붙는다 — 파일 단위 Accept 의 유일한 기록이라 뺄 수 없게 했다.
|
||||||
- MergeHub 밖(터미널)에서 푼 충돌은 적히지 않는다. 본문 건수가 처음 충돌 수보다 적으면 그만큼은 밖에서 푼 것이다.
|
- MergeHub 밖(터미널)에서 푼 충돌은 적히지 않는다. 본문 건수가 처음 충돌 수보다 적으면 그만큼은 밖에서 푼 것이다.
|
||||||
|
|
||||||
|
## E-1. 다섯 길을 사람 순서 그대로 다시 끝까지 (2026-09-17, 완료)
|
||||||
|
|
||||||
|
지시서대로 **고치지 않고 적기만 했다.** 제품 코드는 한 줄도 안 바꿨다.
|
||||||
|
|
||||||
|
### 무엇으로 했나
|
||||||
|
|
||||||
|
- 길마다 시험 저장소를 `C1Repo` 로 새로 만들었다. 병합 · pull · rebase · cherry-pick 은 충돌 26개(머지 주석만 다른 2개 포함), revert 는 `feature/revert` 위에서 16개.
|
||||||
|
- **파일 비교 탭을 미리 열지 않았다** — 충돌 탭의 [3분할로 열기] 로 처음 연다(8차 A-1 을 그대로 밟는 순서). 켤 때 이름 창은 [저장] 으로 닫고, 접힌 원격 영역은 [펴기] 로.
|
||||||
|
- 처음 돌린 병합 스크립트에 "파일 목록 세기" 단계가 남아 있어 **병합만 탭을 먼저 한 번 열었다.** 그 단계를 스위치로 끄고 병합을 다시 했다(아래 표 ① 은 다시 한 것).
|
||||||
|
- 푸는 순서는 네 길 같게: 같은 줄 충돌 15개 파일 단위 Accept Theirs → NewPanel Accept Both [아니오] → [3분할로 열기] 뒤 저절로 열리는 파일마다 Theirs · Mine 번갈아 [Save] · 띠 [파일 지우기] · [파일 남기기]. revert 는 큰 파일 하나를 네 칸으로, 나머지 15개를 파일 단위로.
|
||||||
|
- 확인 값: 커밋 blob 바이트로 BOM · CRLF · LF · UTF-8 을 첫 부모와 견줌, 충돌 표식, `UnitN.cs` 의 class 이름. 설정 `CSharpBraceStyle` 은 길마다 백업 → 끔 → 되돌림(다섯 번 모두 해시 같음).
|
||||||
|
|
||||||
|
### 다섯 길의 결과
|
||||||
|
|
||||||
|
| 확인 | ① 병합 | ② pull | ③ rebase | ④ cherry-pick | ⑤ revert |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| 시작 알림 | 충돌 24건 (머지 주석만 다른 2건은 자동으로 풀림) | 같음 | 같음 + [계속] 안내 | 같음 + [커밋] 안내 | 충돌 16건 + [커밋] 안내 |
|
||||||
|
| 머리 · 진행 줄 | 병합 진행 중 · 2/26 | 같음 | rebase 1/1 · 남은 충돌 24개 | cherry-pick 진행 중 · 24개 | revert 진행 중 · 16개 |
|
||||||
|
| [3분할로 열기] 로 처음 연 파일 | NewPanel (고른 파일) | 같음 | 같음 | 같음 | `Motion/Unit0.cs` (고른 파일) |
|
||||||
|
| 네 칸 REMOTE | feature/theirs | 같음 | 다시 올리는 내 커밋 | 가져오는 커밋 · 작성자 박지훈 | 되돌리는 커밋 |
|
||||||
|
| 줄 고른 로그 | 18줄 · "3-Way 안 씀" 0 | 같음 | 18줄 · 0 | 18줄 · 0 | 6줄 · 0 |
|
||||||
|
| 마지막 Save 뒤 파일 비교 탭 | 충돌 정리 끝 · 병합 커밋을 할 수 있습니다 · `… · 병합 전 내 쪽` | 같음 | 충돌 정리 끝 · [계속] 으로 rebase 를 이어 갑니다 · `… · 올릴 자리` | 충돌 정리 끝 · [커밋] 으로 cherry-pick 을 끝냅니다 (N1) | (마지막 파일은 파일 단위) |
|
||||||
|
| 충돌 남은 채 Save & Commit | 막힘 · git 그대로 | 같음 | 꺼짐 | 꺼짐 | - |
|
||||||
|
| 끝낸 커밋 | `3725e9c` 부모 둘 | `69214e6` 부모 둘 · Merge remote-tracking branch … | `f2b3b2a` rebase 완료 1/1 | `96cfbc4` 부모 하나 · 원래 메시지 | `650bcd1` Revert "내 쪽 작업" |
|
||||||
|
| 커밋 본문(8차 F-1) | **충돌 해결 26개 · 김승준** (줄 단위 7 · Theirs 15 · 남기기 1 · 지우기 1 · 주석 자동 2) | **같음 26개** | 해당 없음 | 해당 없음 | 해당 없음(원래 revert 본문) |
|
||||||
|
| 줄끝 · BOM · 인코딩 바뀐 파일 | **0 / 33** | **0 / 33** | **0 / 31** | **0 / 33** | **0 / 36** |
|
||||||
|
| 충돌 표식 · class 이름 다른 Unit | 0 · 0 | 0 · 0 | 0 · 0 | 0 · 0 | 0 · 0 |
|
||||||
|
| 끝난 뒤 | Clean · `.git` 표시 없음 · 기록 파일 없음 | 같음 | Clean · rebase-merge 없음 | Clean · CHERRY_PICK_HEAD 없음 | Clean |
|
||||||
|
| 빈 cherry-pick (HEAD 를 다시) | - | - | - | [커밋] **꺼짐** · "가져올 변경이 없습니다 - [작업 취소] 로 끝냅니다" · [작업 취소] 로 나옴 | - |
|
||||||
|
|
||||||
|
### 판정 기준
|
||||||
|
|
||||||
|
| 기준 | 결과 |
|
||||||
|
|---|---|
|
||||||
|
| 다섯 길 모두 MergeHub 만으로 끝까지 | **됐다** |
|
||||||
|
| 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 다른 Unit 파일 0 | **다섯 길 모두 0** |
|
||||||
|
| 7차 A-1 · A-2 · B-1 다시 안 남 | **안 남** — 마지막 Save 뒤 요약이 충돌 탭과 같은 말, "3-Way 안 씀" 로그 0, 커밋 뒤 `MERGEHUB_CONFLICTS` 없음 |
|
||||||
|
| 8차 A-1 다시 안 남 | **안 남** — 파일 비교 탭을 [3분할로 열기] 로 처음 열어도 고른 파일이 열리고, class 이름 검사 0 |
|
||||||
|
| 8차 B-1 · B-2 다시 안 남 | **안 남** — rebase "올릴 자리", 빈 cherry-pick [커밋] 꺼짐 |
|
||||||
|
| 8차 F-1 | 병합 · pull 본문 26개 = 처음 충돌 수, 커밋 뒤 기록 파일 없음 |
|
||||||
|
|
||||||
|
### 새로 걸린 것 (고치지 않음 → 9차)
|
||||||
|
|
||||||
|
| # | 무엇 | 근거 |
|
||||||
|
|---|---|---|
|
||||||
|
| N1 | cherry-pick 마지막 Save 뒤 두 칸의 BASE 는 **HEAD(내 쪽)가 아니라 이력에서 고른 커밋**인데, 요약은 "**내 쪽 대비** 가져온 변경 N줄" 이라고 한다(8차 B-1 에서 넣은 글). 줄 수가 무엇과 견준 것인지 틀리게 읽힌다 | 따로 재 봄: Selected Commit `0c9bd22 "상대 쪽 작업"`(가져온 커밋) · HEAD `85e6806`. 8차 B-1 기록의 "cherry-pick 제목에 꼬리가 없는 것은 맞다" 는 제목만 본 판단이었다 |
|
||||||
|
| N1-덧 | E-1 cherry-pick 에서 한 번은 제목이 `f310f49 · Weld/Unit1.cs` 로, HEAD(`b7ac29b`)도 가져온 커밋(`68fe17f`)도 아니었다. 줄 수(3줄)로 보면 [모든 브랜치] 목록의 다른 브랜치 커밋(`뒤이은 수정`)으로 보인다 | 같은 순서로 따로 다시 재니 가져온 커밋으로 잡혀 **다시 나지 않았다**. 새로고침 뒤 이력 선택이 어느 커밋으로 돌아가는지 9차에서 원인부터 본다 |
|
||||||
|
|
||||||
|
### 시험 도구 쪽 (제품 결함 아님)
|
||||||
|
|
||||||
|
- 병합 스크립트의 "파일 목록 세기" 가 파일 비교 탭을 먼저 여는 바람에 조건이 어긋났다 — 스위치(`D7_NO_PREOPEN`)로 끄고 다시 했다.
|
||||||
|
- 결과 확인 스크립트가 부모 하나인 커밋(rebase · cherry-pick · revert)에서 merge-base 오류를 냈지만 줄끝 판정은 첫 부모와 제대로 했다.
|
||||||
|
- `Recipe/ToBeDeletedByMe.cs` 를 남기면 git 상태가 `R`(이름 바뀜)로 읽힌다 — git 의 이름 추적이고 커밋 결과는 맞다(7차 D-1 과 같음).
|
||||||
|
|
||||||
|
코드는 바꾸지 않았으므로 검사는 그대로(하네스 22벌 1,094건) · 빌드 경고 0 · 오류 0.
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
| 날짜 | 항목 | 커밋 |
|
| 날짜 | 항목 | 커밋 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
| 2026-09-17 | **8차 E-1** — 다섯 길(병합 · pull · rebase · cherry-pick · revert)을 새 저장소에서 **파일 비교 탭을 미리 열지 않고** MergeHub 만으로 끝까지(제품 코드 변경 없음). 다섯 길 모두 커밋(rebase 끝)까지 · 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0. 7차 A-1 · A-2 · B-1, 8차 A-1 · B-1 · B-2 다시 안 남, F-1 병합 · pull 본문 26개. 새로 걸린 것: N1 cherry-pick 요약 "내 쪽 대비 가져온 변경" 이 실제 기준(이력에서 고른 커밋)과 다름 · 한 번 다른 브랜치 커밋이 기준으로 잡힘(재현 안 됨) → 9차. 8차 전부 끝 | 아래 |
|
||||||
| 2026-09-17 | **8차 F-1 (추가 요청)** — 충돌 탭 파일 단위 Accept 는 소스에 주석이 안 남고, 병합 커밋 본문은 비어 있었고, Git 탭 로그는 끄면 사라져 **누가 어느 파일을 어떻게 풀었는지 남는 곳이 없었다**. 병합 · pull 중 푼 방법(줄 단위 · Accept Mine/Theirs/Both · 파일 남기기/지우기 · 머지 주석 자동)을 `.git/MERGEHUB_RESOLUTIONS` 에 적고, [병합 커밋] 본문에 "충돌 해결 N개 · 이름" 과 갈래별 파일 목록을 붙인다(Git 탭 메시지 칸에 미리 보임, 사람이 고쳐도 커밋 때 붙음). 기록은 병합 커밋 · 작업 취소 때 치운다. 병합 26개 · pull 26개 · Accept Mine · 취소 확인. 스타일 맞춤 선택지는 만들지 않기로(사용자) | 아래 |
|
| 2026-09-17 | **8차 F-1 (추가 요청)** — 충돌 탭 파일 단위 Accept 는 소스에 주석이 안 남고, 병합 커밋 본문은 비어 있었고, Git 탭 로그는 끄면 사라져 **누가 어느 파일을 어떻게 풀었는지 남는 곳이 없었다**. 병합 · pull 중 푼 방법(줄 단위 · Accept Mine/Theirs/Both · 파일 남기기/지우기 · 머지 주석 자동)을 `.git/MERGEHUB_RESOLUTIONS` 에 적고, [병합 커밋] 본문에 "충돌 해결 N개 · 이름" 과 갈래별 파일 목록을 붙인다(Git 탭 메시지 칸에 미리 보임, 사람이 고쳐도 커밋 때 붙음). 기록은 병합 커밋 · 작업 취소 때 치운다. 병합 26개 · pull 26개 · Accept Mine · 취소 확인. 스타일 맞춤 선택지는 만들지 않기로(사용자) | 아래 |
|
||||||
| 2026-09-16 | **8차 D-1** — 웹 문서(`doc/web/index.html`)가 6차에서 멈춰 있었다. 7차 · 8차에서 바뀐 것을 매뉴얼에 넣고(창 크기 조절 · 이름 창 잠금 · 폴더 끌어다 놓기 차례 · 작업별 네 칸 제목과 끝내기 단추 · MERGED 줄 번호 · pull · rebase · cherry-pick · revert 가 같은 길), "알아 둘 한계" 를 지금 기준으로 다시 썼다(사라진 네 줄 빼고 스냅 한계 추가). 남은 일 표를 7차 · 8차로 갈아 끼우고 숫자 갱신(22벌 1,073건 · 커밋 94). 발행된 아티팩트도 버전 7 로 갱신. 제품 코드 변경 없음 | 아래 |
|
| 2026-09-16 | **8차 D-1** — 웹 문서(`doc/web/index.html`)가 6차에서 멈춰 있었다. 7차 · 8차에서 바뀐 것을 매뉴얼에 넣고(창 크기 조절 · 이름 창 잠금 · 폴더 끌어다 놓기 차례 · 작업별 네 칸 제목과 끝내기 단추 · MERGED 줄 번호 · pull · rebase · cherry-pick · revert 가 같은 길), "알아 둘 한계" 를 지금 기준으로 다시 썼다(사라진 네 줄 빼고 스냅 한계 추가). 남은 일 표를 7차 · 8차로 갈아 끼우고 숫자 갱신(22벌 1,073건 · 커밋 94). 발행된 아티팩트도 버전 7 로 갱신. 제품 코드 변경 없음 | 아래 |
|
||||||
| 2026-09-16 | **8차 C-3** — 7차 E-4 에서 남긴 넷을 실제 픽셀로 쟀다. 기억 없이 처음 Win+↓ 로 내리면 1600×900 DIP 가 화면 아래로 16px 넘치고 작업 표시줄을 가렸고, 최대화 창에서 이름 창이 세로 36px 위에 떴다. 사용자 결정대로 첫 복원을 두 번 누르기 복원과 같게(작업 영역 80% · 가운데), 덮는 창을 본 창 실제 사각형 가운데로 고침(플랫폼 `ShellWindow` · 새 `OwnerCentering`). 스냅은 최소 크기(1280×720 DIP) 때문에 화면 반쪽이 될 수 없음을 적어 둠, 1px 테두리는 그대로. 플랫폼 수정 · 배포 | 아래 |
|
| 2026-09-16 | **8차 C-3** — 7차 E-4 에서 남긴 넷을 실제 픽셀로 쟀다. 기억 없이 처음 Win+↓ 로 내리면 1600×900 DIP 가 화면 아래로 16px 넘치고 작업 표시줄을 가렸고, 최대화 창에서 이름 창이 세로 36px 위에 떴다. 사용자 결정대로 첫 복원을 두 번 누르기 복원과 같게(작업 영역 80% · 가운데), 덮는 창을 본 창 실제 사각형 가운데로 고침(플랫폼 `ShellWindow` · 새 `OwnerCentering`). 스냅은 최소 크기(1280×720 DIP) 때문에 화면 반쪽이 될 수 없음을 적어 둠, 1px 테두리는 그대로. 플랫폼 수정 · 배포 | 아래 |
|
||||||
|
|||||||
@ -227,7 +227,7 @@
|
|||||||
|
|
||||||
| 상태 | 항목 |
|
| 상태 | 항목 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 대기 | E-1 네 길(+ revert)을 사람 순서 그대로 다시 끝까지 — 파일 비교 탭을 미리 열지 않고 |
|
| **완료** | E-1 다섯 길(병합 · pull · rebase · cherry-pick · revert)을 사람 순서 그대로 다시 끝까지 — 파일 비교 탭을 미리 열지 않고 모두 MergeHub 만으로 커밋(rebase 끝)까지. 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0. 7차 A-1 · A-2 · B-1 · 8차 A-1 · B-1 · B-2 다시 안 남, F-1 본문 26개. 새로 걸린 것 N1(cherry-pick 요약의 "내 쪽 대비" 가 틀린 기준)은 9차 재료(고치지 않음) |
|
||||||
|
|
||||||
### F. 추가 요청
|
### F. 추가 요청
|
||||||
|
|
||||||
@ -235,6 +235,10 @@
|
|||||||
|---|---|
|
|---|---|
|
||||||
| **완료** | F-1 병합 커밋 메시지 본문에 충돌 해결 내역을 자동으로 적기 (2026-09-17 사용자 요청) — 병합 · pull 중 푼 방법(줄 단위 · Accept Mine/Theirs/Both · 남기기 · 지우기 · 머지 주석 자동)을 `.git` 에 적고 [병합 커밋] 본문에 "충돌 해결 N개 · 이름" + 파일 목록. 메시지 칸에 미리 보임, 커밋 · 취소 때 기록 치움. 스타일 맞춤 선택지는 만들지 않기로 |
|
| **완료** | F-1 병합 커밋 메시지 본문에 충돌 해결 내역을 자동으로 적기 (2026-09-17 사용자 요청) — 병합 · pull 중 푼 방법(줄 단위 · Accept Mine/Theirs/Both · 남기기 · 지우기 · 머지 주석 자동)을 `.git` 에 적고 [병합 커밋] 본문에 "충돌 해결 N개 · 이름" + 파일 목록. 메시지 칸에 미리 보임, 커밋 · 취소 때 기록 치움. 스타일 맞춤 선택지는 만들지 않기로 |
|
||||||
|
|
||||||
|
**8차 전부 끝.** E-1 에서 새로 걸린 것은 9차 재료다(고치지 않음).
|
||||||
|
|
||||||
|
- N1 cherry-pick 마지막 [Save] 뒤 두 칸의 BASE 는 이력에서 고른 커밋인데 요약이 "내 쪽 대비 가져온 변경 N줄" 이라고 한다. 한 번은 다른 브랜치 커밋(`f310f49`)이 기준으로 잡혔다(다시 재니 안 남)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3~4주차로 미룬 것
|
## 3~4주차로 미룬 것
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user