Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog for v0.x Series
## v0.3.0
_19 October 2019_
* **Implement `Xgit.Plumbing.CatFile.Commit`. This is an API equivalent to `git cat-file -p` when the target object is of type `commit`. (#207)
* Implement `Xgit.Core.Commit.from_object/1`. (#204, #205, #206)
* [API BREAKING] Make `Xgit.Util.*` modules private. (#201)
* [API BREAKING] Remove `Xgit.Util.RawParseUtils`. (#195, #198, #199, #200)
* Move `parse_timzeone_offset` into `Xgit.Core.PersonIdent`. (#197)
* Implement `Xgit.Util.ParseCharlist.decode_ambiguous_charlist/1`. (#196)
* Bump credo from 1.1.4 to 1.1.5 (#194)
## v0.2.5
_08 October 2019_
* **Implement `Xgit.Plumbing.CommitTree`.** (#191)
* Introduce `Xgit.Core.Commit` struct. (#182)
* [BUG FIX]: Unable to decode certain `tree` structures. (#183)
* Implement `Xgit.Core.Commit.to_object/1`. (#184)
* Fix broken `coveralls-ignore` comments. (#186)
* Refactor the basics of how tests are set up. (#187)
* Clean up issues flagged by ElixirLS. (#188)
* `OnDiskRepoTestCase`: Make it possible to override the temporary directory for testing purposes. (#189, #190)
## v0.2.4
_28 September 2019_
* **Implement `Xgit.Plumbing.ReadTree`.** This is an API equivalent to `git read-tree`. (#180)
* First benchmark: Looking at `Xgit.Repository.WorkingTree.ParseIndexFile.from_iodevice/1`. (#167)
* Implement `WorkingTree.reset_dir_cache/1`. (#169)
* Implement `Xgit.Repository.WorkingTree.write_tree/2`. (#170)
* Refactor `Xgit.Plumbing.WriteTree` to use `WorkingTree.write_tree/2`. (#171)
* Minimal extension support for index file parsing. (#173)
* Bump `dialyxir` from 1.0.0-rc.6 to 1.0.0-rc.7 (#174)
* Pull out index file as part of WorkingTree state. (#177)
* Implement `Xgit.Repository.WorkingTree.read_tree/3`. (#176)
## v0.2.3
_16 September 2019_
* **Implement `Xgit.Plumbing.CatFile.Tree`.** This is an API equivalent to `git cat-file -p` when the target object is of type `tree`. (#165)
* `Object.valid?/1`: Require that content has an implementation for `ContentSource` protocol. (#161)
* [BUG FIX] `OnDisk`'s implementation of `get_object/2` didn't contain a valid `ContentSource`. (#162)
* Implement `Xgit.Core.ObjectId.from_raw_object_id/1`. (#163)
* Implement `Xgit.Core.Tree.from_object/1`. (#164)
## v0.2.2
_07 September 2019_
* **Implement `Xgit.Plumbing.WriteTree`.** This is an API equivalent to `git write-tree`. (#158)
* Fix `@spec` for `Xgit.Plumbing.HashObject.run/2`. (#142)
* Implement `Xgit.Core.DirCache.fully_merged?/1`. (#143)
* Remove redundant alias in `Xgit.Core.Object`. (#144)
* Implement `Xgit.Core.FilePath.ensure_trailing_separator/1`. (#145)
* Implement `Xgit.Core.FilePath.starts_with?/2`. (#146)
* Implement `Xgit.Core.Tree` struct. (#147)
* Implement `Xgit.Core.FileMode.to_octal/1`. (#149)
* Implement `Xgit.Core.ObjectId.to_binary_iodata/1`. (#150)
* Bump ex_doc from 0.21.1 to 0.21.2 (#151)
* Bump credo from 1.1.3 to 1.1.4 (#152)
* Implement `Xgit.Core.Tree.to_object/1`. (#153)
* `Xgit.Core.FileMode`: Replace `to_octal/1` with `to_short_octal/1`. (#154)
* `DirCache.valid?/1` should not allow a file and directory to exist at the same prefix. (#155)
* Implement `Xgit.Core.DirCache/to_tree_objects/2`. (#156)
* Implement `Xgit.Repository.has_all_object_ids?/2`. (#157)
## v0.2.1
_01 September 2019_
* Force code coverage for cases where a literal value is returned. (#122)
## v0.2.0
_28 August 2019_
* **This is a refactoring release. It breaks API compatibility, thus the secondary version bump.**
* Introduce a common data type for less-than / equal / greater-than comparisons. (#128)
* [API BREAKING] Refactor file path code into new module `Xgit.Core.FilePath`. (#129)
* Introduce `Xgit.Core.DirCache.Entry.stage` type for index file stage references. (#130)
* [API BREAKING] Merge `Xgit.Core.ValidateObject` into `Xgit.Core.Object`. (#132)
* Share code for finding working tree in plumbing command modules. (#134)
* Update several dependencies. (#135, #136, #137)
## v0.1.6
_27 August 2019_
* **Implement `Xgit.Plumbing.UpdateIndex.CacheInfo`. (#125)** This is an API equivalent of `git update-index --cacheinfo`.
* Implement `DirCache.add_entries/2`. (#97)
* `Xgit.Util.TrailingHashDevice`: Add support for writing files. (#108)
* `Xgit.Util.NB`: Add encode_uint32 function. (#109)
* Fix `@type` declaration for `ParseIndexFile.from_iodevice_reason`. (#110)
* `FolderDiff`: Expose `assert_files_are_equal/2`. (#111)
* Implement `Xgit.Util.NB.encode_uint16/1`. (#112)
* Implement `Xgit.Repository.WorkingTree.WriteIndexFile`. (#115)
* Implement `Xgit.Core.DirCache.remove_entries/2`. (#119)
* Implement `Xgit.Repository.WorkingTree.update_dir_cache/3`. (#123)
## v0.1.5
_19 August 2019_
* **This is a bug fix and optimization release.**
* When reading `.git/index` file, verify the trailling SHA-1 hash. (#98, #99, #100, #101, #102, #103)
* Generate code coverage for `Xgit.Util.UnzipStream` `:continue` case. (#104)
* Remove unnecessary data transformations in `Xgit.Repository.OnDisk.PutLooseObject`. (#105)
## v0.1.4
_17 August 2019_
* Fix logo in exdoc. (#95)
## v0.1.3
_17 August 2019_
* Fix a couple minor issues in documentation. (#92, #93, #94)
## v0.1.2
_17 August 2019_
* **Implement `Xgit.Plumbing.LsFiles.Stage`. (#90)** This is an API equivalent of `git ls-files --stage`.
* Implement `Xgit.Repository.WorkingTree`. (#72, #80, #89)
* Implement `Xgit.Core.DirCache`. (#65, #70, #71, #73, #85)
* Automatically attach a working tree to on-disk repository. (#84)
* Implement `Xgit.Util.FileSnapshot` (borrowed from old jgit port). (#83)
* Add Elixir 1.9.1 and OTP 22.0 to test matrix. (#82)
* Add `valid?/1` test functions to most `Xgit.Core.*` modules. (#74, #76, #77, #78)
* Add a second implementation (in-memory) of `Xgit.Repository`. (#68)
## v0.1.1
_10 August 2019_
* **Implement `Xgit.Plumbing.CatFile`. (#59)**
* Implement `Xgit.Util.UnzipStream`. (#51)
* Fix documentation for `Repository.handle_put_loose_object/2`. (#53)
* Implement `Xgit.Repository.get_object/2`. (#54)
* Add Xgit logo and hex.pm badges. (#55)
* Change all `{:error, (string)}` tuples to be `{:error, (atom)}`. (#58)
* Update `@spec` documentation to call out all possible reason codes. (#60)
* Add Dialyxir as dev-only dependency and fix warnings it reported. (#61)
## v0.1.0
_03 August 2019_
* **Initial public release of this version.**
* Implement `Xgit.Plumbing.HashObject`.
* Implement `Xgit.Repository.OnDisk.create/1`.