For each http request, a separate process git-http-backend
runs on the server side.
When multiple clients push to same remote repository, what does it do to handle concurrency issues?
For example, does it create lock file and what the name is?
Note: Remote repository is bare.
In the same manner as if invoked via SSH -- see the update_ref function in refs.c. The actual implementation of the locking mechanism lives in the lock_file function in lockfile.c, and yes, it creates a .lock
file in there. Under the hood, it's done via the O_EXCL
option to open()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With