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,518 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git diff-files` command
|
|
8
|
+
#
|
|
9
|
+
# Compares the index (staging area) to the working tree, showing files that
|
|
10
|
+
# have been modified but not yet staged. This is the plumbing equivalent of
|
|
11
|
+
# checking for unstaged changes.
|
|
12
|
+
#
|
|
13
|
+
# @example Typical usage
|
|
14
|
+
# diff_files = Git::Commands::DiffFiles.new(execution_context)
|
|
15
|
+
# diff_files.call
|
|
16
|
+
# diff_files.call(patch: true)
|
|
17
|
+
# diff_files.call('lib/', 'spec/')
|
|
18
|
+
# diff_files.call(q: true)
|
|
19
|
+
#
|
|
20
|
+
# @note `arguments` block audited against
|
|
21
|
+
# https://git-scm.com/docs/git-diff-files/2.53.0
|
|
22
|
+
#
|
|
23
|
+
# @see https://git-scm.com/docs/git-diff-files git-diff-files
|
|
24
|
+
#
|
|
25
|
+
# @see Git::Commands
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
class DiffFiles < Git::Commands::Base
|
|
30
|
+
arguments do
|
|
31
|
+
literal 'diff-files'
|
|
32
|
+
|
|
33
|
+
# diff-files-specific options
|
|
34
|
+
flag_option :q
|
|
35
|
+
flag_option :unmerged, as: '-0'
|
|
36
|
+
flag_option :base
|
|
37
|
+
flag_option :ours
|
|
38
|
+
flag_option :theirs
|
|
39
|
+
flag_option :c
|
|
40
|
+
flag_option :cc
|
|
41
|
+
|
|
42
|
+
# Output format selection
|
|
43
|
+
flag_option %i[patch p u]
|
|
44
|
+
flag_option %i[no_patch s]
|
|
45
|
+
flag_option :raw
|
|
46
|
+
flag_option :patch_with_raw
|
|
47
|
+
value_option %i[unified U], inline: true
|
|
48
|
+
value_option :output, inline: true
|
|
49
|
+
value_option :output_indicator_new, inline: true
|
|
50
|
+
value_option :output_indicator_old, inline: true
|
|
51
|
+
value_option :output_indicator_context, inline: true
|
|
52
|
+
|
|
53
|
+
# Diff algorithm
|
|
54
|
+
flag_option :indent_heuristic, negatable: true
|
|
55
|
+
flag_option :minimal
|
|
56
|
+
flag_option :patience
|
|
57
|
+
flag_option :histogram
|
|
58
|
+
value_option :anchored, inline: true, repeatable: true
|
|
59
|
+
value_option :diff_algorithm, inline: true
|
|
60
|
+
|
|
61
|
+
# Statistics output formats
|
|
62
|
+
flag_or_value_option :stat, inline: true
|
|
63
|
+
value_option :stat_width, inline: true
|
|
64
|
+
value_option :stat_name_width, inline: true
|
|
65
|
+
value_option :stat_graph_width, inline: true
|
|
66
|
+
value_option :stat_count, inline: true
|
|
67
|
+
flag_option :compact_summary
|
|
68
|
+
flag_option :numstat
|
|
69
|
+
flag_option :shortstat
|
|
70
|
+
flag_or_value_option %i[dirstat X], inline: true
|
|
71
|
+
flag_option :cumulative
|
|
72
|
+
flag_or_value_option :dirstat_by_file, inline: true
|
|
73
|
+
flag_option :summary
|
|
74
|
+
flag_option :patch_with_stat
|
|
75
|
+
|
|
76
|
+
# Name and path display
|
|
77
|
+
flag_option :z
|
|
78
|
+
flag_option :name_only
|
|
79
|
+
flag_option :name_status
|
|
80
|
+
flag_or_value_option :submodule, inline: true
|
|
81
|
+
|
|
82
|
+
# Color output
|
|
83
|
+
flag_or_value_option :color, inline: true, negatable: true
|
|
84
|
+
flag_or_value_option :color_moved, inline: true, negatable: true
|
|
85
|
+
value_option :color_moved_ws, inline: true
|
|
86
|
+
flag_option :no_color_moved_ws
|
|
87
|
+
|
|
88
|
+
# Word diff
|
|
89
|
+
flag_or_value_option :word_diff, inline: true
|
|
90
|
+
value_option :word_diff_regex, inline: true
|
|
91
|
+
flag_or_value_option :color_words, inline: true
|
|
92
|
+
|
|
93
|
+
# Whitespace handling
|
|
94
|
+
flag_option :ignore_cr_at_eol
|
|
95
|
+
flag_option :ignore_space_at_eol
|
|
96
|
+
flag_option %i[ignore_space_change b]
|
|
97
|
+
flag_option %i[ignore_all_space w]
|
|
98
|
+
flag_option :ignore_blank_lines
|
|
99
|
+
value_option %i[ignore_matching_lines I], inline: true, repeatable: true
|
|
100
|
+
flag_option :check
|
|
101
|
+
value_option :ws_error_highlight, inline: true
|
|
102
|
+
|
|
103
|
+
# Rename/copy detection
|
|
104
|
+
flag_option :no_renames
|
|
105
|
+
flag_option :rename_empty, negatable: true
|
|
106
|
+
flag_option :full_index
|
|
107
|
+
flag_option :binary
|
|
108
|
+
flag_or_value_option :abbrev, inline: true
|
|
109
|
+
flag_or_value_option %i[break_rewrites B], inline: true
|
|
110
|
+
flag_or_value_option %i[find_renames M], inline: true
|
|
111
|
+
flag_or_value_option %i[find_copies C], inline: true
|
|
112
|
+
flag_option :find_copies_harder
|
|
113
|
+
flag_option %i[irreversible_delete D]
|
|
114
|
+
|
|
115
|
+
# Pickaxe / filtering
|
|
116
|
+
value_option :l, inline: true
|
|
117
|
+
value_option :diff_filter, inline: true
|
|
118
|
+
value_option :S, inline: true
|
|
119
|
+
value_option :G, inline: true
|
|
120
|
+
value_option :find_object, inline: true
|
|
121
|
+
flag_option :pickaxe_all
|
|
122
|
+
flag_option :pickaxe_regex
|
|
123
|
+
value_option :O, inline: true
|
|
124
|
+
value_option :skip_to, inline: true
|
|
125
|
+
value_option :rotate_to, inline: true
|
|
126
|
+
|
|
127
|
+
# Miscellaneous diff options
|
|
128
|
+
flag_option :R
|
|
129
|
+
flag_or_value_option :relative, inline: true, negatable: true
|
|
130
|
+
flag_option %i[text a]
|
|
131
|
+
value_option :inter_hunk_context, inline: true
|
|
132
|
+
flag_option %i[function_context W]
|
|
133
|
+
flag_option :exit_code
|
|
134
|
+
flag_option :quiet
|
|
135
|
+
flag_option :ext_diff, negatable: true
|
|
136
|
+
flag_option :textconv, negatable: true
|
|
137
|
+
flag_or_value_option :ignore_submodules, inline: true
|
|
138
|
+
value_option :src_prefix, inline: true
|
|
139
|
+
value_option :dst_prefix, inline: true
|
|
140
|
+
flag_option :no_prefix
|
|
141
|
+
flag_option :default_prefix
|
|
142
|
+
value_option :line_prefix, inline: true
|
|
143
|
+
flag_option :ita_invisible_in_index
|
|
144
|
+
value_option :max_depth, inline: true
|
|
145
|
+
|
|
146
|
+
# Operands: git diff-files has no required <tree-ish>; options precede end_of_options.
|
|
147
|
+
# end_of_options emits -- only when path arguments are present, protecting paths
|
|
148
|
+
# that start with '-' from being misinterpreted as flags.
|
|
149
|
+
end_of_options
|
|
150
|
+
operand :path, repeatable: true
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# git diff-files exits 1 when differences are found (not an error)
|
|
154
|
+
allow_exit_status 0..1
|
|
155
|
+
|
|
156
|
+
# @!method call(*, **)
|
|
157
|
+
#
|
|
158
|
+
# @overload call(**options)
|
|
159
|
+
# Compare the index to the working tree with no path restriction
|
|
160
|
+
#
|
|
161
|
+
# @param options [Hash] command options
|
|
162
|
+
#
|
|
163
|
+
# @option options [Boolean, nil] :q (nil) do not complain about nonexistent files; only
|
|
164
|
+
# report exit status
|
|
165
|
+
#
|
|
166
|
+
# @option options [Boolean, nil] :unmerged (nil) for unmerged entries, suppress diff output
|
|
167
|
+
# and show only "Unmerged"
|
|
168
|
+
#
|
|
169
|
+
# @option options [Boolean, nil] :base (nil) for unmerged entries, diff against stage 1
|
|
170
|
+
# (common ancestor)
|
|
171
|
+
#
|
|
172
|
+
# Short form: `-1`
|
|
173
|
+
#
|
|
174
|
+
# @option options [Boolean, nil] :ours (nil) for unmerged entries, diff against stage 2
|
|
175
|
+
# (our changes)
|
|
176
|
+
#
|
|
177
|
+
# Short form: `-2`
|
|
178
|
+
#
|
|
179
|
+
# @option options [Boolean, nil] :theirs (nil) for unmerged entries, diff against stage 3
|
|
180
|
+
# (their changes)
|
|
181
|
+
#
|
|
182
|
+
# Short form: `-3`
|
|
183
|
+
#
|
|
184
|
+
# @option options [Boolean, nil] :c (nil) for unmerged entries, show a combined diff of
|
|
185
|
+
# stage 2, stage 3, and the working tree
|
|
186
|
+
#
|
|
187
|
+
# @option options [Boolean, nil] :cc (nil) synonym for `c: true`
|
|
188
|
+
#
|
|
189
|
+
# @option options [Boolean, nil] :patch (nil) generate unified diff patch output
|
|
190
|
+
#
|
|
191
|
+
# Alias: :p, :u
|
|
192
|
+
#
|
|
193
|
+
# @option options [Boolean, nil] :no_patch (nil) suppress all diff output
|
|
194
|
+
#
|
|
195
|
+
# Alias: :s
|
|
196
|
+
#
|
|
197
|
+
# @option options [Boolean, nil] :raw (nil) generate diff in raw format (default output)
|
|
198
|
+
#
|
|
199
|
+
# @option options [Boolean, nil] :patch_with_raw (nil) synonym for `patch: true, raw: true`
|
|
200
|
+
#
|
|
201
|
+
# @option options [Integer, String] :unified (nil) number of context lines around diff
|
|
202
|
+
# hunks
|
|
203
|
+
#
|
|
204
|
+
# Alias: :U
|
|
205
|
+
#
|
|
206
|
+
# @option options [String] :output (nil) write diff output to a file instead of stdout
|
|
207
|
+
#
|
|
208
|
+
# @option options [String] :output_indicator_new (nil) character for new lines in patch output
|
|
209
|
+
#
|
|
210
|
+
# @option options [String] :output_indicator_old (nil) character for old lines in patch output
|
|
211
|
+
#
|
|
212
|
+
# @option options [String] :output_indicator_context (nil) character for context lines in
|
|
213
|
+
# patch output
|
|
214
|
+
#
|
|
215
|
+
# @option options [Boolean, nil] :indent_heuristic (nil) shift hunk boundaries for readability
|
|
216
|
+
# (`--indent-heuristic`)
|
|
217
|
+
#
|
|
218
|
+
# @option options [Boolean, nil] :no_indent_heuristic (nil) do not shift hunk boundaries
|
|
219
|
+
# for readability (`--no-indent-heuristic`)
|
|
220
|
+
#
|
|
221
|
+
# @option options [Boolean, nil] :minimal (nil) spend extra time to minimize diff size
|
|
222
|
+
#
|
|
223
|
+
# @option options [Boolean, nil] :patience (nil) use patience diff algorithm
|
|
224
|
+
#
|
|
225
|
+
# @option options [Boolean, nil] :histogram (nil) use histogram diff algorithm
|
|
226
|
+
#
|
|
227
|
+
# @option options [String, Array<String>] :anchored (nil) anchor lines matching the
|
|
228
|
+
# given text (repeatable)
|
|
229
|
+
#
|
|
230
|
+
# @option options [String] :diff_algorithm (nil) diff algorithm to use
|
|
231
|
+
#
|
|
232
|
+
# Accepted values: `'default'`, `'myers'`, `'minimal'`, `'patience'`, `'histogram'`.
|
|
233
|
+
#
|
|
234
|
+
# @option options [Boolean, String, nil] :stat (nil) show a diffstat
|
|
235
|
+
#
|
|
236
|
+
# Pass `true` for the default format, or a string like `'80,40,5'` for custom limits.
|
|
237
|
+
#
|
|
238
|
+
# @option options [Integer, String] :stat_width (nil) override diffstat total width
|
|
239
|
+
#
|
|
240
|
+
# @option options [Integer, String] :stat_name_width (nil) override diffstat filename
|
|
241
|
+
# column width
|
|
242
|
+
#
|
|
243
|
+
# @option options [Integer, String] :stat_graph_width (nil) override diffstat graph
|
|
244
|
+
# column width
|
|
245
|
+
#
|
|
246
|
+
# @option options [Integer, String] :stat_count (nil) limit diffstat to this many lines
|
|
247
|
+
#
|
|
248
|
+
# @option options [Boolean, nil] :compact_summary (nil) include creation/deletion mode
|
|
249
|
+
# changes in stat
|
|
250
|
+
#
|
|
251
|
+
# @option options [Boolean, nil] :numstat (nil) show per-file insertion/deletion counts
|
|
252
|
+
# (machine-friendly)
|
|
253
|
+
#
|
|
254
|
+
# @option options [Boolean, nil] :shortstat (nil) show aggregate totals line only
|
|
255
|
+
#
|
|
256
|
+
# @option options [Boolean, String, nil] :dirstat (nil) show distribution of changes per
|
|
257
|
+
# directory
|
|
258
|
+
#
|
|
259
|
+
# Pass `true` for the default, or a string like `'lines,cumulative,10'` for params.
|
|
260
|
+
#
|
|
261
|
+
# Alias: :X
|
|
262
|
+
#
|
|
263
|
+
# @option options [Boolean, nil] :cumulative (nil) synonym for `dirstat: 'cumulative'`
|
|
264
|
+
#
|
|
265
|
+
# @option options [Boolean, String, nil] :dirstat_by_file (nil) synonym for
|
|
266
|
+
# `dirstat: 'files,...'`
|
|
267
|
+
#
|
|
268
|
+
# @option options [Boolean, nil] :summary (nil) show condensed extended header information
|
|
269
|
+
#
|
|
270
|
+
# @option options [Boolean, nil] :patch_with_stat (nil) synonym for
|
|
271
|
+
# `patch: true, stat: true`
|
|
272
|
+
#
|
|
273
|
+
# @option options [Boolean, nil] :z (nil) use NUL as output field terminator instead of
|
|
274
|
+
# newline
|
|
275
|
+
#
|
|
276
|
+
# @option options [Boolean, nil] :name_only (nil) show only changed file names
|
|
277
|
+
#
|
|
278
|
+
# @option options [Boolean, nil] :name_status (nil) show changed file names with status
|
|
279
|
+
# letters
|
|
280
|
+
#
|
|
281
|
+
# @option options [Boolean, String, nil] :submodule (nil) how to show submodule differences
|
|
282
|
+
#
|
|
283
|
+
# Pass `true` for the default, or a string like `'log'` or `'diff'` for a format
|
|
284
|
+
# name.
|
|
285
|
+
#
|
|
286
|
+
# @option options [Boolean, String, nil] :color (nil) control diff colorization (`--color`)
|
|
287
|
+
#
|
|
288
|
+
# Pass `true` for `--color` or a string like `'always'` or `'auto'` for a specific mode.
|
|
289
|
+
#
|
|
290
|
+
# @option options [Boolean, nil] :no_color (nil) suppress colorized output (`--no-color`)
|
|
291
|
+
#
|
|
292
|
+
# @option options [Boolean, String, nil] :color_moved (nil) color moved lines differently
|
|
293
|
+
# (`--color-moved`)
|
|
294
|
+
#
|
|
295
|
+
# Pass `true` for the default, or a mode string such as `'zebra'` or `'dimmed-zebra'`.
|
|
296
|
+
#
|
|
297
|
+
# @option options [Boolean, nil] :no_color_moved (nil) disable moved-line coloring (`--no-color-moved`)
|
|
298
|
+
#
|
|
299
|
+
# @option options [String] :color_moved_ws (nil) whitespace handling for moved-line
|
|
300
|
+
# color detection
|
|
301
|
+
#
|
|
302
|
+
# Comma-separated list of modes, e.g.
|
|
303
|
+
# `'ignore-space-at-eol,ignore-space-change'`.
|
|
304
|
+
#
|
|
305
|
+
# @option options [Boolean, nil] :no_color_moved_ws (nil) synonym for
|
|
306
|
+
# `color_moved_ws: 'no'`
|
|
307
|
+
#
|
|
308
|
+
# @option options [Boolean, String, nil] :word_diff (nil) show a word-level diff
|
|
309
|
+
#
|
|
310
|
+
# Pass `true` for the default `plain` mode, or a string like `'color'`,
|
|
311
|
+
# `'porcelain'`, or `'none'` for a specific mode.
|
|
312
|
+
#
|
|
313
|
+
# @option options [String] :word_diff_regex (nil) regular expression defining word
|
|
314
|
+
# boundaries for word diff
|
|
315
|
+
#
|
|
316
|
+
# @option options [Boolean, String, nil] :color_words (nil) equivalent to
|
|
317
|
+
# `word_diff: 'color'` plus an optional word regex
|
|
318
|
+
#
|
|
319
|
+
# @option options [Boolean, nil] :ignore_cr_at_eol (nil) ignore carriage-return at end
|
|
320
|
+
# of line
|
|
321
|
+
#
|
|
322
|
+
# @option options [Boolean, nil] :ignore_space_at_eol (nil) ignore whitespace changes
|
|
323
|
+
# at end of line
|
|
324
|
+
#
|
|
325
|
+
# @option options [Boolean, nil] :ignore_space_change (nil) ignore changes in amount of
|
|
326
|
+
# whitespace
|
|
327
|
+
#
|
|
328
|
+
# Alias: :b
|
|
329
|
+
#
|
|
330
|
+
# @option options [Boolean, nil] :ignore_all_space (nil) ignore all whitespace when
|
|
331
|
+
# comparing lines
|
|
332
|
+
#
|
|
333
|
+
# Alias: :w
|
|
334
|
+
#
|
|
335
|
+
# @option options [Boolean, nil] :ignore_blank_lines (nil) ignore changes whose lines
|
|
336
|
+
# are all blank
|
|
337
|
+
#
|
|
338
|
+
# @option options [String, Array<String>] :ignore_matching_lines (nil) ignore changes
|
|
339
|
+
# whose lines all match the given regex (repeatable)
|
|
340
|
+
#
|
|
341
|
+
# Alias: :I
|
|
342
|
+
#
|
|
343
|
+
# @option options [Boolean, nil] :check (nil) warn if changes introduce whitespace errors
|
|
344
|
+
# or conflict markers
|
|
345
|
+
#
|
|
346
|
+
# @option options [String] :ws_error_highlight (nil) highlight whitespace errors in
|
|
347
|
+
# the given diff line types (e.g. `'new'`, `'old,new'`, `'all'`)
|
|
348
|
+
#
|
|
349
|
+
# @option options [Boolean, nil] :no_renames (nil) disable rename detection
|
|
350
|
+
#
|
|
351
|
+
# @option options [Boolean, nil] :rename_empty (nil) use empty blobs as rename sources
|
|
352
|
+
# (`--rename-empty`)
|
|
353
|
+
#
|
|
354
|
+
# @option options [Boolean, nil] :no_rename_empty (nil) disallow empty blobs as rename
|
|
355
|
+
# sources (`--no-rename-empty`)
|
|
356
|
+
#
|
|
357
|
+
# @option options [Boolean, nil] :full_index (nil) show full blob SHA in index line
|
|
358
|
+
#
|
|
359
|
+
# @option options [Boolean, nil] :binary (nil) output binary diff suitable for
|
|
360
|
+
# `git apply`
|
|
361
|
+
#
|
|
362
|
+
# @option options [Boolean, String, nil] :abbrev (nil) abbreviate blob names in raw output
|
|
363
|
+
#
|
|
364
|
+
# Pass `true` for the default, or an integer string like `'10'` for a specific
|
|
365
|
+
# length.
|
|
366
|
+
#
|
|
367
|
+
# @option options [Boolean, String, nil] :break_rewrites (nil) break total rewrites into
|
|
368
|
+
# delete-and-create pairs
|
|
369
|
+
#
|
|
370
|
+
# Alias: :B
|
|
371
|
+
#
|
|
372
|
+
# @option options [Boolean, String, nil] :find_renames (nil) detect renames
|
|
373
|
+
#
|
|
374
|
+
# Pass `true` for the default threshold, or a string like `'90%'` for a custom
|
|
375
|
+
# similarity threshold.
|
|
376
|
+
#
|
|
377
|
+
# Alias: :M
|
|
378
|
+
#
|
|
379
|
+
# @option options [Boolean, String, nil] :find_copies (nil) detect copies as well as
|
|
380
|
+
# renames
|
|
381
|
+
#
|
|
382
|
+
# Pass `true` for the default threshold, or a string like `'75%'` for a custom
|
|
383
|
+
# similarity threshold.
|
|
384
|
+
#
|
|
385
|
+
# Alias: :C
|
|
386
|
+
#
|
|
387
|
+
# @option options [Boolean, nil] :find_copies_harder (nil) inspect all unmodified files
|
|
388
|
+
# as copy sources (very expensive for large repos)
|
|
389
|
+
#
|
|
390
|
+
# @option options [Boolean, nil] :irreversible_delete (nil) omit preimage for deleted
|
|
391
|
+
# files
|
|
392
|
+
#
|
|
393
|
+
# Alias: :D
|
|
394
|
+
#
|
|
395
|
+
# @option options [Integer, String] :l (nil) limit the number of rename/copy
|
|
396
|
+
# candidates considered during exhaustive detection
|
|
397
|
+
#
|
|
398
|
+
# @option options [String] :diff_filter (nil) select only certain kinds of changed
|
|
399
|
+
# files
|
|
400
|
+
#
|
|
401
|
+
# A string of status letters such as `'A'`, `'M'`, `'D'`, `'ACDM'`, or lowercase
|
|
402
|
+
# to exclude.
|
|
403
|
+
#
|
|
404
|
+
# @option options [String] :S (nil) find changes that alter the occurrence count of
|
|
405
|
+
# the given string (pickaxe)
|
|
406
|
+
#
|
|
407
|
+
# @option options [String] :G (nil) find changes whose patch text contains lines
|
|
408
|
+
# matching the given regex (pickaxe)
|
|
409
|
+
#
|
|
410
|
+
# @option options [String] :find_object (nil) find changes involving the given
|
|
411
|
+
# object id
|
|
412
|
+
#
|
|
413
|
+
# @option options [Boolean, nil] :pickaxe_all (nil) show all changes in a changeset
|
|
414
|
+
# when using `-S` or `-G`
|
|
415
|
+
#
|
|
416
|
+
# @option options [Boolean, nil] :pickaxe_regex (nil) treat the `-S` string as an
|
|
417
|
+
# extended POSIX regular expression
|
|
418
|
+
#
|
|
419
|
+
# @option options [String] :O (nil) path to an orderfile controlling output file
|
|
420
|
+
# order
|
|
421
|
+
#
|
|
422
|
+
# @option options [String] :skip_to (nil) discard files before the named file in
|
|
423
|
+
# the output
|
|
424
|
+
#
|
|
425
|
+
# @option options [String] :rotate_to (nil) move files before the named file to end
|
|
426
|
+
# of output
|
|
427
|
+
#
|
|
428
|
+
# @option options [Boolean, nil] :R (nil) swap the two diff inputs
|
|
429
|
+
#
|
|
430
|
+
# @option options [Boolean, String, nil] :relative (nil) show paths relative to a
|
|
431
|
+
# directory (`--relative`)
|
|
432
|
+
#
|
|
433
|
+
# Pass `true` to use the current directory, or a path string to name the directory
|
|
434
|
+
# explicitly.
|
|
435
|
+
#
|
|
436
|
+
# @option options [Boolean, nil] :no_relative (nil) use absolute paths in output (`--no-relative`)
|
|
437
|
+
#
|
|
438
|
+
# @option options [Boolean, nil] :text (nil) treat all files as text
|
|
439
|
+
#
|
|
440
|
+
# Alias: :a
|
|
441
|
+
#
|
|
442
|
+
# @option options [Integer, String] :inter_hunk_context (nil) show context between
|
|
443
|
+
# diff hunks up to this many lines, fusing close hunks
|
|
444
|
+
#
|
|
445
|
+
# @option options [Boolean, nil] :function_context (nil) show whole function as context
|
|
446
|
+
# for each change
|
|
447
|
+
#
|
|
448
|
+
# Alias: :W
|
|
449
|
+
#
|
|
450
|
+
# @option options [Boolean, nil] :exit_code (nil) exit with status 1 if differences
|
|
451
|
+
# are found, 0 if none
|
|
452
|
+
#
|
|
453
|
+
# @option options [Boolean, nil] :quiet (nil) suppress all output
|
|
454
|
+
#
|
|
455
|
+
# Implies `--exit-code`.
|
|
456
|
+
#
|
|
457
|
+
# @option options [Boolean, nil] :ext_diff (nil) allow external diff helpers (`--ext-diff`)
|
|
458
|
+
#
|
|
459
|
+
# @option options [Boolean, nil] :no_ext_diff (nil) disallow external diff helpers (`--no-ext-diff`)
|
|
460
|
+
#
|
|
461
|
+
# @option options [Boolean, nil] :textconv (nil) allow external text-conversion
|
|
462
|
+
# filters (`--textconv`)
|
|
463
|
+
#
|
|
464
|
+
# @option options [Boolean, nil] :no_textconv (nil) disallow external text-conversion
|
|
465
|
+
# filters (`--no-textconv`)
|
|
466
|
+
#
|
|
467
|
+
# @option options [Boolean, String, nil] :ignore_submodules (nil) ignore submodule changes
|
|
468
|
+
#
|
|
469
|
+
# Pass `true` for `--ignore-submodules` (equivalent to `'all'`), or a string such
|
|
470
|
+
# as `'untracked'`, `'dirty'`, `'none'`, or `'all'`.
|
|
471
|
+
#
|
|
472
|
+
# @option options [String] :src_prefix (nil) source prefix for diff headers
|
|
473
|
+
# (e.g. `'a/'`)
|
|
474
|
+
#
|
|
475
|
+
# @option options [String] :dst_prefix (nil) destination prefix for diff headers
|
|
476
|
+
# (e.g. `'b/'`)
|
|
477
|
+
#
|
|
478
|
+
# @option options [Boolean, nil] :no_prefix (nil) omit source and destination prefixes
|
|
479
|
+
#
|
|
480
|
+
# @option options [Boolean, nil] :default_prefix (nil) use the default `a/` and `b/`
|
|
481
|
+
# prefixes
|
|
482
|
+
#
|
|
483
|
+
# @option options [String] :line_prefix (nil) prepend this prefix to every output
|
|
484
|
+
# line
|
|
485
|
+
#
|
|
486
|
+
# @option options [Boolean, nil] :ita_invisible_in_index (nil) make `git add -N` entries
|
|
487
|
+
# appear as new files in `git diff` and non-existent in `git diff --cached`
|
|
488
|
+
#
|
|
489
|
+
# @option options [Integer, String] :max_depth (nil) maximum directory depth to
|
|
490
|
+
# descend for pathspecs
|
|
491
|
+
#
|
|
492
|
+
# @return [Git::CommandLineResult] the result of calling `git diff-files`
|
|
493
|
+
#
|
|
494
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
495
|
+
#
|
|
496
|
+
# @raise [Git::FailedError] if git exits outside the allowed range
|
|
497
|
+
# (exit code > 1)
|
|
498
|
+
#
|
|
499
|
+
# @api public
|
|
500
|
+
#
|
|
501
|
+
# @overload call(*path, **options)
|
|
502
|
+
# Compare the index to the working tree, limiting output to specific paths
|
|
503
|
+
#
|
|
504
|
+
# @param path [Array<String>] pathspecs limiting which files are compared
|
|
505
|
+
#
|
|
506
|
+
# @param options [Hash] command options (same as the no-path overload)
|
|
507
|
+
#
|
|
508
|
+
# @return [Git::CommandLineResult] the result of calling `git diff-files`
|
|
509
|
+
#
|
|
510
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
511
|
+
#
|
|
512
|
+
# @raise [Git::FailedError] if git exits outside the allowed range
|
|
513
|
+
# (exit code > 1)
|
|
514
|
+
#
|
|
515
|
+
# @api public
|
|
516
|
+
end
|
|
517
|
+
end
|
|
518
|
+
end
|