Git.Mem
The memory back-end of Git.
The memory back-end means, we never use any I/O operations to read or write a Git value. All of your repository is stored on your memory. For some specific purposes, it's useful. However, keep in your mind, when your program stops, you lost your repository obviously.
Because we don't need to handle any I/O operations, this store could be more fast than the Unix/Mirage store and relevant for testing. However, we still use the Lwt
monad to protect mutable reference value against data-race condition.
Finally, this module respects the same API Minimal.S
and can handle PACK file - and, by this way, can be used on the Smart protocol. Obviously, some ext. modules like INDEX could not be used with this store (because thay interact with a file-system back-end).