iOS

xcrun SPM error: fatal: cannot use bare repository '/Users/user/Library/Caches/...' (safe.bareRepository is 'explicit')

StudySpare 2024. 11. 11. 10:09
반응형

 

문제

$ xcrun swift run ...
...
...
Fetched https://github.com/apple/swift-argument-parser from cache
warning: 'swift-async-algorithms': skipping cache due to an error: Couldn’t fetch updates from remote repositories:
    fatal: cannot use bare repository '/Users/user/Library/Caches/org.swift.swiftpm/repositories/swift-async-algorithms-c3a8d752' (safe.bareRepository is 'explicit')
...
...

해결

~/.gitconfig 에서 아래 두 줄을 삭제한다.

[safe]
    bareRepository = explicit

아래 취약성을 보완하기 위해 추가된 git config 속성.

https://github.com/justinsteven/advisories/blob/main/2022_git_buried_bare_repos_and_fsmonitor_various_abuses.md

git repo는 다른 repo를 별도 처리없이 그대로 포함하고 있을 수 있다. 사용자가 git repo로 부터 받아서 저장해둔 저장소(regular repo 라고 표현하고 있다.)는 git이 직접 권한을 가지고 컨트롤 하는 반면, regular repo 가 가지고 있는 다른 repo(ex. SPM 등으로 의존성을 가지고 있는 repo. 여기서는 bare repo 라고 표현하고 있다.)는 컨트롤 할 수 없다.

ex.

git clone ssh://git@host.example/helloworld.git
cd helloworld
git status          # <-- Safe
cd malicious_subdirectory
git status          # <-- Dangerous

 

Solution origin:

https://forums.swift.org/t/fatal-cannot-use-bare-repository/75588/2

 

Fatal: cannot use bare repository

Thank you for posting this - I can confirm I'm also experiencing the same issue and the same workaround cleared it up for me. Edited to add: Seems relevant that I had just updated SourceTree when this started happening.

forums.swift.org

 

반응형