diff --git a/doc/history/changelog.md b/doc/history/changelog.md index b5f0ae3..6519a38 100644 --- a/doc/history/changelog.md +++ b/doc/history/changelog.md @@ -8,6 +8,7 @@ | 날짜 | 항목 | 커밋 | |---|---|---| +| 2026-09-18 | **11차 F-1 에 덧 (추가 요청)** — 지시서의 F-1(칸 이름 · 어느 파일인지)에 "머지 주석에도 어디서 가져왔는지(REMOTE/BASE · 브랜치/해시)를 남기고, 그에 맞춰 무시 조건도 고친다" 를 적음. 고칠 곳(`MergeNote.NoteBody` · `LooksLikeNote` · `TailStart` · `CompareRules` · `FolderComparer` · `NoteConflict` · `NoteRows`)과 옛 주석도 그대로 무시되어야 한다는 기준까지. 코드 변경 없음 | 아래 | | 2026-09-18 | **11차 A-3** — 변경분을 고른 폴더에 바로 쏟지 않고 **그 아래 새 폴더**(`변경분_범위_날짜`, 같은 이름이면 `_2`)를 만들어 뽑는다(사용자 결정). 예전에는 묻지 않고 덮어써 지난번에 뽑은 것과 사람이 넣어 둔 파일이 섞였다. 또 뽑기 전에 읽기 전용 · 열려 있는 파일을 **먼저 보고** 하나라도 막히면 아무것도 쓰지 않는다 — 반쯤 뽑힌 폴더가 남지 않는다. 하네스 ReportTest +12(57건) | 아래 | | 2026-09-18 | **11차 A-2** — 변경분을 뽑으면 **폴더 옆에 안내 파일**(`…_변경분안내.txt`)을 함께 만든다(사용자 결정: 폴더 밖 · 지울 파일은 목록으로만). A-1 에서 지운 파일 · 이름 바뀐 옛 경로 · 뽑은 범위가 결과에 안 남는 것을 확인했기 때문. 안내에 범위(커밋 제목 · 날짜) · 뽑은 파일(추가 · 수정 · 이름 바뀜은 옛 이름 병기) · **장비에서 지워야 할 파일**을 적는다. 추출이 무엇을 했는지 목록으로 돌려주도록 `ExportChangedFiles` 를 고치고, 안내를 못 써도 추출은 성공으로 둔다. 하네스 ReportTest +14(45건) | 아래 | | 2026-09-18 | **11차 F-12 (추가 요청)** — C# 코드 스타일 맞춤의 제품 기본값을 끔 → **AURORA** 로(사용자 결정). 사내 코드가 이 스타일이라 설정을 켜지 않아도 중괄호 자리 차이를 안 보게 한다. C/C++ · XAML 은 원래부터 확장자 `.cs` 에만 걸려 손대지 않음. 저장 동작은 그대로. 설정 없는 첫 실행에서 AURORA 확인, C# 짝 "차이 없음" · C++ 짝 "남은 차이 4줄". 하네스 StyleTest +12(90건) | 아래 | diff --git a/doc/작업지시/11차.md b/doc/작업지시/11차.md index b754773..7993223 100644 --- a/doc/작업지시/11차.md +++ b/doc/작업지시/11차.md @@ -199,6 +199,29 @@ - **정할 것**: 이름을 표준 용어 그대로 둘지(`LOCAL(Mine)`), 한글 풀이를 함께 붙일지(`LOCAL(내 쪽)`). 4차 · 6차에 "표준 용어 그대로" 로 정한 적이 있어 뒤집는 결정이다. - **판정 기준**: 두 칸 · 네 칸 · `git mergetool` · `--merge` 네 길에서 칸마다 파일 이름이 보이고, 그 파일이 실제로 읽은 · 저장할 파일과 같다(8차 A-1 의 "화면에 실린 파일" 과 같은 값). 좁은 폭에서도 줄이 늘어나지 않는다. +#### F-1-덧. 머지 주석에도 **어디서 가져왔는지**를 남긴다 (2026-09-18 사용자) + +사용자: "리모트, 베이스에서 어디서 가져오는지도 이력 주석에 표시되게 해 주고, 관련해서 작업된 무시 조건도 수정해 줘." + +- 지금은: 소스에 남는 주석이 `// [김승준] 2026-09-18` 뿐이다(`MergeNote.Build`). **어느 쪽에서 가져온 줄인지는 안 남는다.** + 화면 로그에는 남는다 — `101행 Theirs(feature/theirs) 반영` · `1행 Mine(feature/mine) 으로 정함`(`MergeNames`). 로그는 앱을 끄면 사라지고 소스에는 그 말이 없다. + 두 칸에서 BASE 를 가져온 줄도 `BASE 반영` 이라고 로그에만 남는다. +- 방향: 주석 몸통을 `[사람] 날짜` **뒤에 출처 한 토막**으로 늘린다. 쓰는 말은 화면 · 로그와 같게(F-1 본체에서 이름을 정한 뒤 그 말로). + - 네 칸: `// [김승준] 2026-09-18 REMOTE feature/theirs` · `// [김승준] 2026-09-18 MINE` (rebase · cherry-pick · revert 는 브랜치 대신 짧은 해시 — 로그와 같은 규칙) + - 두 칸: `// [김승준] 2026-09-18 BASE 4eb9ece` + - 사용자가 적은 설명이 있으면 그 앞이나 뒤 어디에 둘지도 함께 정한다(지금은 `[사람] 날짜 설명`). +- **무시 조건을 함께 고친다.** 주석 모양이 바뀌면 지금 판정이 그 줄을 "우리 주석" 으로 못 알아본다. 고칠 곳: + - `MergeNote.NoteBody` 정규식 — `^\[사람\] 날짜` 뒤에 출처가 붙어도 맞게. **옛 모양(출처 없음)도 그대로 맞아야 한다** — 이미 그 주석이 든 파일이 있다. + - `MergeNote.LooksLikeNote` · `TailStart` — 줄 끝에 붙은 조각을 찾는 자리도 같은 규칙. + - `CompareRules`(`MergeNoteKey` · 무시 판정) · `FolderComparer`(머지 주석만 다른 파일을 같음으로) · `NoteConflict`(주석 차이뿐인 git 충돌 자동 해결) · `NoteRows`(주석 줄 떼어 놓기). + - **출처만 다른 주석은 "다름" 이 아니다.** 같은 사람 · 같은 날 · 같은 설명인데 출처만 다른 두 줄은 지금처럼 무시 · 자동 해결로 묶인다(폴더 비교 "같음(머지 주석만 다름)" 도 그대로). +- **정할 것**: 출처를 어디까지 적을지 — 쪽 이름만(`REMOTE`), 쪽 이름 + 브랜치/해시(`REMOTE feature/theirs`), 아니면 파일까지. 길어지면 코드 줄이 밀린다. +- **판정 기준**: + - 네 칸에서 Take Theirs · Take Mine, 두 칸에서 [>] 로 반영한 줄의 주석에 출처가 적히고, **그 말이 Git 탭 로그의 말과 같다.** + - 옛 주석(출처 없음)이 든 파일을 열어도 여전히 무시 색이고 차이로 세지 않는다 — 하네스에 옛 모양 · 새 모양을 함께 넣는다(`NoteTest` · `RulesTest` · `FolderTest` · `NoteConflict` 검사). + - 출처만 다른 주석이 있는 두 파일이 폴더 비교에서 **같음(머지 주석만 다름)**, git 충돌에서 자동 해결. + - 10차 C-1(네 칸에서 주석 줄과 코드 줄을 떼어 놓기)이 그대로다. 저장 결과의 줄 수 · 바이트가 규칙 켬 · 끔에서 고치기 전과 같다. + ### F-2. **메서드 단위**로 골라 반영 (지금은 줄 · 덩어리 · 전체) - 지금은: 반영 단위가 줄(`[>]`) · 이어진 차이 덩어리(`이 덩어리 반영`) · 전체뿐이다. 덩어리를 반영하면 머지 주석은 덩어리 첫 줄 위에 한 줄 붙는다. diff --git a/doc/진행상황.md b/doc/진행상황.md index e420fef..851d2eb 100644 --- a/doc/진행상황.md +++ b/doc/진행상황.md @@ -370,7 +370,7 @@ | 상태 | 항목 | |---|---| -| 대기 | F-1 LOCAL · REMOTE · MERGED 이름 맞추고 칸마다 어느 파일인지 보이게 (지금은 경로가 맨 위 한 줄에만) | +| 대기 | F-1 LOCAL · REMOTE · MERGED 이름 맞추고 칸마다 어느 파일인지 보이게 (지금은 경로가 맨 위 한 줄에만) · **덧**: 머지 주석에도 어디서 가져왔는지(REMOTE/BASE · 브랜치/해시) 남기고 그에 맞춰 무시 조건(`MergeNote` · `CompareRules` · `FolderComparer` · `NoteConflict` · `NoteRows`) 수정 — 옛 주석도 그대로 무시 | | 대기 | F-2 메서드 단위로 골라 반영 · 머지 주석은 메서드 이름 위 한 줄 (지금은 줄 · 덩어리 · 전체) | | 대기 | F-3 탐색기에서 폴더 두 개를 [보내기] 로 바로 비교 + 설치 파일 없이 되는지 확인 | | 대기 | F-4 파일 비교 탭 툴박스(ACTIONS) 감추는 단추 (지금은 접어도 폭 그대로) |