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,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Maintenance
|
|
8
|
+
# Initialize and start background maintenance on the current repository
|
|
9
|
+
#
|
|
10
|
+
# @example Start background maintenance with default scheduler
|
|
11
|
+
# Git::Commands::Maintenance::Start.new(execution_context).call
|
|
12
|
+
#
|
|
13
|
+
# @example Start with a specific scheduler
|
|
14
|
+
# Git::Commands::Maintenance::Start.new(execution_context).call(scheduler: 'crontab')
|
|
15
|
+
#
|
|
16
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-maintenance/2.54.0
|
|
17
|
+
#
|
|
18
|
+
# @see Git::Commands::Maintenance Git::Commands::Maintenance for the full sub-command list
|
|
19
|
+
#
|
|
20
|
+
# @see https://git-scm.com/docs/git-maintenance git-maintenance documentation
|
|
21
|
+
#
|
|
22
|
+
# @api private
|
|
23
|
+
#
|
|
24
|
+
class Start < Git::Commands::Base
|
|
25
|
+
requires_git_version '2.30.0'
|
|
26
|
+
|
|
27
|
+
arguments do
|
|
28
|
+
literal 'maintenance'
|
|
29
|
+
literal 'start'
|
|
30
|
+
|
|
31
|
+
value_option :scheduler, inline: true
|
|
32
|
+
execution_option :env
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# @!method call(*, **)
|
|
36
|
+
#
|
|
37
|
+
# @overload call(**options)
|
|
38
|
+
#
|
|
39
|
+
# Initialize config values and start background maintenance
|
|
40
|
+
#
|
|
41
|
+
# This performs the same config updates as `register`, then updates
|
|
42
|
+
# the background scheduler to run `git maintenance run --scheduled`
|
|
43
|
+
# on an hourly basis.
|
|
44
|
+
#
|
|
45
|
+
# @param options [Hash] command options
|
|
46
|
+
#
|
|
47
|
+
# @option options [String] :scheduler (nil) specify the scheduler to use
|
|
48
|
+
#
|
|
49
|
+
# Must be one of 'auto', 'crontab', 'systemd-timer', 'launchctl', or 'schtasks'.
|
|
50
|
+
# When 'auto', the appropriate platform-specific scheduler is used.
|
|
51
|
+
# Default is 'auto'.
|
|
52
|
+
#
|
|
53
|
+
# @option options [Hash] :env (nil) environment variables to set for the git
|
|
54
|
+
# process; merged with the default environment; not passed to the git CLI
|
|
55
|
+
#
|
|
56
|
+
# @return [Git::CommandLineResult] the result of calling `git maintenance start`
|
|
57
|
+
#
|
|
58
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
59
|
+
#
|
|
60
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
61
|
+
#
|
|
62
|
+
# @raise [Git::VersionError] if git version is below 2.30.0
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
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 Maintenance
|
|
8
|
+
# Halt the background maintenance schedule
|
|
9
|
+
#
|
|
10
|
+
# @example Stop background maintenance
|
|
11
|
+
# Git::Commands::Maintenance::Stop.new(execution_context).call
|
|
12
|
+
#
|
|
13
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-maintenance/2.54.0
|
|
14
|
+
#
|
|
15
|
+
# @see Git::Commands::Maintenance Git::Commands::Maintenance for the full sub-command list
|
|
16
|
+
#
|
|
17
|
+
# @see https://git-scm.com/docs/git-maintenance git-maintenance documentation
|
|
18
|
+
#
|
|
19
|
+
# @api private
|
|
20
|
+
#
|
|
21
|
+
class Stop < Git::Commands::Base
|
|
22
|
+
requires_git_version '2.30.0'
|
|
23
|
+
|
|
24
|
+
arguments do
|
|
25
|
+
literal 'maintenance'
|
|
26
|
+
literal 'stop'
|
|
27
|
+
|
|
28
|
+
execution_option :env
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @!method call(*, **)
|
|
32
|
+
#
|
|
33
|
+
# @overload call(**options)
|
|
34
|
+
#
|
|
35
|
+
# Halt the background maintenance schedule
|
|
36
|
+
#
|
|
37
|
+
# The current repository is not removed from the list of maintained
|
|
38
|
+
# repositories, in case the background maintenance is restarted later.
|
|
39
|
+
#
|
|
40
|
+
# @param options [Hash] command options
|
|
41
|
+
#
|
|
42
|
+
# @option options [Hash] :env (nil) environment variables to set for the git
|
|
43
|
+
# process; merged with the default environment; not passed to the git CLI
|
|
44
|
+
#
|
|
45
|
+
# @return [Git::CommandLineResult] the result of calling `git maintenance stop`
|
|
46
|
+
#
|
|
47
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
48
|
+
#
|
|
49
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
50
|
+
#
|
|
51
|
+
# @raise [Git::VersionError] if git version is below 2.30.0
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Maintenance
|
|
8
|
+
# Remove the current repository from background maintenance
|
|
9
|
+
#
|
|
10
|
+
# @example Unregister the repository from maintenance
|
|
11
|
+
# Git::Commands::Maintenance::Unregister.new(execution_context).call
|
|
12
|
+
#
|
|
13
|
+
# @example Force unregister even if repository is not registered
|
|
14
|
+
# Git::Commands::Maintenance::Unregister.new(execution_context).call(force: true)
|
|
15
|
+
#
|
|
16
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-maintenance/2.54.0
|
|
17
|
+
#
|
|
18
|
+
# @see Git::Commands::Maintenance Git::Commands::Maintenance for the full sub-command list
|
|
19
|
+
#
|
|
20
|
+
# @see https://git-scm.com/docs/git-maintenance git-maintenance documentation
|
|
21
|
+
#
|
|
22
|
+
# @api private
|
|
23
|
+
#
|
|
24
|
+
class Unregister < Git::Commands::Base
|
|
25
|
+
requires_git_version '2.30.0'
|
|
26
|
+
|
|
27
|
+
arguments do
|
|
28
|
+
literal 'maintenance'
|
|
29
|
+
literal 'unregister'
|
|
30
|
+
|
|
31
|
+
flag_or_value_option :config_file, negatable: true
|
|
32
|
+
flag_option :force, negatable: true
|
|
33
|
+
execution_option :env
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @!method call(*, **)
|
|
37
|
+
#
|
|
38
|
+
# @overload call(**options)
|
|
39
|
+
#
|
|
40
|
+
# Remove the current repository from background maintenance
|
|
41
|
+
#
|
|
42
|
+
# This only removes the repository from the configured list.
|
|
43
|
+
# It does not stop the background maintenance processes from running.
|
|
44
|
+
#
|
|
45
|
+
# Reports an error if the current repository is not already registered,
|
|
46
|
+
# unless `--force` is used.
|
|
47
|
+
#
|
|
48
|
+
# @param options [Hash] command options
|
|
49
|
+
#
|
|
50
|
+
# @option options [Boolean, String, nil] :config_file (nil) use a specified
|
|
51
|
+
# config file instead of the global config (`--config-file`)
|
|
52
|
+
#
|
|
53
|
+
# When a String, the path is passed as `--config-file <file>`.
|
|
54
|
+
#
|
|
55
|
+
# @option options [Boolean, nil] :no_config_file (nil) disable the config file
|
|
56
|
+
# (`--no-config-file`)
|
|
57
|
+
#
|
|
58
|
+
# @option options [Boolean, nil] :force (nil) return success even if repository is not registered
|
|
59
|
+
# (`--force`)
|
|
60
|
+
#
|
|
61
|
+
# @option options [Boolean, nil] :no_force (nil) fail if the repository is not registered
|
|
62
|
+
# (`--no-force`)
|
|
63
|
+
#
|
|
64
|
+
# @option options [Hash] :env (nil) environment variables to set for the git
|
|
65
|
+
# process; merged with the default environment; not passed to the git CLI
|
|
66
|
+
#
|
|
67
|
+
# @return [Git::CommandLineResult] the result of calling `git maintenance unregister`
|
|
68
|
+
#
|
|
69
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
70
|
+
#
|
|
71
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
72
|
+
#
|
|
73
|
+
# @raise [Git::VersionError] if git version is below 2.30.0
|
|
74
|
+
#
|
|
75
|
+
# @api public
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'maintenance/register'
|
|
4
|
+
require_relative 'maintenance/run'
|
|
5
|
+
require_relative 'maintenance/start'
|
|
6
|
+
require_relative 'maintenance/stop'
|
|
7
|
+
require_relative 'maintenance/unregister'
|
|
8
|
+
|
|
9
|
+
module Git
|
|
10
|
+
module Commands
|
|
11
|
+
# Implements `git maintenance` subcommands for repository optimization
|
|
12
|
+
#
|
|
13
|
+
# Split into subclasses because each subcommand has a distinct purpose
|
|
14
|
+
# and option set:
|
|
15
|
+
#
|
|
16
|
+
# - {Maintenance::Run} — run one or more maintenance tasks
|
|
17
|
+
# - {Maintenance::Start} — initialize and start background maintenance
|
|
18
|
+
# - {Maintenance::Stop} — halt the background maintenance schedule
|
|
19
|
+
# - {Maintenance::Register} — add repository to maintenance config
|
|
20
|
+
# - {Maintenance::Unregister} — remove repository from maintenance config
|
|
21
|
+
#
|
|
22
|
+
# All subcommands require Git 2.30.0 or later.
|
|
23
|
+
#
|
|
24
|
+
# @see https://git-scm.com/docs/git-maintenance git-maintenance documentation
|
|
25
|
+
#
|
|
26
|
+
# @api private
|
|
27
|
+
#
|
|
28
|
+
module Maintenance
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
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 Merge
|
|
8
|
+
# Implements `git merge --abort` to abort an in-progress merge
|
|
9
|
+
#
|
|
10
|
+
# Aborts the current merge and reconstructs the pre-merge state.
|
|
11
|
+
# If an autostash entry is present, applies it to the worktree.
|
|
12
|
+
#
|
|
13
|
+
# @example Abort a merge
|
|
14
|
+
# abort_cmd = Git::Commands::Merge::Abort.new(execution_context)
|
|
15
|
+
# abort_cmd.call
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-merge/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::Merge
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-merge git-merge
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Abort < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'merge'
|
|
28
|
+
literal '--abort'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @!method call(*, **)
|
|
32
|
+
#
|
|
33
|
+
# @overload call()
|
|
34
|
+
#
|
|
35
|
+
# Abort the current merge and reconstruct the pre-merge state
|
|
36
|
+
#
|
|
37
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
38
|
+
# `git merge --abort`
|
|
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,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Merge
|
|
8
|
+
# Implements `git merge --continue` to complete a merge after conflict resolution
|
|
9
|
+
#
|
|
10
|
+
# After the user has resolved conflicts and staged the changes, the
|
|
11
|
+
# merge can be concluded with this command.
|
|
12
|
+
#
|
|
13
|
+
# @example Continue after resolving conflicts
|
|
14
|
+
# continue_cmd = Git::Commands::Merge::Continue.new(execution_context)
|
|
15
|
+
# continue_cmd.call
|
|
16
|
+
#
|
|
17
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-merge/2.53.0
|
|
18
|
+
#
|
|
19
|
+
# @see Git::Commands::Merge
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-merge git-merge
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
#
|
|
25
|
+
class Continue < Git::Commands::Base
|
|
26
|
+
arguments do
|
|
27
|
+
literal 'merge'
|
|
28
|
+
literal '--continue'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @!method call(*, **)
|
|
32
|
+
#
|
|
33
|
+
# @overload call()
|
|
34
|
+
#
|
|
35
|
+
# Resume the in-progress merge after conflicts have been resolved
|
|
36
|
+
#
|
|
37
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
38
|
+
# `git merge --continue`
|
|
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,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Merge
|
|
8
|
+
# Implements `git merge --quit` to quit an in-progress merge
|
|
9
|
+
#
|
|
10
|
+
# Forgets about the current merge in progress. Leaves the index and
|
|
11
|
+
# working tree as-is. If an autostash entry is present, saves it to
|
|
12
|
+
# the stash list.
|
|
13
|
+
#
|
|
14
|
+
# @example Quit the merge, leaving working tree as-is
|
|
15
|
+
# quit_cmd = Git::Commands::Merge::Quit.new(execution_context)
|
|
16
|
+
# quit_cmd.call
|
|
17
|
+
#
|
|
18
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-merge/2.53.0
|
|
19
|
+
#
|
|
20
|
+
# @see Git::Commands::Merge
|
|
21
|
+
#
|
|
22
|
+
# @see https://git-scm.com/docs/git-merge git-merge
|
|
23
|
+
#
|
|
24
|
+
# @api private
|
|
25
|
+
#
|
|
26
|
+
class Quit < Git::Commands::Base
|
|
27
|
+
arguments do
|
|
28
|
+
literal 'merge'
|
|
29
|
+
literal '--quit'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @!method call(*, **)
|
|
33
|
+
#
|
|
34
|
+
# @overload call()
|
|
35
|
+
#
|
|
36
|
+
# Forget about the current merge in progress, leaving the index
|
|
37
|
+
# and working tree as-is
|
|
38
|
+
#
|
|
39
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
40
|
+
# `git merge --quit`
|
|
41
|
+
#
|
|
42
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Merge
|
|
8
|
+
# Implements `git merge` to incorporate changes from named commits
|
|
9
|
+
#
|
|
10
|
+
# Joins two or more development histories together by incorporating
|
|
11
|
+
# changes from the named commits into the current branch.
|
|
12
|
+
#
|
|
13
|
+
# @example Simple merge
|
|
14
|
+
# merge = Git::Commands::Merge::Start.new(execution_context)
|
|
15
|
+
# merge.call('feature')
|
|
16
|
+
#
|
|
17
|
+
# @example Merge with no fast-forward
|
|
18
|
+
# merge.call('feature', ff: false, m: 'Merge feature branch')
|
|
19
|
+
#
|
|
20
|
+
# @example Squash merge
|
|
21
|
+
# merge.call('feature', squash: true)
|
|
22
|
+
#
|
|
23
|
+
# @example Merge with strategy option
|
|
24
|
+
# merge.call('feature', strategy: 'ort', strategy_option: 'theirs')
|
|
25
|
+
#
|
|
26
|
+
# @example Octopus merge (multiple branches)
|
|
27
|
+
# merge.call('branch1', 'branch2', 'branch3')
|
|
28
|
+
#
|
|
29
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-merge/2.53.0
|
|
30
|
+
#
|
|
31
|
+
# @see Git::Commands::Merge
|
|
32
|
+
#
|
|
33
|
+
# @see https://git-scm.com/docs/git-merge git-merge
|
|
34
|
+
#
|
|
35
|
+
# @api private
|
|
36
|
+
#
|
|
37
|
+
class Start < Git::Commands::Base
|
|
38
|
+
arguments do
|
|
39
|
+
literal 'merge'
|
|
40
|
+
|
|
41
|
+
# Commit behavior
|
|
42
|
+
flag_option :commit, negatable: true
|
|
43
|
+
flag_option %i[edit e], negatable: true
|
|
44
|
+
|
|
45
|
+
# Commit message cleanup
|
|
46
|
+
value_option :cleanup, inline: true
|
|
47
|
+
|
|
48
|
+
# Fast-forward behavior
|
|
49
|
+
flag_option :ff, negatable: true
|
|
50
|
+
flag_option :ff_only
|
|
51
|
+
|
|
52
|
+
# Signing
|
|
53
|
+
flag_or_value_option %i[gpg_sign S], negatable: true, inline: true
|
|
54
|
+
|
|
55
|
+
# Log message
|
|
56
|
+
flag_or_value_option :log, negatable: true, inline: true
|
|
57
|
+
|
|
58
|
+
# Trailers
|
|
59
|
+
flag_option :signoff, negatable: true
|
|
60
|
+
|
|
61
|
+
# Stat display
|
|
62
|
+
flag_option :stat, negatable: true
|
|
63
|
+
flag_option :compact_summary
|
|
64
|
+
|
|
65
|
+
# Squash
|
|
66
|
+
flag_option :squash
|
|
67
|
+
|
|
68
|
+
# Verification
|
|
69
|
+
flag_option :verify, negatable: true
|
|
70
|
+
|
|
71
|
+
# Strategy options
|
|
72
|
+
value_option %i[strategy s], inline: true
|
|
73
|
+
value_option %i[strategy_option X], inline: true, repeatable: true
|
|
74
|
+
|
|
75
|
+
# Signature verification
|
|
76
|
+
flag_option :verify_signatures, negatable: true
|
|
77
|
+
|
|
78
|
+
# Verbosity and progress
|
|
79
|
+
flag_option %i[quiet q]
|
|
80
|
+
flag_option %i[verbose v]
|
|
81
|
+
flag_option :progress, negatable: true
|
|
82
|
+
|
|
83
|
+
# Stash and history
|
|
84
|
+
flag_option :autostash, negatable: true
|
|
85
|
+
flag_option :allow_unrelated_histories, negatable: true
|
|
86
|
+
|
|
87
|
+
# Message options
|
|
88
|
+
value_option :m
|
|
89
|
+
value_option :into_name
|
|
90
|
+
value_option %i[file F], inline: true
|
|
91
|
+
|
|
92
|
+
# Conflict resolution
|
|
93
|
+
flag_option :rerere_autoupdate, negatable: true
|
|
94
|
+
flag_option :overwrite_ignore, negatable: true
|
|
95
|
+
|
|
96
|
+
end_of_options
|
|
97
|
+
|
|
98
|
+
# Positional: commits to merge (variadic, required)
|
|
99
|
+
operand :commit, repeatable: true, required: true
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# @!method call(*, **)
|
|
103
|
+
#
|
|
104
|
+
# @overload call(*commit, **options)
|
|
105
|
+
#
|
|
106
|
+
# Execute the git merge command
|
|
107
|
+
#
|
|
108
|
+
# @param commit [Array<String>] one or more branch names, commit SHAs,
|
|
109
|
+
# or refs to merge into the current branch; multiple commits create
|
|
110
|
+
# an octopus merge
|
|
111
|
+
#
|
|
112
|
+
# @param options [Hash] command options
|
|
113
|
+
#
|
|
114
|
+
# @option options [Boolean, nil] :commit (nil) perform merge and commit the result (`--commit`)
|
|
115
|
+
#
|
|
116
|
+
# @option options [Boolean, nil] :no_commit (nil) do not perform a merge commit (`--no-commit`)
|
|
117
|
+
#
|
|
118
|
+
# @option options [Boolean, nil] :edit (nil) open an editor for the merge commit message (`--edit`)
|
|
119
|
+
#
|
|
120
|
+
# Alias: `:e`
|
|
121
|
+
#
|
|
122
|
+
# @option options [Boolean, nil] :no_edit (nil) skip the editor for the merge commit message (`--no-edit`)
|
|
123
|
+
#
|
|
124
|
+
# @option options [String] :cleanup (nil) how the merge message will be cleaned
|
|
125
|
+
# up before committing
|
|
126
|
+
#
|
|
127
|
+
# Accepted values include `strip`, `whitespace`, `verbatim`,
|
|
128
|
+
# `scissors`, and `default`. Emits `--cleanup=<mode>`.
|
|
129
|
+
#
|
|
130
|
+
# @option options [Boolean, nil] :ff (nil) allow fast-forward merges (`--ff`)
|
|
131
|
+
#
|
|
132
|
+
# @option options [Boolean, nil] :no_ff (nil) create a merge commit even when fast-forward is
|
|
133
|
+
# possible (`--no-ff`)
|
|
134
|
+
#
|
|
135
|
+
# @option options [Boolean, nil] :ff_only (nil) refuse to merge unless
|
|
136
|
+
# fast-forward is possible; emits `--ff-only`
|
|
137
|
+
#
|
|
138
|
+
# @option options [Boolean, String, nil] :gpg_sign (nil) GPG-sign the resulting
|
|
139
|
+
# merge commit (`--gpg-sign`)
|
|
140
|
+
#
|
|
141
|
+
# Pass a key ID string to select the signing key; pass `true` to use the
|
|
142
|
+
# committer identity. Alias: `:S`
|
|
143
|
+
#
|
|
144
|
+
# @option options [Boolean, nil] :no_gpg_sign (nil) countermand commit.gpgSign
|
|
145
|
+
# configuration (`--no-gpg-sign`)
|
|
146
|
+
#
|
|
147
|
+
# @option options [Boolean, Integer, nil] :log (nil) populate the merge message
|
|
148
|
+
# with one-line commit descriptions (`--log`)
|
|
149
|
+
#
|
|
150
|
+
# Pass an Integer `n` to limit to `n` entries (`--log=<n>`).
|
|
151
|
+
#
|
|
152
|
+
# @option options [Boolean, nil] :no_log (nil) do not list one-line commit descriptions
|
|
153
|
+
# (`--no-log`)
|
|
154
|
+
#
|
|
155
|
+
# @option options [Boolean, nil] :signoff (nil) add a Signed-off-by trailer to the commit
|
|
156
|
+
# message (`--signoff`)
|
|
157
|
+
#
|
|
158
|
+
# @option options [Boolean, nil] :no_signoff (nil) remove a Signed-off-by trailer from the
|
|
159
|
+
# commit message (`--no-signoff`)
|
|
160
|
+
#
|
|
161
|
+
# @option options [Boolean, nil] :stat (nil) show a diffstat at the end of the merge (`--stat`)
|
|
162
|
+
#
|
|
163
|
+
# @option options [Boolean, nil] :no_stat (nil) suppress the diffstat at the end of the merge (`--no-stat`)
|
|
164
|
+
#
|
|
165
|
+
# @option options [Boolean, nil] :compact_summary (nil) show a compact summary
|
|
166
|
+
# at the end of the merge; emits `--compact-summary`
|
|
167
|
+
#
|
|
168
|
+
# @option options [Boolean, nil] :squash (nil) produce working tree and index
|
|
169
|
+
# state as if a real merge happened, but do not commit; emits `--squash`
|
|
170
|
+
#
|
|
171
|
+
# @option options [Boolean, nil] :verify (nil) run pre-merge and commit-msg hooks (`--verify`)
|
|
172
|
+
#
|
|
173
|
+
# @option options [Boolean, nil] :no_verify (nil) bypass pre-merge and commit-msg hooks (`--no-verify`)
|
|
174
|
+
#
|
|
175
|
+
# @option options [String] :strategy (nil) merge strategy to use
|
|
176
|
+
# (e.g., `'ort'`, `'recursive'`, `'resolve'`, `'octopus'`, `'ours'`, `'subtree'`)
|
|
177
|
+
#
|
|
178
|
+
# Emits `--strategy=<strategy>`. Alias: `:s`
|
|
179
|
+
#
|
|
180
|
+
# @option options [String, Array<String>] :strategy_option (nil) pass
|
|
181
|
+
# option(s) to the merge strategy (e.g., `'ours'`, `'theirs'`, `'patience'`)
|
|
182
|
+
#
|
|
183
|
+
# Can be a single value or an array for multiple `--strategy-option` flags.
|
|
184
|
+
# Emits `--strategy-option=<option>`. Alias: `:X`
|
|
185
|
+
#
|
|
186
|
+
# @option options [Boolean, nil] :verify_signatures (nil) verify commit signatures
|
|
187
|
+
# on the tip of the side branch (`--verify-signatures`)
|
|
188
|
+
#
|
|
189
|
+
# @option options [Boolean, nil] :no_verify_signatures (nil) do not verify commit
|
|
190
|
+
# signatures (`--no-verify-signatures`)
|
|
191
|
+
#
|
|
192
|
+
# @option options [Boolean, nil] :quiet (nil) operate quietly; emits `--quiet`
|
|
193
|
+
#
|
|
194
|
+
# Alias: `:q`
|
|
195
|
+
#
|
|
196
|
+
# @option options [Boolean, nil] :verbose (nil) be verbose; emits `--verbose`
|
|
197
|
+
#
|
|
198
|
+
# Alias: `:v`
|
|
199
|
+
#
|
|
200
|
+
# @option options [Boolean, nil] :progress (nil) force progress status reporting (`--progress`)
|
|
201
|
+
#
|
|
202
|
+
# @option options [Boolean, nil] :no_progress (nil) suppress progress status reporting (`--no-progress`)
|
|
203
|
+
#
|
|
204
|
+
# @option options [Boolean, nil] :autostash (nil) automatically stash and unstash
|
|
205
|
+
# the working tree before and after the operation (`--autostash`)
|
|
206
|
+
#
|
|
207
|
+
# @option options [Boolean, nil] :no_autostash (nil) do not automatically stash and unstash
|
|
208
|
+
# the working tree (`--no-autostash`)
|
|
209
|
+
#
|
|
210
|
+
# @option options [Boolean, nil] :allow_unrelated_histories (nil) allow merging
|
|
211
|
+
# histories that do not share a common ancestor (`--allow-unrelated-histories`)
|
|
212
|
+
#
|
|
213
|
+
# @option options [Boolean, nil] :no_allow_unrelated_histories (nil) disallow merging
|
|
214
|
+
# unrelated histories (`--no-allow-unrelated-histories`)
|
|
215
|
+
#
|
|
216
|
+
# @option options [String] :m (nil) commit message for the merge commit;
|
|
217
|
+
# emits `-m <msg>`
|
|
218
|
+
#
|
|
219
|
+
# @option options [String] :into_name (nil) prepare the default merge message
|
|
220
|
+
# as if merging to the named branch; emits `--into-name <branch>`
|
|
221
|
+
#
|
|
222
|
+
# @option options [String] :file (nil) read the commit message from the given
|
|
223
|
+
# file; emits `--file=<file>`. Alias: `:F`
|
|
224
|
+
#
|
|
225
|
+
# @option options [Boolean, nil] :rerere_autoupdate (nil) allow rerere to update
|
|
226
|
+
# the index with the auto-resolved conflict result (`--rerere-autoupdate`)
|
|
227
|
+
#
|
|
228
|
+
# @option options [Boolean, nil] :no_rerere_autoupdate (nil) prevent rerere from
|
|
229
|
+
# auto-updating the index (`--no-rerere-autoupdate`)
|
|
230
|
+
#
|
|
231
|
+
# @option options [Boolean, nil] :overwrite_ignore (nil) silently overwrite ignored
|
|
232
|
+
# files from the merge result (`--overwrite-ignore`)
|
|
233
|
+
#
|
|
234
|
+
# @option options [Boolean, nil] :no_overwrite_ignore (nil) abort if the merge result
|
|
235
|
+
# would overwrite any ignored files (`--no-overwrite-ignore`)
|
|
236
|
+
#
|
|
237
|
+
# @return [Git::CommandLineResult] the result of calling `git merge`
|
|
238
|
+
#
|
|
239
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
240
|
+
#
|
|
241
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'merge/abort'
|
|
4
|
+
require_relative 'merge/continue'
|
|
5
|
+
require_relative 'merge/quit'
|
|
6
|
+
require_relative 'merge/start'
|
|
7
|
+
|
|
8
|
+
module Git
|
|
9
|
+
module Commands
|
|
10
|
+
# Commands for joining development histories via `git merge`
|
|
11
|
+
#
|
|
12
|
+
# This module contains command classes for the initial merge ({Start}) and
|
|
13
|
+
# session management ({Continue}, {Abort}, {Quit}):
|
|
14
|
+
#
|
|
15
|
+
# - {Merge::Start} — merge one or more branches into the current branch
|
|
16
|
+
# - {Merge::Continue} — resume after resolving merge conflicts (`--continue`)
|
|
17
|
+
# - {Merge::Abort} — abort the in-progress merge (`--abort`)
|
|
18
|
+
# - {Merge::Quit} — forget the in-progress merge but leave the working tree
|
|
19
|
+
# as-is (`--quit`)
|
|
20
|
+
#
|
|
21
|
+
# @api private
|
|
22
|
+
#
|
|
23
|
+
# @see https://git-scm.com/docs/git-merge git-merge documentation
|
|
24
|
+
#
|
|
25
|
+
module Merge
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|