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,632 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
# Implements the `git log` command.
|
|
8
|
+
#
|
|
9
|
+
# Returns commit history.
|
|
10
|
+
#
|
|
11
|
+
# @example Typical usage
|
|
12
|
+
# log = Git::Commands::Log.new(execution_context)
|
|
13
|
+
# log.call
|
|
14
|
+
# log.call(max_count: 20, since: '2 weeks ago')
|
|
15
|
+
# log.call('v1.0..v2.0', pretty: 'format:%H %s', path: ['lib/', 'spec/'])
|
|
16
|
+
# log.call(name_only: true, patch: true)
|
|
17
|
+
#
|
|
18
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-log/2.53.0
|
|
19
|
+
#
|
|
20
|
+
# @see https://git-scm.com/docs/git-log git-log documentation
|
|
21
|
+
#
|
|
22
|
+
# @see Git::Commands
|
|
23
|
+
#
|
|
24
|
+
# @api private
|
|
25
|
+
#
|
|
26
|
+
class Log < Git::Commands::Base # rubocop:disable Metrics/ClassLength
|
|
27
|
+
arguments do
|
|
28
|
+
literal 'log'
|
|
29
|
+
|
|
30
|
+
# Commit Limiting
|
|
31
|
+
value_option %i[max_count n], inline: true
|
|
32
|
+
value_option :skip, inline: true
|
|
33
|
+
value_option :since, inline: true
|
|
34
|
+
value_option :after, inline: true
|
|
35
|
+
value_option :since_as_filter, inline: true
|
|
36
|
+
value_option :until, inline: true
|
|
37
|
+
value_option :before, inline: true
|
|
38
|
+
value_option :author, inline: true
|
|
39
|
+
value_option :committer, inline: true
|
|
40
|
+
value_option :grep_reflog, inline: true
|
|
41
|
+
value_option :grep, inline: true
|
|
42
|
+
flag_option :all_match
|
|
43
|
+
flag_option :invert_grep
|
|
44
|
+
flag_option %i[regexp_ignore_case i]
|
|
45
|
+
flag_option :basic_regexp
|
|
46
|
+
flag_option %i[extended_regexp E]
|
|
47
|
+
flag_option %i[fixed_strings F]
|
|
48
|
+
flag_option %i[perl_regexp P]
|
|
49
|
+
flag_option :remove_empty
|
|
50
|
+
flag_option :merges, negatable: true
|
|
51
|
+
value_option :min_parents, inline: true
|
|
52
|
+
value_option :max_parents, inline: true
|
|
53
|
+
flag_option :first_parent
|
|
54
|
+
flag_option :exclude_first_parent_only
|
|
55
|
+
flag_option :all
|
|
56
|
+
flag_or_value_option :branches, inline: true
|
|
57
|
+
flag_or_value_option :tags, inline: true
|
|
58
|
+
flag_or_value_option :remotes, inline: true
|
|
59
|
+
value_option :glob, inline: true
|
|
60
|
+
value_option :exclude, inline: true
|
|
61
|
+
value_option :exclude_hidden, inline: true
|
|
62
|
+
flag_option :reflog
|
|
63
|
+
flag_option :alternate_refs
|
|
64
|
+
flag_option :single_worktree
|
|
65
|
+
flag_option :ignore_missing
|
|
66
|
+
flag_option :bisect
|
|
67
|
+
# --stdin excluded: requires stdin interaction (execution-model conflict)
|
|
68
|
+
flag_option :cherry_mark
|
|
69
|
+
flag_option :cherry_pick
|
|
70
|
+
flag_option :left_only
|
|
71
|
+
flag_option :right_only
|
|
72
|
+
flag_option :cherry
|
|
73
|
+
flag_option %i[walk_reflogs g]
|
|
74
|
+
flag_option :merge
|
|
75
|
+
flag_option :boundary
|
|
76
|
+
|
|
77
|
+
# History Simplification
|
|
78
|
+
flag_option :simplify_by_decoration
|
|
79
|
+
flag_option :show_pulls
|
|
80
|
+
flag_option :full_history
|
|
81
|
+
flag_option :dense
|
|
82
|
+
flag_option :sparse
|
|
83
|
+
flag_option :simplify_merges
|
|
84
|
+
flag_or_value_option :ancestry_path, inline: true
|
|
85
|
+
|
|
86
|
+
# Commit Ordering
|
|
87
|
+
flag_option :date_order
|
|
88
|
+
flag_option :author_date_order
|
|
89
|
+
flag_option :topo_order
|
|
90
|
+
flag_option :reverse
|
|
91
|
+
|
|
92
|
+
# Object Traversal
|
|
93
|
+
flag_or_value_option :no_walk, inline: true
|
|
94
|
+
flag_option :do_walk
|
|
95
|
+
|
|
96
|
+
# Commit Formatting
|
|
97
|
+
flag_or_value_option %i[pretty format], inline: true
|
|
98
|
+
flag_option :abbrev_commit, negatable: true
|
|
99
|
+
flag_option :oneline
|
|
100
|
+
value_option :encoding, inline: true
|
|
101
|
+
flag_or_value_option :expand_tabs, inline: true, negatable: true
|
|
102
|
+
flag_or_value_option :notes, inline: true, negatable: true
|
|
103
|
+
flag_option :show_notes_by_default
|
|
104
|
+
flag_option :show_signature
|
|
105
|
+
flag_option :relative_date
|
|
106
|
+
value_option :date, inline: true
|
|
107
|
+
flag_option :parents
|
|
108
|
+
flag_option :children
|
|
109
|
+
flag_option :left_right
|
|
110
|
+
flag_option :graph
|
|
111
|
+
flag_or_value_option :show_linear_break, inline: true
|
|
112
|
+
flag_option :follow
|
|
113
|
+
flag_or_value_option :decorate, inline: true, negatable: true
|
|
114
|
+
value_option :decorate_refs, inline: true
|
|
115
|
+
value_option :decorate_refs_exclude, inline: true
|
|
116
|
+
flag_option :clear_decorations
|
|
117
|
+
flag_option :source
|
|
118
|
+
flag_option :use_mailmap, negatable: true
|
|
119
|
+
flag_option :full_diff
|
|
120
|
+
flag_option :log_size
|
|
121
|
+
|
|
122
|
+
# Diff Formatting
|
|
123
|
+
flag_option %i[patch p]
|
|
124
|
+
flag_option %i[no_patch s]
|
|
125
|
+
value_option :diff_merges, inline: true
|
|
126
|
+
flag_option :no_diff_merges
|
|
127
|
+
flag_option :combined_all_paths
|
|
128
|
+
flag_option :raw
|
|
129
|
+
flag_or_value_option :stat, inline: true
|
|
130
|
+
flag_option :compact_summary
|
|
131
|
+
flag_option :numstat
|
|
132
|
+
flag_option :shortstat
|
|
133
|
+
flag_or_value_option :dirstat, inline: true
|
|
134
|
+
flag_option :summary
|
|
135
|
+
flag_option :name_only
|
|
136
|
+
flag_option :name_status
|
|
137
|
+
flag_or_value_option :submodule, inline: true
|
|
138
|
+
flag_or_value_option :color, inline: true, negatable: true
|
|
139
|
+
flag_option :full_index
|
|
140
|
+
flag_option :binary
|
|
141
|
+
flag_or_value_option :abbrev, inline: true
|
|
142
|
+
value_option :diff_filter, inline: true
|
|
143
|
+
flag_or_value_option :find_renames, inline: true
|
|
144
|
+
flag_or_value_option :find_copies, inline: true
|
|
145
|
+
flag_option :find_copies_harder
|
|
146
|
+
flag_or_value_option :relative, inline: true, negatable: true
|
|
147
|
+
flag_option :text
|
|
148
|
+
flag_option :ignore_space_at_eol
|
|
149
|
+
flag_option %i[ignore_space_change b]
|
|
150
|
+
flag_option %i[ignore_all_space w]
|
|
151
|
+
flag_option :ignore_blank_lines
|
|
152
|
+
value_option :ignore_matching_lines, inline: true
|
|
153
|
+
flag_option :ext_diff, negatable: true
|
|
154
|
+
flag_option :textconv, negatable: true
|
|
155
|
+
flag_option :no_prefix
|
|
156
|
+
value_option :src_prefix, inline: true
|
|
157
|
+
value_option :dst_prefix, inline: true
|
|
158
|
+
|
|
159
|
+
operand :revision_range, repeatable: true
|
|
160
|
+
end_of_options
|
|
161
|
+
value_option :path, as_operand: true, repeatable: true
|
|
162
|
+
execution_option :timeout
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# @!method call(*, **)
|
|
166
|
+
#
|
|
167
|
+
# @overload call(*revision_range, **options)
|
|
168
|
+
#
|
|
169
|
+
# Execute the `git log` command.
|
|
170
|
+
#
|
|
171
|
+
# @param revision_range [Array<String>] zero or more revision specifiers
|
|
172
|
+
#
|
|
173
|
+
# Examples include `'v1.0..v2.0'`, `'abc123'`, `'^v0.9'`, or any
|
|
174
|
+
# expression accepted by git-log(1). When multiple values are given they
|
|
175
|
+
# are passed as separate positional arguments to git. Defaults to no
|
|
176
|
+
# revision constraint (i.e. all reachable commits).
|
|
177
|
+
#
|
|
178
|
+
# @param options [Hash] command options
|
|
179
|
+
#
|
|
180
|
+
# ### Commit Limiting
|
|
181
|
+
#
|
|
182
|
+
# @option options [Integer, String] :max_count (nil) maximum number of commits to output
|
|
183
|
+
#
|
|
184
|
+
# Alias: `:n`
|
|
185
|
+
#
|
|
186
|
+
# @option options [Integer, String] :skip (nil) skip this many commits before starting output
|
|
187
|
+
#
|
|
188
|
+
# @option options [String] :since (nil) show commits more recent than the given date
|
|
189
|
+
#
|
|
190
|
+
# Examples: `'2 weeks ago'`, `'2024-01-01'`
|
|
191
|
+
#
|
|
192
|
+
# @option options [String] :after (nil) show commits more recent than the given date
|
|
193
|
+
# (synonym for `:since`)
|
|
194
|
+
#
|
|
195
|
+
# @option options [String] :since_as_filter (nil) like `:since` but visits all commits
|
|
196
|
+
# in the range rather than stopping at the first older commit
|
|
197
|
+
#
|
|
198
|
+
# @option options [String] :until (nil) show commits older than the given date
|
|
199
|
+
#
|
|
200
|
+
# Examples: `'1 month ago'`, `'2024-01-01'`
|
|
201
|
+
#
|
|
202
|
+
# @option options [String] :before (nil) show commits older than the given date
|
|
203
|
+
# (synonym for `:until`)
|
|
204
|
+
#
|
|
205
|
+
# @option options [String] :author (nil) limit commits to those whose author line
|
|
206
|
+
# matches the given pattern (regular expression)
|
|
207
|
+
#
|
|
208
|
+
# @option options [String] :committer (nil) limit commits to those whose committer
|
|
209
|
+
# line matches the given pattern (regular expression)
|
|
210
|
+
#
|
|
211
|
+
# @option options [String] :grep_reflog (nil) limit commits to those with reflog entries
|
|
212
|
+
# matching the given pattern; requires `:walk_reflogs`
|
|
213
|
+
#
|
|
214
|
+
# @option options [String] :grep (nil) limit commits to those whose log message matches
|
|
215
|
+
# the given pattern (regular expression)
|
|
216
|
+
#
|
|
217
|
+
# @option options [Boolean, nil] :all_match (nil) limit output to commits matching all
|
|
218
|
+
# `--grep` patterns (default: any)
|
|
219
|
+
#
|
|
220
|
+
# @option options [Boolean, nil] :invert_grep (nil) limit output to commits whose log
|
|
221
|
+
# message does **not** match the `:grep` pattern
|
|
222
|
+
#
|
|
223
|
+
# @option options [Boolean, nil] :regexp_ignore_case (nil) match `--grep`, `--author`,
|
|
224
|
+
# and `--committer` patterns case-insensitively
|
|
225
|
+
#
|
|
226
|
+
# Alias: `:i`
|
|
227
|
+
#
|
|
228
|
+
# @option options [Boolean, nil] :basic_regexp (nil) treat limiting patterns as basic POSIX
|
|
229
|
+
# regular expressions (this is the default behavior)
|
|
230
|
+
#
|
|
231
|
+
# @option options [Boolean, nil] :extended_regexp (nil) treat limiting patterns as extended
|
|
232
|
+
# POSIX regular expressions
|
|
233
|
+
#
|
|
234
|
+
# Mutually exclusive with `:fixed_strings` and `:perl_regexp`. Alias: `:E`
|
|
235
|
+
#
|
|
236
|
+
# @option options [Boolean, nil] :fixed_strings (nil) treat limiting patterns as fixed
|
|
237
|
+
# strings instead of regular expressions
|
|
238
|
+
#
|
|
239
|
+
# Mutually exclusive with `:extended_regexp` and `:perl_regexp`. Alias: `:F`
|
|
240
|
+
#
|
|
241
|
+
# @option options [Boolean, nil] :perl_regexp (nil) treat limiting patterns as
|
|
242
|
+
# Perl-compatible regular expressions
|
|
243
|
+
#
|
|
244
|
+
# Mutually exclusive with `:extended_regexp` and `:fixed_strings`. Alias: `:P`
|
|
245
|
+
#
|
|
246
|
+
# @option options [Boolean, nil] :remove_empty (nil) stop when a given path disappears
|
|
247
|
+
# from the tree
|
|
248
|
+
#
|
|
249
|
+
# @option options [Boolean, nil] :merges (nil) include only merge commits (`--merges`)
|
|
250
|
+
#
|
|
251
|
+
# Equivalent to `--min-parents=2`.
|
|
252
|
+
#
|
|
253
|
+
# @option options [Boolean, nil] :no_merges (nil) exclude merge commits (`--no-merges`)
|
|
254
|
+
#
|
|
255
|
+
# Equivalent to `--max-parents=1`.
|
|
256
|
+
#
|
|
257
|
+
# @option options [Integer, String] :min_parents (nil) show only commits with at least this
|
|
258
|
+
# many parents
|
|
259
|
+
#
|
|
260
|
+
# @option options [Integer, String] :max_parents (nil) show only commits with at most this
|
|
261
|
+
# many parents
|
|
262
|
+
#
|
|
263
|
+
# @option options [Boolean, nil] :first_parent (nil) follow only the first parent commit
|
|
264
|
+
# upon seeing a merge commit
|
|
265
|
+
#
|
|
266
|
+
# @option options [Boolean, nil] :exclude_first_parent_only (nil) when excluding commits
|
|
267
|
+
# with `^`, follow only the first parent of merge commits
|
|
268
|
+
#
|
|
269
|
+
# @option options [Boolean, nil] :all (nil) pretend as if all refs in `refs/`, along
|
|
270
|
+
# with `HEAD`, are listed on the command line
|
|
271
|
+
#
|
|
272
|
+
# @option options [Boolean, String, nil] :branches (nil) pretend as if all refs in
|
|
273
|
+
# `refs/heads` are listed on the command line
|
|
274
|
+
#
|
|
275
|
+
# Pass a shell glob pattern (e.g. `'feature*'`) to restrict to matching branch names
|
|
276
|
+
#
|
|
277
|
+
# @option options [Boolean, String, nil] :tags (nil) pretend as if all refs in
|
|
278
|
+
# `refs/tags` are listed on the command line
|
|
279
|
+
#
|
|
280
|
+
# Pass a shell glob pattern to restrict to matching tag names
|
|
281
|
+
#
|
|
282
|
+
# @option options [Boolean, String, nil] :remotes (nil) pretend as if all refs in
|
|
283
|
+
# `refs/remotes` are listed on the command line
|
|
284
|
+
#
|
|
285
|
+
# Pass a shell glob pattern to restrict to matching remote-tracking branches
|
|
286
|
+
#
|
|
287
|
+
# @option options [String] :glob (nil) pretend as if all refs matching the given shell
|
|
288
|
+
# glob pattern are listed on the command line
|
|
289
|
+
#
|
|
290
|
+
# @option options [String] :exclude (nil) do not include refs matching the given glob
|
|
291
|
+
# that `--all`, `--branches`, `--tags`, `--remotes`, or `--glob` would otherwise use
|
|
292
|
+
#
|
|
293
|
+
# @option options [String] :exclude_hidden (nil) do not include refs hidden by the given
|
|
294
|
+
# configuration; value is one of `fetch`, `receive`, or `uploadpack`
|
|
295
|
+
#
|
|
296
|
+
# @option options [Boolean, nil] :reflog (nil) pretend as if all objects mentioned by
|
|
297
|
+
# reflogs are listed on the command line
|
|
298
|
+
#
|
|
299
|
+
# @option options [Boolean, nil] :alternate_refs (nil) pretend as if all objects mentioned
|
|
300
|
+
# as ref tips of alternate repositories are listed on the command line
|
|
301
|
+
#
|
|
302
|
+
# @option options [Boolean, nil] :single_worktree (nil) examine only the current working
|
|
303
|
+
# tree when `--all`, `--reflog`, or similar options are in use
|
|
304
|
+
#
|
|
305
|
+
# @option options [Boolean, nil] :ignore_missing (nil) ignore invalid object names in input
|
|
306
|
+
#
|
|
307
|
+
# @option options [Boolean, nil] :bisect (nil) pretend as if the bad bisect ref was listed
|
|
308
|
+
# and the good bisect refs were excluded
|
|
309
|
+
#
|
|
310
|
+
# @option options [Boolean, nil] :cherry_mark (nil) like `:cherry_pick` but marks
|
|
311
|
+
# equivalent commits with `=` instead of omitting them; inequivalent ones with +++
|
|
312
|
+
#
|
|
313
|
+
# @option options [Boolean, nil] :cherry_pick (nil) omit commits that introduce the same
|
|
314
|
+
# change as a commit on the other side of a symmetric difference
|
|
315
|
+
#
|
|
316
|
+
# @option options [Boolean, nil] :left_only (nil) list only commits reachable from the
|
|
317
|
+
# left side of a symmetric difference
|
|
318
|
+
#
|
|
319
|
+
# @option options [Boolean, nil] :right_only (nil) list only commits reachable from the
|
|
320
|
+
# right side of a symmetric difference
|
|
321
|
+
#
|
|
322
|
+
# @option options [Boolean, nil] :cherry (nil) synonym for
|
|
323
|
+
# `--right-only --cherry-mark --no-merges`
|
|
324
|
+
#
|
|
325
|
+
# @option options [Boolean, nil] :walk_reflogs (nil) walk reflog entries from most recent
|
|
326
|
+
# to oldest instead of the commit ancestry chain
|
|
327
|
+
#
|
|
328
|
+
# Alias: `:g`
|
|
329
|
+
#
|
|
330
|
+
# @option options [Boolean, nil] :merge (nil) show commits touching conflicted paths in
|
|
331
|
+
# the range `HEAD...MERGE_HEAD`; only useful with unmerged index entries
|
|
332
|
+
#
|
|
333
|
+
# @option options [Boolean, nil] :boundary (nil) output excluded boundary commits,
|
|
334
|
+
# prefixed with `-`
|
|
335
|
+
#
|
|
336
|
+
# ### History Simplification
|
|
337
|
+
#
|
|
338
|
+
# @option options [Boolean, nil] :simplify_by_decoration (nil) show only commits referenced
|
|
339
|
+
# by some branch or tag
|
|
340
|
+
#
|
|
341
|
+
# @option options [Boolean, nil] :show_pulls (nil) include merge commits that are not
|
|
342
|
+
# TREESAME to their first parent but are TREESAME to a later parent
|
|
343
|
+
#
|
|
344
|
+
# @option options [Boolean, nil] :full_history (nil) do not prune history; show all commits
|
|
345
|
+
# that touched the given path(s)
|
|
346
|
+
#
|
|
347
|
+
# @option options [Boolean, nil] :dense (nil) show only commits not TREESAME to any parent
|
|
348
|
+
#
|
|
349
|
+
# @option options [Boolean, nil] :sparse (nil) show all commits in the simplified history
|
|
350
|
+
#
|
|
351
|
+
# @option options [Boolean, nil] :simplify_merges (nil) remove needless merges from the
|
|
352
|
+
# result of `:full_history` with parent rewriting
|
|
353
|
+
#
|
|
354
|
+
# @option options [Boolean, String, nil] :ancestry_path (nil) limit to commits on the
|
|
355
|
+
# ancestry chain between the range endpoints
|
|
356
|
+
#
|
|
357
|
+
# Pass `true` for `--ancestry-path`; pass a commit SHA for `--ancestry-path=<commit>`
|
|
358
|
+
#
|
|
359
|
+
# ### Commit Ordering
|
|
360
|
+
#
|
|
361
|
+
# @option options [Boolean, nil] :date_order (nil) show commits in commit timestamp order,
|
|
362
|
+
# no parents before all children
|
|
363
|
+
#
|
|
364
|
+
# @option options [Boolean, nil] :author_date_order (nil) like `:date_order` but ordered
|
|
365
|
+
# by author timestamp
|
|
366
|
+
#
|
|
367
|
+
# @option options [Boolean, nil] :topo_order (nil) avoid showing commits on multiple lines
|
|
368
|
+
# of history intermixed
|
|
369
|
+
#
|
|
370
|
+
# @option options [Boolean, nil] :reverse (nil) output selected commits in reverse order;
|
|
371
|
+
# cannot be combined with `:walk_reflogs`
|
|
372
|
+
#
|
|
373
|
+
# ### Object Traversal
|
|
374
|
+
#
|
|
375
|
+
# @option options [Boolean, String, nil] :no_walk (nil) show only the given commits without
|
|
376
|
+
# traversing ancestors
|
|
377
|
+
#
|
|
378
|
+
# Pass `true` for `--no-walk` (sorted); pass `"unsorted"` for `--no-walk=unsorted`
|
|
379
|
+
#
|
|
380
|
+
# @option options [Boolean, nil] :do_walk (nil) override a previous `--no-walk`
|
|
381
|
+
#
|
|
382
|
+
# ### Commit Formatting
|
|
383
|
+
#
|
|
384
|
+
# @option options [Boolean, String, nil] :pretty (nil) pretty-print commit log in a format
|
|
385
|
+
#
|
|
386
|
+
# Pass `true` for `--pretty` (`medium` format); pass a format name such as `"oneline"`,
|
|
387
|
+
# `"short"`, `"full"`, `"fuller"`, `"email"`, `"raw"`, or a `format:<string>`
|
|
388
|
+
# expression for `--pretty=<format>`.
|
|
389
|
+
#
|
|
390
|
+
# Alias: `:format`
|
|
391
|
+
#
|
|
392
|
+
# @option options [Boolean, nil] :abbrev_commit (nil) abbreviate commit hash (`--abbrev-commit`)
|
|
393
|
+
#
|
|
394
|
+
# @option options [Boolean, nil] :no_abbrev_commit (nil) do not abbreviate commit hash (`--no-abbrev-commit`)
|
|
395
|
+
#
|
|
396
|
+
# @option options [Boolean, nil] :oneline (nil) shorthand for
|
|
397
|
+
# `--pretty=oneline --abbrev-commit`
|
|
398
|
+
#
|
|
399
|
+
# @option options [String] :encoding (nil) re-encode the commit log message in the
|
|
400
|
+
# given character encoding before output
|
|
401
|
+
#
|
|
402
|
+
# @option options [Boolean, String, nil] :expand_tabs (nil) expand tabs in log messages (`--expand-tabs`)
|
|
403
|
+
#
|
|
404
|
+
# Pass `true` for `--expand-tabs` (width 8); pass an integer string like `"4"` for
|
|
405
|
+
# `--expand-tabs=<n>`
|
|
406
|
+
#
|
|
407
|
+
# @option options [Boolean, nil] :no_expand_tabs (nil) do not expand tabs in log messages (`--no-expand-tabs`)
|
|
408
|
+
#
|
|
409
|
+
# @option options [Boolean, String, nil] :notes (nil) show notes annotating the commit (`--notes`)
|
|
410
|
+
#
|
|
411
|
+
# Pass `true` for `--notes`; pass a ref string for `--notes=<ref>`
|
|
412
|
+
#
|
|
413
|
+
# @option options [Boolean, nil] :no_notes (nil) suppress notes output (`--no-notes`)
|
|
414
|
+
#
|
|
415
|
+
# @option options [Boolean, nil] :show_notes_by_default (nil) show the default notes unless
|
|
416
|
+
# options for displaying specific notes are given
|
|
417
|
+
#
|
|
418
|
+
# @option options [Boolean, nil] :show_signature (nil) verify a signed commit with
|
|
419
|
+
# `gpg --verify`
|
|
420
|
+
#
|
|
421
|
+
# @option options [Boolean, nil] :relative_date (nil) show dates relative to the current
|
|
422
|
+
# time (synonym for `--date=relative`)
|
|
423
|
+
#
|
|
424
|
+
# @option options [String] :date (nil) format for dates in human-readable output
|
|
425
|
+
#
|
|
426
|
+
# Examples: `'relative'`, `'iso'`, `'short'`, `'format:%Y-%m-%d'`
|
|
427
|
+
#
|
|
428
|
+
# @option options [Boolean, nil] :parents (nil) print the parents of each commit and
|
|
429
|
+
# enable parent rewriting
|
|
430
|
+
#
|
|
431
|
+
# @option options [Boolean, nil] :children (nil) print the children of each commit and
|
|
432
|
+
# enable parent rewriting
|
|
433
|
+
#
|
|
434
|
+
# @option options [Boolean, nil] :left_right (nil) mark which side of a symmetric
|
|
435
|
+
# difference a commit is reachable from (`<` for left, `>` for right)
|
|
436
|
+
#
|
|
437
|
+
# @option options [Boolean, nil] :graph (nil) draw a text-based graphical representation
|
|
438
|
+
# of the commit history on the left side of output; implies `--topo-order`
|
|
439
|
+
#
|
|
440
|
+
# @option options [Boolean, String, nil] :show_linear_break (nil) put a barrier between
|
|
441
|
+
# non-linear consecutive commits when `--graph` is not used
|
|
442
|
+
#
|
|
443
|
+
# Pass `true` for `--show-linear-break`; pass a string for a custom barrier text
|
|
444
|
+
#
|
|
445
|
+
# @option options [Boolean, nil] :follow (nil) continue listing the history of a file
|
|
446
|
+
# beyond renames; requires `:path` to be set to exactly one path element
|
|
447
|
+
#
|
|
448
|
+
# @option options [Boolean, String, nil] :decorate (nil) print ref names of commits shown (`--decorate`)
|
|
449
|
+
#
|
|
450
|
+
# Pass `true` for `--decorate` (short format); pass a string such as `"full"` for
|
|
451
|
+
# `--decorate=<format>`
|
|
452
|
+
#
|
|
453
|
+
# @option options [Boolean, nil] :no_decorate (nil) do not print ref names (`--no-decorate`)
|
|
454
|
+
#
|
|
455
|
+
# @option options [String] :decorate_refs (nil) use only refs matching this pattern
|
|
456
|
+
# for decorations
|
|
457
|
+
#
|
|
458
|
+
# @option options [String] :decorate_refs_exclude (nil) do not use refs matching this
|
|
459
|
+
# pattern for decorations
|
|
460
|
+
#
|
|
461
|
+
# @option options [Boolean, nil] :clear_decorations (nil) clear all previous
|
|
462
|
+
# `--decorate-refs` / `--decorate-refs-exclude` options
|
|
463
|
+
#
|
|
464
|
+
# @option options [Boolean, nil] :source (nil) print the ref name by which each commit
|
|
465
|
+
# was reached
|
|
466
|
+
#
|
|
467
|
+
# @option options [Boolean, nil] :use_mailmap (nil) use the mailmap file to map author/
|
|
468
|
+
# committer names and addresses to canonical real names (`--use-mailmap`)
|
|
469
|
+
#
|
|
470
|
+
# @option options [Boolean, nil] :no_use_mailmap (nil) disable mailmap substitution (`--no-use-mailmap`)
|
|
471
|
+
#
|
|
472
|
+
# @option options [Boolean, nil] :full_diff (nil) show full diff for commits touching the
|
|
473
|
+
# specified paths, not just the diff for those paths
|
|
474
|
+
#
|
|
475
|
+
# @option options [Boolean, nil] :log_size (nil) include a `log size <n>` line for each
|
|
476
|
+
# commit indicating the length of the commit message in bytes
|
|
477
|
+
#
|
|
478
|
+
# ### Diff Formatting
|
|
479
|
+
#
|
|
480
|
+
# @option options [Boolean, nil] :patch (nil) generate patch output
|
|
481
|
+
#
|
|
482
|
+
# Alias: `:p`
|
|
483
|
+
#
|
|
484
|
+
# @option options [Boolean, nil] :no_patch (nil) suppress all diff output
|
|
485
|
+
#
|
|
486
|
+
# Alias: `:s`
|
|
487
|
+
#
|
|
488
|
+
# @option options [String] :diff_merges (nil) diff format for merge commits
|
|
489
|
+
#
|
|
490
|
+
# Values: `"off"`, `"on"`, `"first-parent"`, `"separate"`, `"combined"`,
|
|
491
|
+
# `"dense-combined"`, `"remerge"`
|
|
492
|
+
#
|
|
493
|
+
# @option options [Boolean, nil] :no_diff_merges (nil) disable diff output for merge
|
|
494
|
+
# commits (synonym for `--diff-merges=off`)
|
|
495
|
+
#
|
|
496
|
+
# @option options [Boolean, nil] :combined_all_paths (nil) in combined diffs, list the
|
|
497
|
+
# file name from all parents; only meaningful with `-c` or `--cc`
|
|
498
|
+
#
|
|
499
|
+
# @option options [Boolean, nil] :raw (nil) show a summary of changes using the raw diff
|
|
500
|
+
# format for each commit
|
|
501
|
+
#
|
|
502
|
+
# @option options [Boolean, String, nil] :stat (nil) generate a diffstat
|
|
503
|
+
#
|
|
504
|
+
# Pass `true` for `--stat`; pass a string such as `"80,40"` for
|
|
505
|
+
# `--stat=<width>[,<name-width>[,<count>]]`
|
|
506
|
+
#
|
|
507
|
+
# @option options [Boolean, nil] :compact_summary (nil) output a condensed summary of
|
|
508
|
+
# extended header information in diffstat; implies `--stat`
|
|
509
|
+
#
|
|
510
|
+
# @option options [Boolean, nil] :numstat (nil) like `--stat` but shows numbers of added
|
|
511
|
+
# and deleted lines in decimal notation without abbreviation
|
|
512
|
+
#
|
|
513
|
+
# @option options [Boolean, nil] :shortstat (nil) output only the last line of the
|
|
514
|
+
# `--stat` format
|
|
515
|
+
#
|
|
516
|
+
# @option options [Boolean, String, nil] :dirstat (nil) output distribution of relative
|
|
517
|
+
# amount of changes per sub-directory
|
|
518
|
+
#
|
|
519
|
+
# Pass `true` for `--dirstat`; pass a parameter string such as `"files,10"` for
|
|
520
|
+
# `--dirstat=<params>`
|
|
521
|
+
#
|
|
522
|
+
# @option options [Boolean, nil] :summary (nil) output a condensed summary of extended
|
|
523
|
+
# header information such as creations, renames, and mode changes
|
|
524
|
+
#
|
|
525
|
+
# @option options [Boolean, nil] :name_only (nil) show only the names of changed files
|
|
526
|
+
#
|
|
527
|
+
# @option options [Boolean, nil] :name_status (nil) show only the names and status of
|
|
528
|
+
# changed files
|
|
529
|
+
#
|
|
530
|
+
# @option options [Boolean, String, nil] :submodule (nil) specify how differences in
|
|
531
|
+
# submodules are shown
|
|
532
|
+
#
|
|
533
|
+
# Pass `true` for `--submodule` (log format); pass `"short"`, `"log"`, or `"diff"`
|
|
534
|
+
# for `--submodule=<format>`
|
|
535
|
+
#
|
|
536
|
+
# @option options [Boolean, String, nil] :color (nil) show colored diff output (`--color`)
|
|
537
|
+
#
|
|
538
|
+
# Pass `true` for `--color`; pass a string such as `"always"` for `--color=<when>`
|
|
539
|
+
#
|
|
540
|
+
# @option options [Boolean, nil] :no_color (nil) suppress colored diff output (`--no-color`)
|
|
541
|
+
#
|
|
542
|
+
# @option options [Boolean, nil] :full_index (nil) show the full pre- and post-image blob
|
|
543
|
+
# object names on the index line of patch output
|
|
544
|
+
#
|
|
545
|
+
# @option options [Boolean, nil] :binary (nil) output a binary diff that can be applied
|
|
546
|
+
# with `git apply`; implies `--patch`
|
|
547
|
+
#
|
|
548
|
+
# @option options [Boolean, String, nil] :abbrev (nil) show the shortest unique object
|
|
549
|
+
# name prefix in diff-raw output
|
|
550
|
+
#
|
|
551
|
+
# Pass `true` for `--abbrev`; pass an integer string for `--abbrev=<n>`
|
|
552
|
+
#
|
|
553
|
+
# @option options [String] :diff_filter (nil) select files by status letter
|
|
554
|
+
# (e.g. `"AD"` for Added and Deleted)
|
|
555
|
+
#
|
|
556
|
+
# @option options [Boolean, String, nil] :find_renames (nil) detect renames
|
|
557
|
+
#
|
|
558
|
+
# Pass `true` for `--find-renames`; pass a percentage threshold string such as
|
|
559
|
+
# `"90"` for `--find-renames=<n>`
|
|
560
|
+
#
|
|
561
|
+
# @option options [Boolean, String, nil] :find_copies (nil) detect copies as well as
|
|
562
|
+
# renames
|
|
563
|
+
#
|
|
564
|
+
# Pass `true` for `--find-copies`; pass a threshold string for `--find-copies=<n>`
|
|
565
|
+
#
|
|
566
|
+
# @option options [Boolean, nil] :find_copies_harder (nil) inspect unmodified files as
|
|
567
|
+
# candidates for copy source; expensive for large projects
|
|
568
|
+
#
|
|
569
|
+
# @option options [Boolean, String, nil] :relative (nil) show pathnames relative to the
|
|
570
|
+
# given subdirectory, or the current directory when run from a subdirectory (`--relative`)
|
|
571
|
+
#
|
|
572
|
+
# Pass `true` for `--relative`; pass a path string for `--relative=<path>`
|
|
573
|
+
#
|
|
574
|
+
# @option options [Boolean, nil] :no_relative (nil) show absolute pathnames (`--no-relative`)
|
|
575
|
+
#
|
|
576
|
+
# @option options [Boolean, nil] :text (nil) treat all files as text; alias `-a`
|
|
577
|
+
#
|
|
578
|
+
# @option options [Boolean, nil] :ignore_space_at_eol (nil) ignore changes in whitespace
|
|
579
|
+
# at end of line
|
|
580
|
+
#
|
|
581
|
+
# @option options [Boolean, nil] :ignore_space_change (nil) ignore changes in amount of
|
|
582
|
+
# whitespace; alias `-b`
|
|
583
|
+
#
|
|
584
|
+
# @option options [Boolean, nil] :ignore_all_space (nil) ignore whitespace when comparing
|
|
585
|
+
# lines; alias `-w`
|
|
586
|
+
#
|
|
587
|
+
# @option options [Boolean, nil] :ignore_blank_lines (nil) ignore changes whose lines are
|
|
588
|
+
# all blank
|
|
589
|
+
#
|
|
590
|
+
# @option options [String] :ignore_matching_lines (nil) ignore changes whose all lines
|
|
591
|
+
# match the given regular expression
|
|
592
|
+
#
|
|
593
|
+
# @option options [Boolean, nil] :ext_diff (nil) allow external diff helpers (`--ext-diff`)
|
|
594
|
+
#
|
|
595
|
+
# @option options [Boolean, nil] :no_ext_diff (nil) disallow external diff helpers (`--no-ext-diff`)
|
|
596
|
+
#
|
|
597
|
+
# @option options [Boolean, nil] :textconv (nil) allow external text conversion filters
|
|
598
|
+
# when comparing binary files (`--textconv`)
|
|
599
|
+
#
|
|
600
|
+
# @option options [Boolean, nil] :no_textconv (nil) disallow external text conversion filters
|
|
601
|
+
# (`--no-textconv`)
|
|
602
|
+
#
|
|
603
|
+
# @option options [Boolean, nil] :no_prefix (nil) do not show any source or destination
|
|
604
|
+
# prefix
|
|
605
|
+
#
|
|
606
|
+
# @option options [String] :src_prefix (nil) show the given source prefix instead of
|
|
607
|
+
# `a/`
|
|
608
|
+
#
|
|
609
|
+
# @option options [String] :dst_prefix (nil) show the given destination prefix instead
|
|
610
|
+
# of `b/`
|
|
611
|
+
#
|
|
612
|
+
# ### Paths
|
|
613
|
+
#
|
|
614
|
+
# @option options [Array<String>] :path (nil) limit commits to those that affected the
|
|
615
|
+
# given paths
|
|
616
|
+
#
|
|
617
|
+
# ### Execution
|
|
618
|
+
#
|
|
619
|
+
# @option options [Integer, Float] :timeout (nil) number of seconds to wait before the
|
|
620
|
+
# command is aborted with a timeout error
|
|
621
|
+
#
|
|
622
|
+
# @return [Git::CommandLineResult] the result of calling `git log`
|
|
623
|
+
#
|
|
624
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
625
|
+
#
|
|
626
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
627
|
+
#
|
|
628
|
+
# @api public
|
|
629
|
+
#
|
|
630
|
+
end
|
|
631
|
+
end
|
|
632
|
+
end
|