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

[MirageOS-devel] release 1.7.0 of ocaml-git



I've just release a new version of ocaml-git. It's quite a major patch:

120 commits, 65 changed files with 4,596 additions and 3,364 deletions.

Few things worth noting:

- the clone/fetch functions are now considered stable and well tested  for the 
3 supported protocols (git://, http(s):// and git+ssh://); they were 
experimental before this release, and use to break regularly. Now they come 
with extensive functional tests. Possible missing but useful features is 
support for the `multi-ack*`[1] capability. Especially the fetch function seems 
quasi-optimal in term of data exchanged over the network (at least it is 
similar to Git on the few examples I came up with). But this is hard to test a 
bit more systematically ...

- the implementation is now abstracted over the SHA implementation. That's 
useful to switch to a pure OCaml implementation of SHA1 (extracted from uuidm) 
for the Mirage backend so that can be compiled to JavaScript but it can also be 
used to use a different SHA algorithm. The unix backend exposes a SHA256 (via 
nocrypto). This is completely untested though as I haven't found any Git server 
implementation using something different than SHA1.

- the implementation is now abstracted over the compression algorithm. Git use 
zlib and the Unix backend exposes bindings to zlib (via camlzip). Other 
backends (such as the Javascript one) might choose a different compression 
function (such as the identity function). `git fetch` in the browser will still 
need to be able to inflate zlib-compressed packs, but that easy enough and pure 
OCaml implementation are already available (under LGPL[2] or BSD[3]).

The full list of CHANGES is rather long and is available at the usual place[4].

I'll work now on integrating the small (but breaking) API changes into Irmin. 

Best,
Thomas

[1]: 
https://github.com/git/git/blob/master/Documentation/technical/protocol-capabilities.txt#L32
[2]: https://github.com/ygrek/ocaml-extlib/blob/master/src/unzip.ml 
[3]: http://www.elliottoti.com/code/zlib/zlib.ml.html 
[4]: https://github.com/samoht/ocaml-git/blob/master/CHANGES.md
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


 


Rackspace

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