Samba에서 리소스 포크를 거부하면 hg가 질식하는 이유는 무엇입니까?

Samba에서 리소스 포크를 거부하면 hg가 질식하는 이유는 무엇입니까?

Mac에 마운트된 Linux Samba 공유를 통해 Mercurial을 사용하는 사용자가 몇 명 있습니다.

Samba 서버에는 Mac이 특히 개발자 디렉터리에서 모든 종류의 문제를 일으키는 리소스 포크를 생성하는 것을 방지하기 위해 다음과 같은 거부권 규칙(이 사이트와 다른 곳에서 잘 논의됨)이 있습니다.

veto files = /._*/.DS_Store/
delete veto files = yes

문제는 때때로 무작위로 Mercurial이 다음 오류로 인해 질식한다는 것입니다.

$ hg ci
trouble committing stylesheets/custom.css!
transaction abort!
rollback completed
abort: Permission denied: '/Volumes/xxx/yyy/.hg/store/data/stylesheets/._custom.css.i-JdxA5R'

Mercurial이 자체 데이터 저장소 내에 리소스 포크를 만들려고 하는 이유는 무엇입니까?

거부권 규칙에 대해 설명하면 커밋은 성공하지만 서버에 리소스 포크가 남지 않습니다. 따라서 이는 임시 리소스 포크 또는 임시 파일의 포크인 것으로 보입니다.

hg가 생성되는 것을 방지하거나 오류를 무시하거나 Samba가 자동으로 삼키도록 하려면 어떻게 해야 합니까?

편집: hg가 custom.css.i-JdxA5R이라는 임시 파일을 생성하고 어떤 이유로 OS X가 여기에 리소스 포크를 연결하려고 시도한다고 가정합니다(그러나 확실하지는 않습니다). 이것이 실패하면 Samba에 의해 거부되므로 OS X는 전체 임시 파일 작업에 대해 오류를 반환합니다.

답변1

veto files( 의 구문을 이해하지 못했습니다 .문서 링크) 옵션. 실제로 /두 개의 규칙을 구분하며 유닉스 경로에서와 같이 dir 구분 기호 의미가 없습니다.

기본적으로 여기에는 두 가지 규칙이 있습니다. 첫 번째 규칙은 ._*과 일치하는 블로킹입니다 ._custom.css.i-JdxA5R.

관련 정보