OSXでsshfs経由でgitを使用する

OSXでsshfs経由でgitを使用する

新しい業務上の理由から、Ubuntu 14.04からOSX Yosemiteに切り替える予定です。

私は主にRで作業し、サーバー(Debian)のコードを管理するためにRStudioとgitを使用します。これを行うには、sshfsを使用してサーバーをマウントし、ローカルボリュームのように使用しましたが、完全に機能しました。

私はOSXでこれを試しましたが、osxfuse + sshfsを介してマウントしました。ただし、OSXFUSEボリュームで実行するとgitが正しく機能しないため、変更をコミットしようとすると次のエラーが発生します。

fatal: Unable to create '/Users/maltethodberg/server/home/nzl922/rstudio_projects/mactest2/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

しかし、私のコンピュータでローカルに作成されたRstudioを使用してgitプロジェクトを作成して管理することはできます。

OSXでsshfsとgitをうまく機能させるために私が知らないいくつかのトリックはありますか?この時点では、サーバーまたはローカルコンピュータに問題があるかどうかはわかりません。

どんな助けでも大変感謝します!

ベストアンサー1

このエラーメッセージを表示する.gitフォルダにindex.lockファイルがある可能性があります。このエラーは、あるユーザーが変更を加え、他のユーザーがロックを所有するたびに表示されます。これにより、他のユーザーのコミットによる干渉からローカルGitツリーが保護されます。

アカウントはあなたが所有しているのに、なぜリモートシステムのユーザーがロックを所有していないのか疑問に思います。これは、osxfuseとsshfsが正しい権限を提供していないためです。リモートシステムは、ローカルユーザーとグループIDをリモートシステムのユーザーとグループIDと一致させようとします。これが問題の原因である可能性があります。リモートシステムに対する正しい権限を取得するためにsshfsを取得できます。

~からこの投稿私は引用する:

コマンドラインからsshfsを呼び出す場合は、-o defer_permissionsを追加するだけです。 Macfusionを使用している場合は、「SSH Advanced> Extra Options」に-o defer_permissionsと入力してください。

おすすめ記事