Recent Releases of https://github.com/ruby-git/ruby-git
https://github.com/ruby-git/ruby-git - v5.0.5
5.0.5 (2026-08-09)
Bug Fixes
- Detect Darwin under JRuby when pinning LC_ALL (89bf625), closes #1669
- Pin LC_ALL to a locale that exists on the host platform (5a4e0d6), closes #1669
Other Changes
- Correct two imprecise claims in the build-complete comment (c4391cd), closes #1675
- Gate merges on a matrix-free job instead of the per-matrix checks (47f2d17), closes #1675
- Remove vestigial matrix dimensions (3a89886), closes #1676
- Run RuboCop and YARD once instead of on every matrix job (0726964)
- Run the suite once with en_US.UTF-8 unavailable (6e012c5), closes #1669
- Run the test suite under a non-English locale (c65d402), closes #1670
- Skip the All Specs Passed gate on release PRs (6dfeee0), closes #1675
- Warm bundler caches at default-branch scope on push to main (2821477), closes #1674
- Ruby
Published by jcouball 8 days ago
https://github.com/ruby-git/ruby-git - v5.0.3
5.0.3 (2026-08-07)
Bug Fixes
- Drop unsupported -- separator from remote remove/rename commands (8ec466f)
- Remove unreachable case branch in Patch#apply_file_mode (896fc49)
- Remove unreachable nil check in Git::Parsers::Grep.parse (74e919a)
Other Changes
- Add Claude Code support alongside GitHub Copilot (37f7d6a)
- Add unit spec for Git::EncodingUtils (5f0f10e)
- Consolidate parallel and serial spec rake tasks (49616b1)
- Cover :index option in Git::Factories#worktree_open_options_after_init (efeba22)
- Cover #path when both src and dst are nil (3a1a05a)
- Cover edge-case branches in Git::Parsers::Diff (38d8b3f)
- Cover Errno::ESRCH timeout-race rescue in run_process_executer (899bf36)
- Cover Git::Branch#merge (71c0ea3)
- Cover Git::Branch#stashes (27ba130)
- Cover Git::Diff#name_status (fa2ee98)
- Cover Git::Factories#parse_clone_stderr unparseable-output branch (65aa9b9)
- Cover Git::Parsers::CatFile.each_header without trailing separator (b7a9ed9)
- Cover Git::Parsers::LsTree.parse with no tab-separated filename (98b9ebf)
- Cover Git::Parsers::Remote.apply_pair unrecognized-variable branch (03b10f6)
- Cover Git::Stashes#save (7bca04c)
- Cover Git.const_missing fallback branch for unrelated constants (05c3c43)
- Cover Git.export (4bd7f58)
- Cover normalize_fetch_keys with a String option key (47fb7fe)
- Disable coverage for spec:integration, add SPEC filtering, fix formatters (cb53d03)
- Document the project test coverage policy (d378c1e)
- Enforce 100% unit test coverage on pull requests (a446098)
- Guard checkout-index nonexistent-path spec for git < 2.30.0 (cf212a9)
- Guard worktree repair spec for git < 2.29.0 (c527fb1)
- merge: Fix incorrect version-gated failure expectation in quit_spec (24c5ba4)
- Read the gem version without loading lib/git/version.rb (45c4b14)
- Require git 2.39.0 for maintenance register/unregister --config-file specs (5b1fd52)
- Skip get-urlmatch scope spec on git < 2.42.0 (e1ede7a)
- Upgrade simplecov and simplecov-rspec to ~> 1.0 (65e92b9)
- Ruby
Published by jcouball 11 days ago
https://github.com/ruby-git/ruby-git - v5.0.2
5.0.2 (2026-08-02)
Bug Fixes
- Add bin/build-git-versions and bin/test-git-versions scripts (3314503)
Other Changes
- Align CONTRIBUTING.md with current architecture and testing conventions (60ac8e9)
- Allow disabling SimpleCov via COVERAGE=false env var (3788418)
- Allow disabling SimpleCov via COVERAGE=false env var (3788418)
- Avoid git-version-dependent all-zero SHA in stash store integration spec (82a15e5)
- Make 5.0.0 release more prominent in README (2c8c42d)
- Move Git::Repository::Factories and PathResolver to Git namespace (dd0ae7b)
- Update README badges (079a121)
- Ruby
Published by jcouball 15 days ago
https://github.com/ruby-git/ruby-git - v5.0.1
5.0.1 (2026-07-30)
Other Changes
- Review and streamline AI agent instructions (536eb86)
- Summarize v5.0.0 as architectural redesign in CHANGELOG (712c93e)
- Ruby
Published by jcouball 18 days ago
https://github.com/ruby-git/ruby-git - v5.0.0
5.0.0 (2026-07-28)
� BREAKING CHANGES
- Git::Base and Git::Lib are removed. All public API is now surfaced through Git::Repository (for repo-bound operations) and the Git module-level methods (Git.open, .clone, .init, .bare, .default_branch, .git_version). Internal command execution goes through Git::Commands::* and Git::ExecutionContext, not Git::Lib.
- Git.open, Git.bare, Git.clone, and Git.init now return Git::Repository instead of Git::Base. Code that depends on the Git::Base return type must be updated to use Git::Repository. Git::Repository provides all the same public API methods as Git::Base.
- arguments: flag_option :foo, negatable: true no longer accepts false to emit --no-foo. Before: bind(foo: false) => ["--no-foo"]. After: register two entries; bind(no_foo: true) => ["--no-foo"]. Callers passing foo: false expecting --no-foo will silently get nothing emitted.
Features
- Add branch_current delegator to Git::Base (8b92b54)
- Add deprecated config_get/list/set aliases to Git::Repository::Configuring (fb964d3)
- Add deprecated conflicts wrapper on Git::Repository::Merging (cc3907d)
- Add deprecated empty? wrapper on Git::Repository::StatusOperations (e0dbd1c)
- Add deprecated Git::Repository::Stashing#stash_list facade (9e532bd)
- Add Git::Base compatibility shim with deprecation warnings (d37710b)
- Add Git::MINIMUM_GIT_VERSION constant (d5c8604)
- Add Git::Repository remote_names facade method (4f52a7b)
- Add Git::Repository::Branching#change_head_branch facade (e8d6af6)
- Add Git::Repository::Branching#current_branch_state facade (fa798a7)
- Add Git::Repository::Configuring#global_config facade and deprecated aliases (12b2e59)
- Add Git::Repository::Diffing#diff factory (33db465)
- Add Git::Repository::Merging#unmerged facade (7d4b1fe)
- Add Git::Repository::RemoteOperations#ls_remote facade (4c63567)
- Add Git::Repository#branches factory to Branching module (92e4cc6)
- Add Git::RepositoryContext and Git::GlobalContext (Phase 3 Task 1) (e2b94ca)
- Add Git::Version class for git binary versions (d97b5e3)
- Add Git::VersionConstraint value object (28599f0)
- Add Git::VersionError exception class (8ed8713)
- Add upstream and upstream_remote to Git::Branch (ef16e94), closes #1270
- Allow deprecation behavior env var (49ae5a8)
- api: Add Git.git_version method (7ae54f3), closes #1249
- arguments: Replace negatable tri-state with no_{flag} companion key (#1260) (e305922)
- base: Add diff_numstat delegator to Git::Base (5a8a0ec)
- base: Add Git::Base delegators for 23 Bucket 6 orphans (513e6a2)
- base: Add Git::Base#git_version delegator (026f738)
- branching: Add deprecated is_branch?/is_local_branch?/is_remote_branch? stubs (9484e4f)
- branching: Add local_branch?, remote_branch?, branch? facade methods (14dd2b3)
- commands: Add Git::Commands::Maintenance subcommand classes (5404c5a)
- commands: Add requires_git_version macro and validation (3c1f1ec)
- commands: Add validate_version! to custom #call implementations (9deec1f)
- config: Add Git::Configuring mixin, parsers, and ConfigEntryInfo (cf0d813)
- config: Extend Git::Configuring into the Git module (eb5be7a)
- config: Include Git::Configuring in Git::Repository and remove clashing deprecated aliases (68ca900)
- diff_stats: Migrate DiffStats to Git::Repository and add diff_stats factory (1a7b28f)
- execution-context: Add binary_path: keyword and retire Open3 stopgap (bf94218)
- execution-context: Forward binary_path from Git::Base via from_base (8e9af8f)
- Extend config() with :file option for reads; add deprecated parse_config wrapper (c2be049)
- Extract gblob/gcommit/gtree/tag/object to Git::Repository::ObjectOperations (199bcf9)
- Flip Git.open/bare/clone/init to return Git::Repository (C1d-1) (eb1a5b2)
- lib: Add git_version method returning Git::Version (a473978)
- Migrate branch and remote constructor polymorphism to repository facade (4a05e39)
- Migrate Git::DiffPathStatus to Git::Repository::Diffing facade (iter 2) (2d23eec)
- Migrate Git::Object::* to accept Git::Repository (e1b2365)
- object-operations: Add 6 legacy aliases to ObjectOperations (PR 2e) (ecd4f45)
- remote: Add Git::RemoteInfo value object and Parsers::Remote (6527633)
- remote: Add remote_list facade method (bf711a9)
- remote: Add remotes, set_remote_url, remote_set_branches to facade (592c549)
- Rename facade methods to {noun}_{verb} convention; keep old names as deprecated aliases (c381397)
- repository: Add branch_contains facade method to Git::Repository::Branching (6b3b218)
- repository: Add compatibility aliases remove and revparse (6b4ca81)
- repository: Add describe, repack, and gc facade methods (973d8a3)
- repository: Add Git::Repository::Branching facade module (cac4962)
- repository: Add Git::Repository::Branching#branch_delete facade method (0b73e74)
- repository: Add Git::Repository::Committing facade module (closes #1266) (c6fd522)
- repository: Add Git::Repository::Configuring facade module (a41e886)
- repository: Add Git::Repository::Diffing#diff_files facade method (9428aad)
- repository: Add Git::Repository::Inspecting facade (show, fsck) (c8d478b)
- repository: Add Git::Repository::Merging#each_conflict facade method (a47cb60)
- repository: Add Git::Repository::Merging#revert facade method (2cd57b4)
- repository: Add Git::Repository::RemoteOperations#add_remote facade method (d1d2a58)
- repository: Add Git::Repository::RemoteOperations#push facade method (19d0bd0)
- repository: Add Git::Repository::Stashing#stash_save facade method (305626c)
- repository: Add Git::Repository::StatusOperations#ls_files facade method (db89efa)
- repository: Add Git::Repository::StatusOperations#no_commits? facade method (949c5fa)
- repository: Add Git::Repository::StatusOperations#status facade factory (ba54363)
- repository: Add Git::Repository::WorktreeOperations facade module (a7bb5c3)
- repository: Add Git::Repository.clone and .init factory class methods (3e9d4d2)
- repository: Add Git::Repository.open/.bare factories and path state (4d11f33)
- repository: Add Git::Repository#branch_new facade method (93ec899)
- repository: Add Git::Repository#cat_file_commit facade method (7a22502)
- repository: Add Git::Repository#cat_file_contents facade method (97f74d2)
- repository: Add Git::Repository#cat_file_size facade method (945738c)
- repository: Add Git::Repository#cat_file_tag facade method (f95d3b3)
- repository: Add Git::Repository#cat_file_type facade method (f2351fb)
- repository: Add Git::Repository#config_remote facade method (d28405f)
- repository: Add Git::Repository#diff_full facade method (21d4cac)
- repository: Add Git::Repository#diff_index facade method (ab41c39)
- repository: Add Git::Repository#diff_numstat facade method (474b869)
- repository: Add Git::Repository#full_log_commits facade method (73ad1ba)
- repository: Add Git::Repository#full_tree facade method (e3e99fd)
- repository: Add Git::Repository#ls_tree facade method (cd305d2)
- repository: Add Git::Repository#merge_base facade method (46abcef)
- repository: Add Git::Repository#name_rev facade method (2bca93f)
- repository: Add Git::Repository#pull facade method (aef659a)
- repository: Add Git::Repository#remove_remote facade method (4582c2f)
- repository: Add Git::Repository#rev_parse facade method (6889f74)
- repository: Add Git::Repository#stash_apply facade method (bb1dad5)
- repository: Add Git::Repository#stash_clear facade method (643f32e)
- repository: Add Git::Repository#stashes_all facade method (85cf0a0)
- repository: Add Git::Repository#tag_sha facade method (e9f4bdd)
- repository: Add Git::Repository#untracked_files facade method (cbe2d65)
- repository: Add update_ref facade method with tests (d88ec4e)
- repository: Add worktree and worktrees factory methods to WorktreeOperations (bde5528)
- repository: Extract Git::Base#fetch to Git::Repository::RemoteOperations (e3a9b6e), closes #1266
- repository: Extract Git::Base#merge to Git::Repository::Merging (8a95be8)
- repository: Extract Git::Lib#archive as Git::Repository::ObjectOperations#archive (0f81d42)
- repository: Extract Git::Lib#grep as Git::Repository::ObjectOperations#grep (e42c18f)
- repository: Extract Git::Repository#branches_all from Git::Lib (182ab41)
- repository: Extract tree_depth facade method (ece713e)
- repository: Implement Git::Repository with Staging facade module (f5e3271)
- repository: Implement Git::Repository::ContextHelpers (Step E) (b3da4e3)
- repository: Migrate Git::Log to Git::Repository (iter 4B) (6056ae1)
- repository: Replace silent lib shim with deprecation warning (1121278)
- skills: Add rebase skill workflow (01b8680)
- staging: Add apply, apply_mail, and read_tree facade methods (8a2828f)
- staging: Add deprecated reset_hard wrapper to Git::Repository::Staging (48f5cbe)
- staging: Add Git::Repository::Staging#mv facade and Git::Base delegator (0a0fd47)
- staging: Add rm, clean, and ignored_files facade methods (0756fe3)
- tags: Add tags, add_tag, and delete_tag facade methods (ee3308f)
Bug Fixes
- am: Remove abort YARD lint exclusion (84c016a)
- Audit deprecation warning messages (7de996a)
- Avoid circular require warnings (9d0e93c)
- branch: Delete remote-tracking refs correctly (c44a0f4), closes #1280
- branch: Parse slash remote names (6f8f43a)
- branch: Wire branch_list slash remote parsing (e56913e)
- ci: Improve JRuby integration test hang visibility (ce5267c)
- ci: Pin i18n < 1.15 on TruffleRuby < 34.0.0 (af25d3b)
- commands/diff: Allow exit status 2 for git diff --check whitespace errors (159902c)
- commands: Allow empty string for Tag::Create message option (4923364)
- commands: Document option tags for rm show-ref and stash apply (a0fdeb6)
- commands: Remove yard-lint exclusions for fetch/fsck/gc/grep/init (8bd1bf7)
- Correct deprecation messages for Git#config and Git#global_config mixins (c1895a4)
- diff: Return nil from DiffFile#blob(:src) for a null source SHA (2e62492)
- docs: Pad all markdown table separator cells to fix markdownlint MD055 (3010608)
- False value in config set/get and improve git.rb YARD docs (6ba995c)
- git: Delegate Git::Base#reset_hard through facade_repository (46c1902)
- Inline deprecation and const_missing to fix YARD Git module overview (a974be9)
- Parse grep output with null delimiters (2dec93a)
- Reject :get_url and :symref in ls_remote to prevent parser corruption (52d657d)
- remote_operations: Raise ArgumentError when :ref has no explicit remote (#1291) (0391a00)
- repository: Align 6 facade signatures with 4.x legacy contracts (e472bbb)
- repository: Cat_file_tag handles annotated tags with an empty message (e453775)
- repository: Inline deprecated config facade methods (230a1dc)
- repository: Map nil commitish to HEAD in revert; add integration tests (97a902e)
- Rescue Errno::ESRCH from process_executer timeout race (Ruby 4.0+) (030f017)
- Restrict factory methods to Git module only (ef9b9cf)
- staging: Remove false-stripping workaround from add (5116a5b)
- test: Use crontab scheduler in maintenance start integration spec (da7aa8d)
- Update deprecation horizon (0414398)
- yard: Remove selected undocumented-options exclusions (6787d2a)
- yard: Resolve command documentation lint offenses (5217b62)
Other Changes
- Add archive YARD examples (6f9ae0a)
- Add beta release process guide (fe78a77)
- Add branch_parse_refactor_plan to redesign/ (9524654)
- Add Bucket 6 decision brief, UPGRADING guide, and beta install docs (626f294)
- Add config design document for Git::Configuring module (dccdb6d)
- Add effort and completion columns to redesign progress tracker (0537da6)
- Add execution_context_double and stub_git_version helpers (17c486d)
- Add full YARD docs to Git::Commands::Arguments and remove from exclusions (10e1f2d)
- Add Git::Diff#patch polymorphism for Git::Repository (99a63fb)
- Add Info/DAO migration plan and issue index to redesign/ (4998b40)
- Add init_test_repo helper to Git::IntegrationTestHelpers (11f173a), closes #1467
- Add integration test analysis document (e2c4cec)
- Add measured CI results to integration_test_analysis.md (7f53ef8)
- Add Phase 4 Step A execution plan (61e4556)
- Add prompt to iteratively address Copilot PR reviews (05f1c03)
- Add RemoteInfo + RemoteOperations refactor plan (bda2063)
- Add resolve-feedback skill (6bef759)
- Add reverse dependency query (21c9977)
- Add spec:unit hang diagnostics for JRuby (#1286) (52d00cb)
- Add W6 plan for removing stale Git::Base/Git::Lib skill refs (9f4482d)
- Add YARD docs to CommandLine::Capturing and Streaming private methods (e7e8a95)
- Add YARD docs to Git::Author and remove from yard-lint exclusions (cabc21b)
- Add YARD docs to undocumented methods in git.rb (2bb8218)
- add: Remove yard-lint todo exclusion (000c0f0)
- Advance iteration tracker mark iter 8 complete, set iter 9 as next (63fe469)
- Align skill tag-order examples with Tags/Order config (ac9f83a)
- am: Remove apply yard-lint todo exclusion (670a35c)
- am: Remove yard-lint todo exclusion for continue (470d203)
- Announce v5.0.0 stable release in README (8887679)
- base: Delegate add_remote to Git::Repository (9170bc6)
- base: Delegate each_conflict to Git::Repository (6515d75)
- base: Delegate full_log_commits to Git::Repository (de3d43c)
- base: Delegate Git::Base#diff_files to Git::Repository (ef3114f)
- base: Delegate Git::Base#ls_files and #config to facade_repository (f2b1c72)
- base: Delegate Git::Base#push to Git::Repository facade (ca307b3)
- base: Delegate ls_tree to Git::Repository (1b0c63c)
- base: Delegate pull to Git::Repository (4a60de2)
- base: Delegate remove_remote to Git::Repository (536668b)
- base: Delegate revert to Git::Repository (739f627)
- base: Delegate update_ref to Git::Repository (cdcd5b8)
- branches: Add unit and integration coverage for Git::Branches (049b6f5)
- branches: Finalize facade module docs and tests (36f6e80)
- branches: Migrate Git::Branches to repository-polymorphic access (d1019ba)
- branch: Redesign BranchInfo value object (a6875ea)
- branch: Remove parser baseline exclusion and add module docs (3562543)
- branch: Remove yard-lint todo exclusions for branch commands (df774bc)
- Centralize execution-context option defaulting (283a3ab)
- ci: Update GitHub Actions dependencies to latest major versions (c73088f)
- Clarify documentation for nested state/path classes in facade modules (0d26303)
- Clarify Phase 3 PR slicing, release lanes, and backward-compat rules (a5b9291)
- command_line: Port logger output examples to capturing_spec (5236085)
- command_line: Port normalize: false byte-preservation example (2bbaf58)
- commands: Apply command-implementation skill to grep; backfill log options (6e0da11)
- commands: Audit config_option_syntax YARD docs (issue #1196) (70ce8e2)
- commands: Audit YARD docs for archive/list_formats, version, worktree/add/list/lock (2b29f54)
- commands: Complete config_option_syntax YARD audit and spec updates (issue #1196) (3ad2365)
- commands: Define explicit call methods for YARD option docs (c71e3a1)
- commands: Migrate all negatable options to no_{flag} companion key (#1260) (204ca2a)
- commands: Remove YARD todo exclusions for selected command files (42e3867)
- commands: Remove yard-lint exclusions for call docs (c65a4dc)
- commands: Remove yard-lint exclusions for merge and mv (7504a8b)
- commands: Remove yard-lint todo exclusions for symbolic-ref and tag (6c37035)
- commands: Remove yard-lint todo exclusions for worktree and version (65403e5)
- commands: Unbaseline and fix YARD docs for remote/reset/repack/rev-parse (9109c91)
- commands: Update Checkout::Files command class per implementation skill (ca2fea5)
- commands: Update CheckoutIndex command class per implementation skill (f301e1d)
- commands: Update Clean command class per implementation skill (12132be)
- commands: Update Clone command class per implementation skill (64dad0c)
- commands: Update command-layer YARD to reference Git::Repository/ExecutionContext (9e773a0)
- commands: Update Commit command class per implementation skill (7bf5cef)
- commands: Update CommitTree command class per implementation skill (07c7bff)
- commands: Update config_option_syntax/replace_all, set, unset, unset_all (issue #1196) (a1dd913)
- commands: Update Describe command class per implementation skill (7b0abfa)
- commands: Update Diff command class per implementation skill (07b36ff)
- commands: Update DiffFiles command class per implementation skill (5244687)
- commands: Update DiffIndex command class per implementation skill (e16bade)
- commands: Update Fetch command class per implementation skill (7252861)
- commands: Update Fsck command class per implementation skill (fc5a826)
- commands: Update Gc command class per implementation skill (19779a0)
- commands: Update Init command class per implementation skill (5eb536a)
- commands: Update ls-files, ls-remote, ls-tree per implementation skill (4fef064)
- commands: Update merge-base, mv, name-rev, pull, push per implementation skill (96bc933)
- commands: Update read-tree, repack, reset, rev-parse, rm (batch 7) (9460450)
- commands: Update show, status, tag per implementation skill (batch 7) (de1064a)
- commands: Update symbolic-ref, tag/verify, write-tree (batch 7) (9977656)
- commands: Update worktree/move, prune, remove, repair per implementation skill (fe33764)
- config-option-syntax: Remove yard-lint todo exclusions (b44d764)
- config: Add integration tests pinning 4.x-equivalent behavior (f05e31f)
- config: Move global config singleton ownership to Git::Config (Step C1b) (e8bf00f)
- contributing: Document and enforce local development setup (e33d6c6), closes #1297
- Cover merge BranchInfo coercion (413074b)
- Create Phase 4 Step C execution plan (38cc2fd)
- Define fine-grained PR granularity for Phase 4 Step C (541bb94)
- Delegate Git::Base domain-object factories to facade_repository (e8f2266)
- Delegate Git::Base#diff to facade_repository (306f5a3)
- Delete confirmed-removable Test::Unit files (Phase 4 PR 3a) (f07e735)
- Delete RSpec specs that only test Git::Base and Git::Lib (PR 3c) (457e066)
- Deprecate finished extract-* skills (2064b2a)
- Deprecate Git module mixin methods #config and #global_config (5fc672b)
- Deprecate Git::CommandLineResult in favor of Git::CommandLine::Result (c307ef3)
- Deprecate legacy git version methods (closes #1193) (02a7514)
- diff: Document DiffPathStatus initialize args (7a29252)
- diff: Port W2-U3 diff unit rows to RSpec (e1eb4f0)
- diff: Port W2-U4 diff remainder rows to RSpec (65c244c)
- Display rake command in task header for easy copy-paste (15560a7)
- Document @api private cache helper and Deprecation constant (be54e0d)
- Document arbitrary keyword YARD convention (a0007e9)
- Document Array<> vs Array() type distinction in yard skill (cf18947)
- Document branch archive options (f933bb1)
- Document Configuring config options (c82867e)
- Document encoding utils and remove YARD TODO exclusions (5b4e89a)
- Document Git object YARD lint coverage (f96e389)
- Document Git::Config readers (2421466)
- Document Git::Log path filtering upgrade note (c2043f9)
- Document stricter option validation (5f8f9b0)
- Enforce a blank line between YARD tags (b900d9f)
- Enrich Phase 4 Step B audit matrix (W1.5) (5b48be9)
- errors: Add command_line_error_spec for #initialize and #to_s (7ab11d7)
- errors: Add timeout_error_spec for #initialize and #to_s (29aaf0f)
- execution-context: Finalize W2-U6 ExecutionContext, path, and clone-log coverage (d7ee1e6)
- execution-context: Port W2-U5 env_overrides rows to RSpec (cf5a0d5)
- Expand UPGRADING.md with comprehensive v5.0.0 migration guide (C2a) (fb66404)
- Extract output parsers from ObjectOperations::Private to Git::Parsers (5f312fe)
- Fix commands base YARD lint (4aac838)
- Fix DiffPathStatus#fetch_path_status to support Git::Repository (42892b3)
- Fix Documentation/BlankLineBeforeDefinition offense in diff_info.rb (175edba)
- Fix Documentation/OrphanedDocComment offenses (5ace823)
- Fix execution context YARD option docs (b1b3f9b)
- Fix repository execution context yard docs (d8c6e49)
- Fix rubocop offenses in object_operations_spec.rb (ad7594b)
- Fix stale plan entries and add missing commands to redesign tracker (996b032)
- Fix Tags/ExampleSyntax offenses (c48ca8c)
- Fix Tags/InformalNotation offenses (6670c97)
- Fix Tags/InvalidTypes offenses (017153c)
- Fix Tags/Order offenses across lib/ (8eb498e)
- Fix Tags/RedundantParamDescription in CommandLine::Base (e4418f2)
- Fix Tags/TagSeparator offenses across lib/ (c22c700)
- Fix Tags/TagTypePosition offenses in Git module (0b7c2b9)
- Fix Tags/TypeSyntax offenses (65c096a)
- Fold remaining threads into #1635 and #1640 (5ca6280)
- git: Migrate F1 ls-remote utilities off Git::Lib (38e5d3d)
- git: Migrate F2 config utilities off Git::Lib (2e94e2b)
- git: Migrate Git.global_config and Git#config off Git::Lib (3657e94)
- git: Rewire Git.default_branch off Git::Base (Phase 4 PR 1a) (9b8a27d)
- git: Rewire Git.git_version off Git::Lib (Phase 4 PR 1b) (b961ec0)
- Harden Phase 4 Step C plan for executability and accuracy (a5692f5)
- Improve Phase 3 plan agent-discoverability and PR tracking (b2a813d)
- Improve README clarity and accuracy (0b8d98d)
- Improve skill authoring review guidance (b9c25c9)
- Improve YARD documentation for Git::Branch (#1277) (92c2bf2)
- integration: Fix Git::Log#first deprecation in branching_spec (6f83fbc)
- lib: Add @api private YARD tags to 12 internal plumbing methods (9c760a1)
- lib: Remove FORMAT_STRING from Git::Lib#branch_contains for 4.x compat (5621d34)
- logging: Remove yard-lint todo exclusions (c8cbc71)
- log: Port W2-U10 Log#execute snapshot semantics; dedup test_log_execute.rb (939a616)
- log: Port W2-U8 Log deprecation and max_count/all coverage to RSpec (567e4ac)
- log: Port W2-U9 Log query-builder and Result#to_s coverage to RSpec (fd7982b)
- log: Remove YARD todo exclusions and document log API (5f33710)
- Loosen yard-lint dependency constraint to ~> 1.8 (b582f00)
- Mark Git::Object::* migration complete in tracker (e690474)
- Mark Git::Worktree as complete in iter 9 checklist (bdf4bf2)
- Mark iter 5 complete, advance Next Task to iter 6 (93ffbde)
- Mark Phase 4 Step B complete after W5 gate passes (e5ed0e4)
- Mark Phase 4 Step B complete with W6 merged (PR 1509) (06997ab)
- Mark Phase 4 Step C C1c complete in redesign tracker (1aa268e)
- Mark Phase 4 Step C C2a complete in redesign tracker (5bc4809)
- Mark redesign Step A3 complete (a306c7e)
- Mark Step B (Base factory delegation) complete in redesign plan (c6fd2b8)
- Mark Step C1a-1 complete and update Phase 3 progress to 50% (b2e1602)
- Mark Step C1c-2 complete in implementation plan (10937df)
- Migrate from_base and base_object references in RSpec (Phase 4 PR 3d) (a9035b0)
- object_operations: Fix tag_add third overload YARD docs (be7e111)
- Phase 4 step C3 documentation completeness verification (e0fba71)
- Port W2-U12 object/repository/remote miscellaneous coverage to RSpec (7bf9ad0)
- Port W2-U13 committing/staging miscellaneous coverage to RSpec (1c62815)
- Port W2-U14 FsckObject and FsckResult unit coverage to RSpec (611c547)
- Port W2-U15 Git::Status collection methods and ignore-case boolean coverage (22d5e9a)
- Port W2-U16 StatusFileFactory merge scenarios and DiffPathStatus empty-path coverage (50e1621)
- Port W2-U17 StatusFileFactory file3 staged scenarios and empty-repo StatusFileFactory coverage (a17483f)
- Port W2-U18 remaining empty-repo factory, EscapedPath, and DiffStats empty-array coverage (37e19e4)
- Port W2-U19 CommandLine subprocess, diff encoding, and bare-repo integration coverage (421a626)
- Port W2-U20 integration tests (branch, checkout, commit, config, push, rm, set_index) (c7fe3b3)
- Port W2-U21 stash, status, submodule, worktree, thread-safety, and SSH-signed commit coverage (6d9af7d)
- Produce C1a public API scope TSV (Phase 4 Step C) (06da9ae)
- prompts: Improve Copilot review wait logic with timestamp validation (e89d313)
- redesign: Add branch_delete to Branching facade table in implementation doc (dfe0fed)
- redesign: Add C1c-2 audit inventory (4aa46a1)
- redesign: Add no_commits? to StatusOperations in facade modules completed table (a7d2c67)
- redesign: Add Phase 4 Step B plan and W1 test audit (0b09a54)
- redesign: Add PR 1d to Phase 4 Step A execution plan (e427bbb)
- redesign: Add StatusOperations to facade modules completed table (9e62113)
- redesign: Add untracked_files to StatusOperations completed table (b852b97)
- redesign: Advance Next Task to iter 7, mark Git::Status complete, update facade table (f6fa95a)
- redesign: Correct iter 3 grep method name in implementation plan (1e5c8ba)
- redesign: Flip 5 W2-U1 rows from port to covered (3724b04)
- redesign: Flip 5 W2-U2 rows from port to covered (8b469b0)
- redesign: Mark F2 complete, Phase 3 complete; Phase 4 ready to begin (8e8ee0f)
- redesign: Mark iter 1 domain objects complete, advance next task to iter 2 (e2e57e4)
- redesign: Mark Phase 4 Step A complete in progress tracker (6a48cb7)
- redesign: Mark Step A2 facade extension complete (c38d5b6)
- redesign: Mark Step A4 (Inspecting facade) complete (b562ad6)
- redesign: Sync architecture implementation tracker (3dfea52)
- redesign: Update Branching facade implementation plan for update_ref (c6dbe73)
- redesign: Update facade modules table to include Diffing, ObjectOperations, Logging (3afc272)
- redesign: Update Phase 3 tracker with domain object migration plan (f341f8a)
- redesign: Update phase 4 plan in tracker (97a00db)
- redesign: Update progress tracker C1b/C1c-2 complete, C1d is next task (d044aae)
- Refine Phase 4 Step C PR structure and documentation requirements (19bbb36)
- Release v5.0.0.beta.1 (e0b452c)
- Release v5.0.0.beta.2 (c35f47a)
- Release v5.0.0.beta.3 (#1479) (9d7d2dd)
- Release v5.0.0.beta.4 (05dbe23)
- Release v5.0.0.beta.5 (476cbdd)
- remote-operations: Remove yard-lint exclusions (90ff15c)
- remote: Refine facade tests and YARD docs for Step A2 (0c33699)
- remote: Remote_add and remote_set_url return nil (d2ffb59)
- remote: Remove YARD todo exclusions and add API docs (a06b34b)
- remote: Remove yard-lint todo exclusions (2ad6300)
- remote: Remove yard-lint todo exclusions for set commands (3dfe067)
- Remove 328 excessive integration tests to reduce CI build time (9a18570)
- Remove commitlint.test (2502bcd)
- Remove dead respond_to?/.lib fallback branches from domain objects (9184542)
- Remove diff parser YARD todo exclusions (8869157)
- Remove diff_stats YARD exclusion and add arg docs (c274992)
- Remove empty example groups left after it-block deletions (68370f3)
- Remove errors.rb yard-lint exclusion (7c0fb75)
- Remove escaped_path YARD exclusions (f932106)
- Remove Git::Base, Git::Lib, and ExecutionContext::Repository bridge (c1c5399)
- Remove inert tests/files fixture directory (0588d31)
- Remove inline trailing comments from arguments DSL blocks (370dffb)
- Remove invalid @attribute YARD tags (a1874c4)
- Remove is_a?(Git::Base) compatibility guards from domain objects (ba2a6d0)
- Remove lib/git.rb from remaining yard-lint exclusions (19e076e)
- Remove require 'git/base' from domain object files (98a1494)
- Remove Test::Unit infrastructure (W3) (606b1f4)
- Remove Test::Unit references now that RSpec is the sole suite (8e5def9)
- Remove unused ArgsBuilder class (ad4589b)
- Remove yard-lint todo baseline (53a24a2)
- Replace {Git::Base}/{Git::Lib} YARD cross-references in domain and command files (39a8bcc)
- Replace deprecated config/global_config calls with config_get/config_set/config_list in README (ac3c47f)
- Replace subprocess deprecation tests with direct unit tests (6437d67)
- Replace yardstick with yard-lint for YARD documentation linting (20b51dc)
- repository: Add and fix YARD docs for ls_tree extraction (91087dc)
- repository: Add tests and refine docs for Git::Repository#config_remote (08fd73a)
- repository: Add unit and integration tests for Git::Repository::Configuring (54717f3)
- repository: Add unit and integration tests for Git::Repository#diff_full (0204bcf)
- repository: Add unit and integration tests for Git::Repository#diff_numstat (611243b)
- repository: Add unit and integration tests for StatusOperations#ls_files (17b1352)
- repository: Add unit tests for gblob/gcommit/gtree/tag/object facade methods (4df51ad)
- repository: Add unit tests for Git::Repository#lib deprecation (305e224)
- repository: Document committing option tags (b94683d)
- repository: Fix yard doc issues in cat_file_contents (d0dc2d0)
- repository: Improve name_rev YARD docs (9ff24cd)
- repository: Remove command_capturing/streaming/env_overrides shim methods (79ffde8)
- repository: Remove context helpers yard-lint exclusions (d236409)
- repository: Remove factories yard-lint exclusions (9a904d6)
- repository: Remove repository yard-lint todo exclusions (acae35e)
- repository: Remove staging yard-lint exclusions (e66b971)
- repository: Rename Internal to SharedPrivate (d95e3ba)
- repository: Replace deprecated facade method usages (c40eb8b)
- repository: Review and fix configuring RSpec tests (dc58805)
- repository: Review and fix StatusOperations RSpec tests (34d95cb)
- repository: Review and fix YARD docs for Configuring and StatusOperations (3174da3)
- repository: Review and fix YARD docs for StatusOperations#ls_files (063f708)
- repository: Update configuring spec subjects (506a015)
- repository: Update Git::Base/Lib YARD refs to Git::Repository/Git (Phase 4 PR 2b) (785ccf6)
- Resolve branch_delete classification as legacy-contract, no change required (e067077)
- Restore Git::Base#branch_current delegator (f3efbb6)
- Restore ruby 3.4, jruby, truffleruby, and windows builds (47bda0e)
- Restructure YARD documentation skill (4bfbe0f)
- Revert branch_current delegator; mark as no longer needed in audit (ef8e9eb)
- revert: Fix yard-lint docs for revert commands (e371aa1)
- Run bin/setup once per worktree session (568d71d)
- Set correct @api tags for all public and internal classes (C1c) (83225f3)
- Silence empty-repository clone warnings in url_spec (0302e92)
- skills: Add @api public checklist item to command-yard-documentation (ef4206f)
- skills: Add facade skills and update related skills with facade links (9ade70a)
- skills: Add option allowlist guidance to extract-facade-from-base-lib skill (ad0a62e)
- skills: Add signature-compatibility policy for facade extraction and review (198e809)
- skills: Clarify tag summary length rule in yard-documentation skill (a2238c4)
- skills: Clarify YARD overload and @raise scoping rules (a5f5435)
- skills: Deprecate review-backward-compatibility skill (bf58571)
- skills: Enforce *_ALLOWED_OPTS proximity rule in facade skills (4a674f2)
- skills: Fix Copilot review comments in yard-documentation skill (e6a7db2)
- skills: Fix skill review findings from post-implementation audit (9797219)
- skills: Pr 1 update skills to describe new negatable DSL contract (issue #1260) (53f0eed)
- skills: Prohibit local git help output in command implementation (fa7d0cb)
- skills: Remove negatable flag normalization from extract-facade skill (#1260) (83d52c3)
- skills: Replace stale Git::Base/Lib refs with current architecture (d4e0487)
- skills: Strengthen prohibition of trailing inline DSL comments (678b637)
- skills: Update facade-implementation skill for SharedPrivate pattern (19052fc), closes #1282
- skills: Update instructions and yard-documentation skill (ad05db9)
- specs: Use execution_context_double across command specs (821f7d9)
- stash: Accept Git::Repository via constructor polymorphism (7615ddc)
- stashes: Accept Git::Repository via constructor polymorphism (e69d286)
- stash: Remove YARD exclusions and add parser docs (d21aaca)
- stash: Remove yard-lint exclusions for stash commands (fd3d875)
- status: Use config_get in ignore_case? (418d918)
- Strengthen iteratively-address-copilot-reviews prompt (097ed3c)
- tag: Remove YARD exclusions and document parser helpers (f9460da)
- Temporarily remove ruby 3.4 build (96bb983)
- test: Add unit and integration tests for Git::Repository#diff_index (91429b9)
- tests: Add Git::Deprecation.behavior = :raise enforcement to rspec suite (0077de5)
- tests: Clean up test_helper stubs and deprecation test callers (5cc17a8)
- tests: Fix remaining test callers of .lib discovered by deprecation enforcement (06f13e4)
- tests: Fix RuboCop offenses from C1d-2 phases (ee4f662)
- tests: Migrate incidental #config calls to config_set/config_get (9036ad9), closes #1468
- tests: Patch incidental Git::Base/Git::Lib refs in Test::Unit (7acfa1d)
- tests: Replace git.lib env_overrides calls in test_command_line_env_overrides (707fb65)
- tests: Replace git.lib facade calls in Test::Unit unit tests (99294a6)
- tests: Replace git.lib.command_capturing calls in Test::Unit unit tests (f7e0d87)
- tests: Replace repo.lib calls in rspec parser specs (4a14ce7)
- tests: Replace repo.lib with repo.execution_context in command and support specs (0c16682)
- tests: Replace repo.lib.method with repo.method in rspec integration specs (c1ddf48)
- Track Git::Remote deprecation (#1643) in migration plan (d7d1c37)
- Update @param base YARD types to Git::Repository only (2d882b5)
- Update @param base YARD types to Git::Repository only in diff files (208b77b)
- Update c1c2 audit documents to reflect completed work (fe5223c)
- Update c1c2 audit documents to reflect completed work (fd1c431)
- Update CONTRIBUTING.md to reflect v5.0.0 architecture (b437f7e)
- Update implementation plan for branch/remote polymorphism migration (0c8c577)
- Update legacy Test::Unit tests to use new canonical method names (d9b3979)
- Update model names in iterative Copilot review prompt (c7cc07b)
- Update Phase 4 Step B progress after W2-U10 merge (c92ed24)
- Update Phase 4 Step B progress after W3/W4a/W4b/W6-plan merge (07659b0)
- Update plan - mark Phase 3 Task 1 complete, add Task 2 workflow (913a27c)
- Update plan - mark Phase 3 Task 3 complete, add Task 4 workflow (29eee69)
- Update plan - mark Phase 3 Task 4 staging module complete, update Next Task (cdadb3f)
- Update README.md for v5.0.0 release (Phase 4 Step C2b) (a6ce582)
- Update skill files for Git::Version (f07ec74)
- Update test infrastructure for version validation (e90fa5d)
- url: Port W2-U7 Git remote URL utility coverage to RSpec (88a874f)
- Use [Boolean, nil] type with (nil) default for flag options (6ecd37e)
- Warn against YARD tags inside arguments blocks in command skills (224259e)
- workflow: Temporarily disable windows, jruby, and truffleruby builds (e81dc55)
- worktree: Apply constructor polymorphism to Git::Worktree (6b93666)
- worktree: Delegate base worktree methods to repository facade with coverage (3ebb65f)
- worktrees: Add integration spec for Git::Worktrees collection and prune cycle (126f9dc)
- worktrees: Add unit spec for Git::Worktrees polymorphism (5e26a0e)
- worktrees: Apply constructor polymorphism to Git::Worktrees (bca7adb)
- worktrees: Fix YARD violations in worktree command classes (e0b17e5)
- worktree: Update command YARD annotations and architecture notes (adeb8fa)
- yard-documentation: Codify class/module @api visibility (58b869f)
- yard: Clarify @api placement with @overload (5b8a68d)
- yard: Clarify overload placement for return and raise tags (0e7d321)
- yard: Link @!method section to overload placement rules (09abc32)
- yard: Remove am quit yard-lint todo exclusion (2520a30)
- yard: Remove baselines for worktree and write-tree commands (f4ef40c)
- yard: Remove branching todo exclusions (980e0a9)
- yard: Remove command exclusions and fix option docs (ab687ba)
- yard: Remove command exclusions from yard todo (7693566)
- yard: Remove config option syntax exclusions (51a200e)
- yard: Remove diffing exclusions and document options (c8dbf1f)
- yard: Remove object_operations todo exclusions (2fb2cdb)
- yard: Remove selected todo exclusions (7ba0a34)
- yard: Remove shared_private lint exclusions (3be7ea2)
- yard: Remove stash and status lint baselines (407d7af)
- yard: Remove url todo exclusion and document clone_to args (5123df5)
- Ruby
Published by jcouball 20 days ago
https://github.com/ruby-git/ruby-git - v5.0.0.beta.5
Beta 5 pre-release of v5.0.0. The main user-visible change is a temporary compatibility shim for users who monkeypatch Git::Base. See the README for details.
- Ruby
Published by jcouball about 1 month ago
https://github.com/ruby-git/ruby-git - v5.0.0.beta.4
Beta 4 pre-release of v5.0.0. The redesign is feature complete. See the README for details.
- Ruby
Published by jcouball about 1 month ago
https://github.com/ruby-git/ruby-git - v5.0.0.beta.3
Beta 3 pre-release of v5.0.0. See the README for details.
- Ruby
Published by jcouball about 2 months ago
https://github.com/ruby-git/ruby-git - v5.0.0.beta.2
Beta 2 pre-release of v5.0.0. See the README for details.
- Ruby
Published by jcouball about 2 months ago
https://github.com/ruby-git/ruby-git - v5.0.0.beta.1
First pre-release of v5.0.0. See the README for details.
- Ruby
Published by jcouball 2 months ago
https://github.com/ruby-git/ruby-git - v4.3.2
4.3.2 (2026-03-31)
Bug Fixes
Other Changes
- Add docker-git script to test with specific git versions (0cc0e80)
- Address newly reported rubocop offenses (a37412d)
- Ruby
Published by jcouball 5 months ago
https://github.com/ruby-git/ruby-git - v4.3.1
4.3.1 (2026-02-20)
Bug Fixes
- Ruby
Published by jcouball 6 months ago
https://github.com/ruby-git/ruby-git - v4.3.0
4.3.0 (2026-01-15)
Features
- Ruby
Published by jcouball 7 months ago
https://github.com/ruby-git/ruby-git - v4.1.2
4.1.2 (2026-01-10)
Other Changes
- Add Continuity section to Governance (a2f644c)
- Add Roberto Decurnex to Maintainers Emeritus (5104537)
- Enable releases from 4.x maintenance branch (5377de6)
- Move inactive maintainers to Emeritus per governance policy (f09e4d1)
- Ruby
Published by jcouball 7 months ago
https://github.com/ruby-git/ruby-git - v4.1.1
4.1.1 (2026-01-09)
Other Changes
- Add AI Policy and update documentation (8616cdf)
- Add code of conduct links (0769c8e)
- Add governance policy and update project policies (8d8263c)
- Add Quick Start section and reorganize README for new users (1811a75)
- Clarify JRuby on Windows support policy (c37b3d6)
- Ruby
Published by jcouball 7 months ago
https://github.com/ruby-git/ruby-git - v4.1.0
4.1.0 (2026-01-02)
Features
- Add per-instance git_ssh configuration support (26c1199)
- clone: Add single_branch option (a6929bb)
- diff: Allow multiple paths in diff path limiter (c663b62)
- remote: Add remote set-branches helper (a7dab2b)
Bug Fixes
- Prevent GIT_INDEX_FILE from corrupting worktree indexes (27c0f16)
- test: Use larger timeout values on JRuby to prevent flaky tests (aa8fd8b)
Other Changes
- Add git version support policy (fbb0c60)
- clone: Simplify single_branch validator (3900233)
- Expand AI instructions with comprehensive workflows (04907ed)
- Make env_overrides more flexible and idiomatic (dc0b43b)
- Ruby
Published by jcouball 8 months ago
https://github.com/ruby-git/ruby-git - v4.0.6
4.0.6 (2025-11-11)
Bug Fixes
Other Changes
- Refactor Rakefile by splitting tasks into separate files (bd69f9b)
- Remove redundant escape in BRANCH_LINE_REGEXP (Style/RedundantRegexpEscape) (4a03b5c)
- Ruby
Published by jcouball 9 months ago
https://github.com/ruby-git/ruby-git - v4.0.5
4.0.5 (2025-08-20)
Bug Fixes
- Properly parse UTF-8(multibyte) file paths in git output (8e6a11e)
Other Changes
- Document and announce the proposed architectural redesign (e27255a)
- Minor change to the architecture redesign document (b4634b5)
- Rearrange README so that Summary is at the top (3d2c473)
- Update ClassLength max in .rubocop_todo.yml for CI passing (4430478)
- Ruby
Published by jcouball 12 months ago
https://github.com/ruby-git/ruby-git - v4.0.4
4.0.4 (2025-07-09)
Bug Fixes
Other Changes
- Add tests for Git::Base#set_index including deprecation (e6ccb11)
- Add tests for Git::Base#set_working including deprecation (ee11137)
- Add tests to verify Git::Object.new creates the right type of object (ab17621)
- Verify deprecated Git::Log methods emit a deprecation warning (abb0efb)
- Ruby
Published by jcouball about 1 year ago
https://github.com/ruby-git/ruby-git -
4.0.3 (2025-07-08)
Bug Fixes
- Correct the deprecation horizon for Git deprecations (b7b7f38)
- Fix Rubocop Layout/EmptyLinesAroundClassBody offense (1de27da)
- Internally create a Stash with non-deprecated initializer args (8b9b9e2)
- Report correct line number in deprecation warnings (cca0deb)
- Un-deprecate Git::Diff methods (761b6ff)
Other Changes
- Make tests that emit a deprecation warning fail (7e211d7)
- Update all tests to not use deprecated features (33ab0e2)
- Ruby
Published by jcouball about 1 year ago
https://github.com/ruby-git/ruby-git - v4.0.1
4.0.1 (2025-07-06)
Bug Fixes
- Fix Rubocop Layout/LineLength offense (52d80ac)
- Fix Rubocop Lint/EmptyBlock offense (9081f0f)
- Fix Rubocop Lint/MissingSuper offense (e9e91a8)
- Fix Rubocop Lint/StructNewOverride offense (141c2cf)
- Fix Rubocop Lint/SuppressedException offense (4372a20)
- Fix Rubocop Lint/UselessConstantScoping offense (54c4a3b)
- Fix Rubocop Metrics/AbcSize offense (256d860)
- Fix Rubocop Metrics/BlockLength offense (9c856ba)
- Fix Rubocop Metrics/ClassLength offense (exclude tests) (d70c800)
- Fix Rubocop Metrics/ClassLength offense (refactor Git::Log) (1aae57a)
- Fix Rubocop Metrics/ClassLength offense (refactor Git::Status) (e3a378b)
- Fix Rubocop Metrics/CyclomaticComplexity offense (abfcf94)
- Fix Rubocop Metrics/MethodLength offense (e708c36)
- Fix Rubocop Metrics/ParameterLists offense (c7946b0)
- Fix Rubocop Metrics/PerceivedComplexity offense (5dd5e0c)
- Fix Rubocop Naming/AccessorMethodName offense (e9d9c4f)
- Fix Rubocop Naming/HeredocDelimiterNaming offense (b4297a5)
- Fix Rubocop Naming/PredicateMethod offense (d33f7a8)
- Fix Rubocop Naming/PredicatePrefix offense (57edc79)
- Fix Rubocop Naming/VariableNumber offense (3fba6fa)
- Fix Rubocop Style/ClassVars offense (a2f651a)
- Fix Rubocop Style/Documentation offense (e80c27d)
- Fix Rubocop Style/IfUnlessModifier offense (c974832)
- Fix Rubocop Style/MultilineBlockChain offense (dd4e4ec)
- Fix Rubocop Style/OptionalBooleanParameter offense (c010a86)
- Fix typo in status.rb (284fae7)
- Remove duplicate methods found by rubocop (bd691c5)
- Result of running rake rubocop:autocorrect (8f1e3bb)
- Result of running rake rubocop:autocorrect_all (5c75783)
Other Changes
- Add rubocop todo file to silence known offenses until they can be fixed (2c36f8c)
- Avoid deprecated dsa for tests keys (1da8c28)
- Fix yarddoc error caused by rubocop autocorrect (58c4af3)
- Integrate Rubocop with the project (a04297d)
- Rename Gem::Specification variable from s to spec (4d976c4)
- Ruby
Published by jcouball about 1 year ago
https://github.com/ruby-git/ruby-git - v4.0.0
4.0.0 (2025-07-02)
⚠ BREAKING CHANGES
- Users will need to be on Ruby 3.2 or greater
Features
- Add Log#execute to run the log and return an immutable result (ded54c4)
- diff: Refactor Git::Diff to separate concerns and improve AP (e22eb10)
- Upgrade minimally supported Ruby to 3.2 (fb93ef1)
Other Changes
- Ruby
Published by jcouball about 1 year ago
https://github.com/ruby-git/ruby-git - v3.1.1
3.1.1 (2025-07-02)
Bug Fixes
Other Changes
- Announce default branch change in README (e04f08e)
- Update the project's default branch from 'master' to 'main' (a5aa75f)
- Ruby
Published by jcouball about 1 year ago
https://github.com/ruby-git/ruby-git - v3.1.0
3.1.0 (2025-05-18)
Features
- Make Git::Log support the git log --merges option (df3b07d)
Other Changes
- Announce and document guidelines for using Conventional Commits (a832259)
- Skip continuous integration workflow for release PRs (f647a18)
- Skip the experiemental build workflow if a release commit is pushed to master (3dab0b3)
- Ruby
Published by jcouball about 1 year ago
https://github.com/ruby-git/ruby-git - v3.0.2
3.0.2 (2025-05-15)
Bug Fixes
- Trigger the release workflow on a change to 'master' insetad of 'main' (c8611f1)
Other Changes
- Automate continuous delivery workflow (06480e6)
- Enforce conventional commit messages with a GitHub action (1da4c44)
- Enforce conventional commit messages with husky and commitlint (7ebe0f8)
- Ruby
Published by jcouball over 1 year ago
https://github.com/ruby-git/ruby-git - Release v3.0.1
v3.0.1 (2025-05-14)
Changes since v3.0.0:
- b47eedc Improved error message of rev_parse
- 9d44146 chore: update the development dependency on the minitar gem
- f407b92 feat: set the locale to en_US.UTF-8 for git commands
- b060e47 test: verify that command line envionment variables are set as expected
- 1a5092a chore: release v3.0.0
- Ruby
Published by jcouball over 1 year ago
https://github.com/ruby-git/ruby-git - Release v3.0.0
v3.0.0 (2025-02-27)
Changes since v2.3.3:
- 534fcf5 chore: use ProcessExecuter.run instead of the implementing it in this gem
- 629f3b6 feat: update dependenices
- 501d135 feat: add support for Ruby 3.4 and drop support for Ruby 3.0
- 38c0eb5 build: update the CI build to use current versions to TruffleRuby and JRuby
- d3f3a9d chore: add frozen_string_literal: true magic comment
- Ruby
Published by jcouball over 1 year ago
https://github.com/ruby-git/ruby-git - Release v2.3.3
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
- Ruby
Published by jcouball over 1 year ago
https://github.com/ruby-git/ruby-git - Release v2.3.2
v2.3.2 (2024-11-19)
Changes since v2.3.1:
- 7646e38 fix: improve error message for Git::Lib#branches_all
- Ruby
Published by jcouball over 1 year ago
https://github.com/ruby-git/ruby-git - Release v2.3.1
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
- Ruby
Published by jcouball almost 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.3.0
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
- Ruby
Published by jcouball almost 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.2.0
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
- Ruby
Published by jcouball almost 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.1.1
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
- Ruby
Published by jcouball about 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.1.0
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
- Ruby
Published by jcouball about 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.0.1
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
- Ruby
Published by jcouball about 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.0.0
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
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.0.0.pre4
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
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.0.0.pre3
v2.0.0.pre3 (2024-03-15)
Changes since v2.0.0.pre2:
- 5d4b34e Allow allow_unrelated_histories option for Base#pull
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.0.0.pre2
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)
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release 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)
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v2.0.0-pre.1
v2.0.0-pre.1 (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)
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v1.19.1
v1.19.1 (2024-01-13)
Changes since v1.19.0:
- f97c57c Announce the 2.0.0 pre-release (#682)
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v1.19.0
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)
- Ruby
Published by jcouball over 2 years ago
https://github.com/ruby-git/ruby-git - Release v1.18.0
v1.18.0 (2023-03-19)
Changes since v1.17.2:
- 3c70 Add support for
--update-head-oktofetch(#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.openworks to open a submodule (#655) - 5b0e Update Git.clone to set multiple config variables (#653)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.17.2
v1.17.2 (2023-03-07)
Changes since v1.17.1:
- f43d6 Fix branch name parsing to handle names that include slashes (#651)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.17.1
v1.17.1 (2023-03-06)
Changes since v1.17.0:
- 774e Revert introduction of ActiveSupport dependency (#649)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.17.0
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)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.16.0
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
#branchname should default to current branch instead ofmaster(#638) - d33d #checkout without args should do same as
git checkoutwith no args (#637) - 0c90 #push without args should do same as
git pushwith no args (#636) - 2b19 Make it easier to run test files from the command line (#635)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.15.0
v1.15.0 (2023-03-01)
Changes since v1.14.0:
- b40d #pull with no options should do the same thing as
git pullwith no options (#633) - 9c5e Fix error when calling
Git::Lib#removewithrecursiveorcachedoptions (#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)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.14.0
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)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.13.2
v1.13.2 (2023-02-02)
Changes since v1.13.1:
- b6e031d Fix
Git::Lib#commit_datafor GPG-signed commits (#610) - b12b820 Fix escaped path decoding (#612)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - v1.13.0
- ca8ff35 Release v1.13.0 (#603)
- 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)
- Ruby
Published by jcouball over 3 years ago
https://github.com/ruby-git/ruby-git - Release v1.12.0
- ea79dad Release v1.12.0
- e58cd29 Support the commit --no-gpg-sign flag (#589)
- 323383b Use yard gem version 0.9.8 or later instead of HEAD from GitHub (#592)
- 609ab8b Allow the CI build to be run manually using the GitHub interface (#590)
- 4a96679 Fix windows build (#591)
- 6f2b3fd Support the --all option for git fetch (#583)
- 1b13ec1 Workaround to get JRuby build working (#582)
- 5f0adec Update README.md (#580)
- 45b467c Make the directory param to Git.clone optional (#578)
- b92130c Make Git::URL.clone_to handle cloning to bare and mirror repos (#577)
- 13471d7 Add Git::URL #parse and #clone_to methods (#575)
- 0a43d8b Use the head version of yard (#573)
- Ruby
Published by jcouball almost 4 years ago
https://github.com/ruby-git/ruby-git - Release 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)
- Ruby
Published by jcouball over 4 years ago
https://github.com/ruby-git/ruby-git - Release v1.10.2
- 57f941c Release v1.10.2
- c987a74 Add create-release, setup, and console dev scripts (#560)
- 12e3d03 Store tempfile objects to prevent deletion during tests (#555)
- Ruby
Published by jcouball over 4 years ago
https://github.com/ruby-git/ruby-git - Release v1.10.1
- c7b12af Release v1.10.1
- ea28118 Properly escape double quotes in shell commands on Windows (#552)
- db060fc Properly unescape diff paths (#504)
- ea47044 Add Ruby 3.0 to CI build (#547)
- cb01d2b Create a Docker image to run the changelog (#546)
- Ruby
Published by jcouball over 4 years ago
https://github.com/ruby-git/ruby-git - v.1.10.0
- 8acec7d Release v1.10.0 (#545)
- 8feb4ff Refactor directory initialization (#544)
- 3884314 Add -ff option to git clean (#529)
- 984ff7f #533 Add --depth options for fetch call (#534)
- 6cba37e Add support for
git init --initial-branch=mainargument (#539) - ff98c42 Add support for the
git merge --no-commitargument (#538) - 1023f85 Require pathname module (#536)
- Ruby
Published by jcouball over 4 years ago
https://github.com/ruby-git/ruby-git - v1.9.1
- 58100b0 Release v1.9.1 (#527)
- 45aeac9 Fix the gpg_sign commit option (#525)
- Ruby
Published by jcouball about 5 years ago
https://github.com/ruby-git/ruby-git - v1.9.0
- 07a1167 Release v1.9.0 (#524)
- 8fe479b Fix worktree test when git dir includes symlinks (#522)
- 0cef8ac feat: add --gpg-sign option on commits (#518)
- 765df7c Adds file option to config_set to allow adding to specific git-config files (#458)
- 8cd523a Add "g.current_branch" to Readme.md (#519)
- 98270b6 use spaces instead of tab (#517)
- e2fd4af test: git show should not chomp results (#513)
- bd026d3 Remove JRuby on Windows workaround (#511)
- d1b1711 Add gem build, install, and sanity test to CI build (#509)
- Ruby
Published by jcouball about 5 years ago
https://github.com/ruby-git/ruby-git - v1.8.1
- 3c66e2b Release v1.8.1 (#508)
- 53a03c4 Add all appropriate files (excluding tests) to the gem (#507)
- Ruby
Published by jcouball over 5 years ago
https://github.com/ruby-git/ruby-git - v1.8.0
- 352f688 Release v1.8.0 (#505)
- 12f908c Add YARD documentation to ruby-git (#502)
- a25eb1a Add
cherrysupport to Git::Log (#97) - 181ace3 Fix Git module config method (#399)
- a1202eb Allow a logger to be passed to Git.clone (#501)
- 246af64 Update index before fetching modified files (#409)
- 8345fec Fix issues with a HEREDOC entry in git.status (#385)
- 0593e4f Add no-ff merge option. (#471)
- b2f8845 Support arbitrary object name lengths (set with core.abbrev)
- 8b3bd25 Do not call chomp! on an IO object (#500)
- c81cc03 Calculate the default for index relative to git_dir instead of work_tree (#499)
- d31709b Clean Code Examples in README (#456)
- dbcd8e0 Switch CI from Travis to GitHub Actions (#498)
- f9abb18 Allow users to provide '--refs' to 'ls-remote' (#494)
- 55424e5 Fix keyword arg deprecation warning introduced in PR #368 (#493)
- 7afaeab Do not always chomp output (#368)
- 1b5256c Windows/JRuby fixes/tests/refactorings/travis-ci (#480)
- d1908f6 Add worktree functionality (#479)
- 896e31d Add commit --allow-empty-message option and fix empty message parsing in process_commit_log_data (#482)
- 8766dca Added ruby-2.7 to .travis.yml (#483)
- Ruby
Published by jcouball over 5 years ago
https://github.com/ruby-git/ruby-git - v1.7.0
- 2302673 Release v1.7.0
- b8c6320 Disable GPG Signing in Test Config (#467)
- 861eb71 Add no verify for commit with documentation (#454)
- f3b439d Fix hash keys in #describe (#415)
- 9f8e1c8 README: Use SVG Badge (#457)
- 5391aef Git::Lib#normalize_encoding early return fix (#461)
- 2b9629d Remove extraneous '--' from
git stash save -- message - af4902b Fix Ruby 2.7 Deprecation Warning About Keyword Args (#453)
- c10ca28 Fix issue with color escape codes after recent update of
gitbinaries (#427) - c85dd82 Fix describe command's dirty, abbrev, candidates, and match options (#447)
- e0a385f Fix broken link in a PR template (#444, #446)
- Ruby
Published by jcouball over 6 years ago
https://github.com/ruby-git/ruby-git - v1.6.0
- 49db88b Release v1.6.0 (#443)
- 7e5bdc9 Add James Couball to the maintainers list. (#437)
- 5fadba8 Update instructions for making contributions (#438)
- e44c18e Removed blank after method name to fix warning (#439)
- e40e074 Include version.rb, providing Git::VERSION (#436)
- Ruby
Published by jcouball over 6 years ago
https://github.com/ruby-git/ruby-git -
- b9c7c5c Release v1.6.0.pre1
- a107e87 Update version for pre-release (#435)
- d916b45 Fix Stalebot settings to not auto-close old issues/PRs (#433)
- f5cd6a6 Implementation and tests required to ensure that command output encoding does not raise an exception (#405)
- 2402674 Allow consumers to point git binary via env var (#416)
- 9bd4407 Do not allow changes to ENV to leak from test to test (#403)
- a4fbb6b Support merge-base (#370)
- b7a1a67 Add support for unshallow (#377)
- 7d43d23 Adding ruby-head and ruby 2.6 to Travis, removing C ext from repo (#382)
- Ruby
Published by jcouball over 6 years ago
https://github.com/ruby-git/ruby-git -
- fd2642a Release v1.5.0
- 6d5bacd removing un-needed file as we are now using Git::VERSION from inside the lib/git (#379)
- 9341416 using File as a block so that it tears down once everything has completed, adding a API directly in stashes, and adding testing around it. (#378)
- 7ff5d78 Support 'push --delete' (#325)
- f911c26 commit with custom author date (#374)
- 3bbf612 Check if branch contains commit (#174)
- 27715e9 .travis.yml: Update supported Ruby versions (#371)
- d5b0ec0 process_full_diff: Don't reencode diffs which are already UTF-8 (#369)
- 4435e08 config_get: Fix incorrect block name (#373)
- e7f1880 Allow fetch operation to receive a
refparam (#362) - d1ab2c7 Fix space prefix in tag message (#316)
- 4aa6d1f Creates CONTRIBUTOR and MAINTAINERS files (#353)
- Ruby
Published by perlun about 8 years ago
https://github.com/ruby-git/ruby-git -
- c8d1012 Release 1.4.0
- 64c6fa0 Update gemspec (#366)
- b48231e Enable set url on remotes (#338)
- 819d0d8 Enable mirror option for git clone and push (#342)
- fe680f8 Fix UTF-8 message errors (#327)
- 667de5a Added probot stale config (#354)
- a6288fc Tweaking yaml build to reveal git version (#356)
- 5507d98 Fix ls-files for git 2.16 (#350)
- 4686675 Added boolean functions for git status (#348)
- 47e3f07 Travis: Fixed unit tests to run again (#344)
- 7dde1c7 Whitespace fixes.
- 37b38b5 Update README.md
- Ruby
Published by perlun over 8 years ago
https://github.com/ruby-git/ruby-git -
- a223fcf Bump version 1.3.0 Dropping ruby 1.8.x support
- 3bc4f5e removing ree and ruby 1.8.7 from travis
- Ruby
Published by perlun over 8 years ago
https://github.com/ruby-git/ruby-git - v1.2.10
- 6f48447 Adding before install to travis. (update bundler)
- b224195 Allowing failure on travis for tuby 1.8.x
- 64a2bdd Bump version - 1.2.10
- bddcc9f Merge branch 'master' into diff_name_status
- 69bae05 Updating String#encode usage to prevent silly type errors with its params
- 0cb1230 Merge branch 'bakku-master'
- c7a6983 Updating git rm docs
- 9d963a3 Merge branch 'master' of https://github.com/bakku/ruby-git into bakku-master
- 1feb6eb Merge pull request #276 from davidvartanian/master
- fd86ddd Fix the encoding issue - 'split': invalid byte sequence in UTF-8 (Argument Error) #190 - from up-to-date master
- 1668f1f added support for git rm --cached
- 72d7a3d Adding
Git::Diff.name_statussupport - 14738bb fix git ssh env usage
- cc6d6ef Updating version (1.2.9.1)
- 47051ed Preventing
Git::Config.git_sshfrom overwriting the previously set GIT_SSH env value unless a custom value is set viaGit.configurecloses #212 - 308281f Update README.md
- Ruby
Published by perlun over 8 years ago