From ddce51d375201a0a046a3121b9b2b6a9b11a3193 Mon Sep 17 00:00:00 2001 From: ksj09406 Date: Mon, 14 Sep 2026 12:47:34 +0900 Subject: [PATCH] =?UTF-8?q?6=EC=B0=A8=20B-4:=20=EB=84=A4=20=EC=B9=B8=20?= =?UTF-8?q?=EC=A4=84=20=EC=97=AC=EB=B0=B1=EC=9D=84=2066px=20=EB=A1=9C=20?= =?UTF-8?q?=EB=84=93=ED=98=80=20MERGED=20=EC=A4=84=20=EB=B2=88=ED=98=B8?= =?UTF-8?q?=EA=B0=80=20=EC=9E=98=EB=A6=AC=EC=A7=80=20=EC=95=8A=EA=B2=8C=20?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 --- doc/history/2026-09-14-6차.md | 52 ++++++++++++++++++++++++++++++++ doc/history/changelog.md | 1 + doc/진행상황.md | 2 +- src/MergeHub/Views/HomeView.xaml | 22 +++++++++----- 4 files changed, 68 insertions(+), 9 deletions(-) diff --git a/doc/history/2026-09-14-6차.md b/doc/history/2026-09-14-6차.md index 6ac7c47..9ac9541 100644 --- a/doc/history/2026-09-14-6차.md +++ b/doc/history/2026-09-14-6차.md @@ -467,3 +467,55 @@ B-1 확인 때는 늘 파일 비교 탭을 먼저 열어 두었다. 순서를 | 저장소를 새로 만들어 병합 → 파일을 열어 칸이 채워진 채로 충돌을 풀고 **앱을 끄지 않고** [병합 커밋] | 커밋 메시지 같은 한 줄, `#` 줄 0개, 부모 2개. **파일 비교 탭 메시지 칸이 비워짐** | 화면 확인 **7건 통과**. 빌드 경고 0 · 오류 0. + +## B-4. MERGED 칸 줄 번호가 네 자리에서 잘린다 (2026-09-14, 완료) + +### 고치기 전에 다시 났다 + +새로 만든 저장소(충돌 23개)를 병합하고 `Motion/Unit0.cs`(3,363줄)를 네 칸으로 열어 편집기에서 Ctrl+End 를 눌렀다. + +| 칸 | 보인 번호 | +|---|---| +| LOCAL · BASE · REMOTE | `2949` · `2950` 온전 | +| **MERGED** | **`294` · `295` · `295`** — 2949 · 2950 · 2951 줄 | + +### 무엇이 원인이었나 + +줄 여백 폭은 네 칸 모두 54px 로 같지만 **나눈 방법이 달랐다.** + +| 칸 | 여백 나눔 | 번호 글자 자리 | +|---|---|---| +| BASE | 번호 54 (오른쪽 띄움 8) | 46px | +| LOCAL 원본 · REMOTE | 번호 34 (띄움 4) + [<]/[>] 20 | 30px | +| MERGED | 북마크 10 + 번호 24 (띄움 4) + [>] 20 | **20px** | + +Consolas 12 는 한 글자 약 6.6px 라 20px 에는 세 자리만 들어간다. MERGED 칸만 북마크 막대 자리를 따로 떼어 번호가 가장 좁았다. + +### 고친 것 (`Views/HomeView.xaml` 만) + +여백을 네 칸 모두 **66px** 로 넓혔다. 칸마다 폭이 같아야 워드랩에서 접히는 자리가 같다(한 칸만 넓히면 행이 어긋난다). + +| 자리 | 전 | 후 | 번호 글자 자리 | +|---|---|---|---| +| BASE 템플릿 | 54 | 66 | 58px | +| LOCAL 원본 · REMOTE 템플릿 | 34 + 20 | 46 + 20 | 42px | +| MERGED 템플릿 | 10 + 24 + 20 | **6 + 40 + 20** | **36px** — 다섯 자리(99,999줄)까지 | +| 위에 겹친 편집기 `LocalEditor` 왼쪽 여백 | 54 | 66 | — 아래층 글자와 x 가 같아야 캐럿이 맞는다 | + +북마크 막대는 너비 4 · 좌우 띄움 1 이라 6px 로 모자람이 없다. 칸마다 코드 자리가 12px 줄었다. + +### 확인한 것 + +| 확인 | 결과 | +|---|---| +| C-1 저장소 `Motion/Unit0.cs` 네 칸, Ctrl+End | MERGED `2949` · `2950` · `2951` 온전. 확대해 보니 [>] 단추와도 안 겹친다. 위 세 칸도 온전 | +| 만든 저장소(`Big7479.cs` 7,479줄, 2950 · 7470 줄 양쪽이 다르게 고침)를 MergeHub 로 병합, 네 칸, Ctrl+End | **네 칸 모두** `7462` ~ `7470` 온전. 충돌 2 | +| 7,479줄 두 파일을 `--merge` 인자로 열기(두 칸) | BASE · LOCAL `7440` ~ `7479` 온전 | +| 편집기와 아래층이 맞는가 | 7468 줄에서 Ctrl+Shift+→ 로 `public ` 을 고르니(UIA 로 읽은 선택 글도 `public `) 선택 영역이 아래층의 `public` 글자에 딱 겹친다 | + +빌드 경고 0 · 오류 0. 고친 파일은 XAML 뿐이라 검사 하네스는 영향이 없다. + +### 확인하다 본 것 (고치지 않음) + +- 3분할에서 Ctrl+End 를 누르면 캐럿이 파일 끝이 아니라 **마지막 충돌 줄**(2951 · 7470)에 서고, 네 칸 모두 **그 아래가 빈 채**로 그려진다. 고치기 전 화면에서도 같았다 — B-4 와 무관하다. +- 저장소 밖 파일을 `--merge --base --local --remote --merged` 로 넘기면 네 칸이 아니라 BASE · LOCAL 두 칸으로 열린다. diff --git a/doc/history/changelog.md b/doc/history/changelog.md index 008d900..c82132e 100644 --- a/doc/history/changelog.md +++ b/doc/history/changelog.md @@ -8,6 +8,7 @@ | 날짜 | 항목 | 커밋 | |---|---|---| +| 2026-09-14 | **6차 B-4** — 3분할 MERGED 칸 줄 번호 자리가 20px 라 2949 가 "294" 로 잘리던 것을 고침. 네 칸 여백을 54 → 66px 로 맞춰 넓혀 다섯 자리까지 보인다 | 아래 | | 2026-09-14 | **6차 B-3** — 병합 커밋 기본 메시지를 `Merge branch '상대' into 내 브랜치` 로. 첫 파일 이름이 굳어 남던 것, 커밋에 `#Conflicts:` 줄 24개와 해시 첫 줄이 들어가던 것을 고침. 병합이 끝나면 스스로 채운 글만 지운다 | 아래 | | 2026-09-14 | **6차 B-2** — 파일을 바꿀 때 확인 창이 고친 파일 이름을 대고, [저장하고 계속] 이 엉뚱한 파일(새로 고른 파일)에 쓰던 것을 막음. [취소] 뒤 콤보가 제자리로. 저장소를 먼저 열면 목록이 0개이던 B-1 빈틈도 | 아래 | | 2026-09-14 | **6차 B-1** — 새로고침 뒤 파일 목록을 게이트가 풀릴 때까지 기다렸다 세움(병합 뒤 304개 → 23개). 충돌 목록 두 번 누르기·Enter·[3분할로 열기] 로 파일 비교 탭 네 칸에서 연다. 없는 '홈 탭' 글을 고침 | 아래 | diff --git a/doc/진행상황.md b/doc/진행상황.md index b788c11..28c1766 100644 --- a/doc/진행상황.md +++ b/doc/진행상황.md @@ -106,7 +106,7 @@ | **완료** | B-1 충돌 목록에서 3분할 화면까지 가는 길이 끊겨 있다 — 병합 뒤 목록이 바로 서고, 두 번 누르기·Enter·[3분할로 열기] | | **완료** | B-2 확인 창이 엉뚱한 파일 이름을 댄다 — 이름·[저장하고 계속] 모두 실린 파일 기준, [취소] 뒤 콤보도 돌아온다 | | **완료** | B-3 커밋 메시지가 엉뚱하게 남는다 — 기본값 `Merge branch '상대' into 내 브랜치`, `#` 줄 뺌, 병합이 끝나면 칸을 비움 | -| 대기 | B-4 MERGED 칸 줄 번호가 네 자리에서 잘린다 | +| **완료** | B-4 MERGED 칸 줄 번호가 네 자리에서 잘린다 — 네 칸 여백을 66px 로, MERGED 번호 자리 20 → 36px(다섯 자리) | | 대기 | B-5 머지 주석은 소스에 넣고, 병합 뒤에는 그 줄을 무시한다 | | 대기 | B-6 충돌 탭에서 하나씩 누를 때마다 오래 기다린다 | | 대기 | B-7 상태바가 병합 중에 믿을 수 없는 값을 보인다 | diff --git a/src/MergeHub/Views/HomeView.xaml b/src/MergeHub/Views/HomeView.xaml index b3f0aaf..ddc2baf 100644 --- a/src/MergeHub/Views/HomeView.xaml +++ b/src/MergeHub/Views/HomeView.xaml @@ -139,10 +139,11 @@ 코드 본문에는 툴팁을 달지 않는다 - 글이 이미 보이는데 그 위에 같은 글이 상자로 겹쳐 뜨면 가리기만 한다. 잘려서 안 보이는 부분은 가로 스크롤로 본다. --> - + - + - + @@ -231,7 +232,7 @@ - + @@ -283,14 +284,19 @@ 대신 가로로 밀 때 여백까지 밀리면 안 되므로, 본문 글자만 TextShiftX(편집기의 가로 스크롤 값)만큼 밀고 열 안에서 잘라낸다. 글자를 고치는 일은 이 위에 겹쳐 놓은 편집기(LocalEditor)가 맡는다. + + 여백 폭은 66 = 북마크 6 + 줄 번호 40 + [>] 20. 네 칸이 모두 66 이다(6차 B-4). + 예전에는 54 = 10 + 24 + 20 이라 줄 번호 글자 자리가 20px(Consolas 12 로 세 자리)뿐이어서 + 2949 가 "294" 로 잘렸다. 위의 세 칸은 번호 자리가 30px 이상이라 멀쩡했다. + 지금은 번호 자리 36px 로 다섯 자리(99,999줄)까지 들어간다. --> - - + + @@ -1210,7 +1216,7 @@ 편집기 글자는 투명이라 아래층 색이 그대로 보이고, 캐럿·선택 영역만 편집기가 그린다. 둘의 글꼴·줄 높이가 정확히 같아야 어긋나지 않는다. - 편집기는 여백 폭(54)만큼 왼쪽을 비워 두어, 그 자리의 [>] 버튼과 + 편집기는 여백 폭(66)만큼 왼쪽을 비워 두어, 그 자리의 [>] 버튼과 북마크 더블클릭이 아래층까지 닿게 한다. --> @@ -1232,7 +1238,7 @@ 세로 스크롤 막대를 늘 띄워 두는 이유 - 나타났다 사라지면 글 너비가 바뀌어 워드랩 접히는 자리가 아래층과 어긋난다. --> -