8차 C-1 기록: revert 충돌을 화면으로 끝까지

제품 코드 변경 없음. 시험 저장소 생성기(scratchpad C1Repo)에 feature/revert 갈래를 더해
revert 충돌 16개를 만들고 MergeHub 만으로 [Revert] 부터 커밋까지 갔다.

- 머리 "revert 진행 중" · 끝내기 단추 [커밋] · 네 칸 REMOTE "되돌리는 커밋 c579a81 내 쪽 작업"
- 로그 "101행 Theirs(커밋 c579a81) 반영" · 진행 줄 "충돌 정리 끝 - [커밋] 으로 revert 를 끝냅니다"
- 커밋 acefbcd 'Revert "내 쪽 작업"' 부모 하나 · 워킹트리 Clean · REVERT_HEAD 없음
- 바뀐 파일 36개 · 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
김승준 2026-09-16 14:56:51 +09:00
parent 2d3201cda0
commit 08f168b624
3 changed files with 36 additions and 1 deletions

View File

@ -202,3 +202,37 @@ LOCAL (Mine) 칸은 `OriginalLocalNumber`(내 파일 번호)를 그대로 쓴다
| LOCAL (Mine) 칸 | 3346 ~ 3361 그대로 | | LOCAL (Mine) 칸 | 3346 ~ 3361 그대로 |
하네스 18벌 928건 통과(MergeSaveTest 162). 빌드 경고 0 · 오류 0. 설정 파일은 바이트 그대로 되돌림. 하네스 18벌 928건 통과(MergeSaveTest 162). 빌드 경고 0 · 오류 0. 설정 파일은 바이트 그대로 되돌림.
## C-1. revert 충돌을 화면으로 끝까지 (2026-09-16, 완료)
7차 C-2 에서 revert 는 rebase · cherry-pick 과 같은 길을 쓰게 했지만 **화면으로 끝까지 해 본 적이 없었다.**
### 시험 재료를 먼저 만들었다 (생성기 `C1Repo`, 같은 씨앗)
revert 가 충돌을 내려면 되돌릴 줄을 **뒤이어 또 고친 커밋**이 있어야 한다. 갈래를 하나 더했다.
- `feature/revert` = `내 쪽 작업` 위에 `뒤이은 수정` 하나. 같은 줄 충돌 15개 파일과 큰 파일 `Motion/Unit0.cs` 의 같은 자리를 또 고친다.
- 기존 경우(병합 · pull · rebase · cherry-pick)는 그대로다 — `feature/mine` · `feature/theirs` 를 건드리지 않았다.
- git 으로 미리 재 보니 그 위에서 `내 쪽 작업` 을 revert 하면 **충돌 16개**다.
### 확인한 것 (MergeHub 만으로)
| 때 | 결과 |
|---|---|
| 이력에서 `내 쪽 작업` 을 골라 [Revert] | 알림 **`충돌 16건 - … 다 풀면 [커밋] 으로 revert 를 끝냅니다.`** · 로그 `revert 시작: c579a81 내 쪽 작업` → `revert 충돌 16건 - 풀고 나서 충돌 탭의 [커밋] 으로 끝냅니다.` |
| 충돌 중 | 머리 **`revert 진행 중`** · [작업 취소] 켜짐 · 진행 줄 `남은 충돌 16개` · 끝내기 단추 **[커밋]**(꺼짐) |
| 네 칸 (`Motion/Unit0.cs`) | LOCAL `feature/revert` · REMOTE **`REMOTE · 되돌리는 커밋 c579a81 내 쪽 작업`** · 머리 글 **`revert 충돌 · REMOTE = 되돌리는 커밋 c579a81`** · "3-Way 안 씀" 없음 |
| 줄을 고르면 | 로그 **`101행 Theirs(커밋 c579a81) 반영`** (6줄) |
| 나머지 15개 파일 단위 Accept Theirs | git 충돌 15 → **0** |
| 다 푼 뒤 | 진행 줄 **`충돌 정리 끝 - [커밋] 으로 revert 를 끝냅니다`** · [커밋] 켜짐 · 커밋 메시지 칸 **`Revert "내 쪽 작업"` + `This reverts commit c579a81…`** |
| [커밋] | 로그 `revert 커밋: acefbcd Revert "내 쪽 작업"` · 부모 하나 · 진행 표시 · [작업 취소] 사라짐 · 워킹트리 Clean |
| 결과 | `Common/Util/Unit15.cs` 가 **바탕과 같아짐** · 되돌린 글("내가 고침") 0개 파일 · `REVERT_HEAD` 없음 |
| 바이트 | 바뀐 파일 36개 · **줄끝 · BOM · 인코딩이 부모와 다른 파일 0** · 충돌 표식 0줄 · class 이름이 다른 Unit 파일 **0** |
### 알게 된 것 · 남긴 것
- **충돌 난 16개 파일에서는 `뒤이은 수정` 의 글도 함께 사라진다.** 그 줄들을 전부 Accept Theirs(되돌리는 쪽)로 골랐기 때문이다 — 고른 대로다.
뒤 커밋의 글을 지키려면 그 줄만 Take Mine 으로 고르면 된다.
- 자동 조작 쪽: 첫 확인에서 파일 단위 Accept Theirs 가 15개 중 1개만 풀었다(목록 선택이 앱에 안 닿음 - 7차 C-2 와 같은 증상).
충돌이 0 이 될 때까지 되풀이하도록 스크립트를 고쳐 다시 했다. 제품 결함이 아니다.
- 제품 코드는 한 줄도 바꾸지 않았다. 7차 C-2 에서 만든 길이 revert 에서도 그대로 동작했다.

View File

@ -8,6 +8,7 @@
| 날짜 | 항목 | 커밋 | | 날짜 | 항목 | 커밋 |
|---|---|---| |---|---|---|
| 2026-09-16 | **8차 C-1** — 7차 C-2 에서 만든 길로 revert 도 되는지 화면으로 끝까지 봤다(제품 코드 변경 없음). 시험 저장소 생성기에 eature/revert(뒤이은 수정) 갈래를 더해 revert 충돌 16개를 만들고, [Revert] → 머리 "revert 진행 중" → 네 칸 REMOTE "되돌리는 커밋 …" → 로그 "101행 Theirs(커밋 …) 반영" → 진행 줄 "[커밋] 으로 revert 를 끝냅니다" → 원래 메시지로 커밋까지. 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 검사 0 | 아래 |
| 2026-09-16 | **8차 B-3** — 네 칸 MERGED 칸 줄 번호가 정렬할 때 정해진 채 굳어, 고른 줄 · 머지 주석으로 결과가 늘어도 그대로였다(끝 번호 3363 · 상태바 총 3369줄). 사용자가 "결과 파일 번호로" 를 골라, 결과에 들어가는 줄만 1부터 다시 매긴다(MergedNumbering). 줄을 만들 때와 요약을 그릴 때마다 다시 매겨 고르기 · 편집 · 되돌리기 뒤에도 맞는다. 저장된 파일 줄 수(3369)와 화면 번호가 같아짐 | 아래 | | 2026-09-16 | **8차 B-3** — 네 칸 MERGED 칸 줄 번호가 정렬할 때 정해진 채 굳어, 고른 줄 · 머지 주석으로 결과가 늘어도 그대로였다(끝 번호 3363 · 상태바 총 3369줄). 사용자가 "결과 파일 번호로" 를 골라, 결과에 들어가는 줄만 1부터 다시 매긴다(MergedNumbering). 줄을 만들 때와 요약을 그릴 때마다 다시 매겨 고르기 · 편집 · 되돌리기 뒤에도 맞는다. 저장된 파일 줄 수(3369)와 화면 번호가 같아짐 | 아래 |
| 2026-09-16 | **8차 B-2** — 이미 들어 있는 커밋을 cherry-pick 하면 [커밋] 이 켜지는데 누르면 로그에 "실패: No changes; nothing to commit." 만 남고 진행 줄도 그대로라 같은 단추를 또 누르게 됐다. 커밋할 것이 있는지(HasStagedChanges)를 상태로 들고 있다가 [커밋] 을 끄고, 진행 줄 · 적용 로그가 "가져올(되돌릴) 변경이 없습니다 - [작업 취소] 로 끝냅니다" 라고 말한다. 커밋 직전에도 사람 말로 막는다. 병합 커밋은 트리가 같아도 정상이라 걸지 않음 | 아래 | | 2026-09-16 | **8차 B-2** — 이미 들어 있는 커밋을 cherry-pick 하면 [커밋] 이 켜지는데 누르면 로그에 "실패: No changes; nothing to commit." 만 남고 진행 줄도 그대로라 같은 단추를 또 누르게 됐다. 커밋할 것이 있는지(HasStagedChanges)를 상태로 들고 있다가 [커밋] 을 끄고, 진행 줄 · 적용 로그가 "가져올(되돌릴) 변경이 없습니다 - [작업 취소] 로 끝냅니다" 라고 말한다. 커밋 직전에도 사람 말로 막는다. 병합 커밋은 트리가 같아도 정상이라 걸지 않음 | 아래 |
| 2026-09-16 | **8차 B-1** — rebase · cherry-pick 에서 마지막 충돌을 [Save] 하면 파일 비교 탭이 "남은 차이 6줄" 로 떨어져 충돌 탭과 다른 말을 했다(7차 A-1 이 병합 전용이었고 화면도 MERGE_HEAD 기준으로 물었다). 요약 · BASE 제목을 작업 상태(GitOperationState)에 맞춰 OperationLabels 로 옮김 — 끝말은 충돌 탭 진행 줄과 같은 FinishHint, 차이 줄은 작업별로(받은 · 올린 · 가져온 · 되돌린 변경), 제목 꼬리는 병합 "병합 전 내 쪽" · rebase "올릴 자리" 등. 병합 글은 그대로 | 아래 | | 2026-09-16 | **8차 B-1** — rebase · cherry-pick 에서 마지막 충돌을 [Save] 하면 파일 비교 탭이 "남은 차이 6줄" 로 떨어져 충돌 탭과 다른 말을 했다(7차 A-1 이 병합 전용이었고 화면도 MERGE_HEAD 기준으로 물었다). 요약 · BASE 제목을 작업 상태(GitOperationState)에 맞춰 OperationLabels 로 옮김 — 끝말은 충돌 탭 진행 줄과 같은 FinishHint, 차이 줄은 작업별로(받은 · 올린 · 가져온 · 되돌린 변경), 제목 꼬리는 병합 "병합 전 내 쪽" · rebase "올릴 자리" 등. 병합 글은 그대로 | 아래 |

View File

@ -213,7 +213,7 @@
| 상태 | 항목 | | 상태 | 항목 |
|---|---| |---|---|
| 대기 | C-1 revert 충돌을 화면으로 끝까지 | | **완료** | C-1 revert 충돌을 화면으로 끝까지 — 생성기에 `feature/revert` 갈래를 더해 충돌 16개를 만들고, MergeHub 만으로 [Revert] → 네 칸("되돌리는 커밋 …") → [커밋] 까지. 원래 메시지 `Revert "내 쪽 작업"`, 줄끝 · BOM 바뀐 파일 0, 제품 코드 변경 없음 |
| 대기 | C-2 cherry-pick 이 원래 작성자를 남기는지 눈으로 | | 대기 | C-2 cherry-pick 이 원래 작성자를 남기는지 눈으로 |
| 대기 | C-3 창 크기 조절에서 안 본 것 — 스냅 · 첫 Win+↓ 크기 · 덮는 창 가운데 · 1px 테두리 (플랫폼) | | 대기 | C-3 창 크기 조절에서 안 본 것 — 스냅 · 첫 Win+↓ 크기 · 덮는 창 가운데 · 1px 테두리 (플랫폼) |