diff --git a/doc/history/2026-09-14-6차.md b/doc/history/2026-09-14-6차.md index 98274cf..9148c84 100644 --- a/doc/history/2026-09-14-6차.md +++ b/doc/history/2026-09-14-6차.md @@ -833,3 +833,47 @@ Allman 은 모두 새 줄(Visual Studio 기본값과 같다). 처음에는 Defau - **A-2 · B-2** — 목록을 다시 세울 때 빈 목록으로 갈아엎지 않고, 실린 파일을 기준으로 다룬다. 코드 변경 없음. 흐름 ② 는 D-1(처음부터 다시 끝까지)에서 한 번 더 본다. + +## C-1. 로그와 목록 다듬기 (2026-09-14, 완료) + +### 고치기 전에 다시 났다 (새로 만든 저장소를 MergeHub 로 병합) + +| 확인 | 결과 | +|---|---| +| 병합 로그 | "충돌 26건 - 해결이 필요합니다." **두 번**. 두 번째는 머지 주석 자동 해결 줄들 **뒤에** 다시 나와 순서도 헷갈림 | +| 충돌 탭 목록 표시 | 24줄 중 표시가 붙은 것은 `Recipe/ToBeDeleted.cs · 상대쪽 삭제` 하나. `Ui/Views/NewPanel.cs`(양쪽 새 파일) · `Recipe/ToBeDeletedByMe.cs`(내가 삭제)는 표시 없음 | +| 푼 개수 | 어디에도 없음 | +| CP949 로그 이름 | `충돌 해결(직접 편집, CP949 · CRLF): Common/Util/한글설명.cs` — **이미 CP949**. A-1 에서 로그 문장을 `TextFile.Describe` 로 바꾸며 없어졌다. 이 항목은 확인만 | + +### 무엇이 원인이었나 + +- `GitService` 가 결과 문장을 로그에 적고(`Report` → `Progress`), 병합 · revert · cherry-pick · rebase · pull 명령이 **같은 문장을 한 번 더** 적었다. +- 목록 템플릿에는 "이진" 과 "상대쪽 삭제" 두 표시만 있었다. +- 병합에서 처음 몇 개가 충돌했는지 남기는 곳이 없었다. + +### 고친 것 + +| 파일 | 무엇 | +|---|---| +| `ViewModels/GitViewModel.cs` | 병합 · revert · cherry-pick · rebase 시작 · rebase 계속 · pull 에서 결과 문장을 다시 적지 않는다 | +| `Services/GitService.cs` | 추적 브랜치가 없어 pull 을 못 할 때도 로그에 적는다(이 길만 서비스가 안 적었다). 병합에서 충돌이 나면 처음 충돌 목록을 `.git/MERGEHUB_CONFLICTS`(첫 줄 MERGE_HEAD)에 적고, `GetMergeConflictTotal` 로 읽는다. MERGE_HEAD 가 다르면 다른 병합의 것이라 쓰지 않는다 | +| `Models/GitModels.cs` | `ConflictInfo.KindLabel` — 양쪽 수정 · 상대 삭제 · 내가 삭제 · 양쪽 새 파일(이진이면 " · 이진"), `IsDeletion` | +| `Views/GitView.xaml` | 목록 줄마다 종류(한쪽 삭제는 경고 색, 이진은 위험 색). 목록 위에 진행 한 줄 | +| `Services/GitWorkspace.cs` | `ConflictProgressText` — "남은 충돌 N개 · 푼 것 M개 (M/전체)", 다 풀면 "충돌 정리 끝 · 푼 것 M개 - 병합 커밋을 할 수 있습니다". 처음 수를 모르면(MergeHub 밖에서 시작한 병합) 남은 수만 | + +처음에는 푼 개수를 git 인덱스의 해결 기록(REUC)으로 셌다. 확인해 보니 libgit2 가 **저절로 병합된 파일 7개**도 거기 남겨 병합 직후 "푼 것 9개 (9/33)" 로 틀리게 나왔다. 그래서 병합할 때 처음 목록을 적어 두는 쪽으로 바꿨다. + +### 확인한 것 + +| 확인 | 결과 | +|---|---| +| 병합 로그 | "해결이 필요합니다" **한 번**. 그 뒤로 자동 해결 두 줄과 "자동으로 풀었습니다. 남은 충돌 24건." | +| 기록 파일 | 경로 26개 | +| 목록 종류 | 양쪽 수정 21 · 상대 삭제 1(`Recipe/ToBeDeleted.cs`) · 내가 삭제 1(`Recipe/ToBeDeletedByMe.cs`) · 양쪽 새 파일 1(`Ui/Views/NewPanel.cs`) | +| 병합 직후 진행 줄 | **남은 충돌 24개 · 푼 것 2개 (2/26)** — 머지 주석만 다른 2개가 스스로 풀림 | +| 같은 줄 충돌 15개 Accept Mine | 남은 충돌 9개 · 푼 것 17개 (17/26) | +| 앱을 다시 켠 뒤 | 남은 충돌 9개 · 푼 것 17개 (17/26) — 이어짐 | +| 남은 9개 Accept Mine | 충돌 정리 끝 · 푼 것 26개 - 병합 커밋을 할 수 있습니다 | +| 병합 전 | 진행 줄 없음 | + +FolderTest 62 · ReportTest 31 · GitOpTest 36 건 통과(`GitModels.cs` 를 함께 컴파일). 빌드 경고 0 · 오류 0. diff --git a/doc/history/changelog.md b/doc/history/changelog.md index ac97c02..e02bd6a 100644 --- a/doc/history/changelog.md +++ b/doc/history/changelog.md @@ -8,6 +8,7 @@ | 날짜 | 항목 | 커밋 | |---|---|---| +| 2026-09-14 | **6차 C-1** — 병합 · revert · cherry-pick · rebase · pull 결과가 로그에 두 번 찍히던 것을 한 번으로. 충돌 탭 목록에 종류(양쪽 수정 · 상대 삭제 · 내가 삭제 · 양쪽 새 파일)와 "남은 충돌 N개 · 푼 것 M개 (M/전체)". 처음 충돌 목록을 .git 에 적어 두어 앱을 다시 켜도 이어짐 | 아래 | | 2026-09-14 | **6차 B-8 닫음** — 병합 커밋 뒤 파일 비교 탭이 어정쩡하게 남던 증상이 다시 나지 않음. Git 으로 풀고 커밋 · 탭에서 마지막 충돌을 풀고 커밋 두 흐름 모두 목록 304 · 두 칸 · 선택 커밋 = 병합 커밋. B-1 · A-3 에서 없어진 것으로 봄 | 아래 | | 2026-09-14 | **6차 B-7** — 병합 중 상태바 인코딩 · 줄바꿈을 충돌 표시가 든 워킹트리가 아니라 내 쪽(ours) 파일로("UTF-8 · 혼합" → "UTF-8 (BOM) · CRLF"). 네 칸 요약을 "남은 충돌 N개 · 받을 변경 M줄" 로, 범례 수를 먼저 세어 한 박자 늦던 것도 고침 | 아래 | | 2026-09-14 | **E-1 C# 코드 스타일 맞춤** — AURORA(형식 · 메서드만 새 줄, `} else {`) / Allman(모두 새 줄)로 중괄호 줄바꿈을 맞춘 뒤 비교. 두 칸 · 네 칸 · mergetool · 폴더 비교, 설정. 스타일만 바뀐 편집은 파일을 바꿀 때 묻지 않음. StyleTest 78건 | 아래 | diff --git a/doc/web/index.html b/doc/web/index.html index 6b9230c..79975bf 100644 --- a/doc/web/index.html +++ b/doc/web/index.html @@ -257,7 +257,7 @@ figcaption{font-size:.82rem;color:var(--ink-3);margin-top:6px}
22벌 · 948건검사 하네스 전부 통과
-
13 / 156차 항목 완료 (C-1 · D-1 남음)
+
14 / 156차 항목 완료 (D-1 남음)
68MergeHub 로컬 커밋 (푸시 0)
26 → 24만든 저장소 병합 충돌 (주석만 다른 2건 자동 해결)
@@ -843,7 +843,7 @@ Log("step 5");
  • 완료 B-6 충돌 여러 개 한 번에 · C# 스타일 맞춤 · 시연 재료
  • 완료 B-7 병합 중 상태바 값 — 내 쪽 파일 기준 · 남은 충돌 수
  • 완료 B-8 병합 커밋 뒤 탭 상태 — 다시 나지 않음
  • -
  • 대기 C-1 로그 · 목록 다듬기
  • +
  • 완료 C-1 로그 · 목록 다듬기 — 충돌 종류 · 푼 개수