git 4.3.2 → 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.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/.github/copilot-instructions.md +67 -2705
  3. data/.github/pull_request_template.md +3 -1
  4. data/.github/skills/breaking-change-analysis/SKILL.md +102 -0
  5. data/.github/skills/ci-cd-troubleshooting/SKILL.md +264 -0
  6. data/.github/skills/command-implementation/REFERENCE.md +993 -0
  7. data/.github/skills/command-implementation/SKILL.md +229 -0
  8. data/.github/skills/command-test-conventions/SKILL.md +660 -0
  9. data/.github/skills/command-yard-documentation/SKILL.md +426 -0
  10. data/.github/skills/dependency-management/SKILL.md +72 -0
  11. data/.github/skills/development-workflow/SKILL.md +506 -0
  12. data/.github/skills/extract-command-from-lib/SKILL.md +487 -0
  13. data/.github/skills/extract-facade-from-base-lib/SKILL.md +586 -0
  14. data/.github/skills/facade-implementation/REFERENCE.md +840 -0
  15. data/.github/skills/facade-implementation/SKILL.md +260 -0
  16. data/.github/skills/facade-test-conventions/SKILL.md +380 -0
  17. data/.github/skills/facade-yard-documentation/SKILL.md +429 -0
  18. data/.github/skills/make-skill-template/SKILL.md +176 -0
  19. data/.github/skills/pr-readiness-review/SKILL.md +185 -0
  20. data/.github/skills/project-context/SKILL.md +313 -0
  21. data/.github/skills/pull-request-review/SKILL.md +168 -0
  22. data/.github/skills/refactor-command-to-commandlineresult/SKILL.md +131 -0
  23. data/.github/skills/release-management/SKILL.md +125 -0
  24. data/.github/skills/review-arguments-dsl/CHECKLIST.md +788 -0
  25. data/.github/skills/review-arguments-dsl/SKILL.md +214 -0
  26. data/.github/skills/review-backward-compatibility/SKILL.md +275 -0
  27. data/.github/skills/review-cross-command-consistency/SKILL.md +139 -0
  28. data/.github/skills/reviewing-skills/SKILL.md +189 -0
  29. data/.github/skills/rspec-unit-testing-standards/SKILL.md +639 -0
  30. data/.github/skills/tdd-refactor-step/SKILL.md +236 -0
  31. data/.github/skills/test-debugging/SKILL.md +160 -0
  32. data/.github/skills/yard-documentation/SKILL.md +793 -0
  33. data/.github/workflows/continuous_integration.yml +3 -2
  34. data/.github/workflows/enforce_conventional_commits.yml +1 -1
  35. data/.github/workflows/experimental_continuous_integration.yml +2 -2
  36. data/.github/workflows/release.yml +3 -4
  37. data/.gitignore +8 -0
  38. data/.husky/pre-commit +13 -0
  39. data/.release-please-manifest.json +1 -1
  40. data/.rspec +3 -0
  41. data/.rubocop.yml +7 -3
  42. data/.rubocop_todo.yml +23 -5
  43. data/.yardopts +1 -0
  44. data/CHANGELOG.md +0 -40
  45. data/CONTRIBUTING.md +694 -53
  46. data/README.md +17 -5
  47. data/Rakefile +61 -9
  48. data/commitlint.test +4 -0
  49. data/git.gemspec +14 -8
  50. data/lib/git/args_builder.rb +0 -8
  51. data/lib/git/base.rb +486 -410
  52. data/lib/git/branch.rb +380 -43
  53. data/lib/git/branch_delete_failure.rb +31 -0
  54. data/lib/git/branch_delete_result.rb +63 -0
  55. data/lib/git/branch_info.rb +178 -0
  56. data/lib/git/branches.rb +130 -24
  57. data/lib/git/command_line/base.rb +245 -0
  58. data/lib/git/command_line/capturing.rb +249 -0
  59. data/lib/git/command_line/result.rb +96 -0
  60. data/lib/git/command_line/streaming.rb +194 -0
  61. data/lib/git/command_line.rb +43 -322
  62. data/lib/git/command_line_result.rb +4 -88
  63. data/lib/git/commands/add.rb +131 -0
  64. data/lib/git/commands/am/abort.rb +43 -0
  65. data/lib/git/commands/am/apply.rb +252 -0
  66. data/lib/git/commands/am/continue.rb +43 -0
  67. data/lib/git/commands/am/quit.rb +43 -0
  68. data/lib/git/commands/am/retry.rb +47 -0
  69. data/lib/git/commands/am/show_current_patch.rb +64 -0
  70. data/lib/git/commands/am/skip.rb +42 -0
  71. data/lib/git/commands/am.rb +33 -0
  72. data/lib/git/commands/apply.rb +237 -0
  73. data/lib/git/commands/archive/list_formats.rb +46 -0
  74. data/lib/git/commands/archive.rb +140 -0
  75. data/lib/git/commands/arguments.rb +3510 -0
  76. data/lib/git/commands/base.rb +403 -0
  77. data/lib/git/commands/branch/copy.rb +94 -0
  78. data/lib/git/commands/branch/create.rb +173 -0
  79. data/lib/git/commands/branch/delete.rb +80 -0
  80. data/lib/git/commands/branch/list.rb +162 -0
  81. data/lib/git/commands/branch/move.rb +94 -0
  82. data/lib/git/commands/branch/set_upstream.rb +86 -0
  83. data/lib/git/commands/branch/show_current.rb +49 -0
  84. data/lib/git/commands/branch/unset_upstream.rb +57 -0
  85. data/lib/git/commands/branch.rb +34 -0
  86. data/lib/git/commands/cat_file/batch.rb +364 -0
  87. data/lib/git/commands/cat_file/filtered.rb +105 -0
  88. data/lib/git/commands/cat_file/raw.rb +210 -0
  89. data/lib/git/commands/cat_file.rb +49 -0
  90. data/lib/git/commands/checkout/branch.rb +151 -0
  91. data/lib/git/commands/checkout/files.rb +115 -0
  92. data/lib/git/commands/checkout.rb +38 -0
  93. data/lib/git/commands/checkout_index.rb +105 -0
  94. data/lib/git/commands/clean.rb +100 -0
  95. data/lib/git/commands/clone.rb +240 -0
  96. data/lib/git/commands/commit.rb +272 -0
  97. data/lib/git/commands/commit_tree.rb +100 -0
  98. data/lib/git/commands/config_option_syntax/add.rb +83 -0
  99. data/lib/git/commands/config_option_syntax/get.rb +117 -0
  100. data/lib/git/commands/config_option_syntax/get_all.rb +115 -0
  101. data/lib/git/commands/config_option_syntax/get_color.rb +91 -0
  102. data/lib/git/commands/config_option_syntax/get_color_bool.rb +93 -0
  103. data/lib/git/commands/config_option_syntax/get_regexp.rb +115 -0
  104. data/lib/git/commands/config_option_syntax/get_urlmatch.rb +102 -0
  105. data/lib/git/commands/config_option_syntax/list.rb +107 -0
  106. data/lib/git/commands/config_option_syntax/remove_section.rb +74 -0
  107. data/lib/git/commands/config_option_syntax/rename_section.rb +78 -0
  108. data/lib/git/commands/config_option_syntax/replace_all.rb +104 -0
  109. data/lib/git/commands/config_option_syntax/set.rb +114 -0
  110. data/lib/git/commands/config_option_syntax/unset.rb +89 -0
  111. data/lib/git/commands/config_option_syntax/unset_all.rb +89 -0
  112. data/lib/git/commands/config_option_syntax.rb +56 -0
  113. data/lib/git/commands/describe.rb +155 -0
  114. data/lib/git/commands/diff.rb +656 -0
  115. data/lib/git/commands/diff_files.rb +518 -0
  116. data/lib/git/commands/diff_index.rb +496 -0
  117. data/lib/git/commands/fetch.rb +352 -0
  118. data/lib/git/commands/fsck.rb +136 -0
  119. data/lib/git/commands/gc.rb +132 -0
  120. data/lib/git/commands/grep.rb +338 -0
  121. data/lib/git/commands/init.rb +99 -0
  122. data/lib/git/commands/log.rb +632 -0
  123. data/lib/git/commands/ls_files.rb +191 -0
  124. data/lib/git/commands/ls_remote.rb +155 -0
  125. data/lib/git/commands/ls_tree.rb +131 -0
  126. data/lib/git/commands/maintenance/register.rb +75 -0
  127. data/lib/git/commands/maintenance/run.rb +104 -0
  128. data/lib/git/commands/maintenance/start.rb +66 -0
  129. data/lib/git/commands/maintenance/stop.rb +55 -0
  130. data/lib/git/commands/maintenance/unregister.rb +79 -0
  131. data/lib/git/commands/maintenance.rb +31 -0
  132. data/lib/git/commands/merge/abort.rb +44 -0
  133. data/lib/git/commands/merge/continue.rb +44 -0
  134. data/lib/git/commands/merge/quit.rb +46 -0
  135. data/lib/git/commands/merge/start.rb +245 -0
  136. data/lib/git/commands/merge.rb +28 -0
  137. data/lib/git/commands/merge_base.rb +86 -0
  138. data/lib/git/commands/mv.rb +77 -0
  139. data/lib/git/commands/name_rev.rb +114 -0
  140. data/lib/git/commands/pull.rb +377 -0
  141. data/lib/git/commands/push.rb +246 -0
  142. data/lib/git/commands/read_tree.rb +149 -0
  143. data/lib/git/commands/remote/add.rb +91 -0
  144. data/lib/git/commands/remote/get_url.rb +66 -0
  145. data/lib/git/commands/remote/list.rb +54 -0
  146. data/lib/git/commands/remote/prune.rb +61 -0
  147. data/lib/git/commands/remote/remove.rb +52 -0
  148. data/lib/git/commands/remote/rename.rb +69 -0
  149. data/lib/git/commands/remote/set_branches.rb +63 -0
  150. data/lib/git/commands/remote/set_head.rb +82 -0
  151. data/lib/git/commands/remote/set_url.rb +71 -0
  152. data/lib/git/commands/remote/set_url_add.rb +61 -0
  153. data/lib/git/commands/remote/set_url_delete.rb +64 -0
  154. data/lib/git/commands/remote/show.rb +71 -0
  155. data/lib/git/commands/remote/update.rb +72 -0
  156. data/lib/git/commands/remote.rb +42 -0
  157. data/lib/git/commands/repack.rb +277 -0
  158. data/lib/git/commands/reset.rb +147 -0
  159. data/lib/git/commands/rev_parse.rb +297 -0
  160. data/lib/git/commands/revert/abort.rb +45 -0
  161. data/lib/git/commands/revert/continue.rb +57 -0
  162. data/lib/git/commands/revert/quit.rb +47 -0
  163. data/lib/git/commands/revert/skip.rb +44 -0
  164. data/lib/git/commands/revert/start.rb +153 -0
  165. data/lib/git/commands/revert.rb +29 -0
  166. data/lib/git/commands/rm.rb +114 -0
  167. data/lib/git/commands/show.rb +632 -0
  168. data/lib/git/commands/show_ref/exclude_existing.rb +120 -0
  169. data/lib/git/commands/show_ref/exists.rb +78 -0
  170. data/lib/git/commands/show_ref/list.rb +145 -0
  171. data/lib/git/commands/show_ref/verify.rb +120 -0
  172. data/lib/git/commands/show_ref.rb +42 -0
  173. data/lib/git/commands/stash/apply.rb +75 -0
  174. data/lib/git/commands/stash/branch.rb +65 -0
  175. data/lib/git/commands/stash/clear.rb +41 -0
  176. data/lib/git/commands/stash/create.rb +58 -0
  177. data/lib/git/commands/stash/drop.rb +67 -0
  178. data/lib/git/commands/stash/list.rb +39 -0
  179. data/lib/git/commands/stash/pop.rb +78 -0
  180. data/lib/git/commands/stash/push.rb +103 -0
  181. data/lib/git/commands/stash/show.rb +149 -0
  182. data/lib/git/commands/stash/store.rb +63 -0
  183. data/lib/git/commands/stash.rb +38 -0
  184. data/lib/git/commands/status.rb +169 -0
  185. data/lib/git/commands/symbolic_ref/delete.rb +68 -0
  186. data/lib/git/commands/symbolic_ref/read.rb +95 -0
  187. data/lib/git/commands/symbolic_ref/update.rb +76 -0
  188. data/lib/git/commands/symbolic_ref.rb +38 -0
  189. data/lib/git/commands/tag/create.rb +139 -0
  190. data/lib/git/commands/tag/delete.rb +55 -0
  191. data/lib/git/commands/tag/list.rb +143 -0
  192. data/lib/git/commands/tag/verify.rb +71 -0
  193. data/lib/git/commands/tag.rb +26 -0
  194. data/lib/git/commands/update_ref/batch.rb +140 -0
  195. data/lib/git/commands/update_ref/delete.rb +92 -0
  196. data/lib/git/commands/update_ref/update.rb +106 -0
  197. data/lib/git/commands/update_ref.rb +42 -0
  198. data/lib/git/commands/version.rb +52 -0
  199. data/lib/git/commands/worktree/add.rb +140 -0
  200. data/lib/git/commands/worktree/list.rb +64 -0
  201. data/lib/git/commands/worktree/lock.rb +58 -0
  202. data/lib/git/commands/worktree/management_base.rb +51 -0
  203. data/lib/git/commands/worktree/move.rb +66 -0
  204. data/lib/git/commands/worktree/prune.rb +67 -0
  205. data/lib/git/commands/worktree/remove.rb +63 -0
  206. data/lib/git/commands/worktree/repair.rb +76 -0
  207. data/lib/git/commands/worktree/unlock.rb +47 -0
  208. data/lib/git/commands/worktree.rb +43 -0
  209. data/lib/git/commands/write_tree.rb +68 -0
  210. data/lib/git/commands.rb +89 -0
  211. data/lib/git/detached_head_info.rb +54 -0
  212. data/lib/git/diff.rb +297 -7
  213. data/lib/git/diff_file_numstat_info.rb +29 -0
  214. data/lib/git/diff_file_patch_info.rb +134 -0
  215. data/lib/git/diff_file_raw_info.rb +127 -0
  216. data/lib/git/diff_info.rb +169 -0
  217. data/lib/git/diff_path_status.rb +78 -19
  218. data/lib/git/diff_result.rb +32 -0
  219. data/lib/git/diff_stats.rb +59 -14
  220. data/lib/git/dirstat_info.rb +86 -0
  221. data/lib/git/errors.rb +65 -2
  222. data/lib/git/execution_context/global.rb +56 -0
  223. data/lib/git/execution_context/repository.rb +147 -0
  224. data/lib/git/execution_context.rb +482 -0
  225. data/lib/git/file_ref.rb +74 -0
  226. data/lib/git/fsck_object.rb +9 -9
  227. data/lib/git/fsck_result.rb +1 -1
  228. data/lib/git/lib.rb +1606 -1028
  229. data/lib/git/log.rb +15 -2
  230. data/lib/git/object.rb +92 -22
  231. data/lib/git/parsers/branch.rb +224 -0
  232. data/lib/git/parsers/cat_file.rb +111 -0
  233. data/lib/git/parsers/diff.rb +585 -0
  234. data/lib/git/parsers/fsck.rb +133 -0
  235. data/lib/git/parsers/grep.rb +42 -0
  236. data/lib/git/parsers/ls_tree.rb +58 -0
  237. data/lib/git/parsers/stash.rb +208 -0
  238. data/lib/git/parsers/tag.rb +257 -0
  239. data/lib/git/remote.rb +133 -9
  240. data/lib/git/repository/branching.rb +572 -0
  241. data/lib/git/repository/committing.rb +191 -0
  242. data/lib/git/repository/configuring.rb +156 -0
  243. data/lib/git/repository/diffing.rb +775 -0
  244. data/lib/git/repository/inspecting.rb +153 -0
  245. data/lib/git/repository/logging.rb +247 -0
  246. data/lib/git/repository/merging.rb +295 -0
  247. data/lib/git/repository/object_operations.rb +1101 -0
  248. data/lib/git/repository/path_resolver.rb +207 -0
  249. data/lib/git/repository/remote_operations.rb +753 -0
  250. data/lib/git/repository/shared_private.rb +51 -0
  251. data/lib/git/repository/staging.rb +390 -0
  252. data/lib/git/repository/stashing.rb +107 -0
  253. data/lib/git/repository/status_operations.rb +180 -0
  254. data/lib/git/repository/worktree_operations.rb +159 -0
  255. data/lib/git/repository.rb +264 -1
  256. data/lib/git/stash.rb +85 -4
  257. data/lib/git/stash_info.rb +104 -0
  258. data/lib/git/stashes.rb +130 -13
  259. data/lib/git/status.rb +224 -18
  260. data/lib/git/tag_delete_failure.rb +31 -0
  261. data/lib/git/tag_delete_result.rb +63 -0
  262. data/lib/git/tag_info.rb +105 -0
  263. data/lib/git/version.rb +109 -2
  264. data/lib/git/version_constraint.rb +81 -0
  265. data/lib/git/worktree.rb +120 -5
  266. data/lib/git/worktrees.rb +107 -7
  267. data/lib/git.rb +114 -18
  268. data/redesign/1_architecture_existing.md +54 -18
  269. data/redesign/2_architecture_redesign.md +365 -46
  270. data/redesign/3_architecture_implementation.md +1451 -54
  271. data/tasks/gem_tasks.rake +4 -0
  272. data/tasks/npm_tasks.rake +7 -0
  273. data/tasks/rspec.rake +48 -0
  274. data/tasks/test.rake +13 -1
  275. data/tasks/yard.rake +34 -7
  276. metadata +349 -20
  277. data/lib/git/index.rb +0 -6
  278. data/lib/git/path.rb +0 -38
  279. data/lib/git/working_directory.rb +0 -6
  280. /data/{release-please-config.json → .release-please-config.json} +0 -0
data/tasks/gem_tasks.rake CHANGED
@@ -8,3 +8,7 @@ require 'bundler/gem_tasks'
8
8
  Rake::Task['release'].clear
9
9
  desc 'Customized release task to avoid creating a new tag'
10
10
  task release: 'release:rubygem_push'
11
+
12
+ require 'rake/clean'
13
+ CLOBBER << 'pkg'
14
+ CLOBBER << 'Gemfile.lock'
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rake/clean'
4
+
5
+ CLOBBER << 'node_modules'
6
+ CLOBBER << 'package-lock.json'
7
+ CLOBBER << '.husky/_'
data/tasks/rspec.rake ADDED
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec/core/rake_task'
4
+
5
+ # Run all specs
6
+ RSpec::Core::RakeTask.new(:spec) do |t|
7
+ t.pattern = 'spec/**/*_spec.rb'
8
+ end
9
+
10
+ # Run only unit specs (mocked, fast)
11
+ RSpec::Core::RakeTask.new('spec:unit') do |t|
12
+ t.pattern = 'spec/unit/**/*_spec.rb'
13
+ # On JRuby, use 'documentation' formatter so each test name is printed before
14
+ # it runs. When the suite hangs, the last printed line identifies the blocking
15
+ # test. Mirrors the same diagnostic added to spec:integration in PR #1274.
16
+ t.rspec_opts = '--format documentation' if RUBY_ENGINE == 'jruby'
17
+ end
18
+
19
+ # Run only integration specs (real git, slower)
20
+ RSpec::Core::RakeTask.new('spec:integration') do |t|
21
+ t.pattern = 'spec/integration/**/*_spec.rb'
22
+ # On JRuby, override the default Fuubar formatter with 'documentation' so that
23
+ # each test name is printed before it runs. This makes CI logs useful when the
24
+ # suite hangs: the last printed test is the one that caused the hang.
25
+ t.rspec_opts = '--format documentation' if RUBY_ENGINE == 'jruby'
26
+ end
27
+
28
+ # Run all specs in parallel
29
+ desc 'Run all specs in parallel'
30
+ task 'spec:parallel' do
31
+ sh 'bundle exec parallel_rspec spec/'
32
+ end
33
+
34
+ # Run only unit specs in parallel
35
+ desc 'Run unit specs in parallel'
36
+ task 'spec:unit:parallel' do
37
+ sh 'bundle exec parallel_rspec spec/unit/'
38
+ end
39
+
40
+ # Run only integration specs in parallel
41
+ desc 'Run integration specs in parallel'
42
+ task 'spec:integration:parallel' do
43
+ sh 'bundle exec parallel_rspec spec/integration/'
44
+ end
45
+
46
+ CLEAN << 'coverage'
47
+ CLEAN << '.rspec_status'
48
+ CLEAN << 'rspec-report.xml'
data/tasks/test.rake CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- desc 'Run Unit Tests'
3
+ desc 'Run Unit Tests (TestUnit)'
4
4
  task :test do
5
5
  sh 'ruby bin/test'
6
6
 
@@ -11,3 +11,15 @@ task :test do
11
11
  #
12
12
  # $ bin/test test_archive.rb test_object.rb
13
13
  end
14
+
15
+ desc 'Run Test::Unit tests in parallel'
16
+ task 'test:parallel' do
17
+ # Ensure git global config is set (normally done by bin/test for serial runs).
18
+ # CI runners may not have a git identity configured.
19
+ sh 'git config --global user.email "git@example.com"' if `git config --global user.email`.empty?
20
+ sh 'git config --global user.name "GitExample"' if `git config --global user.name`.empty?
21
+ sh 'git config --global init.defaultBranch main' if `git config --global init.defaultBranch`.empty?
22
+
23
+ sh({ 'PARALLEL_TESTS_EXECUTABLE' => 'ruby -Itests' },
24
+ "bundle exec parallel_test tests/units/ --suffix 'test_.+\\.rb$'")
25
+ end
data/tasks/yard.rake CHANGED
@@ -4,20 +4,47 @@
4
4
  # This project uses the redcarpet gem which can not be installed on JRuby.
5
5
  #
6
6
  unless RUBY_PLATFORM == 'java' || RUBY_ENGINE == 'truffleruby'
7
+ # yard:build
8
+
7
9
  require 'yard'
8
10
 
9
- YARD::Rake::YardocTask.new
11
+ YARD::Rake::YardocTask.new('yard:build') do |t|
12
+ t.files = %w[lib/**/*.rb]
13
+ t.stats_options = ['--list-undoc']
14
+ end
15
+
10
16
  CLEAN << '.yardoc'
11
17
  CLEAN << 'doc'
12
18
 
19
+ # yard:audit
20
+
21
+ desc 'Run yardstick to show missing YARD doc elements'
22
+ task :'yard:audit' do
23
+ sh "yardstick 'lib/**/*.rb'"
24
+ end
25
+
26
+ # yard:coverage
27
+
13
28
  require 'yardstick/rake/verify'
14
- Yardstick::Rake::Verify.new(:'yardstick:coverage') do |t|
15
- t.threshold = 50
16
- t.require_exact_threshold = false
29
+
30
+ Yardstick::Rake::Verify.new(:'yard:coverage') do |verify|
31
+ verify.threshold = 75
32
+ verify.require_exact_threshold = false
17
33
  end
18
34
 
19
- desc 'Run yardstick to check yard docs'
20
- task :yardstick do
21
- sh "yardstick 'lib/**/*.rb'"
35
+ # yard:example-test
36
+
37
+ require 'yard_example_test/rake'
38
+
39
+ YardExampleTest::RakeTask.new('yard:example-test') do |task|
40
+ task.pattern = 'lib/git/commands/arguments.rb'
22
41
  end
42
+
43
+ # yard
44
+
45
+ # Do not include yard:audit in the yard task because there are too many
46
+ # missing YARD doc elements
47
+ #
48
+ desc 'Run YARD documentation tasks (build, coverage, example-test)'
49
+ task yard: %i[yard:build yard:coverage yard:example-test]
23
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.2
4
+ version: 5.0.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon and others
@@ -79,6 +79,20 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '2.1'
82
+ - !ruby/object:Gem::Dependency
83
+ name: fuubar
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.5'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.5'
82
96
  - !ruby/object:Gem::Dependency
83
97
  name: main_branch_shared_rubocop_config
84
98
  requirement: !ruby/object:Gem::Requirement
@@ -99,84 +113,154 @@ dependencies:
99
113
  requirements:
100
114
  - - "~>"
101
115
  - !ruby/object:Gem::Version
102
- version: '1.0'
116
+ version: '1.1'
103
117
  type: :development
104
118
  prerelease: false
105
119
  version_requirements: !ruby/object:Gem::Requirement
106
120
  requirements:
107
121
  - - "~>"
108
122
  - !ruby/object:Gem::Version
109
- version: '1.0'
123
+ version: '1.1'
110
124
  - !ruby/object:Gem::Dependency
111
125
  name: mocha
112
126
  requirement: !ruby/object:Gem::Requirement
113
127
  requirements:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: '2.7'
130
+ version: '2.8'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.8'
138
+ - !ruby/object:Gem::Dependency
139
+ name: parallel_tests
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '5.6'
117
145
  type: :development
118
146
  prerelease: false
119
147
  version_requirements: !ruby/object:Gem::Requirement
120
148
  requirements:
121
149
  - - "~>"
122
150
  - !ruby/object:Gem::Version
123
- version: '2.7'
151
+ version: '5.6'
124
152
  - !ruby/object:Gem::Dependency
125
153
  name: rake
126
154
  requirement: !ruby/object:Gem::Requirement
127
155
  requirements:
128
156
  - - "~>"
129
157
  - !ruby/object:Gem::Version
130
- version: '13.2'
158
+ version: '13.3'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '13.3'
166
+ - !ruby/object:Gem::Dependency
167
+ name: rspec
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '3.13'
131
173
  type: :development
132
174
  prerelease: false
133
175
  version_requirements: !ruby/object:Gem::Requirement
134
176
  requirements:
135
177
  - - "~>"
136
178
  - !ruby/object:Gem::Version
137
- version: '13.2'
179
+ version: '3.13'
138
180
  - !ruby/object:Gem::Dependency
139
181
  name: rubocop
140
182
  requirement: !ruby/object:Gem::Requirement
141
183
  requirements:
142
184
  - - "~>"
143
185
  - !ruby/object:Gem::Version
144
- version: '1.77'
186
+ version: '1.82'
145
187
  type: :development
146
188
  prerelease: false
147
189
  version_requirements: !ruby/object:Gem::Requirement
148
190
  requirements:
149
191
  - - "~>"
150
192
  - !ruby/object:Gem::Version
151
- version: '1.77'
193
+ version: '1.82'
194
+ - !ruby/object:Gem::Dependency
195
+ name: simplecov
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0.22'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '0.22'
208
+ - !ruby/object:Gem::Dependency
209
+ name: simplecov-lcov
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0.9'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '0.9'
222
+ - !ruby/object:Gem::Dependency
223
+ name: simplecov-rspec
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '0.4'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '0.4'
152
236
  - !ruby/object:Gem::Dependency
153
237
  name: test-unit
154
238
  requirement: !ruby/object:Gem::Requirement
155
239
  requirements:
156
240
  - - "~>"
157
241
  - !ruby/object:Gem::Version
158
- version: '3.6'
242
+ version: '3.7'
159
243
  type: :development
160
244
  prerelease: false
161
245
  version_requirements: !ruby/object:Gem::Requirement
162
246
  requirements:
163
247
  - - "~>"
164
248
  - !ruby/object:Gem::Version
165
- version: '3.6'
249
+ version: '3.7'
166
250
  - !ruby/object:Gem::Dependency
167
251
  name: irb
168
252
  requirement: !ruby/object:Gem::Requirement
169
253
  requirements:
170
254
  - - "~>"
171
255
  - !ruby/object:Gem::Version
172
- version: '1.6'
256
+ version: '1.16'
173
257
  type: :development
174
258
  prerelease: false
175
259
  version_requirements: !ruby/object:Gem::Requirement
176
260
  requirements:
177
261
  - - "~>"
178
262
  - !ruby/object:Gem::Version
179
- version: '1.6'
263
+ version: '1.16'
180
264
  - !ruby/object:Gem::Dependency
181
265
  name: redcarpet
182
266
  requirement: !ruby/object:Gem::Requirement
@@ -211,6 +295,26 @@ dependencies:
211
295
  - - ">="
212
296
  - !ruby/object:Gem::Version
213
297
  version: 0.9.28
298
+ - !ruby/object:Gem::Dependency
299
+ name: yard_example_test
300
+ requirement: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: '0.2'
305
+ - - ">="
306
+ - !ruby/object:Gem::Version
307
+ version: 0.2.1
308
+ type: :development
309
+ prerelease: false
310
+ version_requirements: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ - - "~>"
313
+ - !ruby/object:Gem::Version
314
+ version: '0.2'
315
+ - - ">="
316
+ - !ruby/object:Gem::Version
317
+ version: 0.2.1
214
318
  - !ruby/object:Gem::Dependency
215
319
  name: yardstick
216
320
  requirement: !ruby/object:Gem::Requirement
@@ -240,13 +344,45 @@ files:
240
344
  - ".github/copilot-instructions.md"
241
345
  - ".github/issue_template.md"
242
346
  - ".github/pull_request_template.md"
347
+ - ".github/skills/breaking-change-analysis/SKILL.md"
348
+ - ".github/skills/ci-cd-troubleshooting/SKILL.md"
349
+ - ".github/skills/command-implementation/REFERENCE.md"
350
+ - ".github/skills/command-implementation/SKILL.md"
351
+ - ".github/skills/command-test-conventions/SKILL.md"
352
+ - ".github/skills/command-yard-documentation/SKILL.md"
353
+ - ".github/skills/dependency-management/SKILL.md"
354
+ - ".github/skills/development-workflow/SKILL.md"
355
+ - ".github/skills/extract-command-from-lib/SKILL.md"
356
+ - ".github/skills/extract-facade-from-base-lib/SKILL.md"
357
+ - ".github/skills/facade-implementation/REFERENCE.md"
358
+ - ".github/skills/facade-implementation/SKILL.md"
359
+ - ".github/skills/facade-test-conventions/SKILL.md"
360
+ - ".github/skills/facade-yard-documentation/SKILL.md"
361
+ - ".github/skills/make-skill-template/SKILL.md"
362
+ - ".github/skills/pr-readiness-review/SKILL.md"
363
+ - ".github/skills/project-context/SKILL.md"
364
+ - ".github/skills/pull-request-review/SKILL.md"
365
+ - ".github/skills/refactor-command-to-commandlineresult/SKILL.md"
366
+ - ".github/skills/release-management/SKILL.md"
367
+ - ".github/skills/review-arguments-dsl/CHECKLIST.md"
368
+ - ".github/skills/review-arguments-dsl/SKILL.md"
369
+ - ".github/skills/review-backward-compatibility/SKILL.md"
370
+ - ".github/skills/review-cross-command-consistency/SKILL.md"
371
+ - ".github/skills/reviewing-skills/SKILL.md"
372
+ - ".github/skills/rspec-unit-testing-standards/SKILL.md"
373
+ - ".github/skills/tdd-refactor-step/SKILL.md"
374
+ - ".github/skills/test-debugging/SKILL.md"
375
+ - ".github/skills/yard-documentation/SKILL.md"
243
376
  - ".github/workflows/continuous_integration.yml"
244
377
  - ".github/workflows/enforce_conventional_commits.yml"
245
378
  - ".github/workflows/experimental_continuous_integration.yml"
246
379
  - ".github/workflows/release.yml"
247
380
  - ".gitignore"
248
381
  - ".husky/commit-msg"
382
+ - ".husky/pre-commit"
383
+ - ".release-please-config.json"
249
384
  - ".release-please-manifest.json"
385
+ - ".rspec"
250
386
  - ".rubocop.yml"
251
387
  - ".rubocop_todo.yml"
252
388
  - ".yardopts"
@@ -260,37 +396,229 @@ files:
260
396
  - MAINTAINERS.md
261
397
  - README.md
262
398
  - Rakefile
399
+ - commitlint.test
263
400
  - git.gemspec
264
401
  - lib/git.rb
265
402
  - lib/git/args_builder.rb
266
403
  - lib/git/author.rb
267
404
  - lib/git/base.rb
268
405
  - lib/git/branch.rb
406
+ - lib/git/branch_delete_failure.rb
407
+ - lib/git/branch_delete_result.rb
408
+ - lib/git/branch_info.rb
269
409
  - lib/git/branches.rb
270
410
  - lib/git/command_line.rb
411
+ - lib/git/command_line/base.rb
412
+ - lib/git/command_line/capturing.rb
413
+ - lib/git/command_line/result.rb
414
+ - lib/git/command_line/streaming.rb
271
415
  - lib/git/command_line_result.rb
416
+ - lib/git/commands.rb
417
+ - lib/git/commands/add.rb
418
+ - lib/git/commands/am.rb
419
+ - lib/git/commands/am/abort.rb
420
+ - lib/git/commands/am/apply.rb
421
+ - lib/git/commands/am/continue.rb
422
+ - lib/git/commands/am/quit.rb
423
+ - lib/git/commands/am/retry.rb
424
+ - lib/git/commands/am/show_current_patch.rb
425
+ - lib/git/commands/am/skip.rb
426
+ - lib/git/commands/apply.rb
427
+ - lib/git/commands/archive.rb
428
+ - lib/git/commands/archive/list_formats.rb
429
+ - lib/git/commands/arguments.rb
430
+ - lib/git/commands/base.rb
431
+ - lib/git/commands/branch.rb
432
+ - lib/git/commands/branch/copy.rb
433
+ - lib/git/commands/branch/create.rb
434
+ - lib/git/commands/branch/delete.rb
435
+ - lib/git/commands/branch/list.rb
436
+ - lib/git/commands/branch/move.rb
437
+ - lib/git/commands/branch/set_upstream.rb
438
+ - lib/git/commands/branch/show_current.rb
439
+ - lib/git/commands/branch/unset_upstream.rb
440
+ - lib/git/commands/cat_file.rb
441
+ - lib/git/commands/cat_file/batch.rb
442
+ - lib/git/commands/cat_file/filtered.rb
443
+ - lib/git/commands/cat_file/raw.rb
444
+ - lib/git/commands/checkout.rb
445
+ - lib/git/commands/checkout/branch.rb
446
+ - lib/git/commands/checkout/files.rb
447
+ - lib/git/commands/checkout_index.rb
448
+ - lib/git/commands/clean.rb
449
+ - lib/git/commands/clone.rb
450
+ - lib/git/commands/commit.rb
451
+ - lib/git/commands/commit_tree.rb
452
+ - lib/git/commands/config_option_syntax.rb
453
+ - lib/git/commands/config_option_syntax/add.rb
454
+ - lib/git/commands/config_option_syntax/get.rb
455
+ - lib/git/commands/config_option_syntax/get_all.rb
456
+ - lib/git/commands/config_option_syntax/get_color.rb
457
+ - lib/git/commands/config_option_syntax/get_color_bool.rb
458
+ - lib/git/commands/config_option_syntax/get_regexp.rb
459
+ - lib/git/commands/config_option_syntax/get_urlmatch.rb
460
+ - lib/git/commands/config_option_syntax/list.rb
461
+ - lib/git/commands/config_option_syntax/remove_section.rb
462
+ - lib/git/commands/config_option_syntax/rename_section.rb
463
+ - lib/git/commands/config_option_syntax/replace_all.rb
464
+ - lib/git/commands/config_option_syntax/set.rb
465
+ - lib/git/commands/config_option_syntax/unset.rb
466
+ - lib/git/commands/config_option_syntax/unset_all.rb
467
+ - lib/git/commands/describe.rb
468
+ - lib/git/commands/diff.rb
469
+ - lib/git/commands/diff_files.rb
470
+ - lib/git/commands/diff_index.rb
471
+ - lib/git/commands/fetch.rb
472
+ - lib/git/commands/fsck.rb
473
+ - lib/git/commands/gc.rb
474
+ - lib/git/commands/grep.rb
475
+ - lib/git/commands/init.rb
476
+ - lib/git/commands/log.rb
477
+ - lib/git/commands/ls_files.rb
478
+ - lib/git/commands/ls_remote.rb
479
+ - lib/git/commands/ls_tree.rb
480
+ - lib/git/commands/maintenance.rb
481
+ - lib/git/commands/maintenance/register.rb
482
+ - lib/git/commands/maintenance/run.rb
483
+ - lib/git/commands/maintenance/start.rb
484
+ - lib/git/commands/maintenance/stop.rb
485
+ - lib/git/commands/maintenance/unregister.rb
486
+ - lib/git/commands/merge.rb
487
+ - lib/git/commands/merge/abort.rb
488
+ - lib/git/commands/merge/continue.rb
489
+ - lib/git/commands/merge/quit.rb
490
+ - lib/git/commands/merge/start.rb
491
+ - lib/git/commands/merge_base.rb
492
+ - lib/git/commands/mv.rb
493
+ - lib/git/commands/name_rev.rb
494
+ - lib/git/commands/pull.rb
495
+ - lib/git/commands/push.rb
496
+ - lib/git/commands/read_tree.rb
497
+ - lib/git/commands/remote.rb
498
+ - lib/git/commands/remote/add.rb
499
+ - lib/git/commands/remote/get_url.rb
500
+ - lib/git/commands/remote/list.rb
501
+ - lib/git/commands/remote/prune.rb
502
+ - lib/git/commands/remote/remove.rb
503
+ - lib/git/commands/remote/rename.rb
504
+ - lib/git/commands/remote/set_branches.rb
505
+ - lib/git/commands/remote/set_head.rb
506
+ - lib/git/commands/remote/set_url.rb
507
+ - lib/git/commands/remote/set_url_add.rb
508
+ - lib/git/commands/remote/set_url_delete.rb
509
+ - lib/git/commands/remote/show.rb
510
+ - lib/git/commands/remote/update.rb
511
+ - lib/git/commands/repack.rb
512
+ - lib/git/commands/reset.rb
513
+ - lib/git/commands/rev_parse.rb
514
+ - lib/git/commands/revert.rb
515
+ - lib/git/commands/revert/abort.rb
516
+ - lib/git/commands/revert/continue.rb
517
+ - lib/git/commands/revert/quit.rb
518
+ - lib/git/commands/revert/skip.rb
519
+ - lib/git/commands/revert/start.rb
520
+ - lib/git/commands/rm.rb
521
+ - lib/git/commands/show.rb
522
+ - lib/git/commands/show_ref.rb
523
+ - lib/git/commands/show_ref/exclude_existing.rb
524
+ - lib/git/commands/show_ref/exists.rb
525
+ - lib/git/commands/show_ref/list.rb
526
+ - lib/git/commands/show_ref/verify.rb
527
+ - lib/git/commands/stash.rb
528
+ - lib/git/commands/stash/apply.rb
529
+ - lib/git/commands/stash/branch.rb
530
+ - lib/git/commands/stash/clear.rb
531
+ - lib/git/commands/stash/create.rb
532
+ - lib/git/commands/stash/drop.rb
533
+ - lib/git/commands/stash/list.rb
534
+ - lib/git/commands/stash/pop.rb
535
+ - lib/git/commands/stash/push.rb
536
+ - lib/git/commands/stash/show.rb
537
+ - lib/git/commands/stash/store.rb
538
+ - lib/git/commands/status.rb
539
+ - lib/git/commands/symbolic_ref.rb
540
+ - lib/git/commands/symbolic_ref/delete.rb
541
+ - lib/git/commands/symbolic_ref/read.rb
542
+ - lib/git/commands/symbolic_ref/update.rb
543
+ - lib/git/commands/tag.rb
544
+ - lib/git/commands/tag/create.rb
545
+ - lib/git/commands/tag/delete.rb
546
+ - lib/git/commands/tag/list.rb
547
+ - lib/git/commands/tag/verify.rb
548
+ - lib/git/commands/update_ref.rb
549
+ - lib/git/commands/update_ref/batch.rb
550
+ - lib/git/commands/update_ref/delete.rb
551
+ - lib/git/commands/update_ref/update.rb
552
+ - lib/git/commands/version.rb
553
+ - lib/git/commands/worktree.rb
554
+ - lib/git/commands/worktree/add.rb
555
+ - lib/git/commands/worktree/list.rb
556
+ - lib/git/commands/worktree/lock.rb
557
+ - lib/git/commands/worktree/management_base.rb
558
+ - lib/git/commands/worktree/move.rb
559
+ - lib/git/commands/worktree/prune.rb
560
+ - lib/git/commands/worktree/remove.rb
561
+ - lib/git/commands/worktree/repair.rb
562
+ - lib/git/commands/worktree/unlock.rb
563
+ - lib/git/commands/write_tree.rb
272
564
  - lib/git/config.rb
565
+ - lib/git/detached_head_info.rb
273
566
  - lib/git/diff.rb
567
+ - lib/git/diff_file_numstat_info.rb
568
+ - lib/git/diff_file_patch_info.rb
569
+ - lib/git/diff_file_raw_info.rb
570
+ - lib/git/diff_info.rb
274
571
  - lib/git/diff_path_status.rb
572
+ - lib/git/diff_result.rb
275
573
  - lib/git/diff_stats.rb
574
+ - lib/git/dirstat_info.rb
276
575
  - lib/git/encoding_utils.rb
277
576
  - lib/git/errors.rb
278
577
  - lib/git/escaped_path.rb
578
+ - lib/git/execution_context.rb
579
+ - lib/git/execution_context/global.rb
580
+ - lib/git/execution_context/repository.rb
581
+ - lib/git/file_ref.rb
279
582
  - lib/git/fsck_object.rb
280
583
  - lib/git/fsck_result.rb
281
- - lib/git/index.rb
282
584
  - lib/git/lib.rb
283
585
  - lib/git/log.rb
284
586
  - lib/git/object.rb
285
- - lib/git/path.rb
587
+ - lib/git/parsers/branch.rb
588
+ - lib/git/parsers/cat_file.rb
589
+ - lib/git/parsers/diff.rb
590
+ - lib/git/parsers/fsck.rb
591
+ - lib/git/parsers/grep.rb
592
+ - lib/git/parsers/ls_tree.rb
593
+ - lib/git/parsers/stash.rb
594
+ - lib/git/parsers/tag.rb
286
595
  - lib/git/remote.rb
287
596
  - lib/git/repository.rb
597
+ - lib/git/repository/branching.rb
598
+ - lib/git/repository/committing.rb
599
+ - lib/git/repository/configuring.rb
600
+ - lib/git/repository/diffing.rb
601
+ - lib/git/repository/inspecting.rb
602
+ - lib/git/repository/logging.rb
603
+ - lib/git/repository/merging.rb
604
+ - lib/git/repository/object_operations.rb
605
+ - lib/git/repository/path_resolver.rb
606
+ - lib/git/repository/remote_operations.rb
607
+ - lib/git/repository/shared_private.rb
608
+ - lib/git/repository/staging.rb
609
+ - lib/git/repository/stashing.rb
610
+ - lib/git/repository/status_operations.rb
611
+ - lib/git/repository/worktree_operations.rb
288
612
  - lib/git/stash.rb
613
+ - lib/git/stash_info.rb
289
614
  - lib/git/stashes.rb
290
615
  - lib/git/status.rb
616
+ - lib/git/tag_delete_failure.rb
617
+ - lib/git/tag_delete_result.rb
618
+ - lib/git/tag_info.rb
291
619
  - lib/git/url.rb
292
620
  - lib/git/version.rb
293
- - lib/git/working_directory.rb
621
+ - lib/git/version_constraint.rb
294
622
  - lib/git/worktree.rb
295
623
  - lib/git/worktrees.rb
296
624
  - package.json
@@ -298,8 +626,9 @@ files:
298
626
  - redesign/2_architecture_redesign.md
299
627
  - redesign/3_architecture_implementation.md
300
628
  - redesign/index.md
301
- - release-please-config.json
302
629
  - tasks/gem_tasks.rake
630
+ - tasks/npm_tasks.rake
631
+ - tasks/rspec.rake
303
632
  - tasks/rubocop.rake
304
633
  - tasks/test.rake
305
634
  - tasks/test_gem.rake
@@ -310,8 +639,8 @@ licenses:
310
639
  metadata:
311
640
  homepage_uri: http://github.com/ruby-git/ruby-git
312
641
  source_code_uri: http://github.com/ruby-git/ruby-git
313
- changelog_uri: https://rubydoc.info/gems/git/4.3.2/file/CHANGELOG.md
314
- documentation_uri: https://rubydoc.info/gems/git/4.3.2
642
+ changelog_uri: https://rubydoc.info/gems/git/5.0.0.beta.1/file/CHANGELOG.md
643
+ documentation_uri: https://rubydoc.info/gems/git/5.0.0.beta.1
315
644
  rubygems_mfa_required: 'true'
316
645
  rdoc_options: []
317
646
  require_paths:
@@ -328,7 +657,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
328
657
  version: '0'
329
658
  requirements:
330
659
  - git 2.28.0 or greater
331
- rubygems_version: 4.0.6
660
+ rubygems_version: 4.0.10
332
661
  specification_version: 4
333
662
  summary: An API to create, read, and manipulate Git repositories
334
663
  test_files: []
data/lib/git/index.rb DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Git
4
- class Index < Git::Path
5
- end
6
- end