An instance for a custom backend
Write an object into the backend. The id of the object has already been calculated and is passed in.
If the backend implements a refreshing mechanism, it should be exposed through this endpoint. Each call to git_odb_refresh() will invoke it.
The odb layer will automatically call this when needed on failed lookups (ie. exists(), read(), read_header()).
If the backend supports pack files, this will create a multi-pack-index file which will contain an index of all objects across all the .pack files.
"Freshens" an already existing object, updating its last-used time. This occurs when git_odb_write was called, but the object already existed (and will not be re-written). The underlying implementation may want to update last-used timestamps.
If callers implement this, they should return 0 if the object exists and was freshened, and non-zero otherwise.
Frees any resources held by the odb (including the git_odb_backend itself). An odb backend implementation must provide this function.