Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[API BREAKING] Refactor file path code into new module Xgit.Core.FilePath #129

merged 5 commits into from Aug 28, 2019


Copy link

scouten commented Aug 28, 2019

Changes in This Pull Request

File path is effectively part of the core data model.

  • Group code that was scattered in two different modules into one.
  • Introduce a new @type: Xgit.Core.FilePath.t to unify the vocabulary for speaking about git repo-relative file paths (which are byte lists, not Elixir Strings).

This API breaks compatibility with existing code, so the next release will need to be labeled 0.2.0.


  • This PR represents a single feature, fix, or change.
  • All applicable changes have been documented.
  • There is test coverage for all changes.
  • Any code ported from jgit maintains all existing copyright and license notices.
  • If new files are ported from jgit, the path to the corresponding file(s) is included in the header comment.
  • Any TO DO items (or similar) have been entered as GitHub issues and the link to that issue has been included in a comment. n/a
scouten added 3 commits Aug 28, 2019
Add @type declaration for FilePath.t.

Part of a larger refactoring.
Make sure documentation refers to FilePath.t in all appropriate cases.
@scouten scouten self-assigned this Aug 28, 2019
scouten added 2 commits Aug 28, 2019
@scouten scouten merged commit 084179d into master Aug 28, 2019
2 checks passed
2 checks passed
continuous-integration/travis-ci/pr The Travis CI build passed
coverage/coveralls Coverage remained the same at 100.0%
@scouten scouten deleted the refactor-file-path branch Aug 28, 2019
scouten added a commit that referenced this pull request Aug 31, 2019
* master:
  Fix typo in changelog. (#139)
  Prepare 0.2.0 release. (#138)
  Update deps-of-dependencies. (#137)
  Upgrade to excoveralls 0.11.2. (#136)
  Update Credo to 1.1.3. (#135)
  Share code for finding working tree in plumbing command modules. (#134)
  [API BREAKING] Merge ValidateObject into Object. (#132)
  Fix up a couple of type specs that should have used FilePath.t. (#131)
  Introduce `stage` type for index file stage references. (#130)
  [API BREAKING] Refactor file path code into new module Xgit.Core.FilePath (#129)
  Introduce a common data type for less-than / equal / greater-than comparisons. (#128)
  Prepare 0.1.6 release. (#127)
  Correct @SPEC for WorkingTree.update_dir_cache/3. (#126)
  Implement Xgit.Plumbing.UpdateIndex.CacheInfo. (#125)
  Fix a couple of bugs I noticed in update_dir_cache. (#124)
  Implement Xgit.Repository.WorkingTree.update_dir_cache/3. (#123)

# Conflicts:
#	lib/xgit/core/dir_cache.ex
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
1 participant
You can’t perform that action at this time.