2011-01-13 19 views
2

現在、Gitリポジトリはローカルディスク上にあります。それらはグループ単位で共有され、SSH経由でアクセスされます(git-shellで)。NFS共有上のGitリポジトリへのプッシュは失敗します

スペースの問題が原因で、リポジトリをNAS上のNFS共有に移動する必要があります。私はこれを試していて、奇妙な問題に遭遇しました。まったく同じ権限を持つ新鮮な(裸)リポジトリが罰金クローニングすることができるが、押しの変更エラーで失敗する(タッチFOO & & GitはGitが& & gitのプッシュ原点マスターをコミット& & fooの追加)「を設定できませんでしたレフリー/ヘッド/マスター "と"書き込みに失敗しました "。

ここで、このシナリオをローカルディスクで繰り返すと、refs/heads/masterはプッシュされたユーザーによって所有されます。逆に、NFS共有で、所有者をプッシュしようとしているユーザーに変更すると、エラーはスローされません。ただし、どちらの場合も、ユーザーは、リポジトリー全体を所有し、グループ書き込み許可を持つグループのメンバーです。さらに、このグループのメンバーであるユーザーとしてSSHを使用してログインするだけであれば、NFS共有とローカルディスクの両方で、refs/heads/master(期待どおり)に触れることができます。

ここで私はここにいる。私はなぜ別のファイル所有者がプッシュを失敗させるのか分かりません。グループアクセス許可がユーザーにrefs/heads/masterの上書きを許可する方法を見ています。さらに、そのファイルにchmod 777があっても、ファイルを作成しない限り、プッシュは失敗します。

この奇妙なことに誰かが光を当てることができれば、私は最も感謝しています。前もって感謝します!

答えて

2

ああ、 NASはパーミッションに奇妙なことをしていて、すべてのディレクトリでスティッキービットを設定しています。これは動作を説明しています。追加のchmodがこの問題を解決しました。

+0

問題を修正した追加のchmodはなんですか? –

+0

私のリポジトリ初期化スクリプトでは、 'chmod -R 660を使います。 && find -type d -exec chmod 2770 {} \; 'あなたの走行距離は異なるかもしれません... – Tim

+0

残念ながら、それは私のためのトリックをしませんでした。 SSHFSを使ってリモートマシンのNFS共有にリポジトリをコミットしようとすると、このエラーが発生します(リモートマシンにgitがインストールされていないため)。ディレクトリは固いものでしたが、 'chmod'は役に立たなかった。私はすべてのファイル/ディレクトリを所有しており、それらすべてに書き込み権限を持っています。 – kynan

関連する問題