[go: up one dir, main page]

Skip to content

Add support for partial transactions in Git

While it doesn't matter much for the "files" backend, it becomes more important with the "reftable" backend to use a single transaction to update multiple refs. This ensures that the ref updates are atomic, but will also be significantly more performant compared to doing multiple sequential ref transactions.

We should introduce the concept of partially-atomic where conflicting ref updates will be evicted from the transaction. Like this, we can e.g. extend git-receive-pack(1) to handle all updates in a single transaction while still evicting those refs which do not match the expected state.