package carton
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
- 3.1.0 (2021-13-01) Paris - France
- 3.0.0 (2021-08-01) Paris - France
- 2.1.3 (2020-30-06) Paris - France
- 2.1.2 (2019-14-11) Paris - France
- 2.1.1 (2019-10-04) Somone - Sénégal
- 2.1.0 (2019-07-10)
- 2.0.0 (2018-10-17)
- 1.11.3 (2017-11-20)
- 1.11.2 (2017-08-02)
- 1.11.1 (2017-07-25)
- 1.11.0 (2016-06-01)
- 1.10.1 (2017-04-15)
- 1.10.0 (2017-02-15)
- 1.9.3 (2016-11-09)
- 1.9.2 (2016-10-16)
- 1.9.1 (2016-10-04)
- 1.9.0 (2016-09-30)
- 1.8.0 (2016-05-03)
- 1.7.3 (2016-02-19)
- 1.7.2 (2016-01-21)
- 1.7.1 (2015-08-10)
- 1.7.0 (2015-08-06)
- 1.6.2 (2015-07-16)
- 1.6.1 (2015-07-14)
- 1.6.0 (2015-07-11)
- 1.5.3 (2015-07-10)
- 1.5.2 (2015-07-04)
- 1.5.1 (2015-06-18)
- 1.5.0 (2015-06-12)
- 1.4.11 (2015-03-11)
- 1.4.10 (2015-02-05)
- 1.4.9 (2015-02-04)
- 1.4.8 (2015-02-04)
- 1.4.7 (2015-02-03)
- 1.4.6 (2015-01-29)
- 1.4.5 (2015-01-19)
- 1.4.4 (2015-01-12)
- 1.4.3 (2014-12-19)
- 1.4.2 (2014-12-14)
- 1.4.1 (2014-12-4)
- 1.4.0 (2014-11-20)
- 1.3.0 (2014-10-16)
- 1.2.0: (2014-06-10)
- 1.1.0: (2014-06-02)
- 1.0.2: (2014-04-19)
- 1.0.1: (2014-04-10)
- 1.0.0: (2014-02-10)
- 0.10.2: (2014-01-20)
- 0.10.1: (2014-01-15)
- 0.10.0: (2014-01-14)
- 0.9.0: (2014-01-04)
Implementation of PACKv2 file in OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
carton-carton-v0.2.0.tbz
sha256=1672dc1262fe2b1fce03ab9e71e2767258ffbd284f3326e304a4a49b14d1d63d
sha512=be87e266a25c222a9e8214acf175289beaddc15670e54631733baf181ae80657d0553be1d793f686915a6aefdba0d69baf191bab860d8fd6db770f19b353bb39
doc/CHANGES.html
3.1.1 (2021-27-01) Paris - France
- Fix
git-unixand PACK files location (@dinosaure, #444, #443) - Initialise (as
git) correctly (add anHEADreference, at least) (@dinosaure, #443)
3.1.0 (2021-13-01) Paris - France
- Handle IP address on the endpoint (@dinosaure, #436)
3.0.0 (2021-08-01) Paris - France
- Rewrite of
ocaml-git(@dinosaure, #395) - Delete useless constraints on digestif's signature (@dinosaure, #399)
- Add support of CoHTTP with UNIX and MirageOS (@ulugbekna, #400)
- Add progress reporting on fetch command (@ulugbekna, #405)
- Lint dependencies on packages (
git-cohttp-unixandgit-cohttp-mirage) and update to the last version of CoHTTP (@hannesm, #407) - Fix internal
Cstruct_appendimplementation (@dinosaure, #401) - Implement shallow commit (@dinosaure, #402)
- Update to
conduit.3.0.0(@dinosaure, #408) (deleted by the integration ofmimic) - Delete use of
ocurl(@dinosaure, #410) - Delete the useless old
git-miragepackage (@hannesm, #411) - Fix about unresolved endpoint with
conduit.3.0.0(@dinosaure, #412) - Refactors fetch command (@ulugbekna, #404)
- Fix ephemerons about temporary devices (@dinosaure, #413)
- Implementation of
ogit-fetchas an example (@ulugbekna, #406) - Rename
nsstogit-nss(@dinosaure, #415) - Refactors
git-nss(@ulugbekna, #416) - Update README.md (@ulugbekna, #417)
- Replace deprecated
Fmtfunctions (@ulugbekna, #421) - Delete physical equality (@ulugbekna, #422)
- Rename
preludeargument byuses_git_transport(@ulugbekna, #423) - Refactors Smart decoder (@ulugbekna, #424)
- Constraint to use
fmt.0.8.7(@dinosaure, #425) - Small refactors in
git-nss(@dinosaure, #427) - Delete
conduit.3.0.0and replace it bymimic(@dinosaure, #428) - Delete the useless
verifyfunction onfetchandpush(@dinosaure, #429) - Delete
pin-dependsonawa(@dinosaure, #431)
2.1.3 (2020-30-06) Paris - France
- Move to
encoder.0.5(#393, @dinosaure) - Move to
angstrom.0.14.0(#384, @sternenseemann) - Add missing Time argument to
Resolver_mirage.Make_with_stack(#389, @talex5) - Fix .ocamlformat file (#389, @talex5)
- Enlarge internal buffer used to parse Git object (#389, @dinosaure)
- Update README.md (#383, @dinosaure)
- Use
mirage-cryptoinsteadnocrypto(#382, @hannesm) - Add constraint on
dunepackage (@kit-ty-kate)
2.1.2 (2019-14-11) Paris - France
- unlock
gitto use, at least,checkseum.0.0.9(#373, @dinosaure) - remove build directive on dune dependency (#374, @CraigFe)
- adapt to MirageOS 3.7.0 (#376, @hannesm)
- fix infinite loop with index file (version 2) (#378, @kit-ty-kate, @dinosaure)
2.1.1 (2019-10-04) Somone - Sénégal
- Replace Pervasives by Stdlib and depends on
stdlib-shimsvirtual package (@dinosaure, #372) - Add
pp_fetch_oneandpp_update_and_create(@dinosaure, @pascutto, @samoht, #370) git-miragedepends onconduit-mirageinsteadmirage-conduit(@dinosaure, #371)- Drop support of OCaml < 4.07.0
- Delete
mirage-fs-unixuseless dependency - Constraint to use only
decompress.0.9.0
2.1.0 (2019-07-10)
- Move to the last version of
decompress(@dinosaure, #366) - Check order of entries in a tree object (bug found by @samoht, fixed by @dinosaure, #365)
- Use
mmappackage (@dinosaure, #347, #360) - Update README.md (@tcoopman, @dinosaure, #337, #359)
trimthe window used to pack (@pqwy, @dinosaure, #357, #358)- Use lastest version of
lru.0.3.0(@pqwy, @dinosaure, #352, #356) - Fix smart protocol (fixed by @clecat and @dinosaure, feedbacks from @hannesm)
- Pull-request #351, #350, #338
Issues #335, #342, #346
- regression tests was added (@dinosaure)
- semantics about negociation was explained (@clecat)
- end-to-end tests partially done (@hannesm)
- Remove
sexplibdependency (@samoht, #349) - Fix smart protocol to accept empty response from
ls-remote(bug found by @hannesm, fixed by @dinosaure, #348) - Add
io-page-unixas dependency to testsgit-mirage(@dinosaure, #345) - Remove deprecated
Cstruct.add_len(replaced byke) (@dinosaure, #345) - Use
Uri.user_infoto be able to be authentified by a service like GitHub (@linse, review by @dinosaure, #341, #343) - avoid clash between
digestif.canddigestif.ocamlimplementation (same forcheckseum)
remove implementation dependencies on
git-unixandgit-mirage(bug found by @hannesm and @linse, fixed by @dinosaure, #339)This update should be fixed by
dune's variants and>= digestif.0.7.2and>= checkseum.0.1.0
- breaking-change add
etmpas already-allocated buffer to encode Git object (@dinosaure, #336)
- add
ke.0.3as new dependency
- consumed inputs for every entries in a tree (bug found by @zspicko, fixed by @dinosaure, #334)
2.0.0 (2018-10-17)
- New world, new version
1.11.3 (2017-11-20)
- add ocplib-endian to dependencies of git (#233, @hannesm)
1.11.2 (2017-08-02)
- Update to conduit.1.0 and cohttp.0.99 (#226, @samoht)
1.11.1 (2017-07-25)
- [git-unix] Fix linking issue of the
ogitbinary on some package configurations (#225, @samoht)
1.11.0 (2016-06-01)
- Add
ogit add-commit-parentto add a new parent to a given commit (#208, @samoht) - port to jbuilder (#209, @samoht)
- port to mtime 1.0 (#212, @dinosaure and @samoht)
- use Decompress instead of camlzip (#211, @dinosaure and @samoht)
1.10.1 (2017-04-15)
- Improve API docs (#201, @olleolleolle)
- Compat with cmdliner 1.0 (#202, @samoht)
- Fix typos and links in docs (@smeruelo and @olleolleolle)
1.10.0 (2017-02-15)
- Adapt to Mirage3 (@samoht, @avsm, @yomimono, @hannesm)
- Add IO.test_and_set to automatically update references (#185, @samoht)
Better Windows support (#187, @samoht)
- unix: Translate Git references into valid Windows filenames
- fix/work-around upstream issues to make the tests pass on Windows
- Split the package into 4 packages:
git,git-http,git-unixandgit-mirage(#189, @samoht)
1.9.3 (2016-11-09)
- Turn a bunch of info message into debug statements (#169, @samoht)
1.9.2 (2016-10-16)
- Do not depend on
ocaml-crcanymore: less C code means, easier to port to other MirageOS backends (#166, @g2p)
1.9.1 (2016-10-04)
- Cache all intermediate values when expending packed values. This speeds-up pack access quite a lot in practice, especially when the pack files are big (#163)
1.9.0 (2016-09-30)
- Use safe-string (#160, @samoht)
- Support camlzip 1.06 (#160, @samoht)
- Use topkg, remove pack (#158, @samoht)
1.8.0 (2016-05-03)
- References can point to non-commit hashes (#123, @samoht)
- Rename
Git.SHAintoGit.Hash(@samoht) - Remove
Git.Sync.populatebut addGit.Sync.cloneto replace the previousfetch+populate(#122, @samoht) - Fix the API so that references can point to any kind of hashes (#123, @samoht)
- Fix duplicated references when mixing packed and loose references (#124, @samoht)
- Use astring, logs and fmt (@samoht)
- Add
Store.size. Before, the only way to get the size of a file was to decompress the whole thing. The main win comes from getting the size of raw packed objects without decompressing. (#143, @talex5) - Workaround a memory leak in lwt: See ocsigen/lwt#229, which caused
IO.rec_fileand thus the watch mechanism on Unix to leak memory (#146, @samoht) - Fix performance regression when reading large files (#147, @chambart)
1.7.3 (2016-02-19)
- Git_unix now works on MinGW
1.7.2 (2016-01-21)
- Do not mmap files, as there is no way to easily control the unmap of bigarrays. This remove EMFILE errors under load (#133, @talex5)
- Fix comparison of entries in the index file. This fix a random issue which might happen when entries in a pack file are checkout and updated (@samoht)
1.7.1 (2015-08-10)
- Support cohtpp 0.19.1. (#119, @rgrinberg)
- Revert API break for the Sync functor. Now still takes only a
Store.Sas parameter. (#120)
1.7.0 (2015-08-06)
Changes to the
SearchAPI:- Remove
find_exn - the type
thas a new caseTree_rootto represent tree roots - the type
pathis now structured (not a list of strings anymore). this removes the confusing semantics of empty strings in paths.
- Remove
Changes to the
Global_graphAPI:closuretakes an optionalfullargument to work over commit objects only- All the arguments of
packare labelled and its result type has changed. - Add
keysto return the topological sort of keys in the graph.
Improve the size of pack files received when fetching (#115)
- advertise the fact that
ocaml-gitclients supportofs-deltaandthin-pack - Compute a minimal set of
havesto 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.Simplementations now expose theirInflateimplementation. - 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.Simplementations now expose theirDigestimplementation (#68) Better sync API (#113)
- Change the arguments of
Sync.fetch - Remove
Sync.clone - Add
Sync.populateto be called after a fetch to properly populate the local Git repository (similar to whatgit clonedoes). - Add
ogit clone --no-checkoutand makeogit clone --baremore similar to the samegitcommand.
- Change the arguments of
- Support Github http(s) URLs without .git (#111)
- Add a
dot_gitoptional parameter toStore.createto specify where the Git metadata should be stored (default is still<root>/.git). This is useful to properly supportbarerepositories (#110) - Full support for 32 bit platform (ie. continue the patch started in 1.6.2).
- Rework the
Git.PackandGit.Pack_indexAPI to speed-up random access. - Add a
Git.SHA.Arraymodule to work with contiguous arrays of SHA1. - Rename
Git.SHA.lenghttoGit.SHA.hex_lengthto avoid confusion. - Expose
Git.SHA.of_short_hexto create short hashes.Git.SHA.of_hexnow only accept 40 characters hexa-decimal strings. - Improve the output of
ogit cloneby showing progress when the pack file is downloaded and when the delta are resolved.
1.6.2 (2015-07-16)
- Support 32 bit platform by avoiding creating large strings. This also improve the performance of reading and synchronizin large pack files (#103, #105 @gregtatcam)
1.6.1 (2015-07-14)
- Fix a bug in
ogit pullusing 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-gitpackage.
1.6.0 (2015-07-11)
- Allow some references to contain pointer to other references (#96)
- Improve the support for 32bit architectures (#97)
- Add
Reference.pp_head_contentsandReference.equal_head_contents. - Remove
Store.clearand replace it byMemory.clear,Memory.clear_allandFS.remove. This let users have a finer control over the memory consumption of the program over time (related to #90) - Rename all
pp_humfunctions intopp. - Fix regression in
Sync.fetchand add unit-tests (running only in slow mode). - Fix reading of
.git/HEADwhen the contents is a commit hash. - Depends on
Stringextfor all the extra string function needed.
1.5.3 (2015-07-10)
- Fix listing of packed references (#98)
1.5.2 (2015-07-04)
- 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 - Partial support for 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
1.5.1 (2015-06-18)
- 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)
1.5.0 (2015-06-12)
- 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-fileto behave exactly asgit cat-fileThe previous command is renamed toogit cat(#75 by @codinuum) ogitnow supports short hashes instead of full SHA1 (#75 by @codinuum)- Add
Git.Pack.Raw.readto read raw pack files (#75 by @codinuum) Git.Pack_index.tnow uses a cache of entries. This is more efficient than the previous representation (#75 by @codinuum)- Add
Git.Pack_index.memto find an entry in the pack index cache (#75 by @codinuum) - Add
Git.Pack_index.find_offsetto find an offset in the pack index cache (#75 by @codinuum) - Add
Git.Packed_value.to_valueto unpack a value stored in a pack file (#75 by @codinuum) - Support synchronisation for MirageOS unikernels (#70)
1.4.11 (2015-03-11)
- Fix multi round-trips in the smart HTTP protocol. This fixes depth-limited clones (#71) and fetches.
- Create the
git.httplibrary for abstracting away bits of the smart HTTP protocol. - Add
User-Agentin the headers of the smart HTTP protocol. This makesbitbucket.orghappy. (#66, patch from @vklquevs)
1.4.10 (2015-02-05)
- Fix support for the smart HTTP protocol (report by @talex5, mirage/irmin#138)
1.4.9 (2015-02-04)
- Remove the
OGITTMPDIRand alway store temp files undergit/tmp(mirage/irmin#132)
1.4.8 (2015-02-04)
- Fix LRU cache: SHA1 should be unique in the cache (regression introduced in 1.4.3). This was causing confusing read results under load.
- Reading objects now updates the LRU cache
- Fix a regression in
ogit cat-filewhich were displaying nothing for small objects.
1.4.7 (2015-02-03)
- Fix the filesystem updates for non-bare repositories (reported by @avsm)
Git.write_indexnow takes an optionalindexargument- Index entries should be fixed alphabetically
- Remove raw printf (#60)
- More flexibility on where to write temp files. The directory name can be configured by write calls, and the default is
OGITTMPDIRif set, thenFilename.get_temp_dir_name-- as it was in 1.4.5, see #51
1.4.6 (2015-01-29)
- Expose
Git.Value.Cache.set_sizeto change the LRU cache size - Reduce the default LRU cache size (in 1.4.4 it was set to 64k, now it's 512)
- More precise type for commit dates
- Add
git.topto load toplevel printers for Git values
1.4.5 (2015-01-19)
- Support
packed-refsfiles, to read references packed bygit gc(reported by Gregory Tsipenyuk) - Fix the filesystem backend when TMPDIR is not on the same partition as the Git repository (#51, patch from @vklquevs)
1.4.4 (2015-01-12)
- Support the smart HTTP Git protocol (#26)
- Best-effort creation of files when expanding the index into the filesystem: Skip the invalid filenames and continue. Users are expected to sanitize their filenames if they want to use a non-bare repository (#11)
- Overwrite changed file when expanding the index into the filesystem (#4)
- Do not recompute the hash of blob files when expanding the index into the filesystem. This help fixing a speed issue with non-bare repo with lots of file.
- Rename
{write,read}_cacheto{write,read}_index - Rename Cache to Index
- Expose the protocol capabilities to the client
- Support side-band-64k protocol capability (#44)
- Fix support for git+ssh (#39)
- Expose zlib compression level (#41)
- Maintain a cache of opened files (#29, Pierre Chambart)
1.4.3 (2014-12-19)
- Fix regression introduced in 1.4.3 appearing when synchronising big repositories (#38)
- Fix concurrent read/write by using an atomic rename (#35)
- Tree objects can also point to commits (@codinuum)
- Reduce allocation (@codinuum)
- Use LRU cache instead of an unbounde Hashtbl (code imported for Simon Cruanes's CCache implementation)
- Remove the crazy unbounded caching in Git.FS. Use the LRU everywhere (#22)
- Fix fd leaking (#29)
- Update to dolog.1.0
- Remove dependency to camlp4
- Remove lots of warnings
- Move
Git_unixandGit_miragein their own subdirs as it was causing issues to oasis (#5, Simon Cruanes) - Use
Bytesinstead ofString(#5, Simon Cruanes)
1.4.2 (2014-12-14)
- Fix
Git_unix.IO.write_fileto work on empty files
1.4.1 (2014-12-4)
- Fix
ogit --version(#22) - Expose the backend type
- Expose Git_unix.Sync.IO
1.4.0 (2014-11-20)
- Port to Conduit 0.6.0 API.
- Depend on
ocaml-hex
1.3.0 (2014-10-16)
- Remove the dependency on
core_kernel - Use
ocaml-nocryptoinstead ofocaml-sha1
1.2.0: (2014-06-10)
- Can consume Mirage's
V1_LWT.FSsignature to generate a persistent store. This allows to store Git repos directly inside raw block devices (no need of filesystem anymore). - Minor API refactoring to abstract the Unix layer cleanly.
- Expose a filesystem functor to create filesystem backends independent of Unix.
- Simplify the ocamlfind packages: there's only
gitandgit.unix.
1.1.0: (2014-06-02)
- Support for push (not optimized at all)
- Fix the generation of
.dotfile representing the Git repo - Fix serialization of executable files in the cache
- Fix reading the total number of keys in a pack index file
- Use
ocaml-conduitto set-up connections with remote repositories - USe
ocaml-urito specify Git Remote Identifiers - Depend the implementation of patience diff in pure OCaml (unused for now)
1.0.2: (2014-04-19)
- Catch, improve and propagate Zlib inflation errors (which usually pop-ups on incomplete files)
1.0.1: (2014-04-10)
- Escape invalid chars in path names
- Do not link with camlp4 when using as a libray
1.0.0: (2014-02-10)
- Support for reading and writing pack indexes
- Support for reading and writing pack files
- Refactor the API: each Git object has now its own file, with a consistent signature
ogit clonenow correctly set-up the cache file (which means thatgit statusandgit diffwill now work as expected on a repository created byogit)- Add
ogit read-tree COMMIT - Add
ogit ls-files [--all] - Support for reading and writing cache files
0.10.2: (2014-01-20)
- Strip the contents of references file
- Improve the pretty-printing of SHA1 values
- Add some info message when reading files in the local backend
0.10.1: (2014-01-15)
- Add missing files (fix build)
- Add
GitTypes.S.mem_reference - Add
GitTypes.S.remove_reference - Add
GitTypes.S.memto check if an object exists in the store
0.10.0: (2014-01-14)
- Support for in-memory stores
- Add
ogit cat-file - Add
ogit ls-remote - Add
ogit fetch - Add
ogit clone - Switch non-blocking IO using Lwt
0.9.0: (2014-01-04)
- Initial release
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
- 3.1.0 (2021-13-01) Paris - France
- 3.0.0 (2021-08-01) Paris - France
- 2.1.3 (2020-30-06) Paris - France
- 2.1.2 (2019-14-11) Paris - France
- 2.1.1 (2019-10-04) Somone - Sénégal
- 2.1.0 (2019-07-10)
- 2.0.0 (2018-10-17)
- 1.11.3 (2017-11-20)
- 1.11.2 (2017-08-02)
- 1.11.1 (2017-07-25)
- 1.11.0 (2016-06-01)
- 1.10.1 (2017-04-15)
- 1.10.0 (2017-02-15)
- 1.9.3 (2016-11-09)
- 1.9.2 (2016-10-16)
- 1.9.1 (2016-10-04)
- 1.9.0 (2016-09-30)
- 1.8.0 (2016-05-03)
- 1.7.3 (2016-02-19)
- 1.7.2 (2016-01-21)
- 1.7.1 (2015-08-10)
- 1.7.0 (2015-08-06)
- 1.6.2 (2015-07-16)
- 1.6.1 (2015-07-14)
- 1.6.0 (2015-07-11)
- 1.5.3 (2015-07-10)
- 1.5.2 (2015-07-04)
- 1.5.1 (2015-06-18)
- 1.5.0 (2015-06-12)
- 1.4.11 (2015-03-11)
- 1.4.10 (2015-02-05)
- 1.4.9 (2015-02-04)
- 1.4.8 (2015-02-04)
- 1.4.7 (2015-02-03)
- 1.4.6 (2015-01-29)
- 1.4.5 (2015-01-19)
- 1.4.4 (2015-01-12)
- 1.4.3 (2014-12-19)
- 1.4.2 (2014-12-14)
- 1.4.1 (2014-12-4)
- 1.4.0 (2014-11-20)
- 1.3.0 (2014-10-16)
- 1.2.0: (2014-06-10)
- 1.1.0: (2014-06-02)
- 1.0.2: (2014-04-19)
- 1.0.1: (2014-04-10)
- 1.0.0: (2014-02-10)
- 0.10.2: (2014-01-20)
- 0.10.1: (2014-01-15)
- 0.10.0: (2014-01-14)
- 0.9.0: (2014-01-04)