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/README.md CHANGED
@@ -30,6 +30,7 @@ Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?log
30
30
  - [Ruby Version Support Policy](#ruby-version-support-policy)
31
31
  - [Git Version Support Policy](#git-version-support-policy)
32
32
  - [📢 Project Announcements 📢](#-project-announcements-)
33
+ - [2026-06-04: v5.0.0.beta.1 Released](#2026-06-04-v500beta1-released)
33
34
  - [2026-01-07: AI Policy Introduced](#2026-01-07-ai-policy-introduced)
34
35
  - [2025-07-09: Architectural Redesign](#2025-07-09-architectural-redesign)
35
36
  - [2025-07-07: We Now Use RuboCop](#2025-07-07-we-now-use-rubocop)
@@ -190,11 +191,11 @@ Here are the operations that need read permission only:
190
191
  ```ruby
191
192
  repo = Git.open(working_dir, :log => Logger.new(STDOUT))
192
193
 
193
- repo.index
194
- repo.index.readable?
195
- repo.index.writable?
196
- repo.repo
197
- repo.dir
194
+ repo.index # Pathname to the index file
195
+ repo.index.readable? # check if index is readable
196
+ repo.index.writable? # check if index is writable
197
+ repo.repo # Pathname to the .git directory
198
+ repo.dir # Pathname to the working directory
198
199
 
199
200
  # ls-tree with recursion into subtrees (list files)
200
201
  repo.ls_tree("HEAD", recursive: true)
@@ -649,6 +650,17 @@ notes.
649
650
 
650
651
  ## 📢 Project Announcements 📢
651
652
 
653
+ ### 2026-06-04: v5.0.0.beta.1 Released
654
+
655
+ The architectural redesign is approximately **65% complete** and we have published
656
+ [`git 5.0.0.beta.1`](https://rubygems.org/gems/git/versions/5.0.0.beta.1) as our
657
+ first pre-release.
658
+
659
+ The intent is full backward compatibility with 4.x, but given the size and scope of
660
+ the redesign, some incompatibilities may exist. Please give the latest beta a try and
661
+ [open an issue](https://github.com/ruby-git/ruby-git/issues) if you hit anything
662
+ unexpected — your feedback helps us ship a solid 5.0.0.
663
+
652
664
  ### 2026-01-07: AI Policy Introduced
653
665
 
654
666
  We have adopted a formal [AI Policy](AI_POLICY.md) to clarify expectations for
data/Rakefile CHANGED
@@ -5,14 +5,66 @@ require 'rake/clean'
5
5
  # Load all .rake files from tasks and its subdirectories.
6
6
  Dir.glob('tasks/**/*.rake').each { |r| load r }
7
7
 
8
- default_tasks = []
9
- default_tasks << :test if Rake::Task.task_defined?(:test)
10
- default_tasks << :rubocop if Rake::Task.task_defined?(:rubocop)
8
+ desc 'Run all tests (TestUnit and RSpec)'
9
+ task 'test-all': %i[test spec]
10
+
11
+ desc 'Run all tests in parallel (TestUnit and RSpec run concurrently)'
12
+ task 'test-all:parallel' do
13
+ errors = []
14
+ mutex = Mutex.new
15
+ threads = %w[test:parallel spec:parallel].map do |t|
16
+ Thread.new do
17
+ Rake::Task[t].invoke
18
+ rescue Exception => e # rubocop:disable Lint/RescueException
19
+ mutex.synchronize { errors << e }
20
+ end
21
+ end
22
+ threads.each(&:join)
23
+ raise errors.first if errors.any?
24
+ end
25
+
26
+ default_tasks = %i[test spec:unit spec:integration rubocop]
11
27
  default_tasks << :yard if Rake::Task.task_defined?(:yard)
12
- default_tasks << :'yardstick:coverage' if Rake::Task.task_defined?(:'yardstick:coverage')
13
- # Do not include yardstick as a default task for now since there are too many
14
- # warnings. Will work to get the warnings down before re-enabling it.
15
- # default_tasks << :yardstick if Rake::Task.task_defined?(:yardstick)
16
- default_tasks << :build if Rake::Task.task_defined?(:build)
28
+ default_tasks << :build
29
+
30
+ default_tasks_parallel = %w[test:parallel spec:unit:parallel spec:integration:parallel rubocop]
31
+ default_tasks_parallel << :yard if Rake::Task.task_defined?(:yard)
32
+ default_tasks_parallel << :build
33
+
34
+ # Use parallel test execution for MRI where it cuts build times by 30-48%.
35
+ # JRuby and TruffleRuby are slower with parallel_tests because each worker
36
+ # process pays JVM/Truffle startup and warm-up overhead independently,
37
+ # resulting in 18-28% slower builds vs. serial execution.
38
+ parallel_supported = RUBY_ENGINE == 'ruby'
39
+ task default: parallel_supported ? default_tasks_parallel : default_tasks
40
+
41
+ desc 'Same as default but runs tests in parallel'
42
+ task 'default:parallel': default_tasks_parallel
43
+
44
+ module Rake
45
+ # Overload Rake::Task to add logging
46
+ class Task
47
+ # Store the original execute method
48
+ alias original_execute execute
49
+
50
+ # Override execute to add a print statement
51
+ def execute(args = nil)
52
+ # Only output the task name if it wasn't the only top-level task
53
+ # rake default # => output task name for each task called by the default task
54
+ # rake rubocop # => do not output the task name
55
+ # rake rubocop yard # => output task name for rubocop and yard
56
+ top_level_tasks = Rake.application.top_level_tasks
57
+ box("Rake task: #{name}") unless top_level_tasks.length == 1 && name == top_level_tasks[0]
58
+ original_execute(args)
59
+ end
60
+
61
+ private
17
62
 
18
- task default: default_tasks
63
+ def box(message)
64
+ width = message.length + 2
65
+ puts "┌#{'─' * width}┐"
66
+ puts "│ #{message} │"
67
+ puts "└#{'─' * width}┘"
68
+ end
69
+ end
70
+ end
data/commitlint.test ADDED
@@ -0,0 +1,4 @@
1
+ test: update the tests
2
+
3
+ Wow I really want to edit the PR #1024 but I can't.
4
+
data/git.gemspec CHANGED
@@ -35,18 +35,24 @@ Gem::Specification.new do |spec|
35
35
  spec.add_dependency 'rchardet', '~> 1.9'
36
36
 
37
37
  spec.add_development_dependency 'create_github_release', '~> 2.1'
38
+ spec.add_development_dependency 'fuubar', '~> 2.5'
38
39
  spec.add_development_dependency 'main_branch_shared_rubocop_config', '~> 0.1'
39
- spec.add_development_dependency 'minitar', '~> 1.0'
40
- spec.add_development_dependency 'mocha', '~> 2.7'
41
- spec.add_development_dependency 'rake', '~> 13.2'
42
- spec.add_development_dependency 'rubocop', '~> 1.77'
40
+ spec.add_development_dependency 'minitar', '~> 1.1'
41
+ spec.add_development_dependency 'mocha', '~> 2.8'
42
+ spec.add_development_dependency 'parallel_tests', '~> 5.6'
43
+ spec.add_development_dependency 'rake', '~> 13.3'
44
+ spec.add_development_dependency 'rspec', '~> 3.13'
45
+ spec.add_development_dependency 'rubocop', '~> 1.82'
46
+ spec.add_development_dependency 'simplecov', '~> 0.22'
47
+ spec.add_development_dependency 'simplecov-lcov', '~> 0.9'
48
+ spec.add_development_dependency 'simplecov-rspec', '~> 0.4'
49
+ spec.add_development_dependency 'test-unit', '~> 3.7'
43
50
 
44
- spec.add_development_dependency 'test-unit', '~> 3.6'
45
-
46
- unless RUBY_PLATFORM == 'java'
47
- spec.add_development_dependency 'irb', '~> 1.6'
51
+ unless RUBY_PLATFORM == 'java' || RUBY_ENGINE == 'truffleruby'
52
+ spec.add_development_dependency 'irb', '~> 1.16'
48
53
  spec.add_development_dependency 'redcarpet', '~> 3.6'
49
54
  spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.28'
55
+ spec.add_development_dependency 'yard_example_test', '~> 0.2', '>= 0.2.1'
50
56
  spec.add_development_dependency 'yardstick', '~> 0.9'
51
57
  end
52
58
 
@@ -12,14 +12,6 @@ module Git
12
12
  ARG_BUILDERS = {
13
13
  boolean: ->(config, value) { value ? config[:flag] : [] },
14
14
 
15
- boolean_negatable: lambda do |config, value|
16
- case value
17
- when true then config[:flag]
18
- when false then config[:flag].sub('--', '--no-')
19
- else []
20
- end
21
- end,
22
-
23
15
  valued_equals: ->(config, value) { "#{config[:flag]}=#{value}" if value },
24
16
 
25
17
  valued_space: ->(config, value) { [config[:flag], value.to_s] if value },