Change Log
v2.3.3 (2024-12-04)
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)
Changes since v2.3.1:
- 7646e38 fix: improve error message for Git::Lib#branches_all
v2.3.1 (2024-10-23)
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)
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)
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)
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)
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)
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)
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)
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)
Changes since v2.0.0.pre2:
- 5d4b34e Allow allow_unrelated_histories option for Base#pull
v2.0.0.pre2 (2024-02-24)
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)
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)
Changes since v1.19.0:
- f97c57c Announce the 2.0.0 pre-release (#682)
v1.19.0 (2023-12-28)
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)
Changes since v1.17.2:
- 3c70 Add support for
--update-head-ok
tofetch
(#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)
Changes since v1.17.1:
- f43d6 Fix branch name parsing to handle names that include slashes (#651)
v1.17.1 (2023-03-06)
Changes since v1.17.0:
- 774e Revert introduction of ActiveSupport dependency (#649)
v1.17.0 (2023-03-05)
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)
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 ofmaster
(#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)
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
withrecursive
orcached
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)
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)
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)
- 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)
- 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