git 4.4.1 → 5.0.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/copilot-instructions.md +67 -2705
- data/.github/pull_request_template.md +3 -1
- data/.github/skills/breaking-change-analysis/SKILL.md +102 -0
- data/.github/skills/ci-cd-troubleshooting/SKILL.md +264 -0
- data/.github/skills/command-implementation/REFERENCE.md +993 -0
- data/.github/skills/command-implementation/SKILL.md +229 -0
- data/.github/skills/command-test-conventions/SKILL.md +660 -0
- data/.github/skills/command-yard-documentation/SKILL.md +426 -0
- data/.github/skills/dependency-management/SKILL.md +72 -0
- data/.github/skills/development-workflow/SKILL.md +506 -0
- data/.github/skills/extract-command-from-lib/SKILL.md +487 -0
- data/.github/skills/extract-facade-from-base-lib/SKILL.md +586 -0
- data/.github/skills/facade-implementation/REFERENCE.md +840 -0
- data/.github/skills/facade-implementation/SKILL.md +260 -0
- data/.github/skills/facade-test-conventions/SKILL.md +380 -0
- data/.github/skills/facade-yard-documentation/SKILL.md +429 -0
- data/.github/skills/make-skill-template/SKILL.md +176 -0
- data/.github/skills/pr-readiness-review/SKILL.md +185 -0
- data/.github/skills/project-context/SKILL.md +313 -0
- data/.github/skills/pull-request-review/SKILL.md +168 -0
- data/.github/skills/refactor-command-to-commandlineresult/SKILL.md +131 -0
- data/.github/skills/release-management/SKILL.md +125 -0
- data/.github/skills/review-arguments-dsl/CHECKLIST.md +788 -0
- data/.github/skills/review-arguments-dsl/SKILL.md +214 -0
- data/.github/skills/review-backward-compatibility/SKILL.md +275 -0
- data/.github/skills/review-cross-command-consistency/SKILL.md +139 -0
- data/.github/skills/reviewing-skills/SKILL.md +189 -0
- data/.github/skills/rspec-unit-testing-standards/SKILL.md +639 -0
- data/.github/skills/tdd-refactor-step/SKILL.md +236 -0
- data/.github/skills/test-debugging/SKILL.md +160 -0
- data/.github/skills/yard-documentation/SKILL.md +793 -0
- data/.github/workflows/continuous_integration.yml +3 -67
- data/.github/workflows/enforce_conventional_commits.yml +1 -1
- data/.github/workflows/experimental_continuous_integration.yml +2 -2
- data/.github/workflows/release.yml +3 -4
- data/.gitignore +8 -0
- data/.husky/pre-commit +13 -0
- data/.release-please-manifest.json +1 -1
- data/.rspec +3 -0
- data/.rubocop.yml +7 -3
- data/.rubocop_todo.yml +23 -5
- data/.yardopts +1 -0
- data/CHANGELOG.md +0 -66
- data/CONTRIBUTING.md +694 -53
- data/README.md +17 -17
- data/Rakefile +61 -9
- data/commitlint.test +4 -0
- data/git.gemspec +14 -8
- data/lib/git/args_builder.rb +0 -8
- data/lib/git/base.rb +488 -412
- data/lib/git/branch.rb +117 -59
- data/lib/git/branch_delete_failure.rb +31 -0
- data/lib/git/branch_delete_result.rb +63 -0
- data/lib/git/branch_info.rb +178 -0
- data/lib/git/branches.rb +130 -24
- data/lib/git/command_line/base.rb +245 -0
- data/lib/git/command_line/capturing.rb +249 -0
- data/lib/git/command_line/result.rb +96 -0
- data/lib/git/command_line/streaming.rb +194 -0
- data/lib/git/command_line.rb +43 -322
- data/lib/git/command_line_result.rb +4 -88
- data/lib/git/commands/add.rb +131 -0
- data/lib/git/commands/am/abort.rb +43 -0
- data/lib/git/commands/am/apply.rb +252 -0
- data/lib/git/commands/am/continue.rb +43 -0
- data/lib/git/commands/am/quit.rb +43 -0
- data/lib/git/commands/am/retry.rb +47 -0
- data/lib/git/commands/am/show_current_patch.rb +64 -0
- data/lib/git/commands/am/skip.rb +42 -0
- data/lib/git/commands/am.rb +33 -0
- data/lib/git/commands/apply.rb +237 -0
- data/lib/git/commands/archive/list_formats.rb +46 -0
- data/lib/git/commands/archive.rb +140 -0
- data/lib/git/commands/arguments.rb +3510 -0
- data/lib/git/commands/base.rb +403 -0
- data/lib/git/commands/branch/copy.rb +94 -0
- data/lib/git/commands/branch/create.rb +173 -0
- data/lib/git/commands/branch/delete.rb +80 -0
- data/lib/git/commands/branch/list.rb +162 -0
- data/lib/git/commands/branch/move.rb +94 -0
- data/lib/git/commands/branch/set_upstream.rb +86 -0
- data/lib/git/commands/branch/show_current.rb +49 -0
- data/lib/git/commands/branch/unset_upstream.rb +57 -0
- data/lib/git/commands/branch.rb +34 -0
- data/lib/git/commands/cat_file/batch.rb +364 -0
- data/lib/git/commands/cat_file/filtered.rb +105 -0
- data/lib/git/commands/cat_file/raw.rb +210 -0
- data/lib/git/commands/cat_file.rb +49 -0
- data/lib/git/commands/checkout/branch.rb +151 -0
- data/lib/git/commands/checkout/files.rb +115 -0
- data/lib/git/commands/checkout.rb +38 -0
- data/lib/git/commands/checkout_index.rb +105 -0
- data/lib/git/commands/clean.rb +100 -0
- data/lib/git/commands/clone.rb +240 -0
- data/lib/git/commands/commit.rb +272 -0
- data/lib/git/commands/commit_tree.rb +100 -0
- data/lib/git/commands/config_option_syntax/add.rb +83 -0
- data/lib/git/commands/config_option_syntax/get.rb +117 -0
- data/lib/git/commands/config_option_syntax/get_all.rb +115 -0
- data/lib/git/commands/config_option_syntax/get_color.rb +91 -0
- data/lib/git/commands/config_option_syntax/get_color_bool.rb +93 -0
- data/lib/git/commands/config_option_syntax/get_regexp.rb +115 -0
- data/lib/git/commands/config_option_syntax/get_urlmatch.rb +102 -0
- data/lib/git/commands/config_option_syntax/list.rb +107 -0
- data/lib/git/commands/config_option_syntax/remove_section.rb +74 -0
- data/lib/git/commands/config_option_syntax/rename_section.rb +78 -0
- data/lib/git/commands/config_option_syntax/replace_all.rb +104 -0
- data/lib/git/commands/config_option_syntax/set.rb +114 -0
- data/lib/git/commands/config_option_syntax/unset.rb +89 -0
- data/lib/git/commands/config_option_syntax/unset_all.rb +89 -0
- data/lib/git/commands/config_option_syntax.rb +56 -0
- data/lib/git/commands/describe.rb +155 -0
- data/lib/git/commands/diff.rb +656 -0
- data/lib/git/commands/diff_files.rb +518 -0
- data/lib/git/commands/diff_index.rb +496 -0
- data/lib/git/commands/fetch.rb +352 -0
- data/lib/git/commands/fsck.rb +136 -0
- data/lib/git/commands/gc.rb +132 -0
- data/lib/git/commands/grep.rb +338 -0
- data/lib/git/commands/init.rb +99 -0
- data/lib/git/commands/log.rb +632 -0
- data/lib/git/commands/ls_files.rb +191 -0
- data/lib/git/commands/ls_remote.rb +155 -0
- data/lib/git/commands/ls_tree.rb +131 -0
- data/lib/git/commands/maintenance/register.rb +75 -0
- data/lib/git/commands/maintenance/run.rb +104 -0
- data/lib/git/commands/maintenance/start.rb +66 -0
- data/lib/git/commands/maintenance/stop.rb +55 -0
- data/lib/git/commands/maintenance/unregister.rb +79 -0
- data/lib/git/commands/maintenance.rb +31 -0
- data/lib/git/commands/merge/abort.rb +44 -0
- data/lib/git/commands/merge/continue.rb +44 -0
- data/lib/git/commands/merge/quit.rb +46 -0
- data/lib/git/commands/merge/start.rb +245 -0
- data/lib/git/commands/merge.rb +28 -0
- data/lib/git/commands/merge_base.rb +86 -0
- data/lib/git/commands/mv.rb +77 -0
- data/lib/git/commands/name_rev.rb +114 -0
- data/lib/git/commands/pull.rb +377 -0
- data/lib/git/commands/push.rb +246 -0
- data/lib/git/commands/read_tree.rb +149 -0
- data/lib/git/commands/remote/add.rb +91 -0
- data/lib/git/commands/remote/get_url.rb +66 -0
- data/lib/git/commands/remote/list.rb +54 -0
- data/lib/git/commands/remote/prune.rb +61 -0
- data/lib/git/commands/remote/remove.rb +52 -0
- data/lib/git/commands/remote/rename.rb +69 -0
- data/lib/git/commands/remote/set_branches.rb +63 -0
- data/lib/git/commands/remote/set_head.rb +82 -0
- data/lib/git/commands/remote/set_url.rb +71 -0
- data/lib/git/commands/remote/set_url_add.rb +61 -0
- data/lib/git/commands/remote/set_url_delete.rb +64 -0
- data/lib/git/commands/remote/show.rb +71 -0
- data/lib/git/commands/remote/update.rb +72 -0
- data/lib/git/commands/remote.rb +42 -0
- data/lib/git/commands/repack.rb +277 -0
- data/lib/git/commands/reset.rb +147 -0
- data/lib/git/commands/rev_parse.rb +297 -0
- data/lib/git/commands/revert/abort.rb +45 -0
- data/lib/git/commands/revert/continue.rb +57 -0
- data/lib/git/commands/revert/quit.rb +47 -0
- data/lib/git/commands/revert/skip.rb +44 -0
- data/lib/git/commands/revert/start.rb +153 -0
- data/lib/git/commands/revert.rb +29 -0
- data/lib/git/commands/rm.rb +114 -0
- data/lib/git/commands/show.rb +632 -0
- data/lib/git/commands/show_ref/exclude_existing.rb +120 -0
- data/lib/git/commands/show_ref/exists.rb +78 -0
- data/lib/git/commands/show_ref/list.rb +145 -0
- data/lib/git/commands/show_ref/verify.rb +120 -0
- data/lib/git/commands/show_ref.rb +42 -0
- data/lib/git/commands/stash/apply.rb +75 -0
- data/lib/git/commands/stash/branch.rb +65 -0
- data/lib/git/commands/stash/clear.rb +41 -0
- data/lib/git/commands/stash/create.rb +58 -0
- data/lib/git/commands/stash/drop.rb +67 -0
- data/lib/git/commands/stash/list.rb +39 -0
- data/lib/git/commands/stash/pop.rb +78 -0
- data/lib/git/commands/stash/push.rb +103 -0
- data/lib/git/commands/stash/show.rb +149 -0
- data/lib/git/commands/stash/store.rb +63 -0
- data/lib/git/commands/stash.rb +38 -0
- data/lib/git/commands/status.rb +169 -0
- data/lib/git/commands/symbolic_ref/delete.rb +68 -0
- data/lib/git/commands/symbolic_ref/read.rb +95 -0
- data/lib/git/commands/symbolic_ref/update.rb +76 -0
- data/lib/git/commands/symbolic_ref.rb +38 -0
- data/lib/git/commands/tag/create.rb +139 -0
- data/lib/git/commands/tag/delete.rb +55 -0
- data/lib/git/commands/tag/list.rb +143 -0
- data/lib/git/commands/tag/verify.rb +71 -0
- data/lib/git/commands/tag.rb +26 -0
- data/lib/git/commands/update_ref/batch.rb +140 -0
- data/lib/git/commands/update_ref/delete.rb +92 -0
- data/lib/git/commands/update_ref/update.rb +106 -0
- data/lib/git/commands/update_ref.rb +42 -0
- data/lib/git/commands/version.rb +52 -0
- data/lib/git/commands/worktree/add.rb +140 -0
- data/lib/git/commands/worktree/list.rb +64 -0
- data/lib/git/commands/worktree/lock.rb +58 -0
- data/lib/git/commands/worktree/management_base.rb +51 -0
- data/lib/git/commands/worktree/move.rb +66 -0
- data/lib/git/commands/worktree/prune.rb +67 -0
- data/lib/git/commands/worktree/remove.rb +63 -0
- data/lib/git/commands/worktree/repair.rb +76 -0
- data/lib/git/commands/worktree/unlock.rb +47 -0
- data/lib/git/commands/worktree.rb +43 -0
- data/lib/git/commands/write_tree.rb +68 -0
- data/lib/git/commands.rb +89 -0
- data/lib/git/detached_head_info.rb +54 -0
- data/lib/git/diff.rb +297 -7
- data/lib/git/diff_file_numstat_info.rb +29 -0
- data/lib/git/diff_file_patch_info.rb +134 -0
- data/lib/git/diff_file_raw_info.rb +127 -0
- data/lib/git/diff_info.rb +169 -0
- data/lib/git/diff_path_status.rb +78 -19
- data/lib/git/diff_result.rb +32 -0
- data/lib/git/diff_stats.rb +59 -14
- data/lib/git/dirstat_info.rb +86 -0
- data/lib/git/errors.rb +65 -2
- data/lib/git/execution_context/global.rb +56 -0
- data/lib/git/execution_context/repository.rb +147 -0
- data/lib/git/execution_context.rb +482 -0
- data/lib/git/file_ref.rb +74 -0
- data/lib/git/fsck_object.rb +9 -9
- data/lib/git/fsck_result.rb +1 -1
- data/lib/git/lib.rb +1606 -1085
- data/lib/git/log.rb +15 -2
- data/lib/git/object.rb +92 -22
- data/lib/git/parsers/branch.rb +224 -0
- data/lib/git/parsers/cat_file.rb +111 -0
- data/lib/git/parsers/diff.rb +585 -0
- data/lib/git/parsers/fsck.rb +133 -0
- data/lib/git/parsers/grep.rb +42 -0
- data/lib/git/parsers/ls_tree.rb +58 -0
- data/lib/git/parsers/stash.rb +208 -0
- data/lib/git/parsers/tag.rb +257 -0
- data/lib/git/remote.rb +133 -9
- data/lib/git/repository/branching.rb +572 -0
- data/lib/git/repository/committing.rb +191 -0
- data/lib/git/repository/configuring.rb +156 -0
- data/lib/git/repository/diffing.rb +775 -0
- data/lib/git/repository/inspecting.rb +153 -0
- data/lib/git/repository/logging.rb +247 -0
- data/lib/git/repository/merging.rb +295 -0
- data/lib/git/repository/object_operations.rb +1101 -0
- data/lib/git/repository/path_resolver.rb +207 -0
- data/lib/git/repository/remote_operations.rb +753 -0
- data/lib/git/repository/shared_private.rb +51 -0
- data/lib/git/repository/staging.rb +390 -0
- data/lib/git/repository/stashing.rb +107 -0
- data/lib/git/repository/status_operations.rb +180 -0
- data/lib/git/repository/worktree_operations.rb +159 -0
- data/lib/git/repository.rb +264 -1
- data/lib/git/stash.rb +85 -4
- data/lib/git/stash_info.rb +104 -0
- data/lib/git/stashes.rb +130 -13
- data/lib/git/status.rb +226 -18
- data/lib/git/tag_delete_failure.rb +31 -0
- data/lib/git/tag_delete_result.rb +63 -0
- data/lib/git/tag_info.rb +105 -0
- data/lib/git/version.rb +109 -2
- data/lib/git/version_constraint.rb +81 -0
- data/lib/git/worktree.rb +120 -5
- data/lib/git/worktrees.rb +107 -7
- data/lib/git.rb +117 -56
- data/redesign/1_architecture_existing.md +54 -18
- data/redesign/2_architecture_redesign.md +365 -46
- data/redesign/3_architecture_implementation.md +1451 -54
- data/tasks/gem_tasks.rake +4 -0
- data/tasks/npm_tasks.rake +7 -0
- data/tasks/rspec.rake +48 -0
- data/tasks/test.rake +13 -1
- data/tasks/yard.rake +34 -7
- metadata +349 -20
- data/lib/git/index.rb +0 -6
- data/lib/git/path.rb +0 -38
- data/lib/git/working_directory.rb +0 -6
- /data/{release-please-config.json → .release-please-config.json} +0 -0
|
@@ -33,11 +33,11 @@ jobs:
|
|
|
33
33
|
|
|
34
34
|
steps:
|
|
35
35
|
- name: Checkout Code
|
|
36
|
-
uses: actions/checkout@
|
|
36
|
+
uses: actions/checkout@v6
|
|
37
37
|
|
|
38
38
|
- name: Setup Java
|
|
39
39
|
if: matrix.java_version != ''
|
|
40
|
-
uses: actions/setup-java@
|
|
40
|
+
uses: actions/setup-java@v5
|
|
41
41
|
with:
|
|
42
42
|
distribution: 'temurin'
|
|
43
43
|
java-version: ${{ matrix.java_version }}
|
|
@@ -50,71 +50,7 @@ jobs:
|
|
|
50
50
|
|
|
51
51
|
- name: Run Build
|
|
52
52
|
run: bundle exec rake default
|
|
53
|
+
timeout-minutes: 15
|
|
53
54
|
|
|
54
55
|
- name: Test Gem
|
|
55
56
|
run: bundle exec rake test:gem
|
|
56
|
-
|
|
57
|
-
# The branch ruleset cannot require the matrix job above directly. A required status
|
|
58
|
-
# check is matched by name, and `build`'s name is a template -- GitHub only expands it
|
|
59
|
-
# into "Ruby 3.2 on ubuntu-latest" and friends when it evaluates the matrix. The
|
|
60
|
-
# job-level `if:` short-circuits before that happens, so a release PR reports one check
|
|
61
|
-
# named literally "Ruby ${{ matrix.ruby }} on ${{ matrix.operating-system }}" and the
|
|
62
|
-
# six expanded names never report at all. Required checks that never report block a PR
|
|
63
|
-
# indefinitely rather than passing, which is what stranded the v5.0.5 release PR on
|
|
64
|
-
# main and the v4.4.1 release PR here.
|
|
65
|
-
#
|
|
66
|
-
# So the ruleset requires this job instead: one stable name, no matrix, no template to
|
|
67
|
-
# expand. It also decouples the required-check list from the matrix, so adding or
|
|
68
|
-
# dropping a Ruby version no longer needs a matching ruleset edit.
|
|
69
|
-
#
|
|
70
|
-
# Unlike main, this branch has no separate lint job: `rake default` runs RuboCop and
|
|
71
|
-
# YARD inside every matrix leg, so this one check covers everything CI does here.
|
|
72
|
-
#
|
|
73
|
-
# This job carries the same release-PR guard as the matrix above, so that a release PR
|
|
74
|
-
# reports it as skipped rather than as a success for specs that never ran. Skipping is
|
|
75
|
-
# safe here and was not safe for `build`: this job's name is a literal string, so the
|
|
76
|
-
# check run exists and reports a skipped conclusion whether or not the job runs, and
|
|
77
|
-
# rulesets treat skipped as passing. A matrix job's name does not exist at all until the
|
|
78
|
-
# matrix is evaluated, which is the whole reason this job exists.
|
|
79
|
-
#
|
|
80
|
-
# `always()` is load-bearing and must stay. Without a status check function a job-level
|
|
81
|
-
# `if:` implies `success()`, so a failing matrix would skip this job -- and a skipped
|
|
82
|
-
# required check counts as passing, meaning a red build would merge. `always()` forces a
|
|
83
|
-
# real verdict on every run that is not a release PR. `!cancelled()` is not a substitute:
|
|
84
|
-
# a cancelled run would then skip the gate, and a skipped conclusion is one rulesets treat
|
|
85
|
-
# as passing -- so a build that never finished would stop blocking the merge.
|
|
86
|
-
#
|
|
87
|
-
# The case below accepts `success` only. `build` and this job now carry the same release-PR
|
|
88
|
-
# guard, so this job runs exactly when `build` ran; a `skipped` result would mean the two
|
|
89
|
-
# guards have drifted apart, and failing closed on it turns that into a loud failure rather
|
|
90
|
-
# than a silent pass.
|
|
91
|
-
#
|
|
92
|
-
# Note that a matrix leg marked `experimental: Yes` carries continue-on-error, and a
|
|
93
|
-
# continue-on-error failure does not fail the job as a whole -- so it does not fail this
|
|
94
|
-
# gate either. That is what `experimental` is for; no leg currently sets it.
|
|
95
|
-
build-complete:
|
|
96
|
-
name: All Specs Passed
|
|
97
|
-
|
|
98
|
-
needs: [build]
|
|
99
|
-
|
|
100
|
-
# Report a verdict on every non-release PR regardless of the matrix result, and skip
|
|
101
|
-
# on release PRs, where the matrix was never meant to run.
|
|
102
|
-
if: >-
|
|
103
|
-
always() &&
|
|
104
|
-
(github.event_name == 'workflow_dispatch' ||
|
|
105
|
-
(github.event_name == 'pull_request' && !startsWith(github.event.pull_request.head.ref, 'release-please--')))
|
|
106
|
-
|
|
107
|
-
runs-on: ubuntu-latest
|
|
108
|
-
|
|
109
|
-
steps:
|
|
110
|
-
- name: Check the result of the build job
|
|
111
|
-
run: |
|
|
112
|
-
case "${{ needs.build.result }}" in
|
|
113
|
-
success)
|
|
114
|
-
echo "build: ${{ needs.build.result }}"
|
|
115
|
-
;;
|
|
116
|
-
*)
|
|
117
|
-
echo "::error::build: ${{ needs.build.result }}"
|
|
118
|
-
exit 1
|
|
119
|
-
;;
|
|
120
|
-
esac
|
|
@@ -37,11 +37,11 @@ jobs:
|
|
|
37
37
|
|
|
38
38
|
steps:
|
|
39
39
|
- name: Checkout Code
|
|
40
|
-
uses: actions/checkout@
|
|
40
|
+
uses: actions/checkout@v6
|
|
41
41
|
|
|
42
42
|
- name: Setup Java
|
|
43
43
|
if: matrix.java_version != ''
|
|
44
|
-
uses: actions/setup-java@
|
|
44
|
+
uses: actions/setup-java@v5
|
|
45
45
|
with:
|
|
46
46
|
distribution: 'temurin'
|
|
47
47
|
java-version: ${{ matrix.java_version }}
|
|
@@ -30,16 +30,15 @@ jobs:
|
|
|
30
30
|
|
|
31
31
|
steps:
|
|
32
32
|
- name: Checkout project
|
|
33
|
-
uses: actions/checkout@
|
|
33
|
+
uses: actions/checkout@v6
|
|
34
34
|
|
|
35
35
|
- name: Create release
|
|
36
|
-
uses: googleapis/release-please-action@
|
|
36
|
+
uses: googleapis/release-please-action@v5
|
|
37
37
|
id: release
|
|
38
38
|
with:
|
|
39
39
|
token: ${{ secrets.AUTO_RELEASE_TOKEN }}
|
|
40
|
-
config-file: release-please-config.json
|
|
40
|
+
config-file: .release-please-config.json
|
|
41
41
|
manifest-file: .release-please-manifest.json
|
|
42
|
-
target-branch: ${{ github.ref_name }}
|
|
43
42
|
|
|
44
43
|
- name: Setup ruby
|
|
45
44
|
uses: ruby/setup-ruby@v1
|
data/.gitignore
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
*.kpf
|
|
3
3
|
*.sw?
|
|
4
4
|
.DS_Store
|
|
5
|
+
.bundle/
|
|
6
|
+
vendor/bundle/
|
|
5
7
|
coverage
|
|
6
8
|
doc
|
|
7
9
|
.yardoc
|
|
@@ -12,3 +14,9 @@ node_modules
|
|
|
12
14
|
package-lock.json
|
|
13
15
|
ai-prompt.erb
|
|
14
16
|
rubocop-report.json
|
|
17
|
+
|
|
18
|
+
# rspec failure tracking
|
|
19
|
+
.rspec_status
|
|
20
|
+
|
|
21
|
+
# generated git reference docs
|
|
22
|
+
git-reference/
|
data/.husky/pre-commit
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
branch=$(git branch --show-current)
|
|
4
|
+
|
|
5
|
+
protected_branches="main 4.x"
|
|
6
|
+
|
|
7
|
+
for protected in $protected_branches; do
|
|
8
|
+
if [ "$branch" = "$protected" ]; then
|
|
9
|
+
echo "ERROR: Direct commits to '$branch' are not allowed."
|
|
10
|
+
echo " Create a topic branch first: git switch -c <branch-name>"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
done
|
data/.rspec
ADDED
data/.rubocop.yml
CHANGED
|
@@ -3,6 +3,10 @@ inherit_from: .rubocop_todo.yml
|
|
|
3
3
|
inherit_gem:
|
|
4
4
|
main_branch_shared_rubocop_config: config/rubocop.yml
|
|
5
5
|
|
|
6
|
+
inherit_mode:
|
|
7
|
+
merge:
|
|
8
|
+
- Exclude
|
|
9
|
+
|
|
6
10
|
# Don't care about complexity offenses in the TestUnit tests This exclusions
|
|
7
11
|
# will be removed when we switch to RSpec.
|
|
8
12
|
Metrics/CyclomaticComplexity:
|
|
@@ -33,12 +37,13 @@ Layout/LineLength:
|
|
|
33
37
|
- "tests/units/**/*"
|
|
34
38
|
- "*.gemspec"
|
|
35
39
|
|
|
36
|
-
# Testing and
|
|
40
|
+
# Testing, gemspec, and command DSL blocks are intentionally long
|
|
37
41
|
Metrics/BlockLength:
|
|
38
42
|
Exclude:
|
|
39
43
|
- "tests/test_helper.rb"
|
|
40
44
|
- "tests/units/**/*"
|
|
41
45
|
- "*.gemspec"
|
|
46
|
+
- "lib/git/commands/**/*.rb"
|
|
42
47
|
|
|
43
48
|
# Don't force every test class to be described
|
|
44
49
|
Style/Documentation:
|
|
@@ -46,8 +51,7 @@ Style/Documentation:
|
|
|
46
51
|
- "tests/units/**/*"
|
|
47
52
|
|
|
48
53
|
Style/OneClassPerFile:
|
|
49
|
-
|
|
50
|
-
- "tests/units/**/*"
|
|
54
|
+
Enabled: false
|
|
51
55
|
|
|
52
56
|
AllCops:
|
|
53
57
|
# Pin this project to Ruby 3.1 in case the shared config above is upgraded to 3.2
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
|
-
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
2
|
+
# `rubocop --auto-gen-config --auto-gen-only-exclude --exclude-limit 999`
|
|
3
|
+
# on 2026-01-28 20:48:52 UTC using RuboCop version 1.82.1.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
|
8
8
|
|
|
9
|
-
# Offense count:
|
|
10
|
-
#
|
|
9
|
+
# Offense count: 1
|
|
10
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
11
|
+
# Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
|
|
12
|
+
# URISchemes: http, https
|
|
13
|
+
Layout/LineLength:
|
|
14
|
+
Exclude:
|
|
15
|
+
- 'spec/unit/git/commands/tag/list_spec.rb'
|
|
16
|
+
|
|
17
|
+
# Offense count: 4
|
|
18
|
+
# Configuration parameters: CountComments, Max, CountAsOne.
|
|
11
19
|
Metrics/ClassLength:
|
|
12
|
-
|
|
20
|
+
Exclude:
|
|
21
|
+
- 'lib/git/base.rb'
|
|
22
|
+
- 'lib/git/branch.rb'
|
|
23
|
+
- 'lib/git/commands/arguments.rb'
|
|
24
|
+
- 'lib/git/lib.rb'
|
|
25
|
+
|
|
26
|
+
# Offense count: 1
|
|
27
|
+
# Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns.
|
|
28
|
+
Metrics/MethodLength:
|
|
29
|
+
Exclude:
|
|
30
|
+
- 'lib/git/commands/tag/list.rb'
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -5,72 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
# Change Log
|
|
7
7
|
|
|
8
|
-
## [4.4.1](https://github.com/ruby-git/ruby-git/compare/v4.4.0...v4.4.1) (2026-08-09)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
### Bug Fixes
|
|
12
|
-
|
|
13
|
-
* Pin LC_ALL to a locale that exists on the host platform ([690360e](https://github.com/ruby-git/ruby-git/commit/690360e386bac1dafb7b5bd0adbf10072e834f69)), closes [#1669](https://github.com/ruby-git/ruby-git/issues/1669)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
### Other Changes
|
|
17
|
-
|
|
18
|
-
* Add a matrix-free All Specs Passed gate to 4.x ([5352d6d](https://github.com/ruby-git/ruby-git/commit/5352d6d4edfcb52c544139e265fb3636bc1937b7)), closes [#1675](https://github.com/ruby-git/ruby-git/issues/1675)
|
|
19
|
-
* Skip the All Specs Passed gate on release PRs ([52473b2](https://github.com/ruby-git/ruby-git/commit/52473b21a733499eb274a7b03d53f1a0efbf5c86)), closes [#1675](https://github.com/ruby-git/ruby-git/issues/1675)
|
|
20
|
-
|
|
21
|
-
## [4.4.0](https://github.com/ruby-git/ruby-git/compare/v4.3.2...v4.4.0) (2026-07-11)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
### Features
|
|
25
|
-
|
|
26
|
-
* Allow deprecation behavior env var ([fd622be](https://github.com/ruby-git/ruby-git/commit/fd622bea6513d78f2dbed8dc19c110be80d07ec8))
|
|
27
|
-
* Warn on first direct access to Git::Lib constant ([52059c6](https://github.com/ruby-git/ruby-git/commit/52059c63d5c23b4d80025b95332e946aba942f0c))
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
### Other Changes
|
|
31
|
-
|
|
32
|
-
* Improve YARD documentation for Git::Branch ([#1277](https://github.com/ruby-git/ruby-git/issues/1277)) ([0769bf9](https://github.com/ruby-git/ruby-git/commit/0769bf91a21ecb24d48a31439de073b689bc62b6))
|
|
33
|
-
|
|
34
|
-
## [4.3.2](https://github.com/ruby-git/ruby-git/compare/v4.3.1...v4.3.2) (2026-03-31)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### Bug Fixes
|
|
38
|
-
|
|
39
|
-
* Return empty result from git log on repo with no commits ([d275b25](https://github.com/ruby-git/ruby-git/commit/d275b25b03201ebaca13a81a75e3295ed85c40c7)), closes [#1155](https://github.com/ruby-git/ruby-git/issues/1155)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### Other Changes
|
|
43
|
-
|
|
44
|
-
* Add docker-git script to test with specific git versions ([0cc0e80](https://github.com/ruby-git/ruby-git/commit/0cc0e804758e73520c124622a7ba49ff97f2deaf))
|
|
45
|
-
* Address newly reported rubocop offenses ([a37412d](https://github.com/ruby-git/ruby-git/commit/a37412d6a1cf2b927a6173ea767a7ad9f1290af6))
|
|
46
|
-
|
|
47
|
-
## [4.3.1](https://github.com/ruby-git/ruby-git/compare/v4.3.0...v4.3.1) (2026-02-20)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
### Bug Fixes
|
|
51
|
-
|
|
52
|
-
* Resolve NoMethodError for Git::Base#cat_file ([#1058](https://github.com/ruby-git/ruby-git/issues/1058)) ([310bc73](https://github.com/ruby-git/ruby-git/commit/310bc73c1a62e7548eb43e5d3ef844af0b266fc7))
|
|
53
|
-
|
|
54
|
-
## [4.3.0](https://github.com/ruby-git/ruby-git/compare/v4.2.0...v4.3.0) (2026-01-15)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
### Features
|
|
58
|
-
|
|
59
|
-
* Add support for git fsck command ([c402003](https://github.com/ruby-git/ruby-git/commit/c402003ce0c626a5c4737838cddc4b932638c172)), closes [#218](https://github.com/ruby-git/ruby-git/issues/218)
|
|
60
|
-
|
|
61
|
-
## [4.2.0](https://github.com/ruby-git/ruby-git/compare/v4.1.2...v4.2.0) (2026-01-11)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
### Features
|
|
65
|
-
|
|
66
|
-
* Add deprecation warning for .path accessor ([8af4543](https://github.com/ruby-git/ruby-git/commit/8af4543a25a46bf40ed7a05b31cea1a5b17e3f0b))
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
### Other Changes
|
|
70
|
-
|
|
71
|
-
* Add target-branch to release-please action ([13e041e](https://github.com/ruby-git/ruby-git/commit/13e041ebb76587b90549896a4c9b9b872f60696a))
|
|
72
|
-
* Set 4.x manifest to start from 4.1.1 ([1ccee62](https://github.com/ruby-git/ruby-git/commit/1ccee62cdd832a6de2307b0a61ceb593548e7fe1))
|
|
73
|
-
|
|
74
8
|
## [4.1.2](https://github.com/ruby-git/ruby-git/compare/v4.1.1...v4.1.2) (2026-01-10)
|
|
75
9
|
|
|
76
10
|
|