git 1.19.1 → 5.5.0
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/.yardopts +5 -1
- data/AI_POLICY.md +24 -0
- data/CHANGELOG.md +689 -0
- data/CODE_OF_CONDUCT.md +25 -0
- data/CONTRIBUTING.md +1175 -97
- data/GOVERNANCE.md +106 -0
- data/LICENSE +1 -1
- data/MAINTAINERS.md +17 -4
- data/README.md +476 -320
- data/UPGRADING.md +1138 -0
- data/git.gemspec +124 -36
- data/lib/git/author.rb +39 -7
- data/lib/git/author_info.rb +66 -0
- data/lib/git/branch.rb +615 -65
- data/lib/git/branch_delete_failure.rb +34 -0
- data/lib/git/branch_delete_result.rb +66 -0
- data/lib/git/branch_info.rb +237 -0
- data/lib/git/branches.rb +167 -44
- data/lib/git/command_line/base.rb +247 -0
- data/lib/git/command_line/capturing.rb +308 -0
- data/lib/git/command_line/result.rb +88 -0
- data/lib/git/command_line/streaming.rb +236 -0
- data/lib/git/command_line.rb +52 -0
- data/lib/git/commands/add.rb +139 -0
- data/lib/git/commands/am/abort.rb +43 -0
- data/lib/git/commands/am/apply.rb +263 -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 +49 -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 +242 -0
- data/lib/git/commands/archive/list_formats.rb +46 -0
- data/lib/git/commands/archive.rb +145 -0
- data/lib/git/commands/arguments.rb +4521 -0
- data/lib/git/commands/base.rb +502 -0
- data/lib/git/commands/branch/copy.rb +102 -0
- data/lib/git/commands/branch/create.rb +177 -0
- data/lib/git/commands/branch/delete.rb +88 -0
- data/lib/git/commands/branch/list.rb +178 -0
- data/lib/git/commands/branch/move.rb +102 -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 +53 -0
- data/lib/git/commands/branch.rb +34 -0
- data/lib/git/commands/cat_file/batch.rb +385 -0
- data/lib/git/commands/cat_file/filtered.rb +105 -0
- data/lib/git/commands/cat_file/raw.rb +271 -0
- data/lib/git/commands/cat_file.rb +49 -0
- data/lib/git/commands/checkout/branch.rb +153 -0
- data/lib/git/commands/checkout/files.rb +116 -0
- data/lib/git/commands/checkout.rb +38 -0
- data/lib/git/commands/checkout_index.rb +106 -0
- data/lib/git/commands/clean.rb +102 -0
- data/lib/git/commands/clone.rb +241 -0
- data/lib/git/commands/commit.rb +273 -0
- data/lib/git/commands/commit_tree.rb +101 -0
- data/lib/git/commands/config_option_syntax/add.rb +86 -0
- data/lib/git/commands/config_option_syntax/get.rb +121 -0
- data/lib/git/commands/config_option_syntax/get_all.rb +118 -0
- data/lib/git/commands/config_option_syntax/get_color.rb +95 -0
- data/lib/git/commands/config_option_syntax/get_color_bool.rb +96 -0
- data/lib/git/commands/config_option_syntax/get_regexp.rb +119 -0
- data/lib/git/commands/config_option_syntax/get_urlmatch.rb +111 -0
- data/lib/git/commands/config_option_syntax/list.rb +111 -0
- data/lib/git/commands/config_option_syntax/remove_section.rb +79 -0
- data/lib/git/commands/config_option_syntax/rename_section.rb +83 -0
- data/lib/git/commands/config_option_syntax/replace_all.rb +109 -0
- data/lib/git/commands/config_option_syntax/set.rb +119 -0
- data/lib/git/commands/config_option_syntax/unset.rb +92 -0
- data/lib/git/commands/config_option_syntax/unset_all.rb +94 -0
- data/lib/git/commands/config_option_syntax.rb +56 -0
- data/lib/git/commands/describe.rb +156 -0
- data/lib/git/commands/diff.rb +657 -0
- data/lib/git/commands/diff_files.rb +519 -0
- data/lib/git/commands/diff_index.rb +499 -0
- data/lib/git/commands/fetch.rb +354 -0
- data/lib/git/commands/fsck.rb +138 -0
- data/lib/git/commands/gc.rb +134 -0
- data/lib/git/commands/grep.rb +339 -0
- data/lib/git/commands/init.rb +101 -0
- data/lib/git/commands/log.rb +634 -0
- data/lib/git/commands/ls_files.rb +195 -0
- data/lib/git/commands/ls_remote.rb +161 -0
- data/lib/git/commands/ls_tree.rb +135 -0
- data/lib/git/commands/maintenance/register.rb +77 -0
- data/lib/git/commands/maintenance/run.rb +109 -0
- data/lib/git/commands/maintenance/start.rb +71 -0
- data/lib/git/commands/maintenance/stop.rb +60 -0
- data/lib/git/commands/maintenance/unregister.rb +84 -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 +250 -0
- data/lib/git/commands/merge.rb +28 -0
- data/lib/git/commands/merge_base.rb +91 -0
- data/lib/git/commands/mv.rb +82 -0
- data/lib/git/commands/name_rev.rb +119 -0
- data/lib/git/commands/pull.rb +382 -0
- data/lib/git/commands/push.rb +251 -0
- data/lib/git/commands/read_tree.rb +154 -0
- data/lib/git/commands/remote/add.rb +96 -0
- data/lib/git/commands/remote/get_url.rb +68 -0
- data/lib/git/commands/remote/list.rb +56 -0
- data/lib/git/commands/remote/prune.rb +63 -0
- data/lib/git/commands/remote/remove.rb +52 -0
- data/lib/git/commands/remote/rename.rb +76 -0
- data/lib/git/commands/remote/set_branches.rb +70 -0
- data/lib/git/commands/remote/set_head.rb +89 -0
- data/lib/git/commands/remote/set_url.rb +78 -0
- data/lib/git/commands/remote/set_url_add.rb +70 -0
- data/lib/git/commands/remote/set_url_delete.rb +71 -0
- data/lib/git/commands/remote/show.rb +77 -0
- data/lib/git/commands/remote/update.rb +79 -0
- data/lib/git/commands/remote.rb +42 -0
- data/lib/git/commands/repack.rb +281 -0
- data/lib/git/commands/reset.rb +154 -0
- data/lib/git/commands/rev_parse.rb +304 -0
- data/lib/git/commands/revert/abort.rb +45 -0
- data/lib/git/commands/revert/continue.rb +62 -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 +158 -0
- data/lib/git/commands/revert.rb +29 -0
- data/lib/git/commands/rm.rb +113 -0
- data/lib/git/commands/show.rb +632 -0
- data/lib/git/commands/show_ref/exclude_existing.rb +119 -0
- data/lib/git/commands/show_ref/exists.rb +80 -0
- data/lib/git/commands/show_ref/list.rb +149 -0
- data/lib/git/commands/show_ref/verify.rb +122 -0
- data/lib/git/commands/show_ref.rb +42 -0
- data/lib/git/commands/stash/apply.rb +81 -0
- data/lib/git/commands/stash/branch.rb +67 -0
- data/lib/git/commands/stash/clear.rb +43 -0
- data/lib/git/commands/stash/create.rb +60 -0
- data/lib/git/commands/stash/drop.rb +73 -0
- data/lib/git/commands/stash/list.rb +43 -0
- data/lib/git/commands/stash/pop.rb +87 -0
- data/lib/git/commands/stash/push.rb +112 -0
- data/lib/git/commands/stash/show.rb +158 -0
- data/lib/git/commands/stash/store.rb +72 -0
- data/lib/git/commands/stash.rb +38 -0
- data/lib/git/commands/status.rb +174 -0
- data/lib/git/commands/symbolic_ref/delete.rb +72 -0
- data/lib/git/commands/symbolic_ref/read.rb +99 -0
- data/lib/git/commands/symbolic_ref/update.rb +79 -0
- data/lib/git/commands/symbolic_ref.rb +38 -0
- data/lib/git/commands/tag/create.rb +142 -0
- data/lib/git/commands/tag/delete.rb +57 -0
- data/lib/git/commands/tag/list.rb +146 -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 +145 -0
- data/lib/git/commands/update_ref/delete.rb +90 -0
- data/lib/git/commands/update_ref/update.rb +103 -0
- data/lib/git/commands/update_ref.rb +42 -0
- data/lib/git/commands/version.rb +60 -0
- data/lib/git/commands/worktree/add.rb +139 -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 +88 -0
- data/lib/git/config.rb +72 -5
- data/lib/git/config_entry_info.rb +106 -0
- data/lib/git/configuring.rb +795 -0
- data/lib/git/detached_head_info.rb +57 -0
- data/lib/git/diff.rb +437 -86
- data/lib/git/diff_file_numstat_info.rb +31 -0
- data/lib/git/diff_file_patch_info.rb +136 -0
- data/lib/git/diff_file_raw_info.rb +129 -0
- data/lib/git/diff_info.rb +162 -0
- data/lib/git/diff_path_status.rb +107 -0
- data/lib/git/diff_result.rb +34 -0
- data/lib/git/diff_stats.rb +111 -0
- data/lib/git/dirstat_info.rb +102 -0
- data/lib/git/encoding_utils.rb +32 -1
- data/lib/git/errors.rb +285 -0
- data/lib/git/escaped_path.rb +57 -5
- data/lib/git/execution_context/global.rb +31 -0
- data/lib/git/execution_context/repository.rb +151 -0
- data/lib/git/execution_context.rb +559 -0
- data/lib/git/factories.rb +813 -0
- data/lib/git/file_ref.rb +77 -0
- data/lib/git/fsck_object.rb +56 -0
- data/lib/git/fsck_result.rb +132 -0
- data/lib/git/log.rb +306 -90
- data/lib/git/object.rb +563 -141
- data/lib/git/parsers/branch.rb +240 -0
- data/lib/git/parsers/cat_file.rb +111 -0
- data/lib/git/parsers/config_entry.rb +110 -0
- data/lib/git/parsers/diff.rb +792 -0
- data/lib/git/parsers/fsck.rb +144 -0
- data/lib/git/parsers/grep.rb +42 -0
- data/lib/git/parsers/ls_remote.rb +79 -0
- data/lib/git/parsers/ls_tree.rb +58 -0
- data/lib/git/parsers/remote.rb +162 -0
- data/lib/git/parsers/stash.rb +292 -0
- data/lib/git/parsers/status.rb +251 -0
- data/lib/git/parsers/tag.rb +341 -0
- data/lib/git/parsers/worktree.rb +185 -0
- data/lib/git/path_resolver.rb +206 -0
- data/lib/git/remote.rb +165 -12
- data/lib/git/remote_info.rb +203 -0
- data/lib/git/repository/branching.rb +964 -0
- data/lib/git/repository/committing.rb +246 -0
- data/lib/git/repository/context_helpers.rb +293 -0
- data/lib/git/repository/diffing.rb +785 -0
- data/lib/git/repository/inspecting.rb +252 -0
- data/lib/git/repository/logging.rb +410 -0
- data/lib/git/repository/maintenance.rb +65 -0
- data/lib/git/repository/merging.rb +451 -0
- data/lib/git/repository/object_operations.rb +1551 -0
- data/lib/git/repository/remote_operations.rb +984 -0
- data/lib/git/repository/shared_private.rb +120 -0
- data/lib/git/repository/staging.rb +587 -0
- data/lib/git/repository/stashing.rb +623 -0
- data/lib/git/repository/status_operations.rb +249 -0
- data/lib/git/repository/worktree_operations.rb +339 -0
- data/lib/git/repository.rb +484 -2
- data/lib/git/stash.rb +109 -12
- data/lib/git/stash_info.rb +102 -0
- data/lib/git/stashes.rb +169 -26
- data/lib/git/status.rb +308 -122
- data/lib/git/status_file_info.rb +258 -0
- data/lib/git/status_info.rb +189 -0
- data/lib/git/tag_delete_failure.rb +34 -0
- data/lib/git/tag_delete_result.rb +66 -0
- data/lib/git/tag_info.rb +99 -0
- data/lib/git/url.rb +15 -8
- data/lib/git/version.rb +113 -2
- data/lib/git/version_constraint.rb +85 -0
- data/lib/git/worktree.rb +150 -8
- data/lib/git/worktree_info.rb +128 -0
- data/lib/git/worktrees.rb +118 -13
- data/lib/git.rb +632 -234
- metadata +369 -54
- data/.github/stale.yml +0 -25
- data/.github/workflows/continuous_integration.yml +0 -49
- data/.gitignore +0 -10
- data/Dockerfile.changelog-rs +0 -12
- data/Gemfile +0 -5
- data/ISSUE_TEMPLATE.md +0 -15
- data/PULL_REQUEST_TEMPLATE.md +0 -9
- data/RELEASING.md +0 -70
- data/Rakefile +0 -60
- data/lib/git/base/factory.rb +0 -99
- data/lib/git/base.rb +0 -711
- data/lib/git/command_line_result.rb +0 -86
- data/lib/git/failed_error.rb +0 -53
- data/lib/git/git_execute_error.rb +0 -7
- data/lib/git/index.rb +0 -5
- data/lib/git/lib.rb +0 -1328
- data/lib/git/path.rb +0 -31
- data/lib/git/signaled_error.rb +0 -50
- data/lib/git/working_directory.rb +0 -4
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git commit` command
|
|
8
|
+
#
|
|
9
|
+
# This command records changes to the repository by creating a new commit
|
|
10
|
+
# with the staged changes.
|
|
11
|
+
#
|
|
12
|
+
# @example Typical usage
|
|
13
|
+
# commit = Git::Commands::Commit.new(execution_context)
|
|
14
|
+
# commit.call(message: 'Initial commit')
|
|
15
|
+
# commit.call(message: 'Add feature', all: true, author: 'Jane <jane@example.com>')
|
|
16
|
+
# commit.call(amend: true, no_verify: true) # emits --no-verify
|
|
17
|
+
# commit.call('src/foo.rb', message: 'Update foo')
|
|
18
|
+
#
|
|
19
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-commit/2.53.0
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-commit git-commit
|
|
22
|
+
#
|
|
23
|
+
# @see Git::Commands
|
|
24
|
+
#
|
|
25
|
+
# @api private
|
|
26
|
+
#
|
|
27
|
+
class Commit < Git::Commands::Base
|
|
28
|
+
arguments do
|
|
29
|
+
literal 'commit'
|
|
30
|
+
|
|
31
|
+
# Stage selection
|
|
32
|
+
flag_option %i[all a]
|
|
33
|
+
|
|
34
|
+
# Message source and editing
|
|
35
|
+
flag_option %i[edit e], negatable: true
|
|
36
|
+
flag_option :amend
|
|
37
|
+
value_option %i[reuse_message C], inline: true
|
|
38
|
+
value_option :fixup, inline: true
|
|
39
|
+
value_option :squash, inline: true
|
|
40
|
+
value_option %i[message m], inline: true, allow_empty: true
|
|
41
|
+
value_option %i[file F], inline: true
|
|
42
|
+
value_option %i[template t], inline: true
|
|
43
|
+
|
|
44
|
+
# Author / date
|
|
45
|
+
flag_option :reset_author
|
|
46
|
+
value_option :author, inline: true
|
|
47
|
+
value_option :date, inline: true, type: String
|
|
48
|
+
|
|
49
|
+
# Message cleanup and trailers
|
|
50
|
+
value_option :cleanup, inline: true
|
|
51
|
+
value_option :trailer, repeatable: true
|
|
52
|
+
|
|
53
|
+
# Hooks
|
|
54
|
+
flag_option %i[verify n], negatable: true
|
|
55
|
+
|
|
56
|
+
# Behavior
|
|
57
|
+
flag_option :allow_empty
|
|
58
|
+
flag_option :allow_empty_message
|
|
59
|
+
flag_option :no_post_rewrite
|
|
60
|
+
flag_option %i[include i]
|
|
61
|
+
flag_option %i[only o]
|
|
62
|
+
|
|
63
|
+
# Output / dry-run
|
|
64
|
+
flag_option :dry_run
|
|
65
|
+
flag_option :short
|
|
66
|
+
flag_option :branch
|
|
67
|
+
flag_option :porcelain
|
|
68
|
+
flag_option :long
|
|
69
|
+
flag_option %i[null z]
|
|
70
|
+
flag_option %i[verbose v], max_times: 2
|
|
71
|
+
flag_option %i[quiet q]
|
|
72
|
+
flag_option :status, negatable: true
|
|
73
|
+
|
|
74
|
+
# Verbose diff options
|
|
75
|
+
value_option %i[unified U], inline: true, type: Integer
|
|
76
|
+
value_option :inter_hunk_context, inline: true, type: Integer
|
|
77
|
+
|
|
78
|
+
# Signoff
|
|
79
|
+
flag_option %i[signoff s], negatable: true
|
|
80
|
+
|
|
81
|
+
# GPG signing
|
|
82
|
+
flag_or_value_option %i[gpg_sign S], negatable: true, inline: true
|
|
83
|
+
|
|
84
|
+
# Untracked files
|
|
85
|
+
flag_or_value_option %i[untracked_files u], inline: true
|
|
86
|
+
|
|
87
|
+
# Pathspec from file
|
|
88
|
+
value_option :pathspec_from_file, inline: true
|
|
89
|
+
flag_option :pathspec_file_nul
|
|
90
|
+
|
|
91
|
+
# Path selection
|
|
92
|
+
end_of_options
|
|
93
|
+
operand :pathspec, repeatable: true
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# @overload call(*pathspec, **options)
|
|
97
|
+
#
|
|
98
|
+
# Execute the `git commit` command.
|
|
99
|
+
#
|
|
100
|
+
# @param pathspec [Array<String>] zero or more paths to commit
|
|
101
|
+
#
|
|
102
|
+
# When given, only changes to the listed paths are committed, ignoring
|
|
103
|
+
# staged changes for other paths.
|
|
104
|
+
#
|
|
105
|
+
# @param options [Hash] command options
|
|
106
|
+
#
|
|
107
|
+
# @option options [Boolean, nil] :all (nil) automatically stage modified and deleted
|
|
108
|
+
# files before committing
|
|
109
|
+
#
|
|
110
|
+
# Alias: `:a`
|
|
111
|
+
#
|
|
112
|
+
# @option options [Boolean, nil] :edit (nil) open an editor for the commit message (`--edit`)
|
|
113
|
+
#
|
|
114
|
+
# Alias: `:e`
|
|
115
|
+
#
|
|
116
|
+
# @option options [Boolean, nil] :no_edit (nil) suppress the editor (`--no-edit`)
|
|
117
|
+
#
|
|
118
|
+
# @option options [Boolean, nil] :amend (nil) replace the tip of the current branch
|
|
119
|
+
# with a new commit
|
|
120
|
+
#
|
|
121
|
+
# @option options [String] :reuse_message (nil) reuse the log message and
|
|
122
|
+
# authorship from the given commit without invoking an editor
|
|
123
|
+
#
|
|
124
|
+
# Alias: `:C`
|
|
125
|
+
#
|
|
126
|
+
# @option options [String] :fixup (nil) create a fixup or amend commit targeting
|
|
127
|
+
# the given commit
|
|
128
|
+
#
|
|
129
|
+
# Pass `<commit>` for a plain "fixup!" commit, `amend:<commit>` to also replace
|
|
130
|
+
# the log message, or `reword:<commit>` to replace only the log message.
|
|
131
|
+
#
|
|
132
|
+
# @option options [String] :squash (nil) construct a "squash!" commit message for
|
|
133
|
+
# use with `git rebase --autosquash`
|
|
134
|
+
#
|
|
135
|
+
# @option options [String] :message (nil) use the given string as the commit message
|
|
136
|
+
#
|
|
137
|
+
# Alias: `:m`
|
|
138
|
+
#
|
|
139
|
+
# @option options [String] :file (nil) read the commit message from the given file;
|
|
140
|
+
# use `-` to read from standard input
|
|
141
|
+
#
|
|
142
|
+
# Alias: `:F`
|
|
143
|
+
#
|
|
144
|
+
# @option options [String] :template (nil) start the editor with the contents of
|
|
145
|
+
# the given file as the commit message template
|
|
146
|
+
#
|
|
147
|
+
# Alias: `:t`
|
|
148
|
+
#
|
|
149
|
+
# @option options [Boolean, nil] :reset_author (nil) when used with `:reuse_message`
|
|
150
|
+
# or `:amend`, declare the committer as the new author
|
|
151
|
+
#
|
|
152
|
+
# @option options [String] :author (nil) override the commit author
|
|
153
|
+
#
|
|
154
|
+
# @option options [String] :date (nil) override the author date
|
|
155
|
+
#
|
|
156
|
+
# @option options [String] :cleanup (nil) how to clean up the commit message before
|
|
157
|
+
# committing; one of `strip`, `whitespace`, `verbatim`, `scissors`, or `default`
|
|
158
|
+
#
|
|
159
|
+
# @option options [String, Array<String>] :trailer (nil) add one or more
|
|
160
|
+
# `<token>[=<value>]` trailers to the commit message
|
|
161
|
+
#
|
|
162
|
+
# @option options [Boolean, nil] :verify (nil) run pre-commit and commit-msg hooks (`--verify`)
|
|
163
|
+
#
|
|
164
|
+
# Alias: `:n`
|
|
165
|
+
#
|
|
166
|
+
# @option options [Boolean, nil] :no_verify (nil) bypass pre-commit and commit-msg hooks (`--no-verify`)
|
|
167
|
+
#
|
|
168
|
+
# @option options [Boolean, nil] :allow_empty (nil) allow committing with no changes
|
|
169
|
+
#
|
|
170
|
+
# @option options [Boolean, nil] :allow_empty_message (nil) allow committing with an
|
|
171
|
+
# empty message
|
|
172
|
+
#
|
|
173
|
+
# @option options [Boolean, nil] :no_post_rewrite (nil) bypass the post-rewrite hook
|
|
174
|
+
#
|
|
175
|
+
# @option options [Boolean, nil] :include (nil) stage the listed paths before
|
|
176
|
+
# committing in addition to already-staged contents
|
|
177
|
+
#
|
|
178
|
+
# Alias: `:i`
|
|
179
|
+
#
|
|
180
|
+
# @option options [Boolean, nil] :only (nil) commit only the listed paths from the
|
|
181
|
+
# working tree, ignoring staged changes for other paths
|
|
182
|
+
#
|
|
183
|
+
# Alias: `:o`
|
|
184
|
+
#
|
|
185
|
+
# @option options [Boolean, nil] :dry_run (nil) do not create a commit; show what
|
|
186
|
+
# would be committed
|
|
187
|
+
#
|
|
188
|
+
# @option options [Boolean, nil] :short (nil) show short-format dry-run output;
|
|
189
|
+
# implies `:dry_run`
|
|
190
|
+
#
|
|
191
|
+
# @option options [Boolean, nil] :branch (nil) show branch and tracking info in
|
|
192
|
+
# short-format dry-run output
|
|
193
|
+
#
|
|
194
|
+
# @option options [Boolean, nil] :porcelain (nil) show porcelain-format dry-run
|
|
195
|
+
# output; implies `:dry_run`
|
|
196
|
+
#
|
|
197
|
+
# @option options [Boolean, nil] :long (nil) show long-format dry-run output;
|
|
198
|
+
# implies `:dry_run`
|
|
199
|
+
#
|
|
200
|
+
# @option options [Boolean, nil] :null (nil) terminate dry-run output entries with
|
|
201
|
+
# NUL instead of LF
|
|
202
|
+
#
|
|
203
|
+
# Alias: `:z`
|
|
204
|
+
#
|
|
205
|
+
# @option options [Boolean, Integer, nil] :verbose (nil) show unified diff between
|
|
206
|
+
# HEAD and what would be committed at the bottom of the commit message template
|
|
207
|
+
#
|
|
208
|
+
# Pass `2` to also show the unified diff between staged and working-tree changes.
|
|
209
|
+
#
|
|
210
|
+
# Alias: `:v`
|
|
211
|
+
#
|
|
212
|
+
# @option options [Boolean, nil] :quiet (nil) suppress commit summary message
|
|
213
|
+
#
|
|
214
|
+
# Alias: `:q`
|
|
215
|
+
#
|
|
216
|
+
# @option options [Boolean, nil] :status (nil) include `git status` output in the
|
|
217
|
+
# commit message template (`--status`)
|
|
218
|
+
#
|
|
219
|
+
# @option options [Boolean, nil] :no_status (nil) omit `git status` output from the
|
|
220
|
+
# commit message template (`--no-status`)
|
|
221
|
+
#
|
|
222
|
+
# @option options [Integer] :unified (nil) generate verbose diff with the given
|
|
223
|
+
# number of context lines
|
|
224
|
+
#
|
|
225
|
+
# Alias: `:U`
|
|
226
|
+
#
|
|
227
|
+
# @option options [Integer] :inter_hunk_context (nil) show context between diff
|
|
228
|
+
# hunks up to the given number of lines (for use with `:verbose`)
|
|
229
|
+
#
|
|
230
|
+
# @option options [Boolean, nil] :signoff (nil) add a `Signed-off-by` trailer to
|
|
231
|
+
# the commit message (`--signoff`)
|
|
232
|
+
#
|
|
233
|
+
# Alias: `:s`
|
|
234
|
+
#
|
|
235
|
+
# @option options [Boolean, nil] :no_signoff (nil) suppress the `Signed-off-by` trailer (`--no-signoff`)
|
|
236
|
+
#
|
|
237
|
+
# @option options [Boolean, String, nil] :gpg_sign (nil) GPG-sign the commit (`--gpg-sign`)
|
|
238
|
+
#
|
|
239
|
+
# When `true`, uses the default key. When a `String`, uses the specified key ID.
|
|
240
|
+
#
|
|
241
|
+
# Alias: `:S`
|
|
242
|
+
#
|
|
243
|
+
# @option options [Boolean, nil] :no_gpg_sign (nil) disable GPG signing, overriding
|
|
244
|
+
# `commit.gpgSign` config (`--no-gpg-sign`)
|
|
245
|
+
#
|
|
246
|
+
# @option options [Boolean, String, nil] :untracked_files (nil) show untracked files
|
|
247
|
+
# in the dry-run status output
|
|
248
|
+
#
|
|
249
|
+
# When `true`, uses git's default mode (`all`). Pass a `String` (`"no"`,
|
|
250
|
+
# `"normal"`, or `"all"`) to set the mode explicitly.
|
|
251
|
+
#
|
|
252
|
+
# Alias: `:u`
|
|
253
|
+
#
|
|
254
|
+
# @option options [String] :pathspec_from_file (nil) read pathspec from the given
|
|
255
|
+
# file instead of the command line
|
|
256
|
+
#
|
|
257
|
+
# @option options [Boolean, nil] :pathspec_file_nul (nil) pathspec elements in
|
|
258
|
+
# `:pathspec_from_file` are NUL-separated instead of newline-separated
|
|
259
|
+
#
|
|
260
|
+
# @return [Git::CommandLine::Result] the result of calling `git commit`
|
|
261
|
+
#
|
|
262
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
263
|
+
#
|
|
264
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
265
|
+
#
|
|
266
|
+
# @api public
|
|
267
|
+
#
|
|
268
|
+
def call(*, **)
|
|
269
|
+
super
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git commit-tree` command
|
|
8
|
+
#
|
|
9
|
+
# Creates a new commit object based on the provided tree object and emits the
|
|
10
|
+
# new commit object id on stdout. The log message is provided via `-m` or `-F`
|
|
11
|
+
# options; multiple instances of either are concatenated as separate paragraphs.
|
|
12
|
+
#
|
|
13
|
+
# @example Typical usage
|
|
14
|
+
# commit_tree = Git::Commands::CommitTree.new(execution_context)
|
|
15
|
+
# commit_tree.call('abc123', m: 'Initial commit')
|
|
16
|
+
# commit_tree.call('abc123', p: %w[parent1 parent2], m: 'Merge')
|
|
17
|
+
# commit_tree.call('abc123', m: 'Signed', gpg_sign: true)
|
|
18
|
+
#
|
|
19
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-commit-tree/2.53.0
|
|
20
|
+
#
|
|
21
|
+
# @see Git::Commands
|
|
22
|
+
#
|
|
23
|
+
# @see https://git-scm.com/docs/git-commit-tree git-commit-tree
|
|
24
|
+
#
|
|
25
|
+
# @api private
|
|
26
|
+
#
|
|
27
|
+
class CommitTree < Git::Commands::Base
|
|
28
|
+
arguments do
|
|
29
|
+
literal 'commit-tree'
|
|
30
|
+
|
|
31
|
+
# Parent commits — each -p adds a parent object
|
|
32
|
+
value_option :p, repeatable: true
|
|
33
|
+
|
|
34
|
+
# GPG signing — -S[<keyid>] / --gpg-sign[=<keyid>] / --no-gpg-sign
|
|
35
|
+
flag_or_value_option %i[gpg_sign S], negatable: true, inline: true
|
|
36
|
+
|
|
37
|
+
# Commit log message paragraphs
|
|
38
|
+
value_option :m, repeatable: true, allow_empty: true
|
|
39
|
+
|
|
40
|
+
# Read commit log message from file(s)
|
|
41
|
+
value_option :F, repeatable: true
|
|
42
|
+
|
|
43
|
+
end_of_options
|
|
44
|
+
|
|
45
|
+
# The tree object to create a commit from
|
|
46
|
+
operand :tree, required: true
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# @overload call(tree, **options)
|
|
50
|
+
#
|
|
51
|
+
# Execute the `git commit-tree` command
|
|
52
|
+
#
|
|
53
|
+
# @param tree [String] an existing tree object SHA
|
|
54
|
+
#
|
|
55
|
+
# @param options [Hash] command options
|
|
56
|
+
#
|
|
57
|
+
# @option options [String, Array<String>] :p (nil) parent commit
|
|
58
|
+
# object id(s)
|
|
59
|
+
#
|
|
60
|
+
# Each value adds a `-p <parent>` flag. A commit may have zero or
|
|
61
|
+
# more parents. With exactly one parent it is an ordinary commit;
|
|
62
|
+
# with more than one it is a merge commit. Initial (root) commits
|
|
63
|
+
# have no parents.
|
|
64
|
+
#
|
|
65
|
+
# @option options [Boolean, String, nil] :gpg_sign (nil) sign the
|
|
66
|
+
# commit with GPG (`--gpg-sign`)
|
|
67
|
+
#
|
|
68
|
+
# Pass a key-ID string to select the signing key; pass `true` to use
|
|
69
|
+
# the committer identity. Alias: `:S`
|
|
70
|
+
#
|
|
71
|
+
# @option options [Boolean, nil] :no_gpg_sign (nil) countermand commit.gpgSign
|
|
72
|
+
# configuration (`--no-gpg-sign`)
|
|
73
|
+
#
|
|
74
|
+
# @option options [String, Array<String>] :m (nil) a paragraph
|
|
75
|
+
# in the commit log message
|
|
76
|
+
#
|
|
77
|
+
# Can be given more than once; each message becomes its own paragraph.
|
|
78
|
+
#
|
|
79
|
+
# @option options [String, Array<String>] :F (nil) read the commit
|
|
80
|
+
# log message from the given file
|
|
81
|
+
#
|
|
82
|
+
# Use `"-"` to read from standard input. Can be given more than
|
|
83
|
+
# once; each file's content becomes its own paragraph.
|
|
84
|
+
#
|
|
85
|
+
# @return [Git::CommandLine::Result] the result of calling
|
|
86
|
+
# `git commit-tree`
|
|
87
|
+
#
|
|
88
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
89
|
+
#
|
|
90
|
+
# @raise [ArgumentError] if the tree operand is missing
|
|
91
|
+
#
|
|
92
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit
|
|
93
|
+
# status
|
|
94
|
+
#
|
|
95
|
+
# @api public
|
|
96
|
+
def call(*, **)
|
|
97
|
+
super
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module ConfigOptionSyntax
|
|
8
|
+
# Append a value to a multi-valued config key
|
|
9
|
+
#
|
|
10
|
+
# Wraps `git config --add` to add a new line to a config key without
|
|
11
|
+
# altering existing values.
|
|
12
|
+
#
|
|
13
|
+
# @example Add a value to a multi-valued key
|
|
14
|
+
# cmd = Git::Commands::ConfigOptionSyntax::Add.new(lib)
|
|
15
|
+
# cmd.call('remote.origin.fetch', '+refs/heads/*:refs/remotes/origin/*')
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-config/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::ConfigOptionSyntax
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-config git-config documentation
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Add < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'config'
|
|
28
|
+
literal '--add'
|
|
29
|
+
|
|
30
|
+
# File-scope options
|
|
31
|
+
flag_option :global
|
|
32
|
+
flag_option :system
|
|
33
|
+
flag_option :local
|
|
34
|
+
flag_option :worktree
|
|
35
|
+
value_option %i[file f]
|
|
36
|
+
value_option :blob
|
|
37
|
+
|
|
38
|
+
# Type constraint
|
|
39
|
+
value_option :type, inline: true
|
|
40
|
+
|
|
41
|
+
# Operands
|
|
42
|
+
end_of_options
|
|
43
|
+
operand :name, required: true
|
|
44
|
+
operand :value, required: true
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# @overload call(name, value, **options)
|
|
48
|
+
#
|
|
49
|
+
# Execute the `git config --add` command
|
|
50
|
+
#
|
|
51
|
+
# @param name [String] the config key name
|
|
52
|
+
#
|
|
53
|
+
# @param value [String] the value to append
|
|
54
|
+
#
|
|
55
|
+
# @param options [Hash] command options
|
|
56
|
+
#
|
|
57
|
+
# @option options [Boolean, nil] :global (nil) write to global config (`~/.gitconfig`)
|
|
58
|
+
#
|
|
59
|
+
# @option options [Boolean, nil] :system (nil) write to system config
|
|
60
|
+
#
|
|
61
|
+
# @option options [Boolean, nil] :local (nil) write to repository config (`.git/config`)
|
|
62
|
+
#
|
|
63
|
+
# @option options [Boolean, nil] :worktree (nil) write to worktree config
|
|
64
|
+
#
|
|
65
|
+
# @option options [String] :file (nil) write to the specified file
|
|
66
|
+
#
|
|
67
|
+
# Alias: :f
|
|
68
|
+
#
|
|
69
|
+
# @option options [String] :blob (nil) read from the specified blob
|
|
70
|
+
#
|
|
71
|
+
# @option options [String] :type (nil) ensure the value conforms to the given type
|
|
72
|
+
#
|
|
73
|
+
# @return [Git::CommandLine::Result] the result of calling `git config --add`
|
|
74
|
+
#
|
|
75
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
76
|
+
#
|
|
77
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
78
|
+
#
|
|
79
|
+
# @api public
|
|
80
|
+
def call(*, **)
|
|
81
|
+
super
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module ConfigOptionSyntax
|
|
8
|
+
# Retrieve a single config value by exact key name
|
|
9
|
+
#
|
|
10
|
+
# Wraps `git config --get` to return the value of the last-matching
|
|
11
|
+
# config entry for the given key name.
|
|
12
|
+
#
|
|
13
|
+
# @example Get a local config value
|
|
14
|
+
# cmd = Git::Commands::ConfigOptionSyntax::Get.new(lib)
|
|
15
|
+
# cmd.call('user.name')
|
|
16
|
+
#
|
|
17
|
+
# @example Get a global config value
|
|
18
|
+
# cmd = Git::Commands::ConfigOptionSyntax::Get.new(lib)
|
|
19
|
+
# cmd.call('user.name', global: true)
|
|
20
|
+
#
|
|
21
|
+
# @example Get a value with a type constraint
|
|
22
|
+
# cmd = Git::Commands::ConfigOptionSyntax::Get.new(lib)
|
|
23
|
+
# cmd.call('core.bare', type: 'bool')
|
|
24
|
+
#
|
|
25
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-config/2.53.0
|
|
26
|
+
#
|
|
27
|
+
# @see Git::Commands::ConfigOptionSyntax
|
|
28
|
+
#
|
|
29
|
+
# @see https://git-scm.com/docs/git-config git-config documentation
|
|
30
|
+
#
|
|
31
|
+
# @api private
|
|
32
|
+
class Get < Git::Commands::Base
|
|
33
|
+
arguments do
|
|
34
|
+
literal 'config'
|
|
35
|
+
literal '--get'
|
|
36
|
+
|
|
37
|
+
# File-scope options
|
|
38
|
+
flag_option :global
|
|
39
|
+
flag_option :system
|
|
40
|
+
flag_option :local
|
|
41
|
+
flag_option :worktree
|
|
42
|
+
value_option %i[file f]
|
|
43
|
+
value_option :blob
|
|
44
|
+
|
|
45
|
+
# General read options
|
|
46
|
+
flag_option :includes, negatable: true
|
|
47
|
+
|
|
48
|
+
# Type constraint
|
|
49
|
+
value_option :type, inline: true
|
|
50
|
+
|
|
51
|
+
# Output modifiers
|
|
52
|
+
flag_option :show_origin
|
|
53
|
+
flag_option :show_scope
|
|
54
|
+
flag_option %i[null z]
|
|
55
|
+
value_option :default
|
|
56
|
+
|
|
57
|
+
# Operands
|
|
58
|
+
end_of_options
|
|
59
|
+
operand :name, required: true
|
|
60
|
+
operand :value_regex
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# git config --get exits 1 when the key is not found (not an error)
|
|
64
|
+
allow_exit_status 0..1
|
|
65
|
+
|
|
66
|
+
# @overload call(name, value_regex = nil, **options)
|
|
67
|
+
#
|
|
68
|
+
# Execute the `git config --get` command
|
|
69
|
+
#
|
|
70
|
+
# @param name [String] the config key name to look up
|
|
71
|
+
#
|
|
72
|
+
# @param value_regex [String, nil] (nil) optional regex to filter the value
|
|
73
|
+
#
|
|
74
|
+
# @param options [Hash] command options
|
|
75
|
+
#
|
|
76
|
+
# @option options [Boolean, nil] :global (nil) read from global config (`~/.gitconfig`)
|
|
77
|
+
#
|
|
78
|
+
# @option options [Boolean, nil] :system (nil) read from system config
|
|
79
|
+
#
|
|
80
|
+
# @option options [Boolean, nil] :local (nil) read from repository config (`.git/config`)
|
|
81
|
+
#
|
|
82
|
+
# @option options [Boolean, nil] :worktree (nil) read from worktree config
|
|
83
|
+
#
|
|
84
|
+
# @option options [String] :file (nil) read from the specified file
|
|
85
|
+
#
|
|
86
|
+
# Alias: :f
|
|
87
|
+
#
|
|
88
|
+
# @option options [String] :blob (nil) read from the specified blob
|
|
89
|
+
#
|
|
90
|
+
# @option options [Boolean, nil] :includes (nil) respect include directives in config files (`--includes`)
|
|
91
|
+
#
|
|
92
|
+
# @option options [Boolean, nil] :no_includes (nil) do not respect include directives
|
|
93
|
+
# in config files (`--no-includes`)
|
|
94
|
+
#
|
|
95
|
+
# @option options [String] :type (nil) ensure the value conforms to the given type
|
|
96
|
+
#
|
|
97
|
+
# @option options [Boolean, nil] :show_origin (nil) show the origin of the config value
|
|
98
|
+
#
|
|
99
|
+
# @option options [Boolean, nil] :show_scope (nil) show the scope of the config value
|
|
100
|
+
#
|
|
101
|
+
# @option options [Boolean, nil] :null (nil) terminate values with NUL byte instead of newline
|
|
102
|
+
#
|
|
103
|
+
# Alias: :z
|
|
104
|
+
#
|
|
105
|
+
# @option options [String] :default (nil) default value when the key is not found
|
|
106
|
+
#
|
|
107
|
+
# @return [Git::CommandLine::Result] the result of calling `git config --get`
|
|
108
|
+
#
|
|
109
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
110
|
+
#
|
|
111
|
+
# @raise [Git::FailedError] if git exits outside the allowed range (exit code > 1)
|
|
112
|
+
#
|
|
113
|
+
# @api public
|
|
114
|
+
#
|
|
115
|
+
def call(*, **)
|
|
116
|
+
super
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module ConfigOptionSyntax
|
|
8
|
+
# Retrieve all values for a multi-valued config key
|
|
9
|
+
#
|
|
10
|
+
# Wraps `git config --get-all` to return all values matching the given
|
|
11
|
+
# key name, one per line.
|
|
12
|
+
#
|
|
13
|
+
# @example Get all values for a key
|
|
14
|
+
# cmd = Git::Commands::ConfigOptionSyntax::GetAll.new(lib)
|
|
15
|
+
# cmd.call('remote.origin.fetch')
|
|
16
|
+
#
|
|
17
|
+
# @example Get all values with a value pattern
|
|
18
|
+
# cmd = Git::Commands::ConfigOptionSyntax::GetAll.new(lib)
|
|
19
|
+
# cmd.call('remote.origin.fetch', '\\+refs/heads/.*')
|
|
20
|
+
#
|
|
21
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-config/2.53.0
|
|
22
|
+
#
|
|
23
|
+
# @see Git::Commands::ConfigOptionSyntax
|
|
24
|
+
#
|
|
25
|
+
# @see https://git-scm.com/docs/git-config git-config documentation
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
class GetAll < Git::Commands::Base
|
|
29
|
+
arguments do
|
|
30
|
+
literal 'config'
|
|
31
|
+
literal '--get-all'
|
|
32
|
+
|
|
33
|
+
# File-scope options
|
|
34
|
+
flag_option :global
|
|
35
|
+
flag_option :system
|
|
36
|
+
flag_option :local
|
|
37
|
+
flag_option :worktree
|
|
38
|
+
value_option %i[file f]
|
|
39
|
+
value_option :blob
|
|
40
|
+
|
|
41
|
+
# General read options
|
|
42
|
+
flag_option :includes, negatable: true
|
|
43
|
+
|
|
44
|
+
# Type constraint
|
|
45
|
+
value_option :type, inline: true
|
|
46
|
+
flag_option :no_type
|
|
47
|
+
|
|
48
|
+
# Output modifiers
|
|
49
|
+
flag_option :show_origin
|
|
50
|
+
flag_option :show_scope
|
|
51
|
+
flag_option %i[null z]
|
|
52
|
+
|
|
53
|
+
# Operands
|
|
54
|
+
end_of_options
|
|
55
|
+
operand :name, required: true
|
|
56
|
+
operand :value_regex
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# git config --get-all exits 1 when the key is not found (not an error)
|
|
60
|
+
allow_exit_status 0..1
|
|
61
|
+
|
|
62
|
+
# @overload call(name, value_regex = nil, **options)
|
|
63
|
+
#
|
|
64
|
+
# Execute the `git config --get-all` command
|
|
65
|
+
#
|
|
66
|
+
# @param name [String] the config key name to look up
|
|
67
|
+
#
|
|
68
|
+
# @param value_regex [String, nil] (nil) optional regex to filter values
|
|
69
|
+
#
|
|
70
|
+
# @param options [Hash] command options
|
|
71
|
+
#
|
|
72
|
+
# @option options [Boolean, nil] :global (nil) read from global config (`~/.gitconfig`)
|
|
73
|
+
#
|
|
74
|
+
# @option options [Boolean, nil] :system (nil) read from system config
|
|
75
|
+
#
|
|
76
|
+
# @option options [Boolean, nil] :local (nil) read from repository config (`.git/config`)
|
|
77
|
+
#
|
|
78
|
+
# @option options [Boolean, nil] :worktree (nil) read from worktree config
|
|
79
|
+
#
|
|
80
|
+
# @option options [String] :file (nil) read from the specified file
|
|
81
|
+
#
|
|
82
|
+
# Alias: :f
|
|
83
|
+
#
|
|
84
|
+
# @option options [String] :blob (nil) read from the specified blob
|
|
85
|
+
#
|
|
86
|
+
# @option options [Boolean, nil] :includes (nil) follow include directives in config files
|
|
87
|
+
# (`--includes`)
|
|
88
|
+
#
|
|
89
|
+
# @option options [Boolean, nil] :no_includes (nil) suppress include directive processing
|
|
90
|
+
# (`--no-includes`)
|
|
91
|
+
#
|
|
92
|
+
# @option options [String] :type (nil) ensure values conform to the given type
|
|
93
|
+
#
|
|
94
|
+
# @option options [Boolean, nil] :no_type (nil) unset the previously set type specifier;
|
|
95
|
+
# `true` emits `--no-type`
|
|
96
|
+
#
|
|
97
|
+
# @option options [Boolean, nil] :show_origin (nil) show the origin of each config value
|
|
98
|
+
#
|
|
99
|
+
# @option options [Boolean, nil] :show_scope (nil) show the scope of each config value
|
|
100
|
+
#
|
|
101
|
+
# @option options [Boolean, nil] :null (nil) terminate values with NUL byte instead of newline
|
|
102
|
+
#
|
|
103
|
+
# Alias: :z
|
|
104
|
+
#
|
|
105
|
+
# @return [Git::CommandLine::Result] the result of calling `git config --get-all`
|
|
106
|
+
#
|
|
107
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
108
|
+
#
|
|
109
|
+
# @raise [Git::FailedError] if git exits outside the allowed range (exit code > 1)
|
|
110
|
+
#
|
|
111
|
+
# @api public
|
|
112
|
+
def call(*, **)
|
|
113
|
+
super
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|