Skip to content

Releases: mirage/ocaml-git

Support latest cohttp and revert API break.

21 Jan 19:10
Compare
Choose a tag to compare
  • 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

10 Aug 17:10
Compare
Choose a tag to compare
  • Changes to the Search API:
    • Remove find_exn
    • the type t has a new case Tree_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.
  • Changes to the Global_graph API:
    • closure takes an optional full 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 support ofs-delta
      and thin-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)
  • 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 their Inflate 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 their Digest
    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 what git clone does).
    • Add ogit clone --no-checkout and make ogit clone --bare more similar
      to the same git command.
  • Support Github http(s) URLs without .git (#111)
  • Add a dot_git optional parameter to Store.create to specify where
    the Git metadata should be stored (default is still <root>/.git). This
    is useful to properly support bare repositories (#110)
  • Full support for 32 bit platform (ie. continue the patch started in 1.6.2).
  • Rework the Git.Pack and Git.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 to Git.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

17 Jul 15:00
Compare
Choose a tag to compare
  • 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

14 Jul 15:59
Compare
Choose a tag to compare
  • 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

11 Jul 20:55
Compare
Choose a tag to compare
  • Allow some references to contain pointer to other references (#96)
  • Improve the support for 32bit architectures (#97)
  • Add Reference.pp_head_contents and Reference.equal_head_contents.
  • Remove Store.clear and replace it by Memory.clear, Memory.clear_all
    and FS.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 into pp.
  • 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

11 Jul 15:14
Compare
Choose a tag to compare
  • Fix listing of packed references (#98)

Fix serialization of dates, support shallow packs, fix (?) memory leak, etc

06 Jul 13:14
Compare
Choose a tag to compare
  • 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

18 Jun 15:53
Compare
Choose a tag to compare
  • Fix filesystem expansion when a filen ame becomes a directory name or when
    a directory name becomes a file name (#87)
  • Fix the order of entries in the tree objects (#86)
  • Fix the compilation of tests (#85)
  • Fetch all remote refs on synchronize (#83, by @AltGr)

Improve the pack file API, support conduit 0.8.4, support for short hashes, add mirage sync support

12 Jun 10:55
Compare
Choose a tag to compare
  • 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 as git cat-file
    The previous command is renamed to ogit 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

10 Jun 18:16
Compare
Choose a tag to compare
  • 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
    makes bitbucket.org happy. (#66, patch from @vklquevs)