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,169 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git status` command
|
|
8
|
+
#
|
|
9
|
+
# Shows the working tree status — the differences between the index and
|
|
10
|
+
# the current HEAD commit, and between the working directory and the index.
|
|
11
|
+
#
|
|
12
|
+
# @example Show working tree status
|
|
13
|
+
# status = Git::Commands::Status.new(execution_context)
|
|
14
|
+
# status.call
|
|
15
|
+
#
|
|
16
|
+
# @example Show short-format status
|
|
17
|
+
# status = Git::Commands::Status.new(execution_context)
|
|
18
|
+
# status.call(short: true)
|
|
19
|
+
#
|
|
20
|
+
# @example Show status in porcelain v2 format
|
|
21
|
+
# status = Git::Commands::Status.new(execution_context)
|
|
22
|
+
# status.call(porcelain: 'v2')
|
|
23
|
+
#
|
|
24
|
+
# @example Show status for specific paths
|
|
25
|
+
# status = Git::Commands::Status.new(execution_context)
|
|
26
|
+
# status.call('lib/', 'spec/')
|
|
27
|
+
#
|
|
28
|
+
# @example Show all untracked files
|
|
29
|
+
# status = Git::Commands::Status.new(execution_context)
|
|
30
|
+
# status.call(untracked_files: 'all')
|
|
31
|
+
#
|
|
32
|
+
# @note `arguments` block audited against
|
|
33
|
+
# https://git-scm.com/docs/git-status/2.53.0
|
|
34
|
+
#
|
|
35
|
+
# @see https://git-scm.com/docs/git-status git-status
|
|
36
|
+
#
|
|
37
|
+
# @see Git::Commands
|
|
38
|
+
#
|
|
39
|
+
# @api private
|
|
40
|
+
#
|
|
41
|
+
class Status < Git::Commands::Base
|
|
42
|
+
arguments do
|
|
43
|
+
literal 'status'
|
|
44
|
+
|
|
45
|
+
# Output format
|
|
46
|
+
flag_option %i[short s]
|
|
47
|
+
flag_option %i[branch b]
|
|
48
|
+
flag_option :show_stash
|
|
49
|
+
flag_or_value_option :porcelain, inline: true
|
|
50
|
+
flag_option :long
|
|
51
|
+
flag_option %i[verbose v]
|
|
52
|
+
|
|
53
|
+
# Untracked files
|
|
54
|
+
flag_or_value_option %i[untracked_files u], inline: true
|
|
55
|
+
|
|
56
|
+
# Submodule handling
|
|
57
|
+
flag_or_value_option :ignore_submodules, inline: true
|
|
58
|
+
|
|
59
|
+
# Ignored files
|
|
60
|
+
flag_or_value_option :ignored, inline: true
|
|
61
|
+
|
|
62
|
+
# NUL-terminated output
|
|
63
|
+
flag_option :z
|
|
64
|
+
|
|
65
|
+
# Column display
|
|
66
|
+
flag_or_value_option :column, inline: true, negatable: true
|
|
67
|
+
|
|
68
|
+
# Upstream tracking
|
|
69
|
+
flag_option :ahead_behind, negatable: true
|
|
70
|
+
|
|
71
|
+
# Rename detection
|
|
72
|
+
flag_option :renames, negatable: true
|
|
73
|
+
flag_or_value_option :find_renames, inline: true
|
|
74
|
+
|
|
75
|
+
end_of_options
|
|
76
|
+
|
|
77
|
+
operand :pathspec, repeatable: true
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @!method call(*, **)
|
|
81
|
+
#
|
|
82
|
+
# @overload call(*pathspecs, **options)
|
|
83
|
+
#
|
|
84
|
+
# Execute the git status command
|
|
85
|
+
#
|
|
86
|
+
# @param pathspecs [Array<String>] limit output to the named paths
|
|
87
|
+
#
|
|
88
|
+
# @param options [Hash] command options
|
|
89
|
+
#
|
|
90
|
+
# @option options [Boolean, nil] :short (nil) give output in short format
|
|
91
|
+
#
|
|
92
|
+
# Alias: :s
|
|
93
|
+
#
|
|
94
|
+
# @option options [Boolean, nil] :branch (nil) show the branch and tracking info
|
|
95
|
+
# even in short-format
|
|
96
|
+
#
|
|
97
|
+
# Alias: :b
|
|
98
|
+
#
|
|
99
|
+
# @option options [Boolean, nil] :show_stash (nil) show the number of entries
|
|
100
|
+
# currently stashed away
|
|
101
|
+
#
|
|
102
|
+
# @option options [Boolean, String, nil] :porcelain (nil) give the output in an
|
|
103
|
+
# easy-to-parse format for scripts
|
|
104
|
+
#
|
|
105
|
+
# When `true`, gives porcelain format. When a string (e.g. `'v1'`, `'v2'`),
|
|
106
|
+
# gives the specified porcelain format version.
|
|
107
|
+
#
|
|
108
|
+
# @option options [Boolean, nil] :long (nil) give output in long format (the default)
|
|
109
|
+
#
|
|
110
|
+
# @option options [Boolean, nil] :verbose (nil) in addition to names of files that
|
|
111
|
+
# have been changed, also show the textual changes that are staged
|
|
112
|
+
#
|
|
113
|
+
# Alias: :v
|
|
114
|
+
#
|
|
115
|
+
# @option options [Boolean, String, nil] :untracked_files (nil) show untracked files
|
|
116
|
+
#
|
|
117
|
+
# Mode can be `'no'`, `'normal'`, or `'all'`. When `true`, uses the default
|
|
118
|
+
# mode.
|
|
119
|
+
#
|
|
120
|
+
# Alias: :u
|
|
121
|
+
#
|
|
122
|
+
# @option options [Boolean, String, nil] :ignore_submodules (nil) ignore changes
|
|
123
|
+
# to submodules
|
|
124
|
+
#
|
|
125
|
+
# Mode can be `'none'`, `'untracked'`, `'dirty'`, or `'all'`.
|
|
126
|
+
#
|
|
127
|
+
# @option options [Boolean, String, nil] :ignored (nil) show ignored files as well
|
|
128
|
+
#
|
|
129
|
+
# Mode can be `'traditional'`, `'no'`, or `'matching'`.
|
|
130
|
+
#
|
|
131
|
+
# @option options [Boolean, nil] :z (nil) terminate entries with NUL instead of
|
|
132
|
+
# newline (`-z`)
|
|
133
|
+
#
|
|
134
|
+
# Implies `--porcelain=v1`
|
|
135
|
+
#
|
|
136
|
+
# @option options [Boolean, String, nil] :column (nil) display untracked files in
|
|
137
|
+
# columns (`--column`)
|
|
138
|
+
#
|
|
139
|
+
# Pass `true` for `--column` or a string of options for `--column=<options>`.
|
|
140
|
+
#
|
|
141
|
+
# @option options [Boolean, nil] :no_column (nil) disable column output (`--no-column`)
|
|
142
|
+
#
|
|
143
|
+
# @option options [Boolean, nil] :ahead_behind (nil) show ahead/behind counts for
|
|
144
|
+
# the branch (`--ahead-behind`)
|
|
145
|
+
#
|
|
146
|
+
# @option options [Boolean, nil] :no_ahead_behind (nil) suppress ahead/behind counts
|
|
147
|
+
# for the branch (`--no-ahead-behind`)
|
|
148
|
+
#
|
|
149
|
+
# @option options [Boolean, nil] :renames (nil) turn on rename detection (`--renames`)
|
|
150
|
+
#
|
|
151
|
+
# @option options [Boolean, nil] :no_renames (nil) turn off rename detection
|
|
152
|
+
# (`--no-renames`)
|
|
153
|
+
#
|
|
154
|
+
# @option options [Boolean, String, nil] :find_renames (nil) turn on rename detection
|
|
155
|
+
# with optional similarity threshold
|
|
156
|
+
#
|
|
157
|
+
# When `true`, enables rename detection without a threshold. When a string
|
|
158
|
+
# (e.g. `'50'`), adds `--find-renames=<n>`.
|
|
159
|
+
#
|
|
160
|
+
# @return [Git::CommandLineResult] the result of calling `git status`
|
|
161
|
+
#
|
|
162
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
163
|
+
#
|
|
164
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
165
|
+
#
|
|
166
|
+
# @api public
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module SymbolicRef
|
|
8
|
+
# Deletes a symbolic ref via `git symbolic-ref --delete`
|
|
9
|
+
#
|
|
10
|
+
# Removes the named symbolic ref. When `quiet: true`, exit status 1
|
|
11
|
+
# (non-symbolic ref) does not produce an error message.
|
|
12
|
+
#
|
|
13
|
+
# @example Delete a symbolic ref
|
|
14
|
+
# cmd = Git::Commands::SymbolicRef::Delete.new(execution_context)
|
|
15
|
+
# cmd.call('HEAD')
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-symbolic-ref/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::SymbolicRef
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-symbolic-ref git-symbolic-ref documentation
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Delete < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'symbolic-ref'
|
|
28
|
+
|
|
29
|
+
# Delete the symbolic ref
|
|
30
|
+
literal '--delete'
|
|
31
|
+
|
|
32
|
+
# Suppress error message for non-symbolic (detached) refs
|
|
33
|
+
flag_option %i[quiet q]
|
|
34
|
+
|
|
35
|
+
end_of_options
|
|
36
|
+
|
|
37
|
+
# The symbolic ref name to delete (e.g. `HEAD`)
|
|
38
|
+
operand :name, required: true
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @!method call(*, **)
|
|
42
|
+
#
|
|
43
|
+
# @overload call(name, **options)
|
|
44
|
+
#
|
|
45
|
+
# Execute the `git symbolic-ref --delete` command
|
|
46
|
+
#
|
|
47
|
+
# @param name [String] the symbolic ref name to delete
|
|
48
|
+
# (e.g. `HEAD`)
|
|
49
|
+
#
|
|
50
|
+
# @param options [Hash] command options
|
|
51
|
+
#
|
|
52
|
+
# @option options [Boolean, nil] :quiet (nil) suppress error message
|
|
53
|
+
# when the name is not a symbolic ref
|
|
54
|
+
#
|
|
55
|
+
# Alias: :q
|
|
56
|
+
#
|
|
57
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
58
|
+
# `git symbolic-ref --delete`
|
|
59
|
+
#
|
|
60
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
61
|
+
#
|
|
62
|
+
# @raise [ArgumentError] if the name operand is missing
|
|
63
|
+
#
|
|
64
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module SymbolicRef
|
|
8
|
+
# Reads the target of a symbolic ref via `git symbolic-ref`
|
|
9
|
+
#
|
|
10
|
+
# Given one argument, reads which branch head the given symbolic ref
|
|
11
|
+
# refers to and outputs its path, relative to the `.git/` directory.
|
|
12
|
+
#
|
|
13
|
+
# Exits with status 0 if the contents were printed correctly, or
|
|
14
|
+
# status 1 if the requested name is not a symbolic ref (e.g. a
|
|
15
|
+
# detached HEAD). When `quiet: true`, exit status 1 is silent
|
|
16
|
+
# (no error message on stderr).
|
|
17
|
+
#
|
|
18
|
+
# @example Read current HEAD
|
|
19
|
+
# cmd = Git::Commands::SymbolicRef::Read.new(execution_context)
|
|
20
|
+
# result = cmd.call('HEAD')
|
|
21
|
+
# result.stdout # => "refs/heads/main"
|
|
22
|
+
#
|
|
23
|
+
# @example Read HEAD with shortened output
|
|
24
|
+
# cmd = Git::Commands::SymbolicRef::Read.new(execution_context)
|
|
25
|
+
# result = cmd.call('HEAD', short: true)
|
|
26
|
+
# result.stdout # => "main"
|
|
27
|
+
#
|
|
28
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-symbolic-ref/2.53.0
|
|
29
|
+
#
|
|
30
|
+
# @see Git::Commands::SymbolicRef
|
|
31
|
+
#
|
|
32
|
+
# @see https://git-scm.com/docs/git-symbolic-ref git-symbolic-ref documentation
|
|
33
|
+
#
|
|
34
|
+
# @api private
|
|
35
|
+
#
|
|
36
|
+
class Read < Git::Commands::Base
|
|
37
|
+
arguments do
|
|
38
|
+
literal 'symbolic-ref'
|
|
39
|
+
|
|
40
|
+
# Suppress error message for non-symbolic (detached) refs
|
|
41
|
+
flag_option %i[quiet q]
|
|
42
|
+
|
|
43
|
+
# Shorten the ref output (e.g. `refs/heads/main` → `main`)
|
|
44
|
+
flag_option :short
|
|
45
|
+
|
|
46
|
+
# Follow (or stop after one level of) symbolic ref chain
|
|
47
|
+
flag_option :recurse, negatable: true
|
|
48
|
+
|
|
49
|
+
end_of_options
|
|
50
|
+
|
|
51
|
+
# The symbolic ref name to read (e.g. `HEAD`)
|
|
52
|
+
operand :name, required: true
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Exit status 1 indicates the name is not a symbolic ref
|
|
56
|
+
# (e.g. detached HEAD) — this is not an error
|
|
57
|
+
allow_exit_status 0..1
|
|
58
|
+
|
|
59
|
+
# @!method call(*, **)
|
|
60
|
+
#
|
|
61
|
+
# @overload call(name, **options)
|
|
62
|
+
#
|
|
63
|
+
# Execute the `git symbolic-ref` command to read a symbolic ref
|
|
64
|
+
#
|
|
65
|
+
# @param name [String] the symbolic ref name to read
|
|
66
|
+
# (e.g. `HEAD`)
|
|
67
|
+
#
|
|
68
|
+
# @param options [Hash] command options
|
|
69
|
+
#
|
|
70
|
+
# @option options [Boolean, nil] :quiet (nil) suppress error message
|
|
71
|
+
# when the name is not a symbolic ref
|
|
72
|
+
#
|
|
73
|
+
# Alias: :q
|
|
74
|
+
#
|
|
75
|
+
# @option options [Boolean, nil] :short (nil) shorten the ref output
|
|
76
|
+
# (e.g. `refs/heads/main` → `main`)
|
|
77
|
+
#
|
|
78
|
+
# @option options [Boolean, nil] :recurse (nil) follow chain of symbolic refs
|
|
79
|
+
# until result no longer points at a symbolic ref (`--recurse`)
|
|
80
|
+
#
|
|
81
|
+
# @option options [Boolean, nil] :no_recurse (nil) stop after a single level
|
|
82
|
+
# of dereferencing (`--no-recurse`)
|
|
83
|
+
#
|
|
84
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
85
|
+
# `git symbolic-ref`
|
|
86
|
+
#
|
|
87
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
88
|
+
#
|
|
89
|
+
# @raise [ArgumentError] if the name operand is missing
|
|
90
|
+
#
|
|
91
|
+
# @raise [Git::FailedError] if git exits outside the allowed range (exit code > 1)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module SymbolicRef
|
|
8
|
+
# Creates or updates a symbolic ref via `git symbolic-ref`
|
|
9
|
+
#
|
|
10
|
+
# Given two arguments, creates or updates a symbolic ref `<name>` to
|
|
11
|
+
# point at the given branch `<ref>`.
|
|
12
|
+
#
|
|
13
|
+
# @example Update HEAD to point to a branch
|
|
14
|
+
# cmd = Git::Commands::SymbolicRef::Update.new(execution_context)
|
|
15
|
+
# cmd.call('HEAD', 'refs/heads/main')
|
|
16
|
+
#
|
|
17
|
+
# @example Update HEAD with a reflog message
|
|
18
|
+
# cmd = Git::Commands::SymbolicRef::Update.new(execution_context)
|
|
19
|
+
# cmd.call('HEAD', 'refs/heads/main', m: 'switching to main')
|
|
20
|
+
#
|
|
21
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-symbolic-ref/2.53.0
|
|
22
|
+
#
|
|
23
|
+
# @see Git::Commands::SymbolicRef
|
|
24
|
+
#
|
|
25
|
+
# @see https://git-scm.com/docs/git-symbolic-ref git-symbolic-ref documentation
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
class Update < Git::Commands::Base
|
|
30
|
+
arguments do
|
|
31
|
+
literal 'symbolic-ref'
|
|
32
|
+
|
|
33
|
+
# Reflog message for the update
|
|
34
|
+
value_option :m
|
|
35
|
+
|
|
36
|
+
end_of_options
|
|
37
|
+
|
|
38
|
+
# The symbolic ref name to update (e.g. `HEAD`)
|
|
39
|
+
operand :name, required: true
|
|
40
|
+
|
|
41
|
+
# The target ref to point to (e.g. `refs/heads/main`)
|
|
42
|
+
operand :ref, required: true
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @!method call(*, **)
|
|
46
|
+
#
|
|
47
|
+
# @overload call(name, ref, **options)
|
|
48
|
+
#
|
|
49
|
+
# Execute the `git symbolic-ref` command to create or update a
|
|
50
|
+
# symbolic ref
|
|
51
|
+
#
|
|
52
|
+
# @param name [String] the symbolic ref name to update
|
|
53
|
+
# (e.g. `HEAD`)
|
|
54
|
+
#
|
|
55
|
+
# @param ref [String] the target ref to point to
|
|
56
|
+
# (e.g. `refs/heads/main`)
|
|
57
|
+
#
|
|
58
|
+
# @param options [Hash] command options
|
|
59
|
+
#
|
|
60
|
+
# @option options [String] :m (nil) a reflog message for
|
|
61
|
+
# the update
|
|
62
|
+
#
|
|
63
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
64
|
+
# `git symbolic-ref`
|
|
65
|
+
#
|
|
66
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
67
|
+
#
|
|
68
|
+
# @raise [ArgumentError] if the name operand is missing
|
|
69
|
+
#
|
|
70
|
+
# @raise [ArgumentError] if the ref operand is missing
|
|
71
|
+
#
|
|
72
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'symbolic_ref/delete'
|
|
4
|
+
require_relative 'symbolic_ref/read'
|
|
5
|
+
require_relative 'symbolic_ref/update'
|
|
6
|
+
|
|
7
|
+
module Git
|
|
8
|
+
module Commands
|
|
9
|
+
# Commands for reading, updating, and deleting symbolic refs via
|
|
10
|
+
# `git symbolic-ref`
|
|
11
|
+
#
|
|
12
|
+
# This module contains command classes split by invocation mode:
|
|
13
|
+
#
|
|
14
|
+
# - {SymbolicRef::Read} — read the target of a symbolic ref
|
|
15
|
+
# - {SymbolicRef::Update} — create or update a symbolic ref to point
|
|
16
|
+
# at a given branch
|
|
17
|
+
# - {SymbolicRef::Delete} — delete a symbolic ref
|
|
18
|
+
#
|
|
19
|
+
# @api private
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-symbolic-ref git-symbolic-ref documentation
|
|
22
|
+
#
|
|
23
|
+
# @example Read the current HEAD
|
|
24
|
+
# cmd = Git::Commands::SymbolicRef::Read.new(lib)
|
|
25
|
+
# cmd.call('HEAD')
|
|
26
|
+
#
|
|
27
|
+
# @example Update HEAD to point to a branch
|
|
28
|
+
# cmd = Git::Commands::SymbolicRef::Update.new(lib)
|
|
29
|
+
# cmd.call('HEAD', 'refs/heads/main')
|
|
30
|
+
#
|
|
31
|
+
# @example Delete a symbolic ref
|
|
32
|
+
# cmd = Git::Commands::SymbolicRef::Delete.new(lib)
|
|
33
|
+
# cmd.call('HEAD')
|
|
34
|
+
#
|
|
35
|
+
module SymbolicRef
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Tag
|
|
8
|
+
# Implements the `git tag` command for creating new tags
|
|
9
|
+
#
|
|
10
|
+
# This command creates a new tag reference pointing at the current HEAD
|
|
11
|
+
# or a specified commit/object.
|
|
12
|
+
#
|
|
13
|
+
# @example Create a lightweight tag
|
|
14
|
+
# create = Git::Commands::Tag::Create.new(execution_context)
|
|
15
|
+
# create.call('v1.0.0')
|
|
16
|
+
#
|
|
17
|
+
# @example Create an annotated tag
|
|
18
|
+
# create = Git::Commands::Tag::Create.new(execution_context)
|
|
19
|
+
# create.call('v1.0.0', message: 'Release version 1.0.0')
|
|
20
|
+
#
|
|
21
|
+
# @example Create a signed tag at a specific commit
|
|
22
|
+
# create = Git::Commands::Tag::Create.new(execution_context)
|
|
23
|
+
# create.call('v1.0.0', 'abc123', sign: true, message: 'Signed release')
|
|
24
|
+
#
|
|
25
|
+
# @example Force replace an existing tag
|
|
26
|
+
# create = Git::Commands::Tag::Create.new(execution_context)
|
|
27
|
+
# create.call('v1.0.0', force: true)
|
|
28
|
+
#
|
|
29
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-tag/2.53.0
|
|
30
|
+
#
|
|
31
|
+
# @see Git::Commands::Tag
|
|
32
|
+
#
|
|
33
|
+
# @see https://git-scm.com/docs/git-tag git-tag
|
|
34
|
+
#
|
|
35
|
+
# @api private
|
|
36
|
+
#
|
|
37
|
+
class Create < Git::Commands::Base
|
|
38
|
+
arguments do
|
|
39
|
+
literal 'tag'
|
|
40
|
+
flag_option %i[annotate a]
|
|
41
|
+
flag_option %i[sign s], negatable: true
|
|
42
|
+
value_option %i[local_user u], inline: true
|
|
43
|
+
flag_option %i[force f]
|
|
44
|
+
value_option %i[message m], inline: true, allow_empty: true
|
|
45
|
+
value_option %i[file F], inline: true
|
|
46
|
+
flag_option %i[edit e], negatable: true
|
|
47
|
+
key_value_option :trailer, key_separator: ': '
|
|
48
|
+
value_option :cleanup, inline: true
|
|
49
|
+
flag_option :create_reflog
|
|
50
|
+
|
|
51
|
+
end_of_options
|
|
52
|
+
|
|
53
|
+
operand :tagname, required: true
|
|
54
|
+
operand :commit
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# @!method call(*, **)
|
|
58
|
+
#
|
|
59
|
+
# Execute the git tag command to create a new tag
|
|
60
|
+
#
|
|
61
|
+
# @overload call(tagname, commit = nil, **options)
|
|
62
|
+
#
|
|
63
|
+
# @param tagname [String] the name of the tag to create
|
|
64
|
+
#
|
|
65
|
+
# @param commit [String, nil] the commit, branch, or object to tag
|
|
66
|
+
#
|
|
67
|
+
# Defaults to HEAD when omitted.
|
|
68
|
+
#
|
|
69
|
+
# @param options [Hash] command options
|
|
70
|
+
#
|
|
71
|
+
# @option options [Boolean, nil] :annotate (nil) make an unsigned, annotated tag object
|
|
72
|
+
#
|
|
73
|
+
# Requires a message via `:message` or `:file`.
|
|
74
|
+
#
|
|
75
|
+
# Alias: :a
|
|
76
|
+
#
|
|
77
|
+
# @option options [Boolean, nil] :sign (nil) make a GPG-signed tag using the default signing
|
|
78
|
+
# key (`--sign`)
|
|
79
|
+
#
|
|
80
|
+
# Requires a message via `:message` or `:file`.
|
|
81
|
+
#
|
|
82
|
+
# Alias: :s
|
|
83
|
+
#
|
|
84
|
+
# @option options [Boolean, nil] :no_sign (nil) override `tag.gpgSign` config to disable
|
|
85
|
+
# signing (`--no-sign`)
|
|
86
|
+
#
|
|
87
|
+
# @option options [String] :local_user (nil) make a cryptographically signed tag using the given key
|
|
88
|
+
#
|
|
89
|
+
# Requires a message via `:message` or `:file`.
|
|
90
|
+
#
|
|
91
|
+
# Alias: :u
|
|
92
|
+
#
|
|
93
|
+
# @option options [Boolean, nil] :force (nil) replace an existing tag with the given name instead of failing
|
|
94
|
+
#
|
|
95
|
+
# Alias: :f
|
|
96
|
+
#
|
|
97
|
+
# @option options [String] :message (nil) use the given message as the tag message
|
|
98
|
+
#
|
|
99
|
+
# Implies `--annotate` if none of `--annotate`, `--sign`, or `--local-user` is given.
|
|
100
|
+
#
|
|
101
|
+
# Alias: :m
|
|
102
|
+
#
|
|
103
|
+
# @option options [String] :file (nil) take the tag message from the given file
|
|
104
|
+
#
|
|
105
|
+
# Use `-` to read from standard input. Implies `--annotate` if none of
|
|
106
|
+
# `--annotate`, `--sign`, or `--local-user` is given.
|
|
107
|
+
#
|
|
108
|
+
# Alias: :F
|
|
109
|
+
#
|
|
110
|
+
# @option options [Boolean, nil] :edit (nil) open an editor to further edit the tag message (`--edit`)
|
|
111
|
+
#
|
|
112
|
+
# Alias: :e
|
|
113
|
+
#
|
|
114
|
+
# @option options [Boolean, nil] :no_edit (nil) suppress the editor (`--no-edit`)
|
|
115
|
+
#
|
|
116
|
+
# @option options [Hash, Array<Array>] :trailer (nil) add trailers to the tag message
|
|
117
|
+
#
|
|
118
|
+
# Can be a Hash `{ 'Key' => 'value' }` or Array of pairs `[['Key', 'value']]`.
|
|
119
|
+
# Multiple trailers can be specified.
|
|
120
|
+
#
|
|
121
|
+
# @option options [String] :cleanup (nil) set how the tag message is cleaned up
|
|
122
|
+
#
|
|
123
|
+
# Must be one of: `verbatim` (no changes), `whitespace` (remove leading/trailing
|
|
124
|
+
# whitespace lines), or `strip` (remove whitespace and commentary). Default is `strip`.
|
|
125
|
+
#
|
|
126
|
+
# @option options [Boolean, nil] :create_reflog (nil) create a reflog for the tag
|
|
127
|
+
#
|
|
128
|
+
# Enables date-based sha1 expressions such as `tag@{yesterday}`.
|
|
129
|
+
#
|
|
130
|
+
# @return [Git::CommandLineResult] the result of calling `git tag`
|
|
131
|
+
#
|
|
132
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
133
|
+
#
|
|
134
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
135
|
+
#
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Tag
|
|
8
|
+
# Implements the `git tag --delete` command for deleting tags
|
|
9
|
+
#
|
|
10
|
+
# This command deletes one or more tag references.
|
|
11
|
+
#
|
|
12
|
+
# @example Delete a single tag
|
|
13
|
+
# delete = Git::Commands::Tag::Delete.new(execution_context)
|
|
14
|
+
# delete.call('v1.0.0')
|
|
15
|
+
#
|
|
16
|
+
# @example Delete multiple tags
|
|
17
|
+
# delete = Git::Commands::Tag::Delete.new(execution_context)
|
|
18
|
+
# delete.call('v1.0.0', 'v2.0.0')
|
|
19
|
+
#
|
|
20
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-tag/2.53.0
|
|
21
|
+
#
|
|
22
|
+
# @see Git::Commands::Tag
|
|
23
|
+
#
|
|
24
|
+
# @see https://git-scm.com/docs/git-tag git-tag
|
|
25
|
+
#
|
|
26
|
+
# @api private
|
|
27
|
+
#
|
|
28
|
+
class Delete < Git::Commands::Base
|
|
29
|
+
arguments do
|
|
30
|
+
literal 'tag'
|
|
31
|
+
literal '--delete'
|
|
32
|
+
operand :tagname, repeatable: true, required: true
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# git tag --delete exits with status 1 when a tag does not exist, which is acceptable
|
|
36
|
+
allow_exit_status 0..1
|
|
37
|
+
|
|
38
|
+
# @!method call(*, **)
|
|
39
|
+
#
|
|
40
|
+
# @overload call(*tagname)
|
|
41
|
+
#
|
|
42
|
+
# Execute the `git tag --delete` command to delete one or more tags.
|
|
43
|
+
#
|
|
44
|
+
# @param tagname [Array<String>] one or more tag names to delete
|
|
45
|
+
#
|
|
46
|
+
# @return [Git::CommandLineResult] the result of calling `git tag --delete`
|
|
47
|
+
#
|
|
48
|
+
# @raise [ArgumentError] if no tag names are provided or unsupported options are provided
|
|
49
|
+
#
|
|
50
|
+
# @raise [Git::FailedError] if git exits outside the allowed range (exit code > 1)
|
|
51
|
+
#
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|