Releases: mirage/ocaml-git
Releases · mirage/ocaml-git
Support latest cohttp and revert API break.
- Support cohtpp 0.19.1. (#119, @rgrinberg)
- Revert API break for the Sync functor. Now still takes only a
Store.S
as parameter. (#120)
SHA and Inflate abstractions
- Changes to the
Search
API:- Remove
find_exn
- the type
t
has a new caseTree_root
to represent tree roots - the type
path
is now structured (not a list of strings anymore).
this removes the confusing semantics of empty strings in paths.
- Remove
- Changes to the
Global_graph
API:closure
takes an optionalfull
argument to work over
commit objects only- All the arguments of
pack
are labelled and its result type
has changed. - Add
keys
to return the topological sort of keys in the graph.
- Improve the size of pack files received when fetching (#115)
- advertise the fact that
ocaml-git
clients supportofs-delta
andthin-pack
- Compute a minimal set of
haves
to send to the server after
the discovery phase, where we already know all the server
references (#114)
- advertise the fact that
- Unpack shallow pack files after a fetch
- Full support for shallow packs (#81)
- During fetch, we now respect the "allow-reachable-sha1-in-want"
server (non-)capability. A proper error is reported to the client
if that's not the case. - Parametrize the codebase over the Inflate implementation. Useful
to change the inflate algorithm (or to not use any at all, which
would be what we want for big files and/or for efficient writes)
and to simplify the port to other backends.Store.S
implementations
now expose theirInflate
implementation. - Parametrize the codebase over the SHA implementation. Useful to change
the SHA algorihm (the unix backend provides SHA256) or simplify the
port to other backends (the mirage backend uses a pure OCaml implementation
extracted from uuidm).Store.S
implementations now expose theirDigest
implementation (#68) - Better sync API (#113)
- Change the arguments of
Sync.fetch
- Remove
Sync.clone
- Add
Sync.populate
to be called after a fetch to properly populate
the local Git repository (similar to whatgit clone
does). - Add
ogit clone --no-checkout
and makeogit clone --bare
more similar
to the samegit
command.
- Change the arguments of
- Support Github http(s) URLs without .git (#111)
- Add a
dot_git
optional parameter toStore.create
to specify where
the Git metadata should be stored (default is still<root>/.git
). This
is useful to properly supportbare
repositories (#110) - Full support for 32 bit platform (ie. continue the patch started in 1.6.2).
- Rework the
Git.Pack
andGit.Pack_index
API to speed-up random access. - Add a
Git.SHA.Array
module to work with contiguous arrays of SHA1. - Rename
Git.SHA.lenght
toGit.SHA.hex_length
to avoid confusion. - Expose
Git.SHA.of_short_hex
to create short hashes.Git.SHA.of_hex
now
only accept 40 characters hexa-decimal strings. - Improve the output of
ogit clone
by showing progress when the pack file
is downloaded and when the delta are resolved.
Support 32bit architectures
- Support 32 bit platform by avoiding creating large strings. This also improve
the performance of reading and synchronizin large pack files
(#103, @gregtatcam)
Bug fixes in the smart HTTP protocol
- Fix a bug in
ogit pull
using the smart HTTP protocol when the HTTP temporary
buffer could sometimes be overfill. - Avoid closing twice the same fd in the smart HTTP protocol.
- Avoid the GC to close a fd while we are still using a channel built on top of
it -- this affects the smart HTTP protocol only. - Add an opam file for the
mirage-git
package.
Fix regressions in `Sync.clone`, fix reading hashes in `.git/HEAD`, change API to reset the store and start to improve 32bit support
- Allow some references to contain pointer to other references (#96)
- Improve the support for 32bit architectures (#97)
- Add
Reference.pp_head_contents
andReference.equal_head_contents
. - Remove
Store.clear
and replace it byMemory.clear
,Memory.clear_all
andFS.remove
. This let users have a finer control over the memory
consumption of the program over time (related to #90) - Rename all
pp_hum
functions intopp
. - Fix regression in
Sync.fetch
and add unit-tests (running only in slow mode). - Fix reading of
.git/HEAD
when the contents is a commit hash. - Depends on
Stringext
for all the extra string function needed.
Fix listing of packed references
- Fix listing of packed references (#98)
Fix serialization of dates, support shallow packs, fix (?) memory leak, etc
- Fix handling of empty paths (#89)
- Fix the serialization of dates in commit objects
- Expose
Git.Packed_value.PIC.pretty
- Improve the efficiency of
Git_unix.FS.remove
- Support shallow packs (#81)
- Fix an mmap leak introduced in
1.5.*
(#90) - Remove the dependency to OUnit for the tests
- Improve the pretty printers and the output of
ogit
filesystem expansion and remote refs fixes
Improve the pack file API, support conduit 0.8.4, support for short hashes, add mirage sync support
- Compatibility with
cohttp.0.18.
(#80 by @rgrinberg) - Simplify the mirage sync API to use
conduit 0.8.4
(breaking API changes) - Change
ogit cat-file
to behave exactly asgit cat-file
The previous command is renamed toogit cat
(#75 by @codinuum) ogit
now supports short hashes instead of full SHA1 (#75 by @codinuum)- Add
Git.Pack.Raw.read
to read raw pack files (#75 by @codinuum) Git.Pack_index.t
now uses a cache of entries. This is more efficient
than the previous representation (#75 by @codinuum)- Add
Git.Pack_index.mem
to find an entry in the pack index cache
(#75 by @codinuum) - Add
Git.Pack_index.find_offset
to find an offset in the pack index
cache (#75 by @codinuum) - Add
Git.Packed_value.to_value
to unpack a value stored in a pack file
(#75 by @codinuum) - Support synchronisation for MirageOS unikernels (#70)
Fix the smart HTTP protocol
- Fix multi round-trips in the smart HTTP protocol. This fixes
depth-limited clones (#71) and fetches. - Create the
git.http
library for abstracting away bits of the
smart HTTP protocol. - Add
User-Agent
in the headers of the smart HTTP protocol. This
makesbitbucket.org
happy. (#66, patch from @vklquevs)