10차 F-3: 폴더 비교 "주석만 다름" 을 "다름(코드는 같음)" 으로

주석 · 공백을 걷어내고 견주는 판정이라 BOM · 줄끝 · 인코딩 · 끝 공백 · 빈 줄 · 들여쓰기만
다른 파일도 "주석만 다름" 이었다. 사용자: "이름을 바꿔줘". 판정 · 수는 그대로.

- 목록 · 범례(설명 붙임) · 요약 "다름 N(코드는 같음 M)" · 비교 결과 보고서
- 웹 문서의 이름도 바꿈(지난 기록은 그대로, 발행은 E-2)
- 하네스 FolderTest +1 (78건), 22벌 1,147건 통과, 빌드 경고 0 오류 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
김승준 2026-09-17 16:05:13 +09:00
parent ccc657803b
commit fadc000081
8 changed files with 46 additions and 16 deletions

View File

@ -273,3 +273,24 @@
### 알게 된 것 (고치지 않음)
- **BOM · 줄끝 · 인코딩 · 끝 공백 · 빈 줄 · 들여쓰기만 다른 파일도 "주석만 다름"** 이다. 주석 · 공백을 걷어내고 글자로 견주는 판정이라 그렇다(5차 · 3차 설계). 이름이 "주석만" 이라 BOM 만 다른 파일에는 맞지 않는 말이다 — 이름을 바꿀지는 따로 정할 거리.
## F-3. "주석만 다름" 이름을 바꾼다 (2026-09-17, 추가 요청, 완료)
사용자: "이름을 바꿔줘" — F-1 · F-2 를 가리며 적은 "BOM · 줄끝 · 인코딩 · 끝 공백 · 빈 줄 · 들여쓰기만 다른 파일도 '주석만 다름'" 에 대해.
### 까닭
- 이 상태(`CommentOnly`)는 두 파일을 글자로 읽어 **주석과 공백을 걷어낸 코드**가 같은지로 정한다. 글자로 읽으면 BOM · 인코딩 차이가 사라지고, 공백을 지우면 줄끝 · 빈 줄 · 들여쓰기 차이도 사라진다.
F-1 · F-2 의 작은 짝 13개에서 주석이 없는 02 BOM · 03 줄끝 · 07 인코딩 · 08 끝 공백 · 12 빈 줄 · 13 들여쓰기가 모두 "주석만 다름" 이었다 — 판정은 설계대로지만 이름이 사실과 달랐다.
### 고친 것 (판정 · 수는 그대로)
- 이름을 **"다름(코드는 같음)"** 으로 — 이미 있는 "다름(이진)" 과 같은 꼴이라 "다름" 의 한 갈래로 읽힌다. "코드가 다른 것만" 필터와도 짝이 맞는다.
- `FolderStatusText.Of` · 요약(`FolderCompareResult.Summary`) "다름 N(코드는 같음 M)" · 비교 결과 보고서(`CompareReport` 가 같은 글자를 씀) · 범례(설명: "코드는 같고 주석 · 공백 · 빈 줄 · 줄끝 · BOM · 인코딩만 다른 파일입니다") · 코드 설명 주석.
- 웹 문서: 매뉴얼 폴더 비교 상태 설명(F-1 · F-2 표시도 함께 적음) · 발표 · 지금까지 만든 것 · 기획안 구조도 · 시연 · WinMerge 비교의 이름. 지난 기록(3차 연표)은 그때 이름 그대로. 발행은 E-2.
- 하네스 `FolderTest` 1건(78건): 요약이 "(코드는 같음 20)" 이고 "주석만" 이 없다. 글자 검사 기대값도 새 이름으로.
### 확인한 것
- 작은 짝 13개 "전체"(사용자 설정 그대로, `d10-same-rename-all.png`): 02 · 03 · 07 · 08 · 09 · 12 · 13 이 "다름(코드는 같음)", 04 "같음(스타일만 다름)", 06 "같음(머지 주석만 다름)", 05 · 10 · 11 "다름", 01 "같음". 요약 `전체 13개 · 다름 10(코드는 같음 7) · 왼쪽만 0 · 오른쪽만 0 · 같음 3`. 범례 "다름(코드는 같음)".
- 하네스 22벌 1,147건 통과(FolderTest 78 · ReportTest 31) · 빌드 경고 0 · 오류 0.

View File

@ -8,6 +8,7 @@
| 날짜 | 항목 | 커밋 |
|---|---|---|
| 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 는 재 보지 않음 | 아래 |
| 2026-09-17 | **10차 C-1** — 설정 "머지 주석 무시" 를 끈 채 네 칸을 다시 정렬하면 주석 줄이 BASE 코드 줄과 한 행이 되어 반영 표시(BASE 줄 번호)가 주석 줄에, 반영한 코드 줄은 "직접 수정" 으로 보였다. 네 칸은 규칙과 상관없이 주석 줄과 코드 줄을 떼어 놓고, 다시 정렬한 주석 줄을 "반영함" 으로 칠하지 않게 함. 요약 · 줄 수 · 저장 해시 그대로. 두 칸도 떼어 보니 차이 수가 늘어(4 → 5줄) 두 칸은 그대로. 하네스 NoteTest +5 | 아래 |

View File

@ -338,7 +338,7 @@ UbisamBase.Shell.exe <span class="k">--merge --base</span> B.cs <span class="k">
<li>목록에서 파일을 두 번 누르거나 <span class="btn-label">줄 단위 비교</span> 를 누르면 파일 비교 탭에서 열린다. 거기서 <kbd>Ctrl</kbd>+<kbd>PageDown</kbd> / <kbd>PageUp</kbd> 으로 목록의 다음 · 앞 파일로 간다.</li>
</ol>
<h4>상태와 보기 필터</h4>
<p><span class="chip c-done">같음</span> <span class="chip c-doing">다름</span> <span class="chip c-wait">주석만 다름</span> <span class="chip c-new">왼쪽에만 · 오른쪽에만</span> <span class="chip c-drop">이진</span> — 주석만 다름은 코드가 같고 주석 · 공백만 다른 파일이다(언어를 아는 파일만, 8MB 까지). 머지 주석만 다른 파일은 <b>같음</b>으로 본다(설정에서 끔).</p>
<p><span class="chip c-done">같음</span> <span class="chip c-doing">다름</span> <span class="chip c-wait">다름(코드는 같음)</span> <span class="chip c-new">왼쪽에만 · 오른쪽에만</span> <span class="chip c-drop">이진</span> — <b>다름(코드는 같음)</b>은 코드가 같고 주석 · 공백 · 빈 줄 · 줄끝 · BOM · 인코딩만 다른 파일이다(언어를 아는 파일만, 8MB 까지). 설정에 따라 머지 주석 줄이나 C# 중괄호 자리만 다른 파일은 <b>같음</b>으로 보고 “같음(머지 주석만 다름)” · “같음(스타일만 다름)” 처럼 까닭을 붙인다. 같은 것만 · 왼쪽에만 · 오른쪽에만으로 걸러 보면 폴더 줄은 걸린 파일 수(“같음 122개”)로 적는다.</p>
<p>보기 필터: 다른 것만 · 전체 · 왼쪽에만 · 오른쪽에만 · 같은 것만 · <b>코드가 다른 것만</b>. 필터는 다시 비교하지 않고 목록만 다시 그린다.</p>
<h4>복사 · 삭제</h4>
<p><span class="btn-label">→ 오른쪽으로 복사</span> <span class="btn-label">← 왼쪽으로 복사</span> <span class="btn-label">왼쪽 삭제</span> <span class="btn-label">오른쪽 삭제</span>. 폴더째 된다. 확인 창에 <b>안에 든 파일 수</b>가 나온다 — 몇 개가 덮이는지 보고 누른다.</p>
@ -616,7 +616,7 @@ Accept Theirs (상대 쪽 파일 그대로) 15
<h3>탭 순서가 곧 작업 순서</h3>
<div class="body">
<table>
<tr><th>폴더 비교</th><td>어느 파일이 다른가 — 같음 · 다름 · 주석만 다름 · 한쪽만 · 이진</td></tr>
<tr><th>폴더 비교</th><td>어느 파일이 다른가 — 같음 · 다름 · 다름(코드는 같음) · 한쪽만 · 이진</td></tr>
<tr><th>파일 비교</th><td>줄을 골라 반영 — 두 칸 또는 네 칸, 커밋 이력, 미니맵</td></tr>
<tr><th>Git</th><td>브랜치 · 병합 · 충돌 · 커밋 · 이력 · Blame · 태그</td></tr>
<tr><th>설정</th><td>비교 규칙 · 머지 주석 · Gitea · 데모 경로</td></tr>
@ -636,7 +636,7 @@ Accept Theirs (상대 쪽 파일 그대로) 15
</div>
<ul>
<li>훑기 · 가리기 · 세기 세 걸음으로 나눔. 가리기만 여러 갈래</li>
<li><b>주석만 다름</b>을 따로 색칠, <b>코드가 다른 것만</b> 필터</li>
<li><b>다름(코드는 같음)</b>을 따로 색칠, <b>코드가 다른 것만</b> 필터</li>
<li>폴더 전체 검색 — 결과마다 왼쪽 · 오른쪽 · 양쪽</li>
<li>폴더째 복사 · 삭제, 확인 창에 파일 수</li>
</ul>
@ -1061,7 +1061,7 @@ Log(<span class="s">"step 5"</span>);</pre>
<h2>기능 목록</h2>
<div class="tbl wide"><table>
<tr><th>영역</th><th>기능</th><th>상태</th></tr>
<tr><td>폴더 비교</td><td>전체 / 빠른 비교 · 하위 폴더 · 취소 · 보기 필터 6가지 · 주석만 다름 · 머지 주석만 다르면 같음 · 폴더째 복사/삭제 · 전체 검색 · 결과 내보내기 · 다음/앞 파일</td><td><span class="chip c-done">완료</span></td></tr>
<tr><td>폴더 비교</td><td>전체 / 빠른 비교 · 하위 폴더 · 취소 · 보기 필터 6가지 · 다름(코드는 같음) · 머지 주석 · 스타일만 다르면 같음(까닭 표시) · 폴더째 복사/삭제 · 전체 검색 · 결과 내보내기 · 다음/앞 파일</td><td><span class="chip c-done">완료</span></td></tr>
<tr><td>파일 비교</td><td>히스토그램 정렬 · 단어 단위 · 자리 옮김 · 줄/덩어리/전체 반영 · Undo/Redo · 색 구분 범례 이동 · 미니맵 · 북마크 · 찾기/바꾸기 · 줄 접기 · 편집 잠금 · 코드 검사 · 저장 형식 · 비교 규칙 · 최근 목록 · 끌어다 놓기</td><td><span class="chip c-done">완료</span></td></tr>
<tr><td>언어</td><td>13가지 색칠(C# · C/C++ · Java · JS/TS · Python · SQL · 셸 · XML/XAML/HTML · JSON · YAML · INI · Markdown · 평문) · CP949 판별 · 이진/그림</td><td><span class="chip c-done">완료</span></td></tr>
<tr><td>네 칸 병합</td><td>LOCAL · BASE · REMOTE · MERGED · Take Mine/Theirs · 자동 병합 · 충돌만 이동 · 완료 판정 · 한쪽 삭제 띠 · git mergetool</td><td><span class="chip c-done">완료</span></td></tr>
@ -1120,7 +1120,7 @@ Log(<span class="s">"step 5"</span>);</pre>
<h3>3.1 정보 구조도 (실제)</h3>
<pre>MergeHub (UbisamBase 셸 탭)
├─ 폴더 비교 <span class="d">— v1.1 에 없던 탭</span>
│ ├─ 전체 / 빠른 비교 · 보기 필터 · 주석만 다름
│ ├─ 전체 / 빠른 비교 · 보기 필터 · 다름(코드는 같음)
│ ├─ 폴더째 복사 · 삭제
│ └─ 폴더 전체 검색 · 결과 내보내기
├─ 파일 비교
@ -1234,7 +1234,7 @@ D:\MergeHubDemo\repo\ <span class="d">make-demo.ps1 이 만드는 Git
feature/mine · feature/theirs</pre>
<div class="tbl wide"><table>
<tr><th>재료</th><th>들어 있는 경우</th><th>보여 줄 것</th></tr>
<tr><td><code>plain\left</code> · <code>plain\right</code></td><td>같은 파일 · 코드 다름 · 주석만 다름 · 머지 주석만 다름 · C# 스타일만 다름(AURORA vs Allman) · 한쪽에만 있음 · 이진 파일</td><td>폴더 비교 상태와 필터, 머지 주석 · 스타일 무시</td></tr>
<tr><td><code>plain\left</code> · <code>plain\right</code></td><td>같은 파일 · 코드 다름 · 코드는 같음(주석 · 공백) · 머지 주석만 다름 · C# 스타일만 다름(AURORA vs Allman) · 한쪽에만 있음 · 이진 파일</td><td>폴더 비교 상태와 필터, 머지 주석 · 스타일 무시</td></tr>
<tr><td><code>style\</code></td><td>같은 코드를 AURORA 와 Allman 로</td><td>스타일 맞춤 전후의 차이 수</td></tr>
<tr><td><code>mergetool\</code></td><td>BASE · LOCAL · REMOTE · 충돌 표시가 든 MERGED</td><td><code>git mergetool</code> 네 칸</td></tr>
<tr><td><code>big\</code></td><td>7,479줄 두 파일</td><td>큰 파일에서 이동 · 줄 번호 다섯 자리</td></tr>
@ -1262,7 +1262,7 @@ D:\MergeHubDemo\repo\ <span class="d">make-demo.ps1 이 만드는 Git
<h4>폴더 비교 (2분)</h4>
<ol>
<li><b>폴더 비교</b> 탭. 탐색기에서 <code>plain\left</code> 를 왼쪽 경로 칸에, <code>plain\right</code> 를 오른쪽 칸에 끌어다 놓는다 → 바로 비교가 돈다.</li>
<li>상태 색을 짚는다: 같음 · 다름 · 주석만 다름 · 왼쪽에만/오른쪽에만 · 이진.</li>
<li>상태 색을 짚는다: 같음 · 다름 · 다름(코드는 같음) · 왼쪽에만/오른쪽에만 · 이진.</li>
<li>보기 필터를 <b>코드가 다른 것만</b> 으로 → 주석만 다른 파일이 빠진다.</li>
<li><code>MergeNoteOnly.cs</code> 가 <b>같음</b>에 있는 것을 보여 준다. <code>StyleOnly.cs</code> 는 스타일 맞춤을 켜고 다시 비교하면 <b>같음</b>으로 옮겨 간다.</li>
<li>검색 칸에 <code>PowerWatt</code> 같은 낱말 → <span class="btn-label">찾기</span> → 결과 줄의 왼쪽 · 오른쪽 · 양쪽 → <span class="btn-label">찾은 줄 열기</span>.</li>
@ -1357,7 +1357,7 @@ D:\MergeHubDemo\repo\ <span class="d">make-demo.ps1 이 만드는 Git
<tr><td>폴더 비교</td><td>2-way · 3-way</td><td>2-way 만</td></tr>
<tr><td>줄 안 변경 강조 · 이동 블록</td><td>있음</td><td>있음 (단어 단위 · 자리 옮김)</td></tr>
<tr><td>공백 · 대소문자 · 정규식 줄 필터</td><td>있음</td><td>있음 (공백 3단계)</td></tr>
<tr><td>주석 차이</td><td>주석 차이 무시 옵션</td><td>폴더 비교에 <b>주석만 다름</b> 상태와 <b>코드가 다른 것만</b> 필터</td></tr>
<tr><td>주석 차이</td><td>주석 차이 무시 옵션</td><td>폴더 비교에 <b>다름(코드는 같음)</b> 상태와 <b>코드가 다른 것만</b> 필터</td></tr>
<tr><td>머지 주석 <code>// [이름] 날짜</code></td><td>없음</td><td>반영할 때 넣고, 비교 · 병합에서는 무시</td></tr>
<tr><td>C# 중괄호 스타일 맞춤</td><td>없음 (전처리 플러그인을 직접 만들면 가능)</td><td>AURORA / Allman 로 맞춘 뒤 비교 · 저장 · 폴더 비교에서도 같음</td></tr>
<tr><td>이미지 · 이진</td><td>이미지 비교 창(겹쳐 보기 등) · 16진 비교</td><td>기본만 — 크기 · SHA-1 · 처음 갈리는 바이트 · 그림 나란히 · 앞 4KB 16진</td></tr>

View File

@ -134,6 +134,12 @@
사용자 결정: **같음으로 두고 따로 표시** — "같음(스타일만 다름)" · "같음(머지 주석만 다름)" · "같음(스타일 · 머지 주석만 다름)". 필터 · 요약 수는 그대로.
- **판정 기준**: 시험 묶음 "같은 것만" 에 주황 "다름" 줄이 없다. 작은 짝(같음 · 중괄호만 · 머지 주석만 · 코드 값 등)에서 까닭이 맞게 붙고 코드 값이 다른 파일은 어느 설정에서도 "다름". 요약 수 · 결과 글자 그대로.
### F-3. "주석만 다름" 이름을 바꾼다 (2026-09-17, 사용자)
- F-1 · F-2 를 가리다 보니 BOM · 줄끝 · 인코딩 · 끝 공백 · 빈 줄 · 들여쓰기만 다른 파일도 "주석만 다름" 이었다(주석 · 공백을 걷어내고 글자로 견주는 판정). 사용자: "이름을 바꿔줘".
- 방향: 판정은 그대로 두고 이름만 사실대로 — "다름(이진)" 과 같은 꼴로 **"다름(코드는 같음)"**, 요약은 "다름 N(코드는 같음 M)". 범례 · 목록 · 보고서 · 웹 문서 모두.
- **판정 기준**: 화면 · 요약 · 보고서에 "주석만 다름" 이 없다(머지 주석 쪽 "같음(머지 주석만 다름)" 은 다른 말). 상태 판정 · 수는 그대로.
---
## 이번 지시서에서 하지 않는 것

View File

@ -318,6 +318,7 @@
| 상태 | 항목 |
|---|---|
| **완료** | F-1 · F-2 폴더 비교 "같은 것만" 에 내용이 다른 것처럼 보이는 줄이 섞인다 (2026-09-17 사용자) — 폴더 줄이 폴더 자신의 "다름"(주황)으로 보이던 것을 걸러 본 갈래의 개수("같음 122개")로. 설정(스타일 맞춤 · 머지 주석 무시)으로 같음이 된 파일은 사용자 결정대로 "같음(스타일만 다름)" · "같음(머지 주석만 다름)" 으로 따로 표시. 요약 수 그대로 |
| **완료** | F-3 "주석만 다름" 이름을 바꾼다 (2026-09-17 사용자) — BOM · 줄끝 · 인코딩 · 공백만 달라도 들어오던 상태를 "다름(코드는 같음)" 으로. 요약 "다름 N(코드는 같음 M)" · 범례 · 보고서 · 웹 문서. 판정 · 수 그대로 |
---
## 3~4주차로 미룬 것

View File

@ -143,7 +143,7 @@ namespace MergeHub.Services
private static string StatusName(FolderEntryStatus status) => status switch
{
FolderEntryStatus.Different => "다름",
FolderEntryStatus.CommentOnly => "주석만 다름",
FolderEntryStatus.CommentOnly => FolderStatusText.Of(FolderEntryStatus.CommentOnly, SameReason.None),
FolderEntryStatus.Binary => "다름(이진)",
FolderEntryStatus.LeftOnly => "왼쪽에만",
FolderEntryStatus.RightOnly => "오른쪽에만",

View File

@ -23,7 +23,7 @@ namespace MergeHub.Services
Binary,
/// <summary>
/// <b>코드는 같고 주석·공백만</b> 다르다.
/// <b>코드는 같고</b> 주석 · 공백 · 빈 줄 · 줄끝 · BOM · 인코딩만 다르다. 화면 이름 "다름(코드는 같음)"(10차 F-3).
///
/// 따로 두는 이유 - 봐야 할 성격이 다르다. 주석만 손댄 파일은 눈으로 훑고 넘길 수 있는데
/// 다른 것과 같은 색으로 섞여 있으면 전부 열어 봐야 한다.
@ -66,7 +66,8 @@ namespace MergeHub.Services
FolderEntryStatus.LeftOnly => "왼쪽만",
FolderEntryStatus.RightOnly => "오른쪽만",
FolderEntryStatus.Binary => "다름(이진)",
FolderEntryStatus.CommentOnly => "주석만 다름",
// 예전 이름 "주석만 다름" - 주석뿐 아니라 공백 · 빈 줄 · 줄끝 · BOM · 인코딩만 다른 파일도 여기 들어와 맞지 않는 말이었다(10차 F-3, 사용자).
FolderEntryStatus.CommentOnly => "다름(코드는 같음)",
_ => string.Empty
};
@ -170,7 +171,7 @@ namespace MergeHub.Services
public int LeftOnlyCount { get; set; }
public int RightOnlyCount { get; set; }
/// <summary>그중 코드는 같고 주석만 다른 것. "다름" 안에 든 수다.</summary>
/// <summary>그중 코드는 같은 것("다름(코드는 같음)"). "다름" 안에 든 수다.</summary>
public int CommentOnlyCount { get; set; }
/// <summary>항목 상한에 걸려 도중에 멈췄는지.</summary>
@ -178,7 +179,7 @@ namespace MergeHub.Services
public string Summary =>
$"전체 {TotalFiles}개 · 다름 {DifferentCount}"
+ (CommentOnlyCount > 0 ? $"(주석만 {CommentOnlyCount})" : string.Empty)
+ (CommentOnlyCount > 0 ? $"(코드는 같음 {CommentOnlyCount})" : string.Empty)
+ $" · 왼쪽만 {LeftOnlyCount} · 오른쪽만 {RightOnlyCount} · 같음 {SameCount}"
+ (Truncated ? " (너무 많아 일부만 봄)" : string.Empty);
}
@ -284,7 +285,7 @@ namespace MergeHub.Services
switch (item.Status)
{
case FolderEntryStatus.Same: result.SameCount++; break;
// "주석만 다름"도 다름의 한 갈래다. 둘 다 센다 - 요약이 "다름 3(주석만 1)" 로 읽힌다.
// "다름(코드는 같음)"도 다름의 한 갈래다. 둘 다 센다 - 요약이 "다름 3(코드는 같음 1)" 로 읽힌다.
case FolderEntryStatus.CommentOnly:
result.DifferentCount++;
result.CommentOnlyCount++;

View File

@ -259,8 +259,8 @@
Background="{Binding Source={x:Static svc:FolderEntryStatus.CommentOnly},
Converter={StaticResource StatusBrush}}"
BorderThickness="1" BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}"/>
<TextBlock Text="주석만 다름" FontSize="11" Margin="0,0,14,0" VerticalAlignment="Center"
ToolTip="코드는 같고 주석·공백만 다른 파일입니다"/>
<TextBlock Text="다름(코드는 같음)" FontSize="11" Margin="0,0,14,0" VerticalAlignment="Center"
ToolTip="코드는 같고 주석 · 공백 · 빈 줄 · 줄끝 · BOM · 인코딩만 다른 파일입니다"/>
<Border Width="12" Height="12" Margin="0,0,4,0" VerticalAlignment="Center"
Background="{Binding Source={x:Static svc:FolderEntryStatus.LeftOnly},