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.
- checksums.yaml +4 -4
- data/.github/copilot-instructions.md +67 -2705
- data/.github/pull_request_template.md +3 -1
- data/.github/skills/breaking-change-analysis/SKILL.md +102 -0
- data/.github/skills/ci-cd-troubleshooting/SKILL.md +264 -0
- data/.github/skills/command-implementation/REFERENCE.md +993 -0
- data/.github/skills/command-implementation/SKILL.md +229 -0
- data/.github/skills/command-test-conventions/SKILL.md +660 -0
- data/.github/skills/command-yard-documentation/SKILL.md +426 -0
- data/.github/skills/dependency-management/SKILL.md +72 -0
- data/.github/skills/development-workflow/SKILL.md +506 -0
- data/.github/skills/extract-command-from-lib/SKILL.md +487 -0
- data/.github/skills/extract-facade-from-base-lib/SKILL.md +586 -0
- data/.github/skills/facade-implementation/REFERENCE.md +840 -0
- data/.github/skills/facade-implementation/SKILL.md +260 -0
- data/.github/skills/facade-test-conventions/SKILL.md +380 -0
- data/.github/skills/facade-yard-documentation/SKILL.md +429 -0
- data/.github/skills/make-skill-template/SKILL.md +176 -0
- data/.github/skills/pr-readiness-review/SKILL.md +185 -0
- data/.github/skills/project-context/SKILL.md +313 -0
- data/.github/skills/pull-request-review/SKILL.md +168 -0
- data/.github/skills/refactor-command-to-commandlineresult/SKILL.md +131 -0
- data/.github/skills/release-management/SKILL.md +125 -0
- data/.github/skills/review-arguments-dsl/CHECKLIST.md +788 -0
- data/.github/skills/review-arguments-dsl/SKILL.md +214 -0
- data/.github/skills/review-backward-compatibility/SKILL.md +275 -0
- data/.github/skills/review-cross-command-consistency/SKILL.md +139 -0
- data/.github/skills/reviewing-skills/SKILL.md +189 -0
- data/.github/skills/rspec-unit-testing-standards/SKILL.md +639 -0
- data/.github/skills/tdd-refactor-step/SKILL.md +236 -0
- data/.github/skills/test-debugging/SKILL.md +160 -0
- data/.github/skills/yard-documentation/SKILL.md +793 -0
- data/.github/workflows/continuous_integration.yml +3 -2
- data/.github/workflows/enforce_conventional_commits.yml +1 -1
- data/.github/workflows/experimental_continuous_integration.yml +2 -2
- data/.github/workflows/release.yml +3 -4
- data/.gitignore +8 -0
- data/.husky/pre-commit +13 -0
- data/.release-please-manifest.json +1 -1
- data/.rspec +3 -0
- data/.rubocop.yml +7 -3
- data/.rubocop_todo.yml +23 -5
- data/.yardopts +1 -0
- data/CHANGELOG.md +0 -40
- data/CONTRIBUTING.md +694 -53
- data/README.md +17 -5
- data/Rakefile +61 -9
- data/commitlint.test +4 -0
- data/git.gemspec +14 -8
- data/lib/git/args_builder.rb +0 -8
- data/lib/git/base.rb +486 -410
- data/lib/git/branch.rb +380 -43
- data/lib/git/branch_delete_failure.rb +31 -0
- data/lib/git/branch_delete_result.rb +63 -0
- data/lib/git/branch_info.rb +178 -0
- data/lib/git/branches.rb +130 -24
- data/lib/git/command_line/base.rb +245 -0
- data/lib/git/command_line/capturing.rb +249 -0
- data/lib/git/command_line/result.rb +96 -0
- data/lib/git/command_line/streaming.rb +194 -0
- data/lib/git/command_line.rb +43 -322
- data/lib/git/command_line_result.rb +4 -88
- data/lib/git/commands/add.rb +131 -0
- data/lib/git/commands/am/abort.rb +43 -0
- data/lib/git/commands/am/apply.rb +252 -0
- data/lib/git/commands/am/continue.rb +43 -0
- data/lib/git/commands/am/quit.rb +43 -0
- data/lib/git/commands/am/retry.rb +47 -0
- data/lib/git/commands/am/show_current_patch.rb +64 -0
- data/lib/git/commands/am/skip.rb +42 -0
- data/lib/git/commands/am.rb +33 -0
- data/lib/git/commands/apply.rb +237 -0
- data/lib/git/commands/archive/list_formats.rb +46 -0
- data/lib/git/commands/archive.rb +140 -0
- data/lib/git/commands/arguments.rb +3510 -0
- data/lib/git/commands/base.rb +403 -0
- data/lib/git/commands/branch/copy.rb +94 -0
- data/lib/git/commands/branch/create.rb +173 -0
- data/lib/git/commands/branch/delete.rb +80 -0
- data/lib/git/commands/branch/list.rb +162 -0
- data/lib/git/commands/branch/move.rb +94 -0
- data/lib/git/commands/branch/set_upstream.rb +86 -0
- data/lib/git/commands/branch/show_current.rb +49 -0
- data/lib/git/commands/branch/unset_upstream.rb +57 -0
- data/lib/git/commands/branch.rb +34 -0
- data/lib/git/commands/cat_file/batch.rb +364 -0
- data/lib/git/commands/cat_file/filtered.rb +105 -0
- data/lib/git/commands/cat_file/raw.rb +210 -0
- data/lib/git/commands/cat_file.rb +49 -0
- data/lib/git/commands/checkout/branch.rb +151 -0
- data/lib/git/commands/checkout/files.rb +115 -0
- data/lib/git/commands/checkout.rb +38 -0
- data/lib/git/commands/checkout_index.rb +105 -0
- data/lib/git/commands/clean.rb +100 -0
- data/lib/git/commands/clone.rb +240 -0
- data/lib/git/commands/commit.rb +272 -0
- data/lib/git/commands/commit_tree.rb +100 -0
- data/lib/git/commands/config_option_syntax/add.rb +83 -0
- data/lib/git/commands/config_option_syntax/get.rb +117 -0
- data/lib/git/commands/config_option_syntax/get_all.rb +115 -0
- data/lib/git/commands/config_option_syntax/get_color.rb +91 -0
- data/lib/git/commands/config_option_syntax/get_color_bool.rb +93 -0
- data/lib/git/commands/config_option_syntax/get_regexp.rb +115 -0
- data/lib/git/commands/config_option_syntax/get_urlmatch.rb +102 -0
- data/lib/git/commands/config_option_syntax/list.rb +107 -0
- data/lib/git/commands/config_option_syntax/remove_section.rb +74 -0
- data/lib/git/commands/config_option_syntax/rename_section.rb +78 -0
- data/lib/git/commands/config_option_syntax/replace_all.rb +104 -0
- data/lib/git/commands/config_option_syntax/set.rb +114 -0
- data/lib/git/commands/config_option_syntax/unset.rb +89 -0
- data/lib/git/commands/config_option_syntax/unset_all.rb +89 -0
- data/lib/git/commands/config_option_syntax.rb +56 -0
- data/lib/git/commands/describe.rb +155 -0
- data/lib/git/commands/diff.rb +656 -0
- data/lib/git/commands/diff_files.rb +518 -0
- data/lib/git/commands/diff_index.rb +496 -0
- data/lib/git/commands/fetch.rb +352 -0
- data/lib/git/commands/fsck.rb +136 -0
- data/lib/git/commands/gc.rb +132 -0
- data/lib/git/commands/grep.rb +338 -0
- data/lib/git/commands/init.rb +99 -0
- data/lib/git/commands/log.rb +632 -0
- data/lib/git/commands/ls_files.rb +191 -0
- data/lib/git/commands/ls_remote.rb +155 -0
- data/lib/git/commands/ls_tree.rb +131 -0
- data/lib/git/commands/maintenance/register.rb +75 -0
- data/lib/git/commands/maintenance/run.rb +104 -0
- data/lib/git/commands/maintenance/start.rb +66 -0
- data/lib/git/commands/maintenance/stop.rb +55 -0
- data/lib/git/commands/maintenance/unregister.rb +79 -0
- data/lib/git/commands/maintenance.rb +31 -0
- data/lib/git/commands/merge/abort.rb +44 -0
- data/lib/git/commands/merge/continue.rb +44 -0
- data/lib/git/commands/merge/quit.rb +46 -0
- data/lib/git/commands/merge/start.rb +245 -0
- data/lib/git/commands/merge.rb +28 -0
- data/lib/git/commands/merge_base.rb +86 -0
- data/lib/git/commands/mv.rb +77 -0
- data/lib/git/commands/name_rev.rb +114 -0
- data/lib/git/commands/pull.rb +377 -0
- data/lib/git/commands/push.rb +246 -0
- data/lib/git/commands/read_tree.rb +149 -0
- data/lib/git/commands/remote/add.rb +91 -0
- data/lib/git/commands/remote/get_url.rb +66 -0
- data/lib/git/commands/remote/list.rb +54 -0
- data/lib/git/commands/remote/prune.rb +61 -0
- data/lib/git/commands/remote/remove.rb +52 -0
- data/lib/git/commands/remote/rename.rb +69 -0
- data/lib/git/commands/remote/set_branches.rb +63 -0
- data/lib/git/commands/remote/set_head.rb +82 -0
- data/lib/git/commands/remote/set_url.rb +71 -0
- data/lib/git/commands/remote/set_url_add.rb +61 -0
- data/lib/git/commands/remote/set_url_delete.rb +64 -0
- data/lib/git/commands/remote/show.rb +71 -0
- data/lib/git/commands/remote/update.rb +72 -0
- data/lib/git/commands/remote.rb +42 -0
- data/lib/git/commands/repack.rb +277 -0
- data/lib/git/commands/reset.rb +147 -0
- data/lib/git/commands/rev_parse.rb +297 -0
- data/lib/git/commands/revert/abort.rb +45 -0
- data/lib/git/commands/revert/continue.rb +57 -0
- data/lib/git/commands/revert/quit.rb +47 -0
- data/lib/git/commands/revert/skip.rb +44 -0
- data/lib/git/commands/revert/start.rb +153 -0
- data/lib/git/commands/revert.rb +29 -0
- data/lib/git/commands/rm.rb +114 -0
- data/lib/git/commands/show.rb +632 -0
- data/lib/git/commands/show_ref/exclude_existing.rb +120 -0
- data/lib/git/commands/show_ref/exists.rb +78 -0
- data/lib/git/commands/show_ref/list.rb +145 -0
- data/lib/git/commands/show_ref/verify.rb +120 -0
- data/lib/git/commands/show_ref.rb +42 -0
- data/lib/git/commands/stash/apply.rb +75 -0
- data/lib/git/commands/stash/branch.rb +65 -0
- data/lib/git/commands/stash/clear.rb +41 -0
- data/lib/git/commands/stash/create.rb +58 -0
- data/lib/git/commands/stash/drop.rb +67 -0
- data/lib/git/commands/stash/list.rb +39 -0
- data/lib/git/commands/stash/pop.rb +78 -0
- data/lib/git/commands/stash/push.rb +103 -0
- data/lib/git/commands/stash/show.rb +149 -0
- data/lib/git/commands/stash/store.rb +63 -0
- data/lib/git/commands/stash.rb +38 -0
- data/lib/git/commands/status.rb +169 -0
- data/lib/git/commands/symbolic_ref/delete.rb +68 -0
- data/lib/git/commands/symbolic_ref/read.rb +95 -0
- data/lib/git/commands/symbolic_ref/update.rb +76 -0
- data/lib/git/commands/symbolic_ref.rb +38 -0
- data/lib/git/commands/tag/create.rb +139 -0
- data/lib/git/commands/tag/delete.rb +55 -0
- data/lib/git/commands/tag/list.rb +143 -0
- data/lib/git/commands/tag/verify.rb +71 -0
- data/lib/git/commands/tag.rb +26 -0
- data/lib/git/commands/update_ref/batch.rb +140 -0
- data/lib/git/commands/update_ref/delete.rb +92 -0
- data/lib/git/commands/update_ref/update.rb +106 -0
- data/lib/git/commands/update_ref.rb +42 -0
- data/lib/git/commands/version.rb +52 -0
- data/lib/git/commands/worktree/add.rb +140 -0
- data/lib/git/commands/worktree/list.rb +64 -0
- data/lib/git/commands/worktree/lock.rb +58 -0
- data/lib/git/commands/worktree/management_base.rb +51 -0
- data/lib/git/commands/worktree/move.rb +66 -0
- data/lib/git/commands/worktree/prune.rb +67 -0
- data/lib/git/commands/worktree/remove.rb +63 -0
- data/lib/git/commands/worktree/repair.rb +76 -0
- data/lib/git/commands/worktree/unlock.rb +47 -0
- data/lib/git/commands/worktree.rb +43 -0
- data/lib/git/commands/write_tree.rb +68 -0
- data/lib/git/commands.rb +89 -0
- data/lib/git/detached_head_info.rb +54 -0
- data/lib/git/diff.rb +297 -7
- data/lib/git/diff_file_numstat_info.rb +29 -0
- data/lib/git/diff_file_patch_info.rb +134 -0
- data/lib/git/diff_file_raw_info.rb +127 -0
- data/lib/git/diff_info.rb +169 -0
- data/lib/git/diff_path_status.rb +78 -19
- data/lib/git/diff_result.rb +32 -0
- data/lib/git/diff_stats.rb +59 -14
- data/lib/git/dirstat_info.rb +86 -0
- data/lib/git/errors.rb +65 -2
- data/lib/git/execution_context/global.rb +56 -0
- data/lib/git/execution_context/repository.rb +147 -0
- data/lib/git/execution_context.rb +482 -0
- data/lib/git/file_ref.rb +74 -0
- data/lib/git/fsck_object.rb +9 -9
- data/lib/git/fsck_result.rb +1 -1
- data/lib/git/lib.rb +1606 -1028
- data/lib/git/log.rb +15 -2
- data/lib/git/object.rb +92 -22
- data/lib/git/parsers/branch.rb +224 -0
- data/lib/git/parsers/cat_file.rb +111 -0
- data/lib/git/parsers/diff.rb +585 -0
- data/lib/git/parsers/fsck.rb +133 -0
- data/lib/git/parsers/grep.rb +42 -0
- data/lib/git/parsers/ls_tree.rb +58 -0
- data/lib/git/parsers/stash.rb +208 -0
- data/lib/git/parsers/tag.rb +257 -0
- data/lib/git/remote.rb +133 -9
- data/lib/git/repository/branching.rb +572 -0
- data/lib/git/repository/committing.rb +191 -0
- data/lib/git/repository/configuring.rb +156 -0
- data/lib/git/repository/diffing.rb +775 -0
- data/lib/git/repository/inspecting.rb +153 -0
- data/lib/git/repository/logging.rb +247 -0
- data/lib/git/repository/merging.rb +295 -0
- data/lib/git/repository/object_operations.rb +1101 -0
- data/lib/git/repository/path_resolver.rb +207 -0
- data/lib/git/repository/remote_operations.rb +753 -0
- data/lib/git/repository/shared_private.rb +51 -0
- data/lib/git/repository/staging.rb +390 -0
- data/lib/git/repository/stashing.rb +107 -0
- data/lib/git/repository/status_operations.rb +180 -0
- data/lib/git/repository/worktree_operations.rb +159 -0
- data/lib/git/repository.rb +264 -1
- data/lib/git/stash.rb +85 -4
- data/lib/git/stash_info.rb +104 -0
- data/lib/git/stashes.rb +130 -13
- data/lib/git/status.rb +224 -18
- data/lib/git/tag_delete_failure.rb +31 -0
- data/lib/git/tag_delete_result.rb +63 -0
- data/lib/git/tag_info.rb +105 -0
- data/lib/git/version.rb +109 -2
- data/lib/git/version_constraint.rb +81 -0
- data/lib/git/worktree.rb +120 -5
- data/lib/git/worktrees.rb +107 -7
- data/lib/git.rb +114 -18
- data/redesign/1_architecture_existing.md +54 -18
- data/redesign/2_architecture_redesign.md +365 -46
- data/redesign/3_architecture_implementation.md +1451 -54
- data/tasks/gem_tasks.rake +4 -0
- data/tasks/npm_tasks.rake +7 -0
- data/tasks/rspec.rake +48 -0
- data/tasks/test.rake +13 -1
- data/tasks/yard.rake +34 -7
- metadata +349 -20
- data/lib/git/index.rb +0 -6
- data/lib/git/path.rb +0 -38
- data/lib/git/working_directory.rb +0 -6
- /data/{release-please-config.json → .release-please-config.json} +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git rev-parse` command
|
|
8
|
+
#
|
|
9
|
+
# Picks out and massages parameters for other git commands. Most commonly
|
|
10
|
+
# used to resolve a revision specifier (branch name, tag, abbreviated SHA)
|
|
11
|
+
# to its full object name. Also provides repository metadata queries and
|
|
12
|
+
# argument classification for porcelain scripts.
|
|
13
|
+
#
|
|
14
|
+
# The `--parseopt` and `--sq-quote` operation modes are excluded because
|
|
15
|
+
# they require stdin interaction or provide no value in a Ruby library.
|
|
16
|
+
#
|
|
17
|
+
# @example Resolve HEAD to its full SHA
|
|
18
|
+
# rev_parse = Git::Commands::RevParse.new(execution_context)
|
|
19
|
+
# result = rev_parse.call('HEAD', verify: true)
|
|
20
|
+
#
|
|
21
|
+
# @example Query the repository top-level directory
|
|
22
|
+
# rev_parse = Git::Commands::RevParse.new(execution_context)
|
|
23
|
+
# result = rev_parse.call(show_toplevel: true)
|
|
24
|
+
#
|
|
25
|
+
# @example List all branch refs
|
|
26
|
+
# rev_parse = Git::Commands::RevParse.new(execution_context)
|
|
27
|
+
# result = rev_parse.call(branches: true)
|
|
28
|
+
#
|
|
29
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-rev-parse/2.53.0
|
|
30
|
+
#
|
|
31
|
+
# @see https://git-scm.com/docs/git-rev-parse git-rev-parse
|
|
32
|
+
#
|
|
33
|
+
# @api private
|
|
34
|
+
#
|
|
35
|
+
class RevParse < Git::Commands::Base
|
|
36
|
+
arguments do
|
|
37
|
+
literal 'rev-parse'
|
|
38
|
+
|
|
39
|
+
# Filtering
|
|
40
|
+
flag_option :revs_only
|
|
41
|
+
flag_option :no_revs
|
|
42
|
+
flag_option :flags, negatable: true
|
|
43
|
+
|
|
44
|
+
# Output
|
|
45
|
+
value_option :default
|
|
46
|
+
value_option :prefix
|
|
47
|
+
flag_option :verify
|
|
48
|
+
flag_option %i[quiet q]
|
|
49
|
+
flag_option :sq
|
|
50
|
+
flag_or_value_option :short, inline: true
|
|
51
|
+
flag_option :not
|
|
52
|
+
flag_or_value_option :abbrev_ref, inline: true
|
|
53
|
+
flag_option :symbolic
|
|
54
|
+
flag_option :symbolic_full_name
|
|
55
|
+
value_option :output_object_format, inline: true
|
|
56
|
+
|
|
57
|
+
# Objects
|
|
58
|
+
flag_option :all
|
|
59
|
+
flag_or_value_option :branches, inline: true
|
|
60
|
+
flag_or_value_option :tags, inline: true
|
|
61
|
+
flag_or_value_option :remotes, inline: true
|
|
62
|
+
value_option :glob, inline: true
|
|
63
|
+
value_option :exclude, inline: true, repeatable: true
|
|
64
|
+
value_option :exclude_hidden, inline: true
|
|
65
|
+
value_option :disambiguate, inline: true
|
|
66
|
+
|
|
67
|
+
# Files
|
|
68
|
+
flag_option :local_env_vars
|
|
69
|
+
value_option :path_format, inline: true, repeatable: true
|
|
70
|
+
flag_option :git_dir
|
|
71
|
+
flag_option :absolute_git_dir
|
|
72
|
+
flag_option :git_common_dir
|
|
73
|
+
flag_option :is_inside_git_dir
|
|
74
|
+
flag_option :is_inside_work_tree
|
|
75
|
+
flag_option :is_bare_repository
|
|
76
|
+
flag_option :is_shallow_repository
|
|
77
|
+
value_option :resolve_git_dir
|
|
78
|
+
value_option :git_path
|
|
79
|
+
flag_option :show_cdup
|
|
80
|
+
flag_option :show_prefix
|
|
81
|
+
flag_option :show_toplevel
|
|
82
|
+
flag_option :show_superproject_working_tree
|
|
83
|
+
flag_option :shared_index_path
|
|
84
|
+
flag_or_value_option :show_object_format, inline: true
|
|
85
|
+
flag_option :show_ref_format
|
|
86
|
+
|
|
87
|
+
# Date conversion
|
|
88
|
+
value_option %i[since after], inline: true
|
|
89
|
+
value_option %i[until before], inline: true
|
|
90
|
+
|
|
91
|
+
execution_option :chdir
|
|
92
|
+
|
|
93
|
+
end_of_options as: '--end-of-options'
|
|
94
|
+
|
|
95
|
+
# Positional arguments (revisions, file paths, or mixed).
|
|
96
|
+
#
|
|
97
|
+
# In git rev-parse, `--` separates verified arguments from those
|
|
98
|
+
# echoed back without verification. Because this operand is after
|
|
99
|
+
# the end_of_options boundary, callers can freely include `--` and
|
|
100
|
+
# hyphen-prefixed values (e.g. branch names starting with `-`).
|
|
101
|
+
operand :args, repeatable: true
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# @!method call(*, **)
|
|
105
|
+
#
|
|
106
|
+
# @overload call(*args, **options)
|
|
107
|
+
#
|
|
108
|
+
# Execute the `git rev-parse` command
|
|
109
|
+
#
|
|
110
|
+
# @param args [Array<String>] zero or more revision specifiers,
|
|
111
|
+
# object names, or file paths to parse. Include `'--'` to
|
|
112
|
+
# separate verified arguments from those echoed back without
|
|
113
|
+
# verification, e.g. `call('HEAD', '--', 'file.txt')`.
|
|
114
|
+
#
|
|
115
|
+
# @param options [Hash] command options
|
|
116
|
+
#
|
|
117
|
+
# @option options [Boolean, nil] :revs_only (nil) do not output flags
|
|
118
|
+
# and parameters not meant for `git rev-list`
|
|
119
|
+
#
|
|
120
|
+
# @option options [Boolean, nil] :no_revs (nil) do not output flags and
|
|
121
|
+
# parameters meant for `git rev-list`
|
|
122
|
+
#
|
|
123
|
+
# @option options [Boolean, nil] :flags (nil) do not output non-flag
|
|
124
|
+
# parameters (`--flags`)
|
|
125
|
+
#
|
|
126
|
+
# @option options [Boolean, nil] :no_flags (nil) do not output flag
|
|
127
|
+
# parameters (`--no-flags`)
|
|
128
|
+
#
|
|
129
|
+
# @option options [String] :default (nil) use this value if no
|
|
130
|
+
# parameter is given by the user
|
|
131
|
+
#
|
|
132
|
+
# @option options [String] :prefix (nil) behave as if invoked from
|
|
133
|
+
# this subdirectory of the working tree
|
|
134
|
+
#
|
|
135
|
+
# @option options [Boolean, nil] :verify (nil) verify that exactly one
|
|
136
|
+
# parameter is provided and that it can be resolved to an object
|
|
137
|
+
#
|
|
138
|
+
# @option options [Boolean, nil] :quiet (nil) do not output an error
|
|
139
|
+
# message if the first argument is not a valid object name;
|
|
140
|
+
# exit with non-zero status silently
|
|
141
|
+
#
|
|
142
|
+
# Only meaningful with `:verify`.
|
|
143
|
+
#
|
|
144
|
+
# Alias: :q
|
|
145
|
+
#
|
|
146
|
+
# @option options [Boolean, nil] :sq (nil) output a single line
|
|
147
|
+
# properly quoted for shell consumption
|
|
148
|
+
#
|
|
149
|
+
# @option options [Boolean, String, nil] :short (nil) shorten the
|
|
150
|
+
# object name to a unique prefix
|
|
151
|
+
#
|
|
152
|
+
# When `true`, emits `--short` (git default length). When a
|
|
153
|
+
# String, emits `--short=<length>`.
|
|
154
|
+
#
|
|
155
|
+
# @option options [Boolean, nil] :not (nil) prefix object names with
|
|
156
|
+
# `^` and strip `^` from names that already have one
|
|
157
|
+
#
|
|
158
|
+
# @option options [Boolean, String, nil] :abbrev_ref (nil) output a
|
|
159
|
+
# non-ambiguous short name of the object
|
|
160
|
+
#
|
|
161
|
+
# When `true`, emits `--abbrev-ref`. When a String (`"strict"`
|
|
162
|
+
# or `"loose"`), emits `--abbrev-ref=<mode>`.
|
|
163
|
+
#
|
|
164
|
+
# @option options [Boolean, nil] :symbolic (nil) output object names
|
|
165
|
+
# in a form as close to the original input as possible
|
|
166
|
+
#
|
|
167
|
+
# @option options [Boolean, nil] :symbolic_full_name (nil) like
|
|
168
|
+
# `:symbolic` but omit non-ref input and show full refnames
|
|
169
|
+
#
|
|
170
|
+
# @option options [String] :output_object_format (nil) translate
|
|
171
|
+
# object identifiers to the specified format
|
|
172
|
+
#
|
|
173
|
+
# Accepted values are `"sha1"`, `"sha256"`, and `"storage"`.
|
|
174
|
+
#
|
|
175
|
+
# @option options [Boolean, nil] :all (nil) show all refs found in
|
|
176
|
+
# `refs/`
|
|
177
|
+
#
|
|
178
|
+
# @option options [Boolean, String, nil] :branches (nil) show all
|
|
179
|
+
# branches
|
|
180
|
+
#
|
|
181
|
+
# When `true`, emits `--branches`. When a String, emits
|
|
182
|
+
# `--branches=<pattern>`.
|
|
183
|
+
#
|
|
184
|
+
# @option options [Boolean, String, nil] :tags (nil) show all tags
|
|
185
|
+
#
|
|
186
|
+
# When `true`, emits `--tags`. When a String, emits
|
|
187
|
+
# `--tags=<pattern>`.
|
|
188
|
+
#
|
|
189
|
+
# @option options [Boolean, String, nil] :remotes (nil) show all
|
|
190
|
+
# remote-tracking branches
|
|
191
|
+
#
|
|
192
|
+
# When `true`, emits `--remotes`. When a String, emits
|
|
193
|
+
# `--remotes=<pattern>`.
|
|
194
|
+
#
|
|
195
|
+
# @option options [String] :glob (nil) show all refs matching
|
|
196
|
+
# the shell glob pattern
|
|
197
|
+
#
|
|
198
|
+
# @option options [String, Array<String>] :exclude (nil) exclude
|
|
199
|
+
# refs matching the glob pattern from the next `--all`,
|
|
200
|
+
# `--branches`, `--tags`, `--remotes`, or `--glob`
|
|
201
|
+
#
|
|
202
|
+
# @option options [String] :disambiguate (nil) show every object
|
|
203
|
+
# whose name begins with the given prefix
|
|
204
|
+
#
|
|
205
|
+
# @option options [String] :exclude_hidden (nil) do not include
|
|
206
|
+
# refs that would be hidden by the specified protocol
|
|
207
|
+
#
|
|
208
|
+
# Accepted values are `"fetch"`, `"receive"`, and `"uploadpack"`.
|
|
209
|
+
# Affects the next `--all` or `--glob` and is cleared after
|
|
210
|
+
# processing them.
|
|
211
|
+
#
|
|
212
|
+
# @option options [Boolean, nil] :local_env_vars (nil) list the
|
|
213
|
+
# `GIT_*` environment variables local to the repository
|
|
214
|
+
#
|
|
215
|
+
# @option options [String, Array<String>] :path_format (nil) control
|
|
216
|
+
# whether paths output by subsequent path-related options are
|
|
217
|
+
# absolute or relative
|
|
218
|
+
#
|
|
219
|
+
# Accepted values are `"absolute"` and `"relative"`. May be
|
|
220
|
+
# given multiple times; each instance affects the arguments
|
|
221
|
+
# that follow it on the command line.
|
|
222
|
+
#
|
|
223
|
+
# @option options [Boolean, nil] :git_dir (nil) show `$GIT_DIR` if
|
|
224
|
+
# defined, otherwise show the path to the `.git` directory
|
|
225
|
+
#
|
|
226
|
+
# @option options [Boolean, nil] :absolute_git_dir (nil) like
|
|
227
|
+
# `:git_dir` but always output the canonicalized absolute path
|
|
228
|
+
#
|
|
229
|
+
# @option options [Boolean, nil] :git_common_dir (nil) show
|
|
230
|
+
# `$GIT_COMMON_DIR` if defined, else `$GIT_DIR`
|
|
231
|
+
#
|
|
232
|
+
# @option options [Boolean, nil] :is_inside_git_dir (nil) print
|
|
233
|
+
# `"true"` when the current working directory is below the
|
|
234
|
+
# repository directory, `"false"` otherwise
|
|
235
|
+
#
|
|
236
|
+
# @option options [Boolean, nil] :is_inside_work_tree (nil) print
|
|
237
|
+
# `"true"` when inside the work tree, `"false"` otherwise
|
|
238
|
+
#
|
|
239
|
+
# @option options [Boolean, nil] :is_bare_repository (nil) print
|
|
240
|
+
# `"true"` when the repository is bare, `"false"` otherwise
|
|
241
|
+
#
|
|
242
|
+
# @option options [Boolean, nil] :is_shallow_repository (nil) print
|
|
243
|
+
# `"true"` when the repository is shallow, `"false"` otherwise
|
|
244
|
+
#
|
|
245
|
+
# @option options [String] :resolve_git_dir (nil) check if the
|
|
246
|
+
# given path is a valid repository or a gitfile that points at
|
|
247
|
+
# one and print the location
|
|
248
|
+
#
|
|
249
|
+
# @option options [String] :git_path (nil) resolve
|
|
250
|
+
# `"$GIT_DIR/<path>"` taking relocation variables into account
|
|
251
|
+
#
|
|
252
|
+
# @option options [Boolean, nil] :show_cdup (nil) show the path of
|
|
253
|
+
# the top-level directory relative to the current directory
|
|
254
|
+
#
|
|
255
|
+
# @option options [Boolean, nil] :show_prefix (nil) show the path of
|
|
256
|
+
# the current directory relative to the top-level directory
|
|
257
|
+
#
|
|
258
|
+
# @option options [Boolean, nil] :show_toplevel (nil) show the
|
|
259
|
+
# absolute path of the top-level directory of the working tree
|
|
260
|
+
#
|
|
261
|
+
# @option options [Boolean, nil] :show_superproject_working_tree (nil)
|
|
262
|
+
# show the absolute path of the root of the superproject's
|
|
263
|
+
# working tree if the current repository is a submodule
|
|
264
|
+
#
|
|
265
|
+
# @option options [Boolean, nil] :shared_index_path (nil) show the
|
|
266
|
+
# path to the shared index file in split index mode
|
|
267
|
+
#
|
|
268
|
+
# @option options [Boolean, String, nil] :show_object_format (nil)
|
|
269
|
+
# show the object format (hash algorithm) used for the
|
|
270
|
+
# repository
|
|
271
|
+
#
|
|
272
|
+
# When `true`, emits `--show-object-format` (defaults to
|
|
273
|
+
# `"storage"`). When a String (`"storage"`, `"input"`, or
|
|
274
|
+
# `"output"`), emits `--show-object-format=<mode>`.
|
|
275
|
+
#
|
|
276
|
+
# @option options [Boolean, nil] :show_ref_format (nil) show the
|
|
277
|
+
# reference storage format used for the repository
|
|
278
|
+
#
|
|
279
|
+
# @option options [String] :since (nil) parse the date string
|
|
280
|
+
# and output the corresponding `--max-age=` parameter
|
|
281
|
+
#
|
|
282
|
+
# Alias: :after
|
|
283
|
+
#
|
|
284
|
+
# @option options [String] :until (nil) parse the date string
|
|
285
|
+
# and output the corresponding `--min-age=` parameter
|
|
286
|
+
#
|
|
287
|
+
# Alias: :before
|
|
288
|
+
#
|
|
289
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
290
|
+
# `git rev-parse`
|
|
291
|
+
#
|
|
292
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
293
|
+
#
|
|
294
|
+
# @raise [Git::FailedError] if git exits with a non-zero status
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Revert
|
|
8
|
+
# Implements `git revert --abort` to cancel an in-progress revert sequence
|
|
9
|
+
#
|
|
10
|
+
# Cancels the in-progress revert and restores the branch to the state it
|
|
11
|
+
# was in before the `git revert` sequence started.
|
|
12
|
+
#
|
|
13
|
+
# @example Abort an in-progress revert
|
|
14
|
+
# abort_cmd = Git::Commands::Revert::Abort.new(execution_context)
|
|
15
|
+
# abort_cmd.call
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-revert/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::Revert
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-revert git-revert
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Abort < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'revert'
|
|
28
|
+
literal '--abort'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @!method call(*, **)
|
|
32
|
+
#
|
|
33
|
+
# @overload call()
|
|
34
|
+
#
|
|
35
|
+
# Cancel the in-progress revert and restore the branch to its
|
|
36
|
+
# pre-revert state
|
|
37
|
+
#
|
|
38
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
39
|
+
# `git revert --abort`
|
|
40
|
+
#
|
|
41
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Revert
|
|
8
|
+
# Implements `git revert --continue` to resume after resolving conflicts
|
|
9
|
+
#
|
|
10
|
+
# After the user has resolved a conflict and staged the changes, the
|
|
11
|
+
# revert session can be continued with this command.
|
|
12
|
+
#
|
|
13
|
+
# @example Resume a revert session after resolving conflicts
|
|
14
|
+
# continue_cmd = Git::Commands::Revert::Continue.new(execution_context)
|
|
15
|
+
# continue_cmd.call
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-revert/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::Revert
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-revert git-revert
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Continue < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'revert'
|
|
28
|
+
literal '--continue'
|
|
29
|
+
flag_option %i[edit e], negatable: true
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @!method call(*, **)
|
|
33
|
+
#
|
|
34
|
+
# @overload call(**options)
|
|
35
|
+
#
|
|
36
|
+
# Resume the in-progress revert after conflicts have been resolved
|
|
37
|
+
#
|
|
38
|
+
# @param options [Hash] command options
|
|
39
|
+
#
|
|
40
|
+
# @option options [Boolean, nil] :edit (nil) open the editor for the
|
|
41
|
+
# commit message (`--edit`)
|
|
42
|
+
#
|
|
43
|
+
# Alias: `:e`
|
|
44
|
+
#
|
|
45
|
+
# @option options [Boolean, nil] :no_edit (nil) suppress the editor for
|
|
46
|
+
# the commit message (`--no-edit`)
|
|
47
|
+
#
|
|
48
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
49
|
+
# `git revert --continue`
|
|
50
|
+
#
|
|
51
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
52
|
+
#
|
|
53
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Revert
|
|
8
|
+
# Implements `git revert --quit` to forget an in-progress revert sequence
|
|
9
|
+
#
|
|
10
|
+
# Clears the sequencer state without restoring the branch, leaving the
|
|
11
|
+
# working tree and index in their current state. If no revert is in
|
|
12
|
+
# progress, this is a no-op and still succeeds.
|
|
13
|
+
#
|
|
14
|
+
# @example Forget an in-progress revert session
|
|
15
|
+
# quit_cmd = Git::Commands::Revert::Quit.new(execution_context)
|
|
16
|
+
# quit_cmd.call
|
|
17
|
+
#
|
|
18
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-revert/2.53.0
|
|
19
|
+
#
|
|
20
|
+
# @see Git::Commands::Revert
|
|
21
|
+
#
|
|
22
|
+
# @see https://git-scm.com/docs/git-revert git-revert
|
|
23
|
+
#
|
|
24
|
+
# @api private
|
|
25
|
+
#
|
|
26
|
+
class Quit < Git::Commands::Base
|
|
27
|
+
arguments do
|
|
28
|
+
literal 'revert'
|
|
29
|
+
literal '--quit'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @!method call(*, **)
|
|
33
|
+
#
|
|
34
|
+
# @overload call()
|
|
35
|
+
#
|
|
36
|
+
# Clear any in-progress revert sequencer state, leaving the
|
|
37
|
+
# working tree as-is. If no revert is in progress, this is a
|
|
38
|
+
# no-op and still succeeds.
|
|
39
|
+
#
|
|
40
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
41
|
+
# `git revert --quit`
|
|
42
|
+
#
|
|
43
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Revert
|
|
8
|
+
# Implements `git revert --skip` to skip the current commit in a sequence
|
|
9
|
+
#
|
|
10
|
+
# Skips the current commit and continues applying the remaining commits
|
|
11
|
+
# in the revert sequence.
|
|
12
|
+
#
|
|
13
|
+
# @example Skip a conflicting commit during a revert sequence
|
|
14
|
+
# skip_cmd = Git::Commands::Revert::Skip.new(execution_context)
|
|
15
|
+
# skip_cmd.call
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-revert/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::Revert
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-revert git-revert
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Skip < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'revert'
|
|
28
|
+
literal '--skip'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @!method call(*, **)
|
|
32
|
+
#
|
|
33
|
+
# @overload call()
|
|
34
|
+
#
|
|
35
|
+
# Skip the current commit and continue with the remaining sequence
|
|
36
|
+
#
|
|
37
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
38
|
+
# `git revert --skip`
|
|
39
|
+
#
|
|
40
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Revert
|
|
8
|
+
# Implements `git revert` to create commits that undo prior changes
|
|
9
|
+
#
|
|
10
|
+
# Given one or more existing commits, reverts the changes introduced by
|
|
11
|
+
# those commits and records new commits that reverse them. This requires
|
|
12
|
+
# the working tree to be clean.
|
|
13
|
+
#
|
|
14
|
+
# @example Revert the most recent commit
|
|
15
|
+
# revert = Git::Commands::Revert::Start.new(execution_context)
|
|
16
|
+
# revert.call('HEAD')
|
|
17
|
+
#
|
|
18
|
+
# @example Revert a specific commit without committing
|
|
19
|
+
# revert.call('abc123', no_commit: true)
|
|
20
|
+
#
|
|
21
|
+
# @example Revert a range of commits
|
|
22
|
+
# revert.call('HEAD~3..HEAD~1')
|
|
23
|
+
#
|
|
24
|
+
# @example Revert a merge commit specifying the mainline parent
|
|
25
|
+
# revert.call('abc123', mainline: 1)
|
|
26
|
+
#
|
|
27
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-revert/2.53.0
|
|
28
|
+
#
|
|
29
|
+
# @see Git::Commands::Revert
|
|
30
|
+
#
|
|
31
|
+
# @see https://git-scm.com/docs/git-revert git-revert
|
|
32
|
+
#
|
|
33
|
+
# @api private
|
|
34
|
+
#
|
|
35
|
+
class Start < Git::Commands::Base
|
|
36
|
+
arguments do
|
|
37
|
+
literal 'revert'
|
|
38
|
+
|
|
39
|
+
# Edit commit message (SYNOPSIS: [--[no-]edit])
|
|
40
|
+
flag_option %i[edit e], negatable: true
|
|
41
|
+
|
|
42
|
+
# Commit behavior (SYNOPSIS: [-n])
|
|
43
|
+
flag_option %i[no_commit n]
|
|
44
|
+
|
|
45
|
+
# Parent selection for merge commits (SYNOPSIS: [-m <parent-number>])
|
|
46
|
+
value_option %i[mainline m]
|
|
47
|
+
|
|
48
|
+
# Authorship (SYNOPSIS: [-s])
|
|
49
|
+
flag_option %i[signoff s], negatable: true
|
|
50
|
+
|
|
51
|
+
# GPG signing (SYNOPSIS: [-S[<keyid>]])
|
|
52
|
+
flag_or_value_option %i[gpg_sign S], negatable: true, inline: true
|
|
53
|
+
|
|
54
|
+
# Commit message cleanup
|
|
55
|
+
value_option :cleanup, inline: true
|
|
56
|
+
|
|
57
|
+
# Merge strategy
|
|
58
|
+
value_option :strategy, inline: true
|
|
59
|
+
value_option %i[strategy_option X], inline: true, repeatable: true
|
|
60
|
+
|
|
61
|
+
# Conflict resolution
|
|
62
|
+
flag_option :rerere_autoupdate, negatable: true
|
|
63
|
+
|
|
64
|
+
# Commit log message format
|
|
65
|
+
flag_option :reference
|
|
66
|
+
|
|
67
|
+
end_of_options
|
|
68
|
+
|
|
69
|
+
# Commits to revert
|
|
70
|
+
operand :commit, repeatable: true, required: true
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# @!method call(*, **)
|
|
74
|
+
#
|
|
75
|
+
# @overload call(*commit, **options)
|
|
76
|
+
#
|
|
77
|
+
# Execute the git revert command
|
|
78
|
+
#
|
|
79
|
+
# @param commit [Array<String>] one or more commit SHAs, refs, or
|
|
80
|
+
# rev ranges to revert
|
|
81
|
+
#
|
|
82
|
+
# @param options [Hash] command options
|
|
83
|
+
#
|
|
84
|
+
# @option options [Boolean, nil] :edit (nil) open the editor for the
|
|
85
|
+
# commit message (`--edit`)
|
|
86
|
+
#
|
|
87
|
+
# Alias: `:e`
|
|
88
|
+
#
|
|
89
|
+
# @option options [Boolean, nil] :no_edit (nil) suppress the editor for
|
|
90
|
+
# the commit message (`--no-edit`)
|
|
91
|
+
#
|
|
92
|
+
# @option options [Boolean, nil] :no_commit (nil) apply changes to index
|
|
93
|
+
# and working tree without committing
|
|
94
|
+
#
|
|
95
|
+
# Alias: `:n`
|
|
96
|
+
#
|
|
97
|
+
# @option options [Integer, String] :mainline (nil) parent number (starting
|
|
98
|
+
# from 1) identifying the mainline when reverting a merge commit
|
|
99
|
+
#
|
|
100
|
+
# Alias: `:m`
|
|
101
|
+
#
|
|
102
|
+
# @option options [Boolean, nil] :signoff (nil) add a `Signed-off-by`
|
|
103
|
+
# trailer to the commit message (`--signoff`)
|
|
104
|
+
#
|
|
105
|
+
# Alias: `:s`
|
|
106
|
+
#
|
|
107
|
+
# @option options [Boolean, nil] :no_signoff (nil) suppress the
|
|
108
|
+
# `Signed-off-by` trailer (`--no-signoff`)
|
|
109
|
+
#
|
|
110
|
+
# @option options [Boolean, String, nil] :gpg_sign (nil) GPG-sign the
|
|
111
|
+
# resulting commit (`--gpg-sign`)
|
|
112
|
+
#
|
|
113
|
+
# When `true`, uses the default key. When a `String`, uses the
|
|
114
|
+
# specified key ID. Alias: `:S`
|
|
115
|
+
#
|
|
116
|
+
# @option options [Boolean, nil] :no_gpg_sign (nil) disable GPG signing
|
|
117
|
+
# (`--no-gpg-sign`)
|
|
118
|
+
#
|
|
119
|
+
# @option options [String] :cleanup (nil) commit message cleanup mode
|
|
120
|
+
#
|
|
121
|
+
# Accepted values include `strip`, `whitespace`, `verbatim`,
|
|
122
|
+
# `scissors`, and `default`. Emits `--cleanup=<mode>`.
|
|
123
|
+
#
|
|
124
|
+
# @option options [String] :strategy (nil) merge strategy to use
|
|
125
|
+
# (e.g., `'ort'`, `'recursive'`, `'resolve'`)
|
|
126
|
+
#
|
|
127
|
+
# Emits `--strategy=<strategy>`.
|
|
128
|
+
#
|
|
129
|
+
# @option options [String, Array<String>] :strategy_option (nil) pass
|
|
130
|
+
# option(s) to the merge strategy (e.g., `'ours'`, `'theirs'`)
|
|
131
|
+
#
|
|
132
|
+
# Can be a single value or an array for multiple `-X` flags.
|
|
133
|
+
# Emits `--strategy-option=<option>`. Alias: `:X`
|
|
134
|
+
#
|
|
135
|
+
# @option options [Boolean, nil] :rerere_autoupdate (nil) allow rerere to
|
|
136
|
+
# update the index with the auto-resolved conflict result
|
|
137
|
+
# (`--rerere-autoupdate`)
|
|
138
|
+
#
|
|
139
|
+
# @option options [Boolean, nil] :no_rerere_autoupdate (nil) prevent rerere
|
|
140
|
+
# from auto-updating the index (`--no-rerere-autoupdate`)
|
|
141
|
+
#
|
|
142
|
+
# @option options [Boolean, nil] :reference (nil) use compact reference
|
|
143
|
+
# format in the revert commit message instead of the full object name
|
|
144
|
+
#
|
|
145
|
+
# @return [Git::CommandLineResult] the result of calling `git revert`
|
|
146
|
+
#
|
|
147
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
148
|
+
#
|
|
149
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'revert/abort'
|
|
4
|
+
require_relative 'revert/continue'
|
|
5
|
+
require_relative 'revert/quit'
|
|
6
|
+
require_relative 'revert/skip'
|
|
7
|
+
require_relative 'revert/start'
|
|
8
|
+
|
|
9
|
+
module Git
|
|
10
|
+
module Commands
|
|
11
|
+
# Commands for reverting commits via `git revert`
|
|
12
|
+
#
|
|
13
|
+
# This module contains command classes for starting a revert and managing
|
|
14
|
+
# in-progress revert sessions:
|
|
15
|
+
#
|
|
16
|
+
# - {Revert::Start} — revert one or more commits
|
|
17
|
+
# - {Revert::Continue} — resume after resolving conflicts (`--continue`)
|
|
18
|
+
# - {Revert::Skip} — skip the current commit (`--skip`)
|
|
19
|
+
# - {Revert::Abort} — abort the in-progress revert (`--abort`)
|
|
20
|
+
# - {Revert::Quit} — forget the in-progress revert (`--quit`)
|
|
21
|
+
#
|
|
22
|
+
# @api private
|
|
23
|
+
#
|
|
24
|
+
# @see https://git-scm.com/docs/git-revert git-revert documentation
|
|
25
|
+
#
|
|
26
|
+
module Revert
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|