Commit graph

41 commits

Author SHA1 Message Date
ed3bfa2dc3 Improve the documentation and the README.md 2022-10-31 16:47:52 +01:00
64fc2402ab Don't try to push if the tree_root still is the same
If the user just read into the batched function and does not change anything,
we just return the result.
2022-10-29 22:30:12 +02:00
b5fa25d9a5 Implement the batch function according to the documentation
This implementation is much more close to the documentation & fold all
changes into one commit. Then, it pushes this commit remotely. This
commit deleted local changes which complexify the codebase for a
questionable interest. As the documentation said, any changes are
delayed and not directly "committed" until the end of the given
function. For instance:
> batch
> set /bar "Bar"
> exists /bar
/bar does not exists

is an expected behavior. Only after a quit (which delimit the end of the
batch process), /bar will be committed and will exist!
2022-10-29 21:18:10 +02:00
e16dcce930 Rename batch to change_and_push and re-instantiate batch as a noop function 2022-10-28 16:38:32 +02:00
7b388c029a Use deepen according what we have.
If we have nothing, we just want the last commit, if we have something, we want
commits between what we have and what the server has. Then, we shallow
correctly our internal store to still keep only one commit.
2022-10-28 15:14:26 +02:00
993db937f8 Don't retry if push fail into the batch function 2022-10-28 14:14:40 +02:00
6bf4dc7f07 Improve the documentation 2022-10-28 11:56:11 +02:00
5aa887f48f Be sure to shallow to our last commit after a push from batch 2022-10-28 11:13:18 +02:00
d7765ff6aa Shallow only when we push 2022-10-28 10:59:27 +02:00
934ed7d960 Serialize sequence of batches operations 2022-10-28 10:49:59 +02:00
98bd2bfe3c Implement correctly a batch operation (which will push at the end of the given closure and provide a Local sub-module to be able to manipulate the Git repository without connections 2022-10-27 16:29:12 +02:00
30d5ad365a Complete the implementation with push and improve the documentation 2022-10-24 10:44:21 +02:00
d49a406691 Fix set and remove function 2022-10-22 00:46:33 +02:00
bc99b9d25f And don't forget to set the reference with the last commit 2022-10-22 00:35:41 +02:00
d1cfefb53b Implement {set,remove,rename}_and_push and delete push function
All of these actions "shallow" the last commit. A subsequent `push`
will do nothing due to that incapacity to walk through the history
due to the shallowed commit. To be able to push the last change,
we must provide {set,remove,rename} functions with an explicit
call to push **before** the "shallow".
2022-10-22 00:18:01 +02:00
da5ed53013 Fix bad bytes when we want to emit an empty PACK file 2022-10-21 16:36:55 +02:00
c4012613e3 Delete an assert false and replace it by an empty PACK file 2022-10-21 16:24:10 +02:00
49c406bc01 val size is part of mirage_kv.RO since 5.0.0, no need to specially export it 2022-10-21 01:24:05 +02:00
52c9f3aac6 Improve the documentation 2022-10-19 15:17:31 +02:00
a5aedf8c90 Be sure to shallow the last commit we made when we set the store 2022-10-19 13:04:15 +02:00
83be2b3f25 Functorize git-kv with Pclock to save the right time when we commit 2022-10-19 13:00:04 +02:00
3ff46e50ac Implement the push function 2022-10-19 11:37:41 +02:00
1a236e190b Merge pull request 'Speed-up to way to unserialize a PACK file' (#13) from speed-up into main
Reviewed-on: https://git.robur.io/robur/git-kv/pulls/13
2022-10-14 12:58:48 +00:00
c60a9c9a71 Speed-up to way to unserialize a PACK file 2022-10-14 13:16:45 +02:00
5bf7476f80 Full implementation of git-kv over the Mirage_kv.RW intf. 2022-09-28 13:21:28 +02:00
8e8f002d5e revive get_partial and size (needed by mirage-kv 5) 2022-09-27 17:09:48 +02:00
6c58b74f6a remove superfluous file 2022-09-27 17:08:32 +02:00
ccc29951c2 Finally, make the first PoC about git-state 2022-09-27 14:07:51 +02:00
4dafa3a942 Add a way to unserialize a state and reconstruct the Git store 2022-09-26 19:25:16 +02:00
e6254f0439 Add a way to serialize Git objects into a block device 2022-09-26 19:24:55 +02:00
682de3e8b8 fix search invocation so that something is found 2022-09-26 12:03:12 +02:00
6e565ae92a Fix the pull and usage of branch 2022-09-23 12:39:36 +02:00
ea305b7ad6 Add the diff impl. and use it into the pull function 2022-09-21 14:43:41 +02:00
503bf47ccb Implement list function 2022-09-21 12:02:34 +02:00
ad09080ee6 Remove an assert false and return an error instead of 2022-09-21 12:02:19 +02:00
2ef62f3307 Implement exists function 2022-09-21 12:01:51 +02:00
b1bfa51f2f make it compile 2022-09-20 16:26:18 +02:00
9bf023ef2c revise pull 2022-09-20 14:22:13 +02:00
4d80d920d9 add a pull 2022-09-20 14:21:01 +02:00
d124201bf3 less exceptions 2022-09-20 13:27:49 +02:00
65c8202565 initial 2022-09-20 13:13:46 +02:00