From a0c7621633a2412e0d1f4b0d08360036ccace2d0 Mon Sep 17 00:00:00 2001 From: ksj09406 Date: Thu, 17 Sep 2026 16:36:36 +0900 Subject: [PATCH] =?UTF-8?q?10=EC=B0=A8=20E-1:=20=EB=8B=A4=EC=84=AF=20?= =?UTF-8?q?=EA=B8=B8(+=20pull)=EC=9D=84=20=EB=8B=A4=EC=8B=9C=20=EB=81=9D?= =?UTF-8?q?=EA=B9=8C=EC=A7=80=20-=20=EC=83=88=EB=A1=9C=20=EA=B1=B8?= =?UTF-8?q?=EB=A6=B0=20=EA=B2=83=20=EC=97=86=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 병합 · pull · rebase · cherry-pick · revert 를 새 저장소에서 MergeHub 만으로 끝까지. 파일 비교 탭 미리 안 엶, cherry-pick · revert 는 [모든 브랜치] · Git 탭 이력을 마우스로. - 누른 Take = 줄 고른 로그: 18 · 18 · 18 · 18 · 6 - 마지막 Save 뒤 제목 · 요약 · 기준 = git diff, 커밋 뒤 새 HEAD - 줄끝 · BOM 바뀐 파일 0 (33 · 33 · 31 · 33 · 36) · 충돌 표식 0 · class 이름 0 - Git 탭에서 고른 커밋을 파일 비교 탭이 바로 따라옴 (10차 B-1) - 8차 A-1 · B-1 · B-2 · F-1 · 9차 A-1 · A-2 · B-1 안 남 - 제품 코드 변경 없음 Co-Authored-By: Claude Opus 5 --- doc/history/2026-09-17-10차.md | 63 ++++++++++++++++++++++++++++++++++ doc/history/changelog.md | 1 + doc/진행상황.md | 2 +- 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/doc/history/2026-09-17-10차.md b/doc/history/2026-09-17-10차.md index 303cd93..21a80eb 100644 --- a/doc/history/2026-09-17-10차.md +++ b/doc/history/2026-09-17-10차.md @@ -225,6 +225,69 @@ - **느린 디스크(HDD · SATA SSD)에서는 재 보지 않았다.** 이 PC 는 NVMe 뿐이다. 한 갈래 1.8초가 여러 갈래로 0.3초가 된 것은 NVMe 가 동시 읽기에 강해서이고, HDD 에서는 여러 갈래 읽기가 오히려 느릴 수 있다. 사내 PC 가 HDD 라면 베타 배포 때 재 볼 거리다. +## E-1. 다섯 길(+ pull)을 다시 끝까지, 누름 간격은 사람 손 빠르기로 (2026-09-17, 완료) + +지시서대로 **고치지 않고 적기만 했다.** 제품 코드는 바꾸지 않았다. **다섯 길 모두 끝까지 갔고 새로 걸린 것은 없다.** + +### 무엇으로 했나 (`d10-e1.ps1 -Way merge|pull|rebase|pick|revert`) + +- 길마다 `C1Repo` 로 저장소를 새로 만들고 **파일 비교 탭을 미리 열지 않았다**(`D7_NO_PREOPEN=1`). 이름 창은 [저장], 원격 영역은 [펴기]. 설정 `CSharpBraceStyle` 은 길마다 백업 → 끔 → 되돌림(다섯 번 모두 해시 같음). +- 푸는 순서는 9차 D-1 과 같다: 같은 줄 충돌 15개 파일 단위 Accept Theirs → NewPanel Accept Both [아니오] → [3분할로 열기] 뒤 저절로 열리는 파일마다 [다음 충돌] → Take Theirs / Take Mine 번갈아(누름 사이 0.4초 · 0.7초) → [Save] · 띠 [파일 지우기] · [파일 남기기]. 마지막 `Weld/Unit1.cs` 는 네 칸. +- pull 은 bare 저장소를 원격으로 두고 원격 `feature/mine` 을 `상대 쪽 작업` 으로 옮겨 놓은 뒤 [Pull](9차 D-1 에서 빠진 길). +- cherry-pick · revert 는 [모든 브랜치] 를 켜고 **Git 탭 이력 줄을 마우스로 눌러** 골랐다(10차 B-1 은 목록이 선택을 바꾸기 전에 묻는 길이라 UI 자동화 Select 로는 그 길을 안 탄다). revert 는 15개 파일 단위 · 마지막 `Motion/Unit0.cs` 네 칸 Take Theirs 6. +- 새로 넣은 확인 + - **누른 수 = 줄 고른 로그**: 시험 도구가 Take 를 실제로 누른 횟수(단추가 꺼져 누르지 못한 것은 빼고 다시 누름, 10차 A-1)를 세어 앱 로그의 "N행 … 반영 / 으로 정함" 줄 수와 견줌. + - **범례**(저장 전): 반영하며 넣은 주석 줄이 "추가" · "직접 수정" 으로 세지지 않는가(9차 B-1 · 10차 C-1 회귀). + - **B-1**: 끝낸 뒤 Git 탭 이력에서 `바탕` 을 마우스로 고르고 파일 비교 탭을 봄 → 다시 HEAD 를 고르고 봄. + +### 다섯 길의 결과 + +| 확인 | ① 병합 | ② pull | ③ rebase | ④ cherry-pick ([모든 브랜치]) | ⑤ revert ([모든 브랜치]) | +|---|---|---|---|---|---| +| 시작 알림 | 충돌 24건 (머지 주석만 다른 2건은 자동으로 풀림) | 같음 | 같음 + [계속] 안내 | 같음 + [커밋] 안내 | 충돌 16건 + [커밋] 안내 | +| **누른 Take = 줄 고른 로그** | **18 = 18** | **18 = 18** | **18 = 18** | **18 = 18** | **6 = 6** | +| "3-Way 안 씀" 로그 · 다시 누름 · 못 누름 | 0 · 0 · 0 | 0 · 0 · 0 | 0 · 0 · 0 | 0 · 0 · 0 | 0 · 0 · 0 | +| 네 칸 REMOTE | feature/theirs | feature/theirs | 다시 올리는 내 커밋 | 가져오는 커밋 `상대 쪽 작업` | 되돌리는 커밋 `내 쪽 작업` | +| 충돌 남은 채 Save & Commit | 막힘 · git 그대로 | 막힘 · git 그대로 | 꺼짐 | 꺼짐 | - | +| 범례(Unit0 · Unit1, Take 6번) | 반영함 6 · 직접 수정 0 · 추가 0 · 무시 3 | 같음 | 같음 | 같음 | 반영함 6 · 직접 수정 0 · 추가 0 · 무시 6 | +| 마지막 [Save] 한 파일 | Weld/Unit1.cs (네 칸) | Weld/Unit1.cs | Weld/Unit1.cs | Weld/Unit1.cs | Motion/Unit0.cs (네 칸) | +| 마지막 Save 뒤 제목 | `4588370 · Weld/Unit1.cs · 병합 전 내 쪽` | `0bb5489 · … · 병합 전 내 쪽` | `6798ad6 · … · 올릴 자리` | `3501248 · … · 가져오기 전 내 쪽` | `0454fdc · Motion/Unit0.cs · 되돌리기 전 내 쪽` | +| 마지막 Save 뒤 요약 | 충돌 정리 끝 · 병합 커밋을 할 수 있습니다 · 내 쪽 대비 받은 변경 3줄 | 같음 | … · [계속] 으로 rebase 를 이어 갑니다 · 올릴 자리 대비 올린 변경 3줄 | … · [커밋] 으로 cherry-pick 을 끝냅니다 · 내 쪽 대비 가져온 변경 3줄 | … · [커밋] 으로 revert 를 끝냅니다 · 내 쪽 대비 되돌린 변경 6줄 | +| 기준 대조 (HEAD = 제목 = Selected Commit, N = git) | **같음** · +3 −3 (주석 3 뺌) | **같음** · +3 −3 | **같음** · +3 −3 | **같음** · +3 −3 | **같음** · +6 −6 (주석 6 뺌) | +| 끝낸 커밋 | `e7edade` 부모 둘 · 본문 **충돌 해결 26개 · 김승준** | `583851e` 부모 둘 · Merge remote-tracking branch 'origin/feature/mine' · 본문 **26개** · 원격 대비 뒤 0 앞 2 | `7edd15a` 부모 하나(`6798ad6` 올릴 자리 위) | `42c3d55` 부모 하나 · 작성자 **박지훈** · 커밋한 사람 시험 | `b8acc3a` Revert "내 쪽 작업" · REVERT_HEAD 없음 | +| 커밋 뒤 파일 비교 탭 기준 | 새 HEAD `e7edade` | 새 HEAD `583851e` | 새 HEAD `7edd15a` | 새 HEAD `42c3d55` | 새 HEAD `b8acc3a` | +| **B-1** Git 탭에서 `바탕` → 파일 비교 탭 | Selected Commit · 왼쪽 이력 · 제목 모두 `바탕` · 남은 차이 6줄 | 같음 | 같음 | 같음 | 모두 `바탕` · 차이 없음 (아래) | +| **B-1** Git 탭에서 다시 HEAD → 파일 비교 탭 | Selected Commit · 왼쪽 이력 · 제목 모두 HEAD | 같음 | 같음 | 같음 | 같음 | +| 줄끝 · 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 를 다시) | - | - | - | [커밋] **꺼짐** · "cherry-pick 했지만 가져올 변경이 없습니다 - [작업 취소] 로 끝냅니다" · [작업 취소] 로 나옴 | - | +| 걸린 시간 | 302초 | 304초 | 300초 | 347초(빈 cherry-pick 포함) | 198초 | + +- revert 의 `바탕` 대 HEAD `Motion/Unit0.cs` 는 git 으로 보면 +6 줄인데 6줄 모두 `// [김승준] 2026-09-17` 머지 주석이다. 설정 "머지 주석 무시" 가 켜져 있어 차이 없음이 맞다. +- cherry-pick · revert 는 Git 탭에서 커밋을 고른 뒤(B-1 로 파일 비교 탭도 그 커밋을 따라감) 작업을 시작했는데, [3분할로 열기] 로 처음 연 파일 비교 탭은 고른 충돌 파일을 보였고 마지막 Save 뒤 기준은 HEAD 였다(9차 A-1 규칙 그대로). + +### 판정 기준 + +| 기준 | 결과 | +|---|---| +| 다섯 길 모두 MergeHub 만으로 끝까지 | **됐다** — 모두 첫 회차 | +| 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 이름 다른 Unit 파일 0 | **다섯 길 모두 0** | +| 마지막 [Save] 뒤 제목 · 요약 · 기준이 같다 | **다섯 길 모두 같음** — 요약의 N 도 git diff 와 같음 | +| 줄 고른 로그 = 누른 수 | **다섯 길 모두 같음** (18 · 18 · 18 · 18 · 6), 다시 누름 · 못 누름 0 | +| 8차 A-1 (처음 연 파일 비교 탭이 다른 파일) | **안 남** — [3분할로 열기] 로 처음 열어도 고른 파일, class 이름 검사 0 | +| 8차 B-1 (rebase · cherry-pick 마지막 저장 뒤 남은 차이) | **안 남** — "올릴 자리 대비 올린 변경 3줄" · "내 쪽 대비 가져온 변경 3줄" = git | +| 8차 B-2 (빈 cherry-pick [커밋] 켜짐) | **안 남** — 꺼짐 · 안내 로그 · [작업 취소] | +| 8차 F-1 (병합 커밋 본문) | 병합 · pull 본문 26개 = 처음 충돌 수 | +| 9차 A-1 · A-2 (작업 끝 기준 HEAD · 다른 브랜치 커밋이 기준) | **안 남** — [모든 브랜치] 켠 cherry-pick · revert 도 마지막 Save 뒤 HEAD, 커밋 뒤 새 HEAD | +| 9차 B-1 (넣은 주석 줄이 "추가") | **안 남** — 범례 추가 0 · 직접 수정 0, 넣은 주석은 무시로 셈 | +| 10차 B-1 (두 탭 고른 커밋) | 다섯 길 모두 Git 탭에서 고르면 파일 비교 탭의 Selected Commit · 왼쪽 이력 · 제목이 바로 따라옴 | + +### 남긴 것 (시험 도구 쪽, 제품 아님) + +- 줄끝 검사 스크립트(`d1-verify.ps1`)가 부모 하나인 커밋(rebase · cherry-pick · revert)에서 둘째 부모가 없어 `git merge-base` 오류를 한 번 찍는다. 첫 부모와 견주는 검사 값(0 / 31 · 33 · 36)은 그대로 나온다. +- 파일 비교 탭 요약을 읽는 함수가 "차이 없음" 글자는 잡지 않아 커밋 뒤 요약 칸이 빈칸으로 적혔다. 제목이 새 HEAD 인 것으로 판정했다. + ## F-1 · F-2. 폴더 비교 "같은 것만" 에 내용이 다른 것처럼 보이는 줄이 섞인다 (2026-09-17, 추가 요청, 완료) 사용자: "방금 폴더비교에서 같은것만 보기를 눌렀을때 내용이 다른파일들이 보이던데" — 9차 B-2 · 10차 D-1 에서 4,500개 시험 묶음으로 필터를 바꿔 가며 잴 때 화면으로 본 것. diff --git a/doc/history/changelog.md b/doc/history/changelog.md index ac15849..1325be3 100644 --- a/doc/history/changelog.md +++ b/doc/history/changelog.md @@ -8,6 +8,7 @@ | 날짜 | 항목 | 커밋 | |---|---|---| +| 2026-09-17 | **10차 E-1** — 새로 만든 저장소에서 병합 · pull · rebase · cherry-pick · revert 를 MergeHub 만으로 끝까지(파일 비교 탭 미리 안 엶, cherry-pick · revert 는 [모든 브랜치] · Git 탭 이력을 마우스로). 다섯 길 모두 첫 회차에 끝, 누른 Take = 줄 고른 로그(18 · 18 · 18 · 18 · 6), 마지막 Save 뒤 제목 · 요약 · 기준이 git 과 같음, 줄끝 · BOM · 충돌 표식 · class 이름 0. Git 탭에서 고른 커밋을 파일 비교 탭이 바로 따라옴. 8차 · 9차 회귀 없음, 새로 걸린 것 없음. 제품 코드 변경 없음 | 아래 | | 2026-09-17 | **10차 F-3 (추가 요청)** — 폴더 비교 "주석만 다름" 에 BOM · 줄끝 · 인코딩 · 끝 공백 · 빈 줄 · 들여쓰기만 다른 파일도 들어와 맞지 않는 이름이었다. 판정은 그대로 두고 "다름(이진)" 과 같은 꼴로 **"다름(코드는 같음)"** 으로 바꿈 — 목록 · 범례(설명 붙임) · 요약 "다름 N(코드는 같음 M)" · 비교 결과 보고서 · 웹 문서. 하네스 FolderTest +1 | 아래 | | 2026-09-17 | **10차 F-1 · F-2 (추가 요청)** — 폴더 비교 "같은 것만" 에서 같은 파일을 품은 폴더 줄이 폴더 자신의 상태 "다름"(주황)으로 보여 내용이 다른 것이 섞인 것처럼 읽혔다. 걸러 볼 때(같은 것만 · 왼쪽에만 · 오른쪽에만) 폴더 줄은 걸린 파일 수와 그 갈래 색으로 적는다. 설정(C# 스타일 맞춤 · 머지 주석 무시)으로 같음이 된 파일은 사용자 결정대로 같음으로 두고 "같음(스타일만 다름)" · "같음(머지 주석만 다름)" 으로 까닭을 붙인다. 요약 수 그대로. 하네스 FolderTest +15 | 아래 | | 2026-09-17 | **10차 D-1** — 9차 B-2 에서 한 번 잰 "그날 첫 폴더 비교 9.2초" 를 다시 냈다. 파일마다 버퍼 없이 열어 캐시를 비워도(한 갈래 읽기 0.4 → 1.8초로 먹는 것 확인) 전체 비교는 0.46~0.54초로 데운 상태와 같았고(여러 갈래 읽기), 앱을 새로 켠 첫 비교도 느리지 않았다. 9.2초는 다시 안 남 → 고치지 않음(제품 코드 변경 없음). 매뉴얼 한계 문장을 잰 값으로 고침. HDD 는 재 보지 않음 | 아래 | diff --git a/doc/진행상황.md b/doc/진행상황.md index 0d99da6..c92eb50 100644 --- a/doc/진행상황.md +++ b/doc/진행상황.md @@ -310,7 +310,7 @@ | 상태 | 항목 | |---|---| -| 대기 | E-1 다섯 길(+ pull)을 다시 끝까지 — 줄 고른 로그 = 누른 수 | +| **완료** | E-1 다섯 길(+ pull)을 다시 끝까지 — 고치지 않음. 병합 · pull · rebase · cherry-pick · revert 모두 첫 회차에 끝까지. 누른 Take = 줄 고른 로그(18 · 18 · 18 · 18 · 6), 마지막 Save 뒤 제목 · 요약 · 기준 = git, 줄끝 · BOM 바뀐 파일 · 충돌 표식 · class 이름 0. Git 탭에서 고른 커밋을 파일 비교 탭이 바로 따라옴(다섯 길). 8차 A-1 · B-1 · B-2 · F-1 · 9차 A-1 · A-2 · B-1 안 남. 새로 걸린 것 없음 | | 대기 | E-2 웹 문서를 10차에 맞게 | ### F. 추가 요청