Change Log

v2.3.3 (2024-12-04)

Full Changelog

Changes since v2.3.2:

  • c25e5e0 test: add tests for spaces in the git binary path or the working dir
  • 5f43a1a fix: open3 errors on binary paths with spaces
  • 60b58ba test: add #run_command for tests to use instead of backticks

v2.3.2 (2024-11-19)

Full Changelog

Changes since v2.3.1:

  • 7646e38 fix: improve error message for Git::Lib#branches_all

v2.3.1 (2024-10-23)

Full Changelog

Changes since v2.3.0:

  • e236007 test: allow bin/test-in-docker to accept the test file(s) to run on command line
  • f4747e1 test: rename bin/tests to bin/test-in-docker
  • 51f781c test: remove duplicate test from test_stashes.rb
  • 2e79dbe Fixed "unbranched" stash message support:
  • da6fa6e Conatinerised the test suite with Docker:
  • 2e23d47 Update instructions for building a specific version of Git
  • 70565e3 Add Git.binary_version to return the version of the git command line

v2.3.0 (2024-09-01)

Full Changelog

Changes since v2.2.0:

  • f8bc987 Fix windows CI build error
  • 471f5a8 Sanatize object ref sent to cat-file command
  • 604a9a2 Make Git::Base#branch work when HEAD is detached

v2.2.0 (2024-08-26)

Full Changelog

Changes since v2.1.1:

  • 7292f2c Omit the test for signed commit data on Windows
  • 2d6157c Document this gem's (aspirational) design philosophy
  • d4f66ab Sanitize non-option arguments passed to git name-rev
  • 0296442 Refactor Git::Lib#rev_parse
  • 9b9b31e Verify that the revision-range passed to git log does not resemble a command-line option
  • dc46ede Verify that the commit-ish passed to git describe does not resemble a command-line option
  • 00c4939 Verify that the commit(s) passed to git diff do not resemble a command-line option
  • a08f89b Update README
  • 737c4bb ls-tree optional recursion into subtrees

v2.1.1 (2024-06-01)

Full Changelog

Changes since v2.1.0:

  • 6ce3d4d Handle ignored files with quoted (non-ASCII) filenames
  • dd8e8d4 Supply all of the specific color options too
  • 749a72d Memoize all of the significant calls in Git::Status
  • 2bacccc When core.ignoreCase, check for untracked files case-insensitively
  • 7758ee4 When core.ignoreCase, check for deleted files case-insensitively
  • 993eb78 When core.ignoreCase, check for added files case-insensitively
  • d943bf4 When core.ignoreCase, check for changed files case-insensitively

v2.1.0 (2024-05-31)

Full Changelog

Changes since v2.0.1:

  • 93c8210 Add Git::Log#max_count
  • d84097b Update YARDoc for a few a few method

v2.0.1 (2024-05-21)

Full Changelog

Changes since v2.0.0:

  • da435b1 Document and add tests for Git::Status
  • c8a77db Fix Git::Base#status on an empty repo
  • 712fdad Fix Git::Status#untracked when run from worktree subdir
  • 6a59bc8 Remove the Git::Base::Factory module

v2.0.0 (2024-05-10)

Full Changelog

Changes since v2.0.0.pre4:

  • 1afc4c6 Update 2.x release line description
  • ed52420 Make the pull request template more concise
  • 299ae6b Remove stale bot integration
  • efb724b Remove the DCO requirement for commits

v2.0.0.pre4 (2024-05-10)

Full Changelog

Changes since v2.0.0.pre3:

  • 56783e7 Update create_github_release dependency so pre-releases can be made
  • 8566929 Add dependency on create_github_release gem used for releasing the git gem
  • 7376d76 Refactor errors that are raised by this gem
  • 7e99b17 Update documentation for new timeout functionality
  • 705e983 Move experimental builds to a separate workflow that only runs when pushed to master
  • e056d64 Build with jruby-head on Windows until jruby/jruby#7515 is fixed
  • ec7c257 Remove unneeded scripts to create a new release
  • d9570ab Move issue and pull request templates to the .github directory
  • e4d6a77 Show log(x).since combination in README

v2.0.0.pre3 (2024-03-15)

Full Changelog

Changes since v2.0.0.pre2:

  • 5d4b34e Allow allow_unrelated_histories option for Base#pull

v2.0.0.pre2 (2024-02-24)

Full Changelog

Changes since v2.0.0.pre1:

  • 023017b Add a timeout for git commands (#692)
  • 8286ceb Refactor the Error heriarchy (#693)

v2.0.0.pre1 (2024-01-15)

Full Changelog

Changes since v1.19.1:

  • 7585c39 Change how the git CLI subprocess is executed (#684)
  • f93e042 Update instructions for releasing a new version of the git gem (#686)
  • f48930d Update minimum required version of Ruby and Git (#685)

v1.19.1 (2024-01-13)

Full Changelog

Changes since v1.19.0:

  • f97c57c Announce the 2.0.0 pre-release (#682)

v1.19.0 (2023-12-28)

Full Changelog

Changes since v1.18.0:

  • 3bdb280 Add option to push all branches to a remote repo at one time (#678)
  • b0d89ac Remove calls to Dir.chdir (#673)
  • e64c2f6 Refactor tests for read_tree, write_tree, and commit_tree (#679)
  • 0bb965d Explicitly name remote tracking branch in test (#676)
  • 8481f8c Document how to delete a remote branch (#672)
  • dce6816 show .log example with count in README, fixes #667 (#668)
  • b1799f6 Update test of 'git worktree add' with no commits (#670)
  • dd5a24d Add --filter to Git.clone for partial clones (#663)

v1.18.0 (2023-03-19)

Full Changelog

Changes since v1.17.2:

  • 3c70 Add support for --update-head-ok to fetch (#660)
  • b53d Do not generate yard documentation when building in TruffleRuby (#659)
  • 5af1 Correctly report command output when there is an error (#658)
  • b27a Add test to ensure that Git.open works to open a submodule (#655)
  • 5b0e Update Git.clone to set multiple config variables (#653)

v1.17.2 (2023-03-07)

Full Changelog

Changes since v1.17.1:

  • f43d6 Fix branch name parsing to handle names that include slashes (#651)

v1.17.1 (2023-03-06)

Full Changelog

Changes since v1.17.0:

  • 774e Revert introduction of ActiveSupport dependency (#649)

v1.17.0 (2023-03-05)

Full Changelog

Changes since v1.16.0:

  • 1311 Add deprecation mechanism (introduces runtime dependency on ActiveSupport) (#645)
  • 50b8 Add the push_option option for Git::Lib#push (#644)
  • a799 Make Git::Base#ls_tree handle commit objects (#643)
  • 6db3 Implememt Git.default_branch (#571)

v1.16.0 (2023-03-03)

Full Changelog

Changes since v1.15.0:

  • 536d Fix parsing when in detached HEAD state in Git::Lib#branches_all (#641)
  • 5c68 Fix parsing of symbolic refs in Git::Lib#branches_all (#640)
  • 7d88 Remote#branch and #merge should default to current branch instead of "master" (#639)
  • 3dda0 #branch name should default to current branch instead of master (#638)
  • d33d #checkout without args should do same as git checkout with no args (#637)
  • 0c90 #push without args should do same as git push with no args (#636)
  • 2b19 Make it easier to run test files from the command line (#635)

v1.15.0 (2023-03-01)

Full Changelog

Changes since v1.14.0:

  • b40d #pull with no options should do the same thing as git pull with no options (#633)
  • 9c5e Fix error when calling Git::Lib#remove with recursive or cached options (#632)
  • 806e Add Git::Log#all option (#630)
  • d905 Allow a repo to be opened giving a non-root repo directory (#629)
  • 1ccd Rewrite worktree tests (#628)
  • 4409 Fix Git::Branch#update_ref (#626)

v1.14.0 (2023-02-25)

Full Changelog

Changes since v1.13.2:

  • 0f7c4a5 Allow the use of an array of path_limiters and add extended_regexp option to grep (#624)
  • 8992701 Refactor error thrown when a git command fails (#622)
  • cf74b91 Simplify how temp files are used when testing Git::Base#archive (#621)
  • a8bfb9d Set init.defaultBranch when running tests if it is not already set (#620)
  • 9ee7ca9 Create a null logger if a logger is not provided (#619)
  • 872de4c Internal refactor of Git::Lib command (#618)
  • 29e157d Simplify test running and fixture repo cloning (#615)
  • 08d04ef Use dynamically-created repo for signed commits test (#614)

v1.13.2 (2023-02-02)

Full Changelog

Changes since v1.13.1:

  • b6e031d Fix Git::Lib#commit_data for GPG-signed commits (#610)
  • b12b820 Fix escaped path decoding (#612)

v1.13.1 (2023-01-12)

Full Changelog

  • 667b830 Update the GitHub Action step "actions/checkout" from v2 to v3 (#608)
  • 23a0ac4 Fix version parsing (#605)
  • 429f0bb Update release instructions (#606)
  • 68d76b8 Drop ruby 2.3 build and add 3.1 and 3.2 builds (#607)

v1.13.0 (2022-12-10)

Full Changelog

  • 8349224 Update list of maintainers (#598)
  • 4fe8738 In ls-files do not unescape file paths with eval (#602)
  • 74b8e11 Add start_point option for checkout command (#597)
  • ff6dcf4 Do not assume the default branch is 'master' in tests
  • 8279298 Fix exception when Git is autoloaded (#594)

v1.12.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.12.0

v1.11.0

  • 292087e Supress unneeded test output (#570)
  • 19dfe5e Add support for fetch options "--force/-f" and "--prune-tags/-P". (#563)
  • 018d919 Fix bug when grepping lines that contain numbers surrounded by colons (#566)
  • c04d16e remove from maintainer (#567)
  • 291ca09 Address command line injection in Git::Lib#fetch
  • 521b8e7 Release v1.10.2 (#561)

See https://github.com/ruby-git/ruby-git/releases/tag/v1.11.0

v1.10.2

See https://github.com/ruby-git/ruby-git/releases/tag/v1.10.2

1.10.1

See https://github.com/ruby-git/ruby-git/releases/tag/v1.10.1

1.10.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.10.0

1.9.1

See https://github.com/ruby-git/ruby-git/releases/tag/v1.9.1

1.9.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.9.0

1.8.1

See https://github.com/ruby-git/ruby-git/releases/tag/v1.8.1

1.8.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.8.0

1.7.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.7.0

1.6.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.6.0

1.6.0.pre1

See https://github.com/ruby-git/ruby-git/releases/tag/v1.6.0.pre1

1.5.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.5.0

1.4.0

See https://github.com/ruby-git/ruby-git/releases/tag/v1.4.0

1.3.0

  • Dropping Ruby 1.8.x support

1.2.10

  • Adding Git::Diff.name_status
  • Checking and fixing encoding on commands output to prevent encoding errors afterwards

1.2.9

  • Adding Git.configure (to configure the git env)
  • Adding Git.ls_remote [Git.ls_remote(repo_path_or_url='.')]
  • Adding Git.describe [repo.describe(objectish, opts)]
  • Adding Git.show [repo.show(objectish=nil, path=nil)]
  • Fixing Git::Diff to support default references (implicit references)
  • Fixing Git::Diff to support diff over git .patch files
  • Fixing Git.checkout when using :new_branch opt
  • Fixing Git::Object::Commit to preserve its sha after fetching metadata
  • Fixing Git.is_remote_branch? to actually check against remote branches
  • Improvements over how ENV variables are modified
  • Improving thrade safety (using --git-dir and --work-tree git opts)
  • Improving Git::Object::Tag. Adding annotated?, tagger and message
  • Supporting a submodule path as a valid repo
  • Git.checkout - supporting -f and -b
  • Git.clone - supporting --branch
  • Git.fetch - supporting --prune
  • Git.tag - supporting

1.2.8

  • Keeping the old escape format for windows users
  • revparse: Supporting ref names containing SHA like substrings (40-hex strings)
  • Fix warnings on Ruby 2.1.2

1.2.7

  • Fixing mesages encoding
  • Fixing -f flag in git push
  • Fixing log parser for multiline messages
  • Supporting object references on Git.add_tag
  • Including dotfiles on Git.status
  • Git.fetch - supporting --tags
  • Git.clean - supporting -x
  • Git.add_tag options - supporting -a, -m and -s
  • Added Git.delete_tag

1.2.6

  • Ruby 1.9.X/2.0 fully supported
  • JRuby 1.8/1.9 support
  • Rubinius support
  • Git.clone - supporting --recursive and --config
  • Git.log - supporting last and [] over the results
  • Git.add_remote - supporting -f and -t
  • Git.add - supporting --fore
  • Git.init - supporting --bare
  • Git.commit - supporting --all and --amend
  • Added Git.remote_remote, Git.revert and Git.clean
  • Added Bundler to the formula
  • Travis configuration
  • Licence included with the gem

1.0.4

  • added camping/gitweb.rb frontend
  • added a number of speed-ups

1.0.3

  • Sped up most of the operations
  • Added some predicate functions (commit?, tree?, etc)
  • Added a number of lower level operations (read-tree, write-tree, checkout-index, etc)
  • Fixed a bug with using bare repositories
  • Updated a good amount of the documentation

1.0.2

  • Added methods to the git objects that might be helpful

1.0.1

  • Initial version