http 要求ごとgit-http-backend
に、サーバー側で個別のプロセスが実行されます。
複数のクライアントが同じリモート リポジトリにプッシュする場合、同時実行の問題を処理するために何をしますか?
たとえば、ロック ファイルを作成し、その名前は何ですか?
注: リモート リポジトリはベアです。
http 要求ごとgit-http-backend
に、サーバー側で個別のプロセスが実行されます。
複数のクライアントが同じリモート リポジトリにプッシュする場合、同時実行の問題を処理するために何をしますか?
たとえば、ロック ファイルを作成し、その名前は何ですか?
注: リモート リポジトリはベアです。
SSH 経由で呼び出された場合と同じ方法で -- refs.c のupdate_ref 関数を参照してください。ロック機構の実際の実装はlockfile.c の lock_file 関数に.lock
あり、そこにファイルが作成されます。ボンネットの下では、O_EXCL
オプションを介して行われますopen()
。