# Change Log ## v2.3.2 (2024-11-19) [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.3.1..v2.3.2) Changes since v2.3.1: * 7646e38 fix: improve error message for Git::Lib#branches_all ## v2.3.1 (2024-10-23) [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.3.0..v2.3.1) 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](https://github.com/ruby-git/ruby-git/compare/v2.2.0..v2.3.0) 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](https://github.com/ruby-git/ruby-git/compare/v2.1.1..v2.2.0) 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](https://github.com/ruby-git/ruby-git/compare/v2.1.0..v2.1.1) 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](https://github.com/ruby-git/ruby-git/compare/v2.0.1..v2.1.0) 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](https://github.com/ruby-git/ruby-git/compare/v2.0.0..v2.0.1) 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](https://github.com/ruby-git/ruby-git/compare/v2.0.0.pre4..v2.0.0) 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](https://jcouball@github.com/ruby-git/ruby-git/compare/v2.0.0.pre3..v2.0.0.pre4) 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](https://github.com/ruby-git/ruby-git/compare/v2.0.0.pre2..v2.0.0.pre3) Changes since v2.0.0.pre2: * 5d4b34e Allow allow_unrelated_histories option for Base#pull ## v2.0.0.pre2 (2024-02-24) [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.0.0.pre1..v2.0.0.pre2) 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](https://github.com/ruby-git/ruby-git/compare/v1.19.1..v2.0.0.pre1) 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](https://github.com/ruby-git/ruby-git/compare/v1.19.0..v1.19.1) Changes since v1.19.0: * f97c57c Announce the 2.0.0 pre-release (#682) ## v1.19.0 (2023-12-28) [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v1.18.0..v1.19.0) 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](https://github.com/ruby-git/ruby-git/compare/v1.17.2..v1.18.0) 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](https://github.com/ruby-git/ruby-git/compare/v1.17.1..v1.17.2) 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](https://github.com/ruby-git/ruby-git/compare/v1.17.0..v1.17.1) Changes since v1.17.0: * 774e Revert introduction of ActiveSupport dependency (#649) ## v1.17.0 (2023-03-05) [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v1.16.0..v1.17.0) 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](https://github.com/ruby-git/ruby-git/compare/v1.15.0..v1.16.0) 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](https://github.com/ruby-git/ruby-git/compare/v1.14.0..v1.15.0) 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](https://github.com/ruby-git/ruby-git/compare/v1.13.2..v1.14.0) 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](https://github.com/ruby-git/ruby-git/compare/v1.13.1..v1.13.2) 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](https://github.com/ruby-git/ruby-git/compare/v1.13.0...v1.13.1) * 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](https://github.com/ruby-git/ruby-git/compare/v1.12.0...v1.13.0) * 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