ACLと組み合わせたMercurialの背後にあるメカニズムを理解するのを手伝ってください。
私たちのチームは、バージョン管理システムとしてMercurialを使用しています。セットアップは非常に簡単です。2人の開発者(1人のLinux、1人のWindows)、リモートリポジトリ(Linux)です。WindowsユーザーWが変更をチェックインし、LinuxユーザーLが後でプルしたい場合は、次のエラーメッセージ(変更されたファイルによって異なります)が表示されます。
pulling from ssh://user@domain.com searching for changes adding changesets transaction abort! rollback completed abort: stream ended unexpectedly (got 0 bytes, expected 4) remote: abort: Permission denied: /repopath/.hg/store/data/paper/tmp.txt.i
これは、ファイルアクセスがLinuxのACLリストによって処理されるためです。コマンドを使用してACL権限を修正するとsetfacl
、すべてがスムーズに実行され、 Lがプルできるようになります。Wが正しい権限でリポジトリを複製したとしても、.hg
ディレクトリ内の(新規/変更された)ファイルには間違った(デフォルトの)権限があります。リポジトリの親フォルダには正しい権限が設定されているため、それらの権限がどこから継承されているのかわかりません。
誰かが同様の問題に直面しましたか?前もって感謝します!