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,656 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git diff` command
|
|
8
|
+
#
|
|
9
|
+
# Compares commits, the index, and the working tree.
|
|
10
|
+
#
|
|
11
|
+
# @example Typical usage
|
|
12
|
+
# diff = Git::Commands::Diff.new(execution_context)
|
|
13
|
+
# diff.call(numstat: true, shortstat: true, src_prefix: 'a/', dst_prefix: 'b/')
|
|
14
|
+
# diff.call(patch: true, no_index: true, path: ['/path/a', '/path/b'])
|
|
15
|
+
# diff.call(patch: true, cached: true)
|
|
16
|
+
# diff.call('abc123', 'def456', raw: true, numstat: true, shortstat: true)
|
|
17
|
+
#
|
|
18
|
+
# @note `arguments` block audited against
|
|
19
|
+
# https://git-scm.com/docs/git-diff/2.53.0
|
|
20
|
+
#
|
|
21
|
+
# @see https://git-scm.com/docs/git-diff git-diff
|
|
22
|
+
#
|
|
23
|
+
# @see Git::Commands
|
|
24
|
+
#
|
|
25
|
+
# @api private
|
|
26
|
+
#
|
|
27
|
+
class Diff < Git::Commands::Base # rubocop:disable Metrics/ClassLength
|
|
28
|
+
arguments do
|
|
29
|
+
literal 'diff'
|
|
30
|
+
|
|
31
|
+
# Output format
|
|
32
|
+
flag_option %i[patch p u]
|
|
33
|
+
flag_option %i[no_patch s]
|
|
34
|
+
value_option %i[unified U], inline: true
|
|
35
|
+
value_option :output, inline: true
|
|
36
|
+
value_option :output_indicator_new, inline: true
|
|
37
|
+
value_option :output_indicator_old, inline: true
|
|
38
|
+
value_option :output_indicator_context, inline: true
|
|
39
|
+
flag_option :raw
|
|
40
|
+
flag_option :patch_with_raw
|
|
41
|
+
flag_option :indent_heuristic, negatable: true
|
|
42
|
+
flag_option :minimal
|
|
43
|
+
flag_option :patience
|
|
44
|
+
flag_option :histogram
|
|
45
|
+
value_option :anchored, inline: true, repeatable: true
|
|
46
|
+
value_option :diff_algorithm, inline: true
|
|
47
|
+
flag_or_value_option :stat, inline: true
|
|
48
|
+
value_option :stat_width, inline: true
|
|
49
|
+
value_option :stat_name_width, inline: true
|
|
50
|
+
value_option :stat_count, inline: true
|
|
51
|
+
value_option :stat_graph_width, inline: true
|
|
52
|
+
flag_option :compact_summary
|
|
53
|
+
flag_option :numstat
|
|
54
|
+
flag_option :shortstat
|
|
55
|
+
flag_or_value_option %i[dirstat X], inline: true
|
|
56
|
+
flag_option :cumulative
|
|
57
|
+
flag_or_value_option :dirstat_by_file, inline: true
|
|
58
|
+
flag_option :summary
|
|
59
|
+
flag_option :patch_with_stat
|
|
60
|
+
flag_option :z
|
|
61
|
+
flag_option :name_only
|
|
62
|
+
flag_option :name_status
|
|
63
|
+
flag_or_value_option :submodule, inline: true
|
|
64
|
+
|
|
65
|
+
# Color and word diff
|
|
66
|
+
flag_or_value_option :color, negatable: true, inline: true
|
|
67
|
+
flag_or_value_option :color_moved, negatable: true, inline: true
|
|
68
|
+
flag_or_value_option :color_moved_ws, negatable: true, inline: true
|
|
69
|
+
flag_or_value_option :word_diff, inline: true
|
|
70
|
+
value_option :word_diff_regex, inline: true
|
|
71
|
+
flag_or_value_option :color_words, inline: true
|
|
72
|
+
|
|
73
|
+
# Rename and copy detection
|
|
74
|
+
flag_option :no_renames
|
|
75
|
+
flag_option :rename_empty, negatable: true
|
|
76
|
+
flag_option :check
|
|
77
|
+
value_option :ws_error_highlight, inline: true
|
|
78
|
+
flag_option :full_index
|
|
79
|
+
flag_option :binary
|
|
80
|
+
flag_or_value_option :abbrev, inline: true
|
|
81
|
+
flag_or_value_option %i[break_rewrites B], inline: true
|
|
82
|
+
flag_or_value_option %i[find_renames M], inline: true
|
|
83
|
+
flag_or_value_option %i[find_copies C], inline: true
|
|
84
|
+
flag_option :find_copies_harder
|
|
85
|
+
flag_option %i[irreversible_delete D]
|
|
86
|
+
value_option :l, inline: true
|
|
87
|
+
value_option :diff_filter, inline: true
|
|
88
|
+
|
|
89
|
+
# Content search (pickaxe)
|
|
90
|
+
value_option :S, inline: true
|
|
91
|
+
value_option :G, inline: true
|
|
92
|
+
value_option :find_object, inline: true
|
|
93
|
+
flag_option :pickaxe_all
|
|
94
|
+
flag_option :pickaxe_regex
|
|
95
|
+
|
|
96
|
+
# Output ordering
|
|
97
|
+
value_option :O, inline: true
|
|
98
|
+
value_option :skip_to, inline: true
|
|
99
|
+
value_option :rotate_to, inline: true
|
|
100
|
+
flag_option :R
|
|
101
|
+
|
|
102
|
+
# Path scope and comparison
|
|
103
|
+
flag_or_value_option :relative, negatable: true, inline: true
|
|
104
|
+
flag_option %i[text a]
|
|
105
|
+
|
|
106
|
+
# Whitespace handling
|
|
107
|
+
flag_option :ignore_cr_at_eol
|
|
108
|
+
flag_option :ignore_space_at_eol
|
|
109
|
+
flag_option %i[ignore_space_change b]
|
|
110
|
+
flag_option %i[ignore_all_space w]
|
|
111
|
+
flag_option :ignore_blank_lines
|
|
112
|
+
value_option %i[ignore_matching_lines I], inline: true, repeatable: true
|
|
113
|
+
value_option :inter_hunk_context, inline: true
|
|
114
|
+
flag_option %i[function_context W]
|
|
115
|
+
|
|
116
|
+
# Behavior control
|
|
117
|
+
flag_option :exit_code
|
|
118
|
+
flag_option :quiet
|
|
119
|
+
flag_option :ext_diff, negatable: true
|
|
120
|
+
flag_option :textconv, negatable: true
|
|
121
|
+
flag_or_value_option :ignore_submodules, inline: true
|
|
122
|
+
|
|
123
|
+
# Prefix and path display
|
|
124
|
+
value_option :src_prefix, inline: true
|
|
125
|
+
value_option :dst_prefix, inline: true
|
|
126
|
+
flag_option :no_prefix
|
|
127
|
+
flag_option :default_prefix
|
|
128
|
+
value_option :line_prefix, inline: true
|
|
129
|
+
flag_option :ita_invisible_in_index
|
|
130
|
+
flag_option :ita_visible_in_index
|
|
131
|
+
value_option :max_depth, inline: true
|
|
132
|
+
|
|
133
|
+
# Combined diff format
|
|
134
|
+
flag_option :c
|
|
135
|
+
flag_option :cc
|
|
136
|
+
flag_option :combined_all_paths
|
|
137
|
+
|
|
138
|
+
# git diff-specific modes
|
|
139
|
+
flag_option %i[cached staged]
|
|
140
|
+
flag_option :merge_base
|
|
141
|
+
flag_option :no_index
|
|
142
|
+
|
|
143
|
+
# Merge conflict stage selection
|
|
144
|
+
flag_option %i[base 1]
|
|
145
|
+
flag_option %i[ours 2]
|
|
146
|
+
flag_option %i[theirs 3]
|
|
147
|
+
flag_option :'0'
|
|
148
|
+
|
|
149
|
+
operand :commit, repeatable: true
|
|
150
|
+
end_of_options
|
|
151
|
+
value_option :path, as_operand: true, repeatable: true
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Exit codes: 0 = success; with --exit-code: 1 = differences found;
|
|
155
|
+
# with --check: 2 = whitespace/conflict-marker errors
|
|
156
|
+
allow_exit_status 0..2
|
|
157
|
+
|
|
158
|
+
# @!method call(*, **)
|
|
159
|
+
#
|
|
160
|
+
# @overload call(**options)
|
|
161
|
+
#
|
|
162
|
+
# Compare the index to the working tree
|
|
163
|
+
#
|
|
164
|
+
# @example
|
|
165
|
+
# Diff.new(ctx).call(numstat: true, src_prefix: 'a/', dst_prefix: 'b/')
|
|
166
|
+
#
|
|
167
|
+
# @param options [Hash] command options
|
|
168
|
+
#
|
|
169
|
+
# @return [Git::CommandLineResult] the result of calling `git diff`
|
|
170
|
+
#
|
|
171
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
172
|
+
#
|
|
173
|
+
# @raise [Git::FailedError] if git exits outside the allowed range
|
|
174
|
+
# (exit code > 2)
|
|
175
|
+
#
|
|
176
|
+
# @api public
|
|
177
|
+
#
|
|
178
|
+
# @overload call(no_index: true, path:, **options)
|
|
179
|
+
#
|
|
180
|
+
# Compare two paths on the filesystem (outside git)
|
|
181
|
+
#
|
|
182
|
+
# Always use the `path:` keyword for the two filesystem paths so
|
|
183
|
+
# that paths beginning with `-` are safely separated by `--` and
|
|
184
|
+
# cannot be mistaken for flags by git.
|
|
185
|
+
#
|
|
186
|
+
# @example
|
|
187
|
+
# Diff.new(ctx).call(patch: true, no_index: true, path: ['/a', '/b'])
|
|
188
|
+
#
|
|
189
|
+
# @param path [Array<String>] two filesystem paths to compare
|
|
190
|
+
# (passed after `--`)
|
|
191
|
+
#
|
|
192
|
+
# @param options [Hash] command options
|
|
193
|
+
#
|
|
194
|
+
# @return [Git::CommandLineResult] the result of calling `git diff`
|
|
195
|
+
#
|
|
196
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
197
|
+
#
|
|
198
|
+
# @raise [Git::FailedError] if git exits outside the allowed range
|
|
199
|
+
# (exit code > 2)
|
|
200
|
+
#
|
|
201
|
+
# @api public
|
|
202
|
+
#
|
|
203
|
+
# @overload call(commit = nil, cached:, **options)
|
|
204
|
+
#
|
|
205
|
+
# Compare the index to HEAD or the named commit
|
|
206
|
+
#
|
|
207
|
+
# @example
|
|
208
|
+
# Diff.new(ctx).call(patch: true, cached: true)
|
|
209
|
+
# Diff.new(ctx).call('HEAD~3', patch: true, cached: true)
|
|
210
|
+
#
|
|
211
|
+
# @param commit [String, nil] commit to compare the index against
|
|
212
|
+
# (defaults to HEAD)
|
|
213
|
+
#
|
|
214
|
+
# @param options [Hash] command options
|
|
215
|
+
#
|
|
216
|
+
# @return [Git::CommandLineResult] the result of calling `git diff`
|
|
217
|
+
#
|
|
218
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
219
|
+
#
|
|
220
|
+
# @raise [Git::FailedError] if git exits outside the allowed range
|
|
221
|
+
# (exit code > 2)
|
|
222
|
+
#
|
|
223
|
+
# @api public
|
|
224
|
+
#
|
|
225
|
+
# @overload call(commit, **options)
|
|
226
|
+
#
|
|
227
|
+
# Compare the working tree to the named commit
|
|
228
|
+
#
|
|
229
|
+
# @example
|
|
230
|
+
# Diff.new(ctx).call('HEAD~3', numstat: true, shortstat: true)
|
|
231
|
+
#
|
|
232
|
+
# @param commit [String] commit reference to compare the working
|
|
233
|
+
# tree against
|
|
234
|
+
#
|
|
235
|
+
# @param options [Hash] command options
|
|
236
|
+
#
|
|
237
|
+
# @return [Git::CommandLineResult] the result of calling `git diff`
|
|
238
|
+
#
|
|
239
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
240
|
+
#
|
|
241
|
+
# @raise [Git::FailedError] if git exits outside the allowed range
|
|
242
|
+
# (exit code > 2)
|
|
243
|
+
#
|
|
244
|
+
# @api public
|
|
245
|
+
#
|
|
246
|
+
# @overload call(commit, *commits, **options)
|
|
247
|
+
#
|
|
248
|
+
# Compare two or more commits or show a combined diff
|
|
249
|
+
#
|
|
250
|
+
# @example Compare two commits
|
|
251
|
+
# Diff.new(ctx).call('abc123', 'def456', raw: true, numstat: true)
|
|
252
|
+
#
|
|
253
|
+
# @example Combined diff of a merge commit
|
|
254
|
+
# Diff.new(ctx).call('main', 'feature-a', 'feature-b',
|
|
255
|
+
# merge_base: true)
|
|
256
|
+
#
|
|
257
|
+
# @param commit [String] first commit reference
|
|
258
|
+
#
|
|
259
|
+
# @param commits [Array<String>] additional commit references
|
|
260
|
+
#
|
|
261
|
+
# @param options [Hash] command options
|
|
262
|
+
#
|
|
263
|
+
# @option options [Boolean, nil] :patch (nil) generate patch output
|
|
264
|
+
#
|
|
265
|
+
# Alias: :p, :u
|
|
266
|
+
#
|
|
267
|
+
# @option options [Boolean, nil] :no_patch (nil) suppress all diff
|
|
268
|
+
# output
|
|
269
|
+
#
|
|
270
|
+
# Alias: :s
|
|
271
|
+
#
|
|
272
|
+
# @option options [Integer, String] :unified (nil) generate diffs
|
|
273
|
+
# with this many lines of context
|
|
274
|
+
#
|
|
275
|
+
# Alias: :U
|
|
276
|
+
#
|
|
277
|
+
# @option options [String] :output (nil) write output to a file
|
|
278
|
+
# instead of stdout
|
|
279
|
+
#
|
|
280
|
+
# @option options [String] :output_indicator_new (nil) character
|
|
281
|
+
# to indicate new lines in the patch
|
|
282
|
+
#
|
|
283
|
+
# @option options [String] :output_indicator_old (nil) character
|
|
284
|
+
# to indicate old lines in the patch
|
|
285
|
+
#
|
|
286
|
+
# @option options [String] :output_indicator_context (nil)
|
|
287
|
+
# character to indicate context lines in the patch
|
|
288
|
+
#
|
|
289
|
+
# @option options [Boolean, nil] :raw (nil) generate the diff in raw
|
|
290
|
+
# format
|
|
291
|
+
#
|
|
292
|
+
# @option options [Boolean, nil] :patch_with_raw (nil) synonym for
|
|
293
|
+
# `--patch --raw`
|
|
294
|
+
#
|
|
295
|
+
# @option options [Boolean, nil] :indent_heuristic (nil) enable the
|
|
296
|
+
# indent heuristic for patch readability (`--indent-heuristic`)
|
|
297
|
+
#
|
|
298
|
+
# @option options [Boolean, nil] :no_indent_heuristic (nil) disable
|
|
299
|
+
# the indent heuristic (`--no-indent-heuristic`)
|
|
300
|
+
#
|
|
301
|
+
# @option options [Boolean, nil] :minimal (nil) spend extra time to
|
|
302
|
+
# produce the smallest possible diff
|
|
303
|
+
#
|
|
304
|
+
# @option options [Boolean, nil] :patience (nil) use the patience
|
|
305
|
+
# diff algorithm
|
|
306
|
+
#
|
|
307
|
+
# @option options [Boolean, nil] :histogram (nil) use the histogram
|
|
308
|
+
# diff algorithm
|
|
309
|
+
#
|
|
310
|
+
# @option options [String, Array<String>] :anchored (nil)
|
|
311
|
+
# generate a diff using the anchored diff algorithm
|
|
312
|
+
#
|
|
313
|
+
# Pass an array for multiple anchored texts. Maps to
|
|
314
|
+
# `--anchored=<text>`.
|
|
315
|
+
#
|
|
316
|
+
# @option options [String] :diff_algorithm (nil) choose a diff
|
|
317
|
+
# algorithm (`patience`, `minimal`, `histogram`, or `myers`)
|
|
318
|
+
#
|
|
319
|
+
# @option options [Boolean, String, nil] :stat (nil) generate a
|
|
320
|
+
# diffstat
|
|
321
|
+
#
|
|
322
|
+
# Pass `true` for `--stat`; pass a string like
|
|
323
|
+
# `'100,40,10'` for `--stat=100,40,10`.
|
|
324
|
+
#
|
|
325
|
+
# @option options [Integer, String] :stat_width (nil) limit the
|
|
326
|
+
# width of `--stat` output
|
|
327
|
+
#
|
|
328
|
+
# @option options [Integer, String] :stat_name_width (nil) limit
|
|
329
|
+
# the filename width of `--stat` output
|
|
330
|
+
#
|
|
331
|
+
# @option options [Integer, String] :stat_count (nil) limit the
|
|
332
|
+
# number of lines in `--stat` output
|
|
333
|
+
#
|
|
334
|
+
# @option options [Integer, String] :stat_graph_width (nil) limit
|
|
335
|
+
# the graph width of `--stat` output
|
|
336
|
+
#
|
|
337
|
+
# @option options [Boolean, nil] :compact_summary (nil) output a
|
|
338
|
+
# condensed summary of extended header information
|
|
339
|
+
#
|
|
340
|
+
# @option options [Boolean, nil] :numstat (nil) show per-file
|
|
341
|
+
# insertion/deletion counts in decimal notation
|
|
342
|
+
#
|
|
343
|
+
# @option options [Boolean, nil] :shortstat (nil) output only the
|
|
344
|
+
# aggregate totals line from `--stat`
|
|
345
|
+
#
|
|
346
|
+
# @option options [Boolean, String, nil] :dirstat (nil) output the
|
|
347
|
+
# distribution of relative amount of changes per sub-directory
|
|
348
|
+
#
|
|
349
|
+
# Pass `true` for `--dirstat`; pass a string like
|
|
350
|
+
# `'lines,cumulative'` for `--dirstat=lines,cumulative`.
|
|
351
|
+
#
|
|
352
|
+
# Alias: :X
|
|
353
|
+
#
|
|
354
|
+
# @option options [Boolean, nil] :cumulative (nil) synonym for
|
|
355
|
+
# `--dirstat=cumulative`
|
|
356
|
+
#
|
|
357
|
+
# @option options [Boolean, String, nil] :dirstat_by_file (nil)
|
|
358
|
+
# synonym for `--dirstat=files,...`
|
|
359
|
+
#
|
|
360
|
+
# @option options [Boolean, nil] :summary (nil) output a condensed
|
|
361
|
+
# summary of extended header information
|
|
362
|
+
#
|
|
363
|
+
# @option options [Boolean, nil] :patch_with_stat (nil) synonym for
|
|
364
|
+
# `--patch --stat`
|
|
365
|
+
#
|
|
366
|
+
# @option options [Boolean, nil] :z (nil) use NUL as output field
|
|
367
|
+
# terminators
|
|
368
|
+
#
|
|
369
|
+
# @option options [Boolean, nil] :name_only (nil) show only the name
|
|
370
|
+
# of each changed file
|
|
371
|
+
#
|
|
372
|
+
# @option options [Boolean, nil] :name_status (nil) show only the
|
|
373
|
+
# name and status of each changed file
|
|
374
|
+
#
|
|
375
|
+
# @option options [Boolean, String, nil] :submodule (nil) specify how
|
|
376
|
+
# differences in submodules are shown
|
|
377
|
+
#
|
|
378
|
+
# Pass `true` for `--submodule`; pass a string like `'log'`
|
|
379
|
+
# or `'diff'` for `--submodule=<format>`.
|
|
380
|
+
#
|
|
381
|
+
# @option options [Boolean, String, nil] :color (nil) show colored
|
|
382
|
+
# diff
|
|
383
|
+
#
|
|
384
|
+
# Pass `true` for `--color` or a string like `'always'` for
|
|
385
|
+
# `--color=always`.
|
|
386
|
+
#
|
|
387
|
+
# @option options [Boolean, nil] :no_color (nil) disable colored
|
|
388
|
+
# diff (`--no-color`)
|
|
389
|
+
#
|
|
390
|
+
# @option options [Boolean, String, nil] :color_moved (nil) color
|
|
391
|
+
# moved lines differently
|
|
392
|
+
#
|
|
393
|
+
# Pass `true` for `--color-moved` or a string like `'zebra'`
|
|
394
|
+
# for `--color-moved=zebra`.
|
|
395
|
+
#
|
|
396
|
+
# @option options [Boolean, nil] :no_color_moved (nil) disable
|
|
397
|
+
# coloring moved lines (`--no-color-moved`)
|
|
398
|
+
#
|
|
399
|
+
# @option options [Boolean, String, nil] :color_moved_ws (nil)
|
|
400
|
+
# configure how whitespace is handled for move detection
|
|
401
|
+
#
|
|
402
|
+
# Pass `true` for `--color-moved-ws` or a string like
|
|
403
|
+
# `'ignore-all-space'` for
|
|
404
|
+
# `--color-moved-ws=ignore-all-space`.
|
|
405
|
+
#
|
|
406
|
+
# @option options [Boolean, nil] :no_color_moved_ws (nil) disable
|
|
407
|
+
# whitespace handling for move detection
|
|
408
|
+
# (`--no-color-moved-ws`)
|
|
409
|
+
#
|
|
410
|
+
# @option options [Boolean, String, nil] :word_diff (nil) show a
|
|
411
|
+
# word diff
|
|
412
|
+
#
|
|
413
|
+
# Pass `true` for `--word-diff`; pass a string like `'color'`
|
|
414
|
+
# for `--word-diff=color`.
|
|
415
|
+
#
|
|
416
|
+
# @option options [String] :word_diff_regex (nil) use this regex
|
|
417
|
+
# to decide what a word is
|
|
418
|
+
#
|
|
419
|
+
# @option options [Boolean, String, nil] :color_words (nil) equivalent
|
|
420
|
+
# to `--word-diff=color` plus optional regex
|
|
421
|
+
#
|
|
422
|
+
# @option options [Boolean, nil] :no_renames (nil) turn off rename
|
|
423
|
+
# detection
|
|
424
|
+
#
|
|
425
|
+
# @option options [Boolean, nil] :rename_empty (nil) use empty blobs
|
|
426
|
+
# as rename source (`--rename-empty`)
|
|
427
|
+
#
|
|
428
|
+
# @option options [Boolean, nil] :no_rename_empty (nil) do not use
|
|
429
|
+
# empty blobs as rename source (`--no-rename-empty`)
|
|
430
|
+
#
|
|
431
|
+
# @option options [Boolean, nil] :check (nil) warn if changes
|
|
432
|
+
# introduce conflict markers or whitespace errors
|
|
433
|
+
#
|
|
434
|
+
# @option options [String] :ws_error_highlight (nil) highlight
|
|
435
|
+
# whitespace errors in `context`, `old`, or `new` lines
|
|
436
|
+
#
|
|
437
|
+
# @option options [Boolean, nil] :full_index (nil) show full
|
|
438
|
+
# pre- and post-image blob object names
|
|
439
|
+
#
|
|
440
|
+
# @option options [Boolean, nil] :binary (nil) output a binary diff
|
|
441
|
+
# that can be applied with `git apply`
|
|
442
|
+
#
|
|
443
|
+
# @option options [Boolean, String, nil] :abbrev (nil) show only a
|
|
444
|
+
# partial prefix of object names
|
|
445
|
+
#
|
|
446
|
+
# Pass `true` for `--abbrev`; pass a string for
|
|
447
|
+
# `--abbrev=<n>`.
|
|
448
|
+
#
|
|
449
|
+
# @option options [Boolean, String, nil] :break_rewrites (nil) break
|
|
450
|
+
# complete rewrite changes into delete/create pairs
|
|
451
|
+
#
|
|
452
|
+
# Alias: :B
|
|
453
|
+
#
|
|
454
|
+
# @option options [Boolean, String, nil] :find_renames (nil) detect
|
|
455
|
+
# renames, optionally specifying a similarity threshold
|
|
456
|
+
#
|
|
457
|
+
# Alias: :M
|
|
458
|
+
#
|
|
459
|
+
# @option options [Boolean, String, nil] :find_copies (nil) detect
|
|
460
|
+
# copies as well as renames
|
|
461
|
+
#
|
|
462
|
+
# Alias: :C
|
|
463
|
+
#
|
|
464
|
+
# @option options [Boolean, nil] :find_copies_harder (nil) inspect
|
|
465
|
+
# all files as candidates for the source of copy
|
|
466
|
+
#
|
|
467
|
+
# @option options [Boolean, nil] :irreversible_delete (nil) omit
|
|
468
|
+
# the preimage for deletes
|
|
469
|
+
#
|
|
470
|
+
# Alias: :D
|
|
471
|
+
#
|
|
472
|
+
# @option options [Integer, String] :l (nil) prevent rename/copy
|
|
473
|
+
# detection from running if the number of targets exceeds this
|
|
474
|
+
#
|
|
475
|
+
# @option options [String] :diff_filter (nil) select only files
|
|
476
|
+
# matching the specified status letters
|
|
477
|
+
#
|
|
478
|
+
# @option options [String] :S (nil) look for differences that
|
|
479
|
+
# change the number of occurrences of a string
|
|
480
|
+
#
|
|
481
|
+
# @option options [String] :G (nil) look for differences whose
|
|
482
|
+
# patch text contains added/removed lines matching a regex
|
|
483
|
+
#
|
|
484
|
+
# @option options [String] :find_object (nil) look for
|
|
485
|
+
# differences that change the number of occurrences of an
|
|
486
|
+
# object
|
|
487
|
+
#
|
|
488
|
+
# @option options [Boolean, nil] :pickaxe_all (nil) when `-S` or
|
|
489
|
+
# `-G` finds a change, show all changes in that changeset
|
|
490
|
+
#
|
|
491
|
+
# @option options [Boolean, nil] :pickaxe_regex (nil) treat the
|
|
492
|
+
# `-S` string as an extended POSIX regular expression
|
|
493
|
+
#
|
|
494
|
+
# @option options [String] :O (nil) control the order in which
|
|
495
|
+
# files appear in the output
|
|
496
|
+
#
|
|
497
|
+
# @option options [String] :skip_to (nil) discard files before
|
|
498
|
+
# the named file from the output
|
|
499
|
+
#
|
|
500
|
+
# @option options [String] :rotate_to (nil) move files before
|
|
501
|
+
# the named file to the end of the output
|
|
502
|
+
#
|
|
503
|
+
# @option options [Boolean, nil] :R (nil) swap two inputs (reverse
|
|
504
|
+
# diff)
|
|
505
|
+
#
|
|
506
|
+
# @option options [Boolean, String, nil] :relative (nil) show
|
|
507
|
+
# pathnames relative to a subdirectory
|
|
508
|
+
#
|
|
509
|
+
# Pass `true` for `--relative` or a string for
|
|
510
|
+
# `--relative=<path>`.
|
|
511
|
+
#
|
|
512
|
+
# @option options [Boolean, nil] :no_relative (nil) show pathnames
|
|
513
|
+
# relative to the working directory (`--no-relative`)
|
|
514
|
+
#
|
|
515
|
+
# @option options [Boolean, nil] :text (nil) treat all files as
|
|
516
|
+
# text
|
|
517
|
+
#
|
|
518
|
+
# Alias: :a
|
|
519
|
+
#
|
|
520
|
+
# @option options [Boolean, nil] :ignore_cr_at_eol (nil) ignore
|
|
521
|
+
# carriage-return at end of line
|
|
522
|
+
#
|
|
523
|
+
# @option options [Boolean, nil] :ignore_space_at_eol (nil) ignore
|
|
524
|
+
# changes in whitespace at end of line
|
|
525
|
+
#
|
|
526
|
+
# @option options [Boolean, nil] :ignore_space_change (nil) ignore
|
|
527
|
+
# changes in amount of whitespace
|
|
528
|
+
#
|
|
529
|
+
# Alias: :b
|
|
530
|
+
#
|
|
531
|
+
# @option options [Boolean, nil] :ignore_all_space (nil) ignore
|
|
532
|
+
# whitespace when comparing lines
|
|
533
|
+
#
|
|
534
|
+
# Alias: :w
|
|
535
|
+
#
|
|
536
|
+
# @option options [Boolean, nil] :ignore_blank_lines (nil) ignore
|
|
537
|
+
# changes whose lines are all blank
|
|
538
|
+
#
|
|
539
|
+
# @option options [String, Array<String>] :ignore_matching_lines
|
|
540
|
+
# (nil) ignore changes whose all lines match the given regex
|
|
541
|
+
#
|
|
542
|
+
# Pass an array for multiple patterns. Maps to
|
|
543
|
+
# `--ignore-matching-lines=<regex>`.
|
|
544
|
+
#
|
|
545
|
+
# Alias: :I
|
|
546
|
+
#
|
|
547
|
+
# @option options [Integer, String] :inter_hunk_context (nil)
|
|
548
|
+
# show the context between diff hunks, fusing nearby hunks
|
|
549
|
+
#
|
|
550
|
+
# @option options [Boolean, nil] :function_context (nil) show whole
|
|
551
|
+
# function as context lines for each change
|
|
552
|
+
#
|
|
553
|
+
# Alias: :W
|
|
554
|
+
#
|
|
555
|
+
# @option options [Boolean, nil] :exit_code (nil) make the program
|
|
556
|
+
# exit with codes similar to `diff(1)`
|
|
557
|
+
#
|
|
558
|
+
# @option options [Boolean, nil] :quiet (nil) disable all output of
|
|
559
|
+
# the program
|
|
560
|
+
#
|
|
561
|
+
# @option options [Boolean, nil] :ext_diff (nil) allow an external
|
|
562
|
+
# diff helper (`--ext-diff`)
|
|
563
|
+
#
|
|
564
|
+
# @option options [Boolean, nil] :no_ext_diff (nil) disallow an
|
|
565
|
+
# external diff helper (`--no-ext-diff`)
|
|
566
|
+
#
|
|
567
|
+
# @option options [Boolean, nil] :textconv (nil) allow external
|
|
568
|
+
# text conversion filters for binary files (`--textconv`)
|
|
569
|
+
#
|
|
570
|
+
# @option options [Boolean, nil] :no_textconv (nil) disallow
|
|
571
|
+
# external text conversion filters for binary files
|
|
572
|
+
# (`--no-textconv`)
|
|
573
|
+
#
|
|
574
|
+
# @option options [Boolean, String, nil] :ignore_submodules (nil)
|
|
575
|
+
# ignore changes to submodules in the diff
|
|
576
|
+
#
|
|
577
|
+
# Pass `true` for `--ignore-submodules`; pass a string like
|
|
578
|
+
# `'all'` for `--ignore-submodules=all`.
|
|
579
|
+
#
|
|
580
|
+
# @option options [String] :src_prefix (nil) source prefix for
|
|
581
|
+
# diff headers (e.g. `'a/'`)
|
|
582
|
+
#
|
|
583
|
+
# @option options [String] :dst_prefix (nil) destination prefix
|
|
584
|
+
# for diff headers (e.g. `'b/'`)
|
|
585
|
+
#
|
|
586
|
+
# @option options [Boolean, nil] :no_prefix (nil) do not show any
|
|
587
|
+
# source or destination prefix
|
|
588
|
+
#
|
|
589
|
+
# @option options [Boolean, nil] :default_prefix (nil) use the
|
|
590
|
+
# default source and destination prefixes
|
|
591
|
+
#
|
|
592
|
+
# @option options [String] :line_prefix (nil) prepend an
|
|
593
|
+
# additional prefix to every line of output
|
|
594
|
+
#
|
|
595
|
+
# @option options [Boolean, nil] :ita_invisible_in_index (nil) make
|
|
596
|
+
# intent-to-add entries appear as new files in `git diff`
|
|
597
|
+
#
|
|
598
|
+
# @option options [Boolean, nil] :ita_visible_in_index (nil) revert
|
|
599
|
+
# `--ita-invisible-in-index`
|
|
600
|
+
#
|
|
601
|
+
# @option options [Integer, String] :max_depth (nil) descend at
|
|
602
|
+
# most this many levels of directories per pathspec
|
|
603
|
+
#
|
|
604
|
+
# @option options [Boolean, nil] :cached (nil) compare the index to
|
|
605
|
+
# HEAD or a named commit
|
|
606
|
+
#
|
|
607
|
+
# Alias: :staged
|
|
608
|
+
#
|
|
609
|
+
# @option options [Boolean, nil] :merge_base (nil) use merge base
|
|
610
|
+
# of commits
|
|
611
|
+
#
|
|
612
|
+
# @option options [Boolean, nil] :no_index (nil) compare two
|
|
613
|
+
# filesystem paths outside a repo
|
|
614
|
+
#
|
|
615
|
+
# @option options [Boolean, nil] :base (nil) compare working tree
|
|
616
|
+
# with the base version (stage #1)
|
|
617
|
+
#
|
|
618
|
+
# Alias: :"1"
|
|
619
|
+
#
|
|
620
|
+
# @option options [Boolean, nil] :ours (nil) compare working tree
|
|
621
|
+
# with our branch (stage #2)
|
|
622
|
+
#
|
|
623
|
+
# Alias: :"2"
|
|
624
|
+
#
|
|
625
|
+
# @option options [Boolean, nil] :theirs (nil) compare working tree
|
|
626
|
+
# with their branch (stage #3)
|
|
627
|
+
#
|
|
628
|
+
# Alias: :"3"
|
|
629
|
+
#
|
|
630
|
+
# @option options [Boolean, nil] :"0" (nil) omit diff output for
|
|
631
|
+
# unmerged entries
|
|
632
|
+
#
|
|
633
|
+
# @option options [Boolean, nil] :c (nil) produce a combined diff
|
|
634
|
+
# (useful when showing a merge)
|
|
635
|
+
#
|
|
636
|
+
# @option options [Boolean, nil] :cc (nil) produce a dense combined
|
|
637
|
+
# diff (useful when showing a merge)
|
|
638
|
+
#
|
|
639
|
+
# @option options [Boolean, nil] :combined_all_paths (nil) show
|
|
640
|
+
# paths from all parents of a combined diff
|
|
641
|
+
#
|
|
642
|
+
# @option options [Array<String>] :path (nil) zero or more paths
|
|
643
|
+
# to limit diff to
|
|
644
|
+
#
|
|
645
|
+
# @return [Git::CommandLineResult] the result of calling
|
|
646
|
+
# `git diff`
|
|
647
|
+
#
|
|
648
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
649
|
+
#
|
|
650
|
+
# @raise [Git::FailedError] if git exits outside the allowed
|
|
651
|
+
# range (exit code > 2)
|
|
652
|
+
#
|
|
653
|
+
# @api public
|
|
654
|
+
end
|
|
655
|
+
end
|
|
656
|
+
end
|