App Store 앱의 디스크 접근
ABDiff는 App Store 앱이므로 Apple의 샌드박스 내에서 실행됩니다. 샌드박스는 명시적으로 접근 권한을 부여하지 않는 한(예: 폴더를 선택하거나 파일을 끌어다 넣거나 설정에서 액세스 루트를 추가하는 경우) 파일을 읽지 못하도록 방지합니다.
이것이 가끔 다음과 같은 프롬프트가 표시되는 이유입니다:
ABDiff는 Git에서 전달된 파일을 열기 위해 이 폴더에 대한 접근 권한이 필요합니다.
왜
git difftool가 디스크 액세스 프롬프트를 트리거합니까?
git difftool를 실행하면, Git은 일반적으로 비교하려는
파일의 임시 복사본을 생성합니다. 이것들은 macOS 임시
폴더에 저장되어 있습니다:
/private/var/folders/.../T/...
해당 경로는 귀하의 저장소 폴더 외부에 있으므로,
/Users/you/Developer/code와 같은 저장된 접근 루트는
적용되지 않습니다. 따라서 ABDiff는 임시 파일을 포함하는 폴더를 승인해
달라고 요청하며, 이를 통해 파일을 열 수 있습니다.
프롬프트를 거부하면 ABDiff가 임시 파일을 읽을 수 없으며 “No permission to read …”와 같은 오류가 표시됩니다.
대처 방법
다음 옵션 중 하나를 사용하십시오:
설정 → 폴더 액세스에서 저장된 액세스 루트를 검토하거나 제거할 수 있습니다.
프롬프트가 표시될 때 제안된 폴더를 허용하십시오. ABDiff는 선택한 폴더를 설정 → Folder Access에 추가하여 프롬프트 없이 재사용할 수 있도록 합니다(단, “Save Git access prompts here”를 비활성화한 경우는 제외합니다).
Git difftool을 자주 사용하는 경우, 예를 들어 설정에서 더 넓은 접근 루트를 추가하십시오.
- ⟪코드0⟫
임시 경로를 피하려면
git difftool대신 repo 내부의 실제 파일을 비교하십시오. 예를 들어 파일을 ABDiff로 끌어다 놓으십시오.
왜 “전체 디스크 접근”처럼 보이는가
Git이 서로 다른 위치(예: 저장소에 있는 파일 하나,
/private/var/...에 있는 파일)에서 파일을 전달하는 경우,
공통 상위 파일은 /일 수 있습니다. 그 경우 시스템 선택기가
“전체 디스크”처럼 보일 수 있지만, ABDiff는 여전히 귀하가 연 파일만
읽습니다.
ABDiff는 자체적으로 전체 디스크 액세스를 요청하지 않으며, 귀하의 드라이브를 스캔하지 않습니다. 명시적으로 열거나 접근을 허용한 파일 및 폴더만 읽습니다.