diff --git a/doc/history/2026-09-18-11차.md b/doc/history/2026-09-18-11차.md new file mode 100644 index 0000000..83e39d5 --- /dev/null +++ b/doc/history/2026-09-18-11차.md @@ -0,0 +1,62 @@ +# 11차 진행 기록 (2026-09-18 ~) + +지시서: [../작업지시/11차.md](../작업지시/11차.md) + +## A-1. 변경분 추출을 먼저 뽑아 보고 적는다 (2026-09-18, 완료 · 고치지 않음) + +지시서대로 **고치지 않고 적기만 했다.** 제품 코드는 바꾸지 않았다. + +### 무엇으로 했나 + +- `C1Repo` 로 저장소를 새로 만든 뒤 `e11-a1-setup.sh` 로 추출 시험용 커밋을 더 쌓았다(전부 지어낸 파일). + +| 커밋 | 무엇 | +|---|---| +| `4eb9ece` base | 내 쪽 작업 (C1Repo 의 feature/mine) | +| `d3eb15b` c1 | 새 파일 `Extract/Temp.cs` · `Io/Unit12.cs` 한 줄 더함 | +| `f884ed1` c2 | `Recipe/Unit11.cs` 지움 · `Motion/Unit16.cs` → `Motion/Renamed16.cs`(내용 그대로) · 이진 `Extract/logo.bin` · `한글폴더/깊은/경로/아래/설명.cs` | +| `cbcad8a` c3 | `Io/Unit12.cs` 를 c1 전으로 되돌림 · `Extract/Temp.cs` 지움 (범위 안에서 생겼다 사라짐) | +| `f702996` side · `58d5f7f` merge | base 에서 갈라진 옆가지에 `Side/SideOnly.cs`, 그것을 `--no-ff` 로 병합 | + +- 화면은 사람 순서로: Git 탭 → 이력에서 줄을 **마우스로** 고르고 [여기부터] · [해제] · [변경분 추출], 폴더 창에는 경로를 쳐 넣고 Enter. +- 뽑은 폴더는 `git diff -M --name-status` 의 기대 목록과 견주고, 파일마다 `git hash-object --no-filters` 로 **바이트(blob 해시)** 를 대조했다. + +### 아홉 경우의 결과 + +| # | 경우 | 알림 | 뽑힌 것 | git 과 견주면 | +|---|---|---|---|---| +| 1 | 커밋 하나(시작점 없음, c1) | "2개 파일 추출" | `Extract/Temp.cs` · `Io/Unit12.cs` | **같음** · 바이트 같음 | +| 2 | 범위 [여기부터] base → c3 | "3개 파일 추출 (삭제되어 건너뜀 1개)" | `Extract/logo.bin` · `Motion/Renamed16.cs` · `한글폴더/…/설명.cs` | **같음** — 범위 안에서 생겼다 사라진 `Temp.cs`, 바뀌었다 되돌아온 `Unit12.cs` 는 **들어가지 않는다**(맞다) | +| 3 | 지운 파일이 있는 범위 | 위와 같은 알림 | — | 건너뛴 **개수만** 알린다. `Recipe/Unit11.cs` 라는 것은 **화면 · 로그 · 폴더 어디에도 없다** | +| 4 | 이름 바뀐 파일 | — | `Motion/Renamed16.cs` (새 이름) | 새 경로로 바이트 그대로. **옛 경로(`Motion/Unit16.cs`)를 알 길이 없다** — 장비에 덮어 넣으면 옛 파일이 남는다 | +| 5 | 병합 커밋 하나(merge) | "1개 파일 추출" | `Side/SideOnly.cs` | **첫 부모(c3)와만** 견준다. 둘째 부모(옆가지)와 견주면 4개인데, 지금 무엇과 견주는지는 화면에 없다 | +| 6 | 거꾸로 범위 [여기부터] c3 → base | "2개 파일 추출 (삭제되어 건너뜀 2개)" | `Motion/Unit16.cs` · `Recipe/Unit11.cs` | git 의 `diff c3 base` 와 **같음**(되돌리는 방향으로 동작). **경고나 방향 표시는 없다** | +| 7 | 이진 · 한글 · 깊은 경로 | 2 와 같음 | `logo.bin` 278B · `설명.cs` 50B | **바이트 · 경로 그대로** | +| 8 | 이미 파일이 있는 폴더 | "3개 파일 추출 (삭제되어 건너뜀 1개)" | 폴더 안 **6개** | 묻지 않고 덮어쓴다. 앞서 뽑아 둔 `Extract/Temp.cs` · `Io/Unit12.cs`(c1 것)와 사람이 넣어 둔 `사용자메모.txt` 가 **그대로 남아 섞인다** | +| 9-a | 대상 파일이 읽기 전용 | **"변경분 추출 실패: … 액세스가 거부되었습니다"** | 2개(logo.bin + 읽기 전용 그대로) | **반쯤 뽑힌 채 멈춘다** — 앞 순서 `logo.bin` 은 써졌고 뒤 순서 `한글…설명.cs` 는 빠졌다. 몇 개까지 됐는지는 알림에 없다 | +| 9-b | 대상 파일이 다른 프로그램에 열려 있음 | **"… 다른 프로세스에서 사용 중이므로 …"** | 2개 | 9-a 와 같은 모양 | + +- 알림과 같은 글이 Git 탭 로그에도 남는다 — 성공은 `변경분 추출: N개 파일 → 경로 (삭제되어 건너뜀 M개)`, 실패는 `[변경분 추출] 실패: …`. +- 범위 표시는 제대로 바뀐다: 시작점이 없으면 `부모 → 고른 커밋`, [여기부터] 를 누르면 `4eb9ece → 고른 커밋`. +- 폴더 창은 늘 **저장소가 있는 폴더**에서 열린다. +- 저장소 워킹트리는 아홉 경우 내내 Clean 이었다(추출은 읽기만 한다). + +### 이걸로 확정된 것 (A-2 ~ A-4 로 넘긴다) + +| 번호 | 확정된 문제 | 어디로 | +|---|---|---| +| ① | 지운 파일 · 이름 바뀐 옛 경로가 결과에 남지 않는다(경우 3 · 4) | **A-2** | +| ② | 무엇과 무엇 사이를 뽑았는지 폴더에 남지 않는다(경우 5 · 6 — 병합 커밋은 첫 부모, 거꾸로 범위도 말없이 됨) | **A-2** | +| ③ | 비어 있지 않은 폴더에 묻지 않고 덮어쓰고 옛 파일이 섞인다(경우 8) | **A-3** | +| ④ | 쓰다 막히면 반쯤 뽑힌 채 멈추고, 어디까지 됐는지 알 수 없다(경우 9-a · 9-b) | **A-3 에 덧** — 먼저 쓸 수 있는지 보고 시작할지, 실패해도 나머지를 계속할지 정한다 | + +**맞게 도는 것**(고칠 것 없음): 파일 고르기(1 · 2 · 5 · 6 모두 git 과 같은 목록) · 바이트 보존(이진 · 한글 · 깊은 경로 포함) · 범위 표시 · 로그. + +### 남긴 것 (시험 도구 쪽, 제품 아님) + +화면 자동 조작에서 세 번 막혔다. 모두 스크립트 문제였고 제품과 무관하다. + +- 함수 이름 `History` 가 PowerShell 기본 별칭(`history` = `Get-History`)과 겹쳐, 내 함수 대신 그것이 불렸다 → `GoHistory` 로 바꿈. +- 폴더 창(`#32770`)은 데스크톱 바로 아래가 아니라 **본 창 아래**에 붙는다 → 본 창의 자손에서 찾게 고침. +- 폴더 창의 경로 칸(`id 1152`)과 [이 폴더 선택](`id 1`)은 UIA 에서 **Pane** 으로 보이고, 같은 id 를 가진 다른 칸이 먼저 잡혔다 → id + 클래스(`Edit` · `Button`)로 고르고, 경로를 한 글자씩 친 뒤 Enter 로 닫게 함. +- 백그라운드로 돌리면 앱 창이 앞으로 나오지 못해 마우스가 다른 창을 누른다 → **앞에서** 돌린다. diff --git a/doc/history/changelog.md b/doc/history/changelog.md index a19599d..4a73a42 100644 --- a/doc/history/changelog.md +++ b/doc/history/changelog.md @@ -8,6 +8,7 @@ | 날짜 | 항목 | 커밋 | |---|---|---| +| 2026-09-18 | **11차 A-1** — 변경분 추출을 화면에서 아홉 경우로 뽑아 git 과 대조(고치지 않음). 파일 고르기 · 바이트 보존(이진 · 한글 · 깊은 경로) · 범위 표시는 맞았다. 확정된 문제 넷: 지운 파일 · 이름 바뀐 옛 경로가 결과에 안 남음, 무엇과 무엇 사이를 뽑았는지 안 남음(병합 커밋은 첫 부모와만 · 거꾸로 범위도 말없이 됨), 비어 있지 않은 폴더에 묻지 않고 덮어써 옛 추출이 섞임, 쓰다 막히면 반쯤 뽑힌 채 멈춤. A-2 · A-3 으로 넘김. 제품 코드 변경 없음 | 아래 | | 2026-09-18 | **11차 F 절 (추가 요청)** — 사용자가 한꺼번에 준 열한 가지를 지시서에 넣음: 칸 이름 · 어느 파일인지(F-1) · 메서드 단위 반영(F-2) · 폴더 두 개 보내기 + 설치 없이 되는지(F-3) · 툴박스 감추기(F-4) · 글자 크기(F-5) · 넓게 보기(F-6) · 모니터(F-7) · 저장 뒤 되돌리기(F-8) · 백업 저장(F-9) · 덩어리 잇기 UI(F-10) · Git 계정 · 토큰 저장 확인(F-11). 항목마다 지금 코드가 어떤지와 정할 것을 함께 적음. 코드 변경 없음 | 아래 | | 2026-09-17 | **11차 지시서** — 10차 전부 끝(E-1 새로 걸린 것 없음). 기획안 v1.2 에서 "일부" 로 남은 것과 베타 전 확인에서 나온 것을 11차로 — A 변경분 추출(먼저 뽑아 보고 적기 · 지운 파일 · 범위 안내 · 비어 있지 않은 폴더 · ZIP) · B 배포 폴더가 09-07 것 · D 드라이브 고정 설정 위치 · C 커밋 메시지 수정(있는 [커밋 수정] 의 [마지막 메시지] 가 목록 맨 위 · 스테이징 파일이 말없이 들어감 · 작성자가 바뀜 · 작업 중에도 켜짐, 임의 커밋 수정은 할지 정함) · D 시험 도구 · E 확인 · 문서. 코드 변경 없음 | 아래 | | 2026-09-17 | **10차 E-2** — 웹 문서를 10차 끝 기준으로(아티팩트 버전 11). 발행본이 9차 D-1 파일과 같음을 먼저 확인. 매뉴얼에 두 탭이 같은 커밋을 본다는 설명, 알아 둘 한계에서 고친 둘(Git 탭 고른 커밋 안 따라옴 · 규칙 끈 채 반영 색) 뺌, 남은 일 · 지금까지 만든 것에 10차, 숫자(1,147건 · 커밋 114). 10차 D-1 · F-3 에서 로컬로만 고친 문장도 함께 발행 | 아래 | diff --git a/doc/진행상황.md b/doc/진행상황.md index 540f7fd..69e1d28 100644 --- a/doc/진행상황.md +++ b/doc/진행상황.md @@ -327,14 +327,14 @@ --- ## 11차 — 변경분 추출을 믿고 들고 가게 · 베타 전에 깨지는 것 · 커밋 메시지 수정 (2026-09-17 ~) -진행 기록: `history/2026-09-17-11차.md` (첫 항목을 끝내면 만든다) +진행 기록: [history/2026-09-18-11차.md](history/2026-09-18-11차.md) 지시서: [작업지시/11차.md](작업지시/11차.md). 코드를 읽고 적은 짐작이라 항목마다 먼저 다시 내고 시작한다. ### A. 변경분 추출을 믿고 들고 가게 | 상태 | 항목 | |---|---| -| 대기 | A-1 먼저 뽑아 보고 적는다 — 커밋 하나 · 범위 · 지운 파일 · 이름 바뀜 · 병합 커밋 · 거꾸로 범위 · 이진/한글 · 비어 있지 않은 폴더 · 읽기 전용 (고치지 않음) | +| **완료** | A-1 먼저 뽑아 보고 적는다 — 고치지 않음. 아홉 경우를 화면에서 뽑아 git 과 대조: 파일 고르기 · 바이트 보존(이진 · 한글 · 깊은 경로) · 범위 표시는 맞음. 확정된 문제 넷 — 지운 파일 · 이름 바뀐 옛 경로가 안 남음, 무엇과 무엇 사이인지 안 남음(병합은 첫 부모 · 거꾸로 범위도 말없이), 비어 있지 않은 폴더에 묻지 않고 덮어써 옛 파일이 섞임, 쓰다 막히면 반쯤 뽑힌 채 멈춤 | | 대기 | A-2 뽑은 폴더에 무엇을 뽑았는지 남기기 (범위 · 지워야 할 파일 · 옛 경로) — 형식 먼저 정함 | | 대기 | A-3 이미 파일이 있는 폴더에 뽑을 때 — 묻기 · 새 폴더 · 그대로 중 정함 | | 대기 | A-4 ZIP 으로 뽑기 — 할지 먼저 정함 |