Move WAL implementation into `internal/gitaly/storage`
In the distant future, the RPC handlers should not reach to the storage without getting the details how to access the storage from the Transaction
, ie. which version of custom hooks, the path of the repository, which ref tables to read and so on. PartitionManager
and the TransactionManager
are essentially abstracting away the storage implementation details.
Given the implementation has grown and has a clear purpose, let's move it to internal/gitaly/storage
package. The PartitionManager
should be renamed as Manager
, so internal/gitaly/storage.Manager
and the TransactionManager
made private.
The storage.Manager
will then be the access point to the storage abstraction that all other code should use to access storage.
We'll thus move all the code related to the transaction management to the internal/gitaly/storage
package and expose two types:
Manager
Transaction