[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Irmin-on-Mirage status

On 14 August 2015 at 14:33, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> wrote:
>>> We indeed need to expose something else to make that logic easier. I think 
>>> the simplest way would be to expose a functor in Git.Memory[1] for storing 
>>> inflated values -- currently we are simply using in-memory Hashtbl, but 
>>> that could be made a bit more abstract. Using that functor you can them 
>>> have an Git.Store.S that you can pass to Irmin. What do you think?
>> That's possible, but the main problem is that the Irmin functor
>> requires Git.Sync.IO, Git.FS.IO and LOCK, none of which I want to
>> implement in the browser.
> You don't need Git.FS.IO and I'm not sure you need the lock, see how 
> Irmin_git.Memory is implemented:
> https://github.com/mirage/irmin/blob/master/lib/git/irmin_git.ml#L727

Well, I still need atomic operations. I just don't want to implement
them witih lock files: I can implement "compare_and_set" easily, but
not "with_lock".

> For Sync.IO actually that would be quite cool to `git fetch/push` from your 
> browser using the smart HTTP protocol .... but if you can pass mock functions 
> to start with.

Yes, this might be useful once the rest is working.

> Thomas
>> I have an experimental branch here that stores the contents/blobs in
>> Git format, but (currently) nodes/trees and commits in Irmin format:
>> https://github.com/talex5/irmin-indexeddb/tree/git-format
>> I also need a scheme to upgrade from the old format to the new one. I
>> have a test script (test.html) in that repository that tries an
>> upgrade (but fails, because it's not implemented yet).
>>> Thomas
>>> [1]: https://github.com/mirage/ocaml-git/blob/master/lib/memory.ml#L34
>> --
>> Dr Thomas Leonard        http://roscidus.com/blog/
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

Dr Thomas Leonard        http://roscidus.com/blog/
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.