웹 문서가 8차 D-1(E-1 · F-1 전)에서, "지금까지 만든 것" 은 6차에서 멈춰 있었다. - 개요: 22벌 1,122건 · 커밋 104 · 8차 끝 · 9차 진행 · 다섯 길 - 매뉴얼: 병합 커밋 본문 해결 내역(예시 포함) · 해결 기록이 남는 곳 · 마지막 저장 뒤 기준 HEAD · 모든 브랜치에서도 고른 커밋 유지 · 넣은 주석 줄 무시 색 · 알아 둘 한계 넷 - 남은 일: 8차 D-1 · F-1 · E-1, 9차에서 고친 것, 9차에 남은 것, 정해서 두지 않는 것 - 지금까지 만든 것: 7~9차 기록 · 하네스 막대 · 기능 목록 확인: 화면 문구 앱 소스 grep 대조, 옛 숫자 0건, 태그 짝 맞음, 아티팩트 버전 9. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
224 lines
20 KiB
Markdown
224 lines
20 KiB
Markdown
# 9차 진행 기록 (2026-09-17 ~)
|
||
|
||
지시서: [../작업지시/9차.md](../작업지시/9차.md)
|
||
|
||
## A-1. cherry-pick 마지막 저장 뒤 "내 쪽 대비" 라고 하지만 실제 기준은 이력에서 고른 커밋이다 (2026-09-17, 완료)
|
||
|
||
사용자 결정(2026-09-17): **작업 중 충돌을 다 풀면 두 칸의 기준을 HEAD 로 옮긴다.**
|
||
("기준은 고른 커밋 그대로 두고 글을 맞춘다" 는 고르지 않음.)
|
||
|
||
### 고치기 전에 다시 났다 (길마다 저장소를 새로 만들어, 파일 비교 탭을 미리 열지 않고)
|
||
|
||
8차 E-1 순서 그대로 — 이력에서 커밋을 골라 시작 → 한 파일만 남기고 파일 단위 Accept Theirs → 남은 파일을 [3분할로 열기] → 충돌마다 Take Theirs → [Save].
|
||
|
||
| | cherry-pick ([모든 브랜치] 켬) | revert ([모든 브랜치] 끔) |
|
||
|---|---|---|
|
||
| 이력에서 고른 커밋 | `상대 쪽 작업` | `내 쪽 작업` |
|
||
| 마지막 Save 뒤 두 칸 기준(Selected Commit) | **`뒤이은 수정`** — HEAD(`내 쪽 작업`)도 고른 커밋도 아닌 다른 브랜치 커밋 | `뒤이은 수정` = HEAD |
|
||
| BASE 제목 | `ace42e3 · Weld/Unit1.cs` (꼬리 없음) | `… · Motion/Unit0.cs · 되돌리기 전 내 쪽` |
|
||
| 요약 | 충돌 정리 끝 · [커밋] 으로 cherry-pick 을 끝냅니다 · **내 쪽 대비** 가져온 변경 6줄 | … · 내 쪽 대비 되돌린 변경 6줄 |
|
||
|
||
- 8차 E-1 에서 따로 잰 한 번은 기준이 **고른 커밋**이었다. 이번 cherry-pick 은 **목록 맨 위(다른 브랜치 커밋)**, revert 는 **HEAD**.
|
||
같은 순서인데 기준이 셋 중 하나로 그때그때 달랐다 — N1 과 N1-덧(9차 A-2)은 뿌리가 같다.
|
||
- 파일 비교 탭 왼쪽 이력에서 선택된 줄이 맨 위 `뒤이은 수정` 이었다(스크린샷 `d9-a1-pick-before-1`).
|
||
|
||
### 원인
|
||
|
||
- 새로고침은 이력 목록(`Commits`)을 **비웠다가 다시 채운다.** 그때 Git 탭 이력 목록(`SelectedItem` 바인딩)이 선택을 놓치면 **null 을 밀어 넣어** 고른 커밋이 빈다.
|
||
놓치는지는 그때 화면 상태에 따라 달랐다.
|
||
- 비었으면 `SelectedCommit = Commits[0]` — **목록 맨 위**로 채웠다. [모든 브랜치] 를 끄면 맨 위가 HEAD 라 티가 안 났고,
|
||
켜면 맨 위는 가장 최근의 다른 브랜치 커밋이다.
|
||
- 안 비었으면 이력에서 고른 커밋(cherry-pick 할 커밋)이 그대로 기준으로 남았다.
|
||
- 요약(`OperationLabels.ResolvedSummary`)은 기준이 HEAD 인지 보지 않고 "내 쪽 대비" 를 붙였다. BASE 제목은 HEAD 일 때만 작업 글을 붙여서 둘이 다른 말을 했다.
|
||
|
||
### 고친 것
|
||
|
||
- `Services/CommitSelection.cs`(새로) — 새로고침 뒤 고를 자리:
|
||
작업 중 충돌이 **막 0 이 된** 새로고침이면 HEAD, 아니면 새로고침 전에 고른 커밋을 **해시로** 되찾고, 없으면 맨 위가 아니라 HEAD(HEAD 도 목록에 없을 때만 맨 위).
|
||
"막 0 이 된" 때만 옮긴다 — 그 상태에서 사람이 다른 커밋을 골라 보면 스테이징 · 새로고침마다 HEAD 로 끌어오지 않는다.
|
||
- `GitWorkspace.ReadState` — 목록을 갈아 끼우기 **전에** 고른 커밋의 해시를 적어 두고, 채운 뒤 `CommitSelection.Choose` 로 새 목록의 같은 커밋 객체를 고른다.
|
||
- `OperationLabels.ResolvedSummary(…, baseIsHead)` — 기준이 HEAD 가 아니면 작업 글을 쓰지 않는다(보통 요약). `HomeViewModel` 은 BASE 제목과 같은 조건(`SelectedCommit.ShortSha == HeadSha`)을 넘긴다.
|
||
- 하네스 `MergeSaveTest` 18건 추가(201건): 해시로 되찾기 · 순서가 바뀐 목록 · 비었을 때 HEAD · 사라졌을 때 HEAD · 막 0 이 되면 HEAD · 머무는 동안 안 끌어옴 · 기준이 HEAD 가 아니면 보통 요약.
|
||
|
||
### 확인한 것 (고친 앱, 같은 순서)
|
||
|
||
| | cherry-pick ([모든 브랜치] 켬) | revert |
|
||
|---|---|---|
|
||
| 마지막 Save 뒤 Selected Commit | **`내 쪽 작업` = HEAD** | `뒤이은 수정` = HEAD |
|
||
| BASE 제목 | `e039373 · Weld/Unit1.cs · 가져오기 전 내 쪽` | `6dde274 · Motion/Unit0.cs · 되돌리기 전 내 쪽` |
|
||
| 요약 | 충돌 정리 끝 · [커밋] 으로 cherry-pick 을 끝냅니다 · 내 쪽 대비 가져온 변경 6줄 | … · 내 쪽 대비 되돌린 변경 6줄 |
|
||
| git 과 대조 | `git diff -U0 HEAD -- Weld/Unit1.cs` = 바뀐 줄 6 + 머지 주석 줄 6. 주석 줄은 규칙(무시: 머지 주석)대로 안 셈 → **6 이 맞다** | 같은 구성(+12 −6) |
|
||
|
||
곁 확인(`d9-a1-keep.ps1`):
|
||
|
||
| 경우 | 결과 |
|
||
|---|---|
|
||
| 충돌을 다 푼 cherry-pick 저장소를 다시 열기 | 기준 HEAD · 요약 작업 글 |
|
||
| 그 상태에서 파일 비교 탭 이력으로 `바탕` 을 고름 → [새로고침] 세 번 | 세 번 모두 `바탕` 그대로(HEAD 로 안 끌려감) · 제목 꼬리 없음 · 요약 "차이 없음"("내 쪽 대비" 안 함) |
|
||
| 작업 없음 · [모든 브랜치] 켬 | 맨 위 `뒤이은 수정` 이 아니라 HEAD `내 쪽 작업` 그대로 |
|
||
| Git 탭 이력에서 `상대 쪽 작업` 을 고름 → [새로고침] 세 번 | 세 번 모두 `상대 쪽 작업` 그대로 |
|
||
| [모든 브랜치] 를 꺼 고른 커밋이 목록에서 빠짐 | HEAD 로 |
|
||
|
||
- 하네스 22벌 1,112건 통과(+18) · 빌드 경고 0 · 오류 0.
|
||
- 병합 · pull · rebase 의 요약 · 제목은 기본값(`baseIsHead` 참)으로 8차 B-1 검사가 그대로 통과한다. 화면으로는 9차 D-1 에서 다시 본다.
|
||
|
||
### 알게 된 것 · 남긴 것
|
||
|
||
- **Git 탭 이력에서 커밋을 고르면 파일 비교 탭의 Selected Commit 은 새로고침 전까지 따라오지 않는다**(Git 탭은 `_workspace.SelectedCommit` 만 바꾸고, 파일 비교 탭은 새로고침 알림으로만 다시 읽는다).
|
||
이번에 바꾼 것이 아니라 전부터 그랬다. 고치지 않고 적어 둔다.
|
||
- A-2(한 번은 다른 브랜치 커밋이 기준)는 이번에 원인(목록 맨 위로 채움)이 드러나 함께 고쳐졌다. 지시서대로 A-2 에서 같은 순서를 다섯 번 넘게 되풀이해 확인한다.
|
||
- 자동 조작 쪽: 첫 확인 스크립트는 Git 탭에서 HEAD 를 골라 파일 비교 탭을 봤는데 위의 까닭으로 안 바뀌어, 파일 비교 탭 이력에서 고르게 고쳤다.
|
||
|
||
## A-2. 한 번은 기준이 HEAD 도 가져온 커밋도 아닌 다른 브랜치 커밋이었다 (2026-09-17, 완료)
|
||
|
||
### 원인 (A-1 에서 드러남)
|
||
|
||
- 8차 E-1 N1-덧의 `f310f49`(다른 브랜치의 `뒤이은 수정`)는 **목록 맨 위**였다. 새로고침이 이력 목록을 갈아 끼울 때 Git 탭 목록이 선택을 놓치면
|
||
고른 커밋이 비고, 비면 `Commits[0]` 으로 채웠다. [모든 브랜치] 를 켜면 맨 위는 가장 최근의 다른 브랜치 커밋이다.
|
||
- 놓치는지는 그때 화면 상태에 따라 달라 "같은 순서로 다시 재니 안 났다". 9차 A-1 의 고치기 전 확인에서 **다시 났다**(기준 `ace42e3 "뒤이은 수정"`).
|
||
- A-1 에서 해시로 되찾고 없으면 HEAD 로 채우게 고쳤다(`CommitSelection`).
|
||
|
||
### 고치며 새로 걸린 것 → 함께 고침
|
||
|
||
- A-1 대로 해시만 지키자 **cherry-pick [커밋] 뒤에도 선택이 옛 HEAD(`내 쪽 작업`)에 남아** 파일 비교가 방금 커밋한 줄을 **"남은 차이 6줄"** 이라고 했다
|
||
(되풀이 확인 첫 회차에서 남). 예전에는 선택을 놓치면 맨 위(새 커밋)로 가서 우연히 "차이 없음" 이었다.
|
||
- `CommitSelection.Choose(…, previousHeadSha)` — **HEAD 를 보고 있다가 HEAD 가 움직이면**(커밋 · 체크아웃) 새 HEAD 를 따라간다.
|
||
다른 커밋을 보고 있었으면 그대로 둔다. `GitWorkspace` 가 지난 새로고침의 HEAD(`_lastHeadSha`)를 들고 있다.
|
||
- 하네스 `MergeSaveTest` 5건 추가(206건): HEAD 를 보다 커밋하면 새 HEAD · 다른 커밋을 보고 있었으면 그대로 · HEAD 가 안 움직이면 그대로 · 처음 열기 · 새 HEAD 가 목록에 없음.
|
||
|
||
### 확인한 것 — 8차 E-1 순서를 여섯 번 (`d9-a2.ps1`)
|
||
|
||
회차마다 저장소를 새로 만들고, 파일 비교 탭을 미리 열지 않고, [모든 브랜치] 를 켜고 이력에서 `상대 쪽 작업` → [Cherry-pick] →
|
||
`Weld/Unit1.cs` 만 남기고 파일 단위 Accept Theirs → [3분할로 열기] · Take Theirs · [Save] → 충돌 탭 [커밋]. 새로고침이 일어나는 곳마다 Git 탭 이력의 선택 줄과 파일 비교 탭 Selected Commit 을 적었다.
|
||
|
||
| 지점 | 기대(규칙) | 6회 결과 |
|
||
|---|---|---|
|
||
| [Cherry-pick] 뒤(충돌 24) | 고른 커밋 `상대 쪽 작업` | 6/6 |
|
||
| 파일 단위 Accept 뒤(충돌 1) | 고른 커밋 | 6/6 |
|
||
| 마지막 [Save] 뒤(충돌 0) | HEAD `내 쪽 작업` · 제목 "가져오기 전 내 쪽" · 요약 "내 쪽 대비 가져온 변경 6줄" | 6/6 (Git 탭 · 파일 비교 탭 둘 다) |
|
||
| [커밋] 뒤 | 새 HEAD(cherry-pick 커밋) · "차이 없음" · Working Tree Clean | 6/6 (첫 회차는 고친 뒤 되풀이 스크립트의 1회) |
|
||
|
||
- 다른 브랜치 커밋(`뒤이은 수정`)이 기준으로 잡힌 회차 0.
|
||
- 하네스 22벌 1,117건 통과(+5) · 빌드 경고 0 · 오류 0.
|
||
|
||
### 남긴 것
|
||
|
||
- 자동 조작 쪽: 되풀이 스크립트가 처음에 한 회차만 돌았다. PowerShell 변수 이름은 대소문자를 가리지 않아 안쪽 반복 횟수 `$rounds` 가 회차 수 `$Rounds` 를 덮었다. 이름을 바꿔 다시 돌렸다.
|
||
- Git 탭에서 고른 커밋을 파일 비교 탭이 새로고침 전까지 안 따라오는 것(A-1 에 적음)은 그대로다.
|
||
|
||
## B-1. MERGED 칸에서 반영하며 넣은 주석 줄이 다시 정렬하면 "무시" 색이 된다 (2026-09-17, 완료)
|
||
|
||
사용자 결정(2026-09-17): **처음부터 "무시" 색.** ("머지 반영함" 색으로 계속 · 그대로 둔다는 고르지 않음.)
|
||
|
||
### 고치기 전에 다시 났다 (새로 만든 저장소, MergeHub 로 병합 → `Weld/Unit1.cs` 를 [3분할로 열기])
|
||
|
||
첫 충돌(101행 `Power100`)에서 Take Theirs → 규칙 [Aa 구분] 을 눌러 다시 정렬 → 한 번 더 눌러 되돌림.
|
||
|
||
| 때 | 범례 | 101행 주석 줄 | LOCAL(Mine) 칸 |
|
||
|---|---|---|---|
|
||
| 연 뒤 | 무시 0 · 추가 0 · Conflict 6 · 총 3787줄 | - | - |
|
||
| Take Theirs 직후 | 머지 반영함 1 · **추가 1** · 무시 0 · Conflict 5 · 총 3788줄 | **추가(파랑)** | 번호 없이 **주석 글이 보임**(내 파일에 없는 줄) |
|
||
| 다시 정렬 뒤 | 머지 반영함 1 · 추가 0 · **무시 1** · Conflict 5 | **무시(회색)** | 빈 자리 |
|
||
|
||
- 6차 기록의 "처음 넣었을 때 색" 은 "머지 반영함" 이 아니라 **"추가"** 였다. 지시서도 그 말을 옮겨 적었다.
|
||
- 요약 · 차이 수 · 총 줄 수 · 저장된 파일(주석 1줄 · 3788줄)은 다시 정렬 전후가 같았다 — 색과 범례만 달랐다.
|
||
|
||
### 원인
|
||
|
||
- 주석 줄을 넣을 때(`InsertNoteAbove`) `IsApplied = true` 로 만들지만, 곧바로 반영 표시를 다시 계산하는 `RefreshAppliedFlags` 가 되돌리기 스택에 없는 그 줄을 **반영 아님**으로 되돌린다.
|
||
BASE 에 없는 줄이라 "추가" 가 된다. 무시 규칙은 정렬할 때만 매겨서 넣는 순간에는 빠져 있었다.
|
||
- 다시 정렬하면 줄을 새로 만들며 규칙 "머지 주석 무시" 에 걸려 `IsIgnored` → "무시"(색은 무시가 먼저). 파일에 원래 있던 주석 줄과 같은 모양이다.
|
||
- 네 칸에서는 `SetRemote(null, null)` 이 MINE 칸에 LocalText(주석)를 넣어 LOCAL(Mine) 칸에 글이 보였다. 다시 정렬한 행은 MINE 이 빈 자리다.
|
||
|
||
### 고친 것
|
||
|
||
- `HomeViewModel.InsertNoteAbove` — 넣는 줄을 **다시 정렬했을 때와 같은 모양**으로 만든다.
|
||
`IsIgnored = Rules.IsFiltered(주석)`(규칙이 꺼져 있으면 지금처럼 추가), 네 칸이면 `SetThreeWay(null, null, null, null)`(MINE · REMOTE 빈 자리).
|
||
- 하네스 `NoteTest` 5건 추가(69건): 주석 줄이 끼어든 MERGED 를 다시 정렬하면 주석 행 하나가 서고 BASE · MINE · REMOTE 가 비며, 규칙이 켜져 있으면 무시 줄 · 끄면 아님 — 넣는 순간 모양의 기준.
|
||
|
||
### 확인한 것 (같은 순서로 다시, `d9-b1.ps1` · `d9-b1-extra.ps1`)
|
||
|
||
| 때 | 범례 | 101행 주석 줄 | LOCAL(Mine) 칸 |
|
||
|---|---|---|---|
|
||
| Take Theirs 직후 | 머지 반영함 1 · 추가 0 · **무시 1** · Conflict 5 · 총 3788줄 | 무시(회색) | 빈 자리 |
|
||
| [Aa] 한 번 · 두 번 다시 정렬 | 같음 | 같음 | 같음 |
|
||
| [Undo] | 머지 반영함 0 · 무시 0 · Conflict 6 · 총 3787줄 | 걷어냄 | - |
|
||
| [Redo] | 머지 반영함 1 · 무시 1 · Conflict 5 · 총 3788줄 | 다시 무시 | 빈 자리 |
|
||
| Save 뒤 | git `M` · 주석 1줄 · 3788줄 (고치기 전과 같음) | | |
|
||
| 규칙 "머지 주석 무시" 끔 · Take Theirs 직후 | 머지 반영함 1 · **추가 1** · 무시 0 (지금처럼) | 추가 | |
|
||
|
||
- 하네스 22벌 1,122건 통과(+5) · 빌드 경고 0 · 오류 0. 설정은 시험마다 백업 → 되돌림(해시 같음).
|
||
|
||
### 알게 된 것 · 남긴 것 (고치지 않음)
|
||
|
||
- **규칙 "머지 주석 무시" 를 끈 채 다시 정렬하면 반영 색이 옆 줄로 옮겨 간다.** 주석 줄이 BASE 의 코드 줄(`Power93`)과 한 행으로 짝지어져,
|
||
초록(머지 반영함)이 주석 줄에 · 보라(직접 수정)가 반영한 코드 줄(`Power100 => 0.9`)에 붙는다. 반영 표시가 BASE 줄 번호로 붙들려 있어서다.
|
||
이번에 바꾼 것이 아니고 기본값(켬)에서는 나지 않는다. 범례 수 · 저장 내용은 같다.
|
||
|
||
## B-2. 폴더 비교 뒤 화면 트리를 세우는 데 1초 남짓 (2026-09-17, 완료 · 고치지 않음)
|
||
|
||
**재 보니 트리는 1초가 아니었다.** 트리를 만들고 첫 화면을 그리기까지 0.13~0.24초이고, 기다림의 대부분은 비교 자체였다. 줄일 자리가 없어 고치지 않았다. 제품 코드는 바꾸지 않았다.
|
||
|
||
### 무엇으로 쟀나
|
||
|
||
- 5차 B-2 의 시험 묶음(`FolderPerf/Corpus.cs`, 씨앗 고정) — 4,500개 · 같음 4,063 · 다름 359(주석만 294) · 왼쪽만 40 · 오른쪽만 38. 실제 소스는 열지 않았다.
|
||
- 앱에 **임시 측정 로그**를 넣어 단계를 나눴다(커밋하지 않고 잰 뒤 `git checkout` 으로 되돌리고 다시 빌드).
|
||
① 백그라운드 비교(`FolderComparer.Compare`) ② 트리 노드 만들기(`Rebuild` — 노드 생성 · 필터 · 가지치기 · 목록에 넣기) ③ 첫 화면(`Rebuild` 시작부터 WPF 가 그리기를 마치고 한가해질 때 `ApplicationIdle` 까지).
|
||
- 조작은 사람 길 그대로(`d9-b2.ps1`): 폴더 비교 탭에 두 경로 → [비교] 세 번 → 필터를 전체 · 같은 것만 · 다른 것만 · 전체로.
|
||
|
||
### 잰 값 (ms)
|
||
|
||
| 경우 | 비교 | 트리 만들기 | 첫 화면까지 | 트리 노드 · 펼쳐 보이는 것 |
|
||
|---|---|---|---|---|
|
||
| [비교] 1회 · 캐시 찬 상태 아님(그날 첫 비교) | **9,170** | 5 | 135 | 544 · 59 |
|
||
| [비교] 데운 뒤 5회 | 682 · 796 · 703 · 683 · 711 | 5~17 | 126~167 | 544 · 59 |
|
||
| 필터 → 전체 (다시 훑지 않음) | - | 16 · 17 | **240 · 229** | 4,608 · 275 |
|
||
| 필터 → 같은 것만 | - | 16 | 38 | 4,171 · 5 |
|
||
| 필터 → 다른 것만 | - | 6 | 196 | 544 · 59 |
|
||
|
||
- 기본 필터(다른 것만)에서 사람이 기다리는 시간 ≈ 비교 0.7초 + 첫 화면 0.13초 ≈ **0.85초**. 트리 몫은 15% 쯤이다.
|
||
- 트리가 가장 무거운 "전체" 에서도 0.24초. 노드 만들기는 17ms 이고 나머지는 WPF 가 펼친 줄(275개)을 그리는 값이다. 트리는 이미 가상화(`VirtualizingPanel` Recycling)를 쓴다.
|
||
|
||
### 왜 5차는 "1초 남짓" 이라고 적었나
|
||
|
||
- 5차는 **자동 조작으로 [비교] 를 누른 때부터 요약 글이 뜰 때까지**를 쟀다(1,086ms). 이번에도 같은 방식으로는 1,084~1,428ms 가 나왔다.
|
||
그런데 누르는 도구가 누른 뒤 0.6초를 쉬고(`Click` 의 대기), 요약 글을 찾으려 화면 요소를 수천 개 훑는 값이 더해진다. 앱 안에서 잰 비교 + 첫 화면(0.84초)과의 차이가 그만큼이다.
|
||
- 그 차이를 "트리를 세우는 값" 으로 읽은 것이 틀렸다. 이번에는 앱 안에서 단계를 나눠 잰 값을 기준으로 삼는다.
|
||
|
||
### 정한 것
|
||
|
||
- **고치지 않는다.** 트리 몫이 0.13~0.24초라 줄여도 사람이 느낄 차이가 없고, 트리 동작(펼침 · 선택 · 필터 · 끌어 놓기)을 건드릴 까닭이 없다. 지시서의 "트리 세우기가 대부분이면" 에 해당하지 않는다.
|
||
- "더 줄일 자리" 로 적어 둔 5차 기록은 이 측정으로 닫는다.
|
||
|
||
### 새로 본 것 (고치지 않음)
|
||
|
||
- **그날 첫 비교는 9.2초**였다(데운 뒤 0.7초의 13배). 4,500개 파일을 디스크에서 처음 읽는 값으로 보인다(디스크 캐시 · 백신 검사). 한 번 잰 값이고 원인은 가려 보지 않았다.
|
||
사람이 처음 비교할 때 겪는 시간은 이쪽이다.
|
||
|
||
## C-1. 웹 문서를 8차 끝 · 9차에 맞게 (2026-09-17, 완료)
|
||
|
||
`doc\web\index.html` 은 8차 D-1(E-1 · F-1 전)에서 멈춰 있었고, "지금까지 만든 것" 쪽은 6차에서 멈춰 있었다. 지난 기록 쪽(6차 표 · 발표 슬라이드)은 그때 이름 그대로 두었다.
|
||
|
||
### 고친 것
|
||
|
||
| 자리 | 고친 것 |
|
||
|---|---|
|
||
| 머리글 · 개요 | "2026-09-17 기준" · 하네스 **22벌 · 1,122건**(1,073건에서) · "8차 끝 · 9차 진행 · 다섯 길 줄끝 바뀐 파일 0" · 로컬 커밋 **104**(94에서, 이 기록 커밋 포함) · 출처 `작업지시/9차.md` |
|
||
| 매뉴얼 · 병합 충돌 푸는 순서 | 병합 커밋 본문이 저절로 붙는다는 말 · 마지막 저장 뒤 두 칸 기준이 HEAD 로 옮겨지고 작업별 요약(병합 · rebase · cherry-pick · revert) · 다른 커밋을 고르면 보통 요약 · 커밋하면 새 HEAD 로 |
|
||
| 매뉴얼 · 새 절 "충돌을 어떻게 풀었는지 어디에 남나" | 소스(머지 주석) · 병합 커밋 본문(8차 F-1) · Git 탭 로그 표, 본문 예시(E-1 병합의 갈래별 건수 26개), cherry-pick · revert · rebase 는 본문 없음 · 30개 넘으면 줄임. 목차에 "해결 기록이 남는 곳" |
|
||
| 매뉴얼 · Git 탭 이력 · 머지 주석 | 모든 브랜치에서 목록 순서가 바뀌어도 고른 커밋 그대로(9차 A-2) · 반영하며 넣은 주석 줄도 처음부터 무시 색 · Mine 칸 빈 자리(9차 B-1) |
|
||
| 매뉴얼 · 알아 둘 한계 | 더함: 본문 해결 내역은 MergeHub 에서 푼 충돌만 · 그날 첫 큰 폴더 비교 9.2초(9차 B-2) · Git 탭에서 고른 커밋을 파일 비교 탭이 새로고침 전까지 안 따라옴(9차 A-1) · 머지 주석 무시를 끈 채 다시 정렬하면 반영 색이 옆 줄로(9차 B-1) |
|
||
| 남은 일 | 머리말 "8차까지 끝 · 9차 A · B 끝" · 8차 표에 D-1 · F-1 · E-1 · 새 표 "9차에서 고친 것"(A-1 · A-2 · B-1 · B-2) · "8차에 남은 것" → "9차에 남은 것"(D-1) + "정해서 두지 않는 것"(빈 cherry-pick 커밋 · 스타일 맞춤 선택지 · 반쪽 스냅 · 1px 테두리) |
|
||
| 지금까지 만든 것 | 머리말 · 숫자(커밋 104 · 1,122건) · 차수별 기록에 7차 · 8차 · 9차 · 하네스 막대에 8차 1,094 · 9차 진행 1,122(7차는 따로 적지 않아 뺐다, 막대 폭 다시 계산) · 기능 목록 Git 에 병합 커밋 본문 |
|
||
| 비교 표(WinMerge) | "22벌 1,073건" → 1,122건 |
|
||
|
||
### 확인한 것
|
||
|
||
- **화면 문구와 대조**(앱 소스 grep): "충돌 정리 끝" · "병합 커밋을 할 수 있습니다" · "으로 rebase 를 이어 갑니다" · "올릴 자리 대비 올린 변경" · "내 쪽 대비 가져온 / 되돌린 / 받은 변경" · 본문 갈래 이름 7가지(`MergeResolutionLog.Label`) · "새로고침" · "3분할로 열기" · "Selected Commit" 모두 소스에 있다.
|
||
- 옛 숫자 · 옛말이 남지 않았다: "1,073" · "7차 끝 · 8차 진행" · "8차에 남은 것" 0건.
|
||
- 태그 짝: section 26/26 · div 195/195 · table 28/28 · ul 36/36 · ol 11/11 · li 200/200 · tr 223/223 · td 538/538 · pre 11/11 · code 71/71 · h2 37/37 · h3 26/26. 제어 문자 0.
|
||
- 발행: 같은 주소의 아티팩트를 **버전 9** 로 갱신했다(먼저 발행본을 읽어 저장소의 직전 파일과 같은지 대조 — 게시용 겉틀만 달랐다 — 뒤 버전 8 로 올리고, 머리글 날짜를 고쳐 9). 저장소의 `doc/web/index.html` 과 같은 파일이다.
|
||
- 로컬 파일은 브라우저 창에서 스크립트로 넘길 수 없어 미리 보기는 하지 않았다.
|
||
|
||
제품 코드는 바꾸지 않았다.
|