Repository navigation
fix(checkout): Windows CRLF·심볼릭 링크 체크아웃에서만 실패하던 로컬 검사를 고친다 - #8193
Open
planet6897 wants to merge 1 commit into
Open
planet6897 wants to merge 1 commit into
planet6897 wants to merge 1 commit into
Conversation
`core.autocrlf=true`·`core.symlinks=false`(Windows 기본)로 체크아웃하면 같은 커밋이 리눅스 CI 에서는 통과하고 Windows 에서만 11건이 실패했다. - `*.rs`·`*.ts`·`/Cargo.lock` 을 LF 로 체크아웃한다. Studio 계약 검사(chrome-mode· dialog-policy-ledger·document-initialization-order·ruler·zoom-fit·style-undo-routing· review-runtime-contracts 음성 대조·subsecond dioxus-cli 버전)는 원문을 읽어 `\n` 을 포함한 패턴으로 찾는데 CRLF 원문에서 9건이 실패했다. 저장소의 해당 파일은 모두 LF 라 인덱스는 바뀌지 않는다. - `*.pdf` 를 `-text -diff` 로 둔다. 자동 감지가 텍스트로 본 PDF 12개가 LF→CRLF 로 바뀌어 xref 가 어긋났고 `issue_7966_pdf_close_stroke` 3건이 `ImportResourceLimit` 로 실패했다. - `canvaskit-sfnt-face` 검사는 심볼릭 링크 `public/fonts` 대신 그 대상 `assets/fonts` 의 D2Coding 을 읽는다. 링크를 지원하지 않는 체크아웃에서는 `public/fonts` 가 경로 문자열만 담은 파일이라 ENOENT 로 실패했다. 검증(Windows, devel e7a0dec 기준): `npm test` 2,351 통과·10 실패 → 2,361 통과·0 실패, `issue_7966_pdf_close_stroke` 3건 실패 → 통과. 새 규칙으로 다시 체크아웃한 4,778개 파일이 모두 인덱스 바이트와 같아 작업 트리 변경은 이 두 파일뿐이다.
jangster77
self-requested a review
October 24, 2026 07:24
This was referenced Oct 24, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
Windows 기본 Git 설정(
core.autocrlf=true,core.symlinks=false)으로 체크아웃하면, 같은 커밋이 리눅스 CI 에서는 통과하는데 로컬 검사 13건이 실패했다. 이 중 체크아웃 방식 때문에 생기는 12건(CRLF 개행 변환 11건, 심볼릭 링크 1건)을 고친다. 저장소에 저장된 파일 바이트(인덱스)는 바뀌지 않고, Windows 체크아웃 결과만 리눅스와 같아진다.원인과 변경
\n을 포함한 정규식·문자열로 찾는다. CRLF 로 체크아웃된 원문에서는 일치하지 않는다npm test9건 — chrome-mode 2 · dialog-policy-ledger · document-initialization-order · ruler-document-load-refresh · zoom-fit-mode-persistence · style-undo-routing(src/*.rs함수 본문 발췌) · review-runtime-contracts 음성 대조drop-engine-chain· subsecond-runtime(Cargo.lock의subsecond블록).gitattributes:*.rs·*.ts·/Cargo.lock을text eol=lf로 체크아웃issue_7966_pdf_close_stroke3건(ImportResourceLimit("unbounded object recovery disabled")).gitattributes:*.pdf -text -diff— 기존의 디렉터리별 PDF 규칙과 같은 처리를 전체 PDF 에 적용rhwp-studio/public/fonts는../../assets/fonts를 가리키는 심볼릭 링크다. 링크를 지원하지 않는 체크아웃에서는 경로 문자열만 담은 파일이 된다canvaskit-sfnt-face1건(ENOENT)assets/fonts/D2Coding-Regular.woff2를 직접 읽는다(같은 파일)인덱스 무변경 확인
*.rs·*.ts·Cargo.lock은 모두 LF(git ls-files --eol에서i/lf)라eol=lf규칙이 저장 바이트를 바꾸지 않는다. 대상 PDF 도 저장 바이트 그대로다.pdf/issue7966/close-stroke-controls.pdf의 작업 트리 MD5 가 blob 과 일치한다.* text=auto eol=lf를 거는 방법은 쓰지 않았다. 이미 CRLF 로 저장된 텍스트 파일 약 500개가 다시 정규화 대상이 되기 때문이다. 대신 실패 원인인 확장자만 지정했다.검증 (Windows, base
upstream/devele7a0dec55)rhwp-studionpm testcargo nextest … -E 'test(issue_7966_pdf_close_stroke)'리눅스 CI 는 원래 LF·심볼릭 링크로 체크아웃하므로 동작이 바뀌지 않는다. 조판·렌더링 코드는 바꾸지 않아 Visual Sweep 대상이 아니다.
범위 밖
issue_6520_svg_layer_contract::subset_font_bytes_are_deterministic_for_multiple_codepoints는 로컬에 설치된 한컴 글꼴에 따라 결과가 달라지는 검사라 이 PR 범위가 아니다.git rm --cached -r . && git reset --hard또는 해당 파일 삭제 후git checkout -- <파일>).🤖 Generated with Claude Code