Class: Git::Commands::DiffFiles Private

Inherits:
Base
  • Object
show all
Defined in:
lib/git/commands/diff_files.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Note:

arguments block audited against https://git-scm.com/docs/git-diff-files/2.53.0

Implements the git diff-files command

Compares the index (staging area) to the working tree, showing files that have been modified but not yet staged. This is the plumbing equivalent of checking for unstaged changes.

Examples:

Typical usage

diff_files = Git::Commands::DiffFiles.new(execution_context)
diff_files.call
diff_files.call(patch: true)
diff_files.call('lib/', 'spec/')
diff_files.call(q: true)

See Also:

Instance Method Summary collapse

Methods inherited from Base

allow_exit_status, arguments, #initialize, requires_git_version, skip_version_validation

Constructor Details

This class inherits a constructor from Git::Commands::Base

Instance Method Details

#call(**options) ⇒ Git::CommandLine::Result #call(*path, **options) ⇒ Git::CommandLine::Result

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Overloads:

  • #call(**options) ⇒ Git::CommandLine::Result

    Compare the index to the working tree with no path restriction

    Parameters:

    • options (Hash) —

      command options

    Options Hash (**options):

    • :q (Boolean, nil) — default: nil —

      do not complain about nonexistent files; only report exit status

    • :unmerged (Boolean, nil) — default: nil —

      for unmerged entries, suppress diff output and show only "Unmerged"

    • :base (Boolean, nil) — default: nil —

      for unmerged entries, diff against stage 1 (common ancestor)

      Short form: -1

    • :ours (Boolean, nil) — default: nil —

      for unmerged entries, diff against stage 2 (our changes)

      Short form: -2

    • :theirs (Boolean, nil) — default: nil —

      for unmerged entries, diff against stage 3 (their changes)

      Short form: -3

    • :c (Boolean, nil) — default: nil —

      for unmerged entries, show a combined diff of stage 2, stage 3, and the working tree

    • :cc (Boolean, nil) — default: nil —

      synonym for c: true

    • :patch (Boolean, nil) — default: nil —

      generate unified diff patch output

      Alias: :p, :u

    • :no_patch (Boolean, nil) — default: nil —

      suppress all diff output

      Alias: :s

    • :raw (Boolean, nil) — default: nil —

      generate diff in raw format (default output)

    • :patch_with_raw (Boolean, nil) — default: nil —

      synonym for patch: true, raw: true

    • :unified (Integer, String) — default: nil —

      number of context lines around diff hunks

      Alias: :U

    • :output (String) — default: nil —

      write diff output to a file instead of stdout

    • :output_indicator_new (String) — default: nil —

      character for new lines in patch output

    • :output_indicator_old (String) — default: nil —

      character for old lines in patch output

    • :output_indicator_context (String) — default: nil —

      character for context lines in patch output

    • :indent_heuristic (Boolean, nil) — default: nil —

      shift hunk boundaries for readability (--indent-heuristic)

    • :no_indent_heuristic (Boolean, nil) — default: nil —

      do not shift hunk boundaries for readability (--no-indent-heuristic)

    • :minimal (Boolean, nil) — default: nil —

      spend extra time to minimize diff size

    • :patience (Boolean, nil) — default: nil —

      use patience diff algorithm

    • :histogram (Boolean, nil) — default: nil —

      use histogram diff algorithm

    • :anchored (String, Array<String>) — default: nil —

      anchor lines matching the given text (repeatable)

    • :diff_algorithm (String) — default: nil —

      diff algorithm to use

      Accepted values: 'default', 'myers', 'minimal', 'patience', 'histogram'.

    • :stat (Boolean, String, nil) — default: nil —

      show a diffstat

      Pass true for the default format, or a string like '80,40,5' for custom limits.

    • :stat_width (Integer, String) — default: nil —

      override diffstat total width

    • :stat_name_width (Integer, String) — default: nil —

      override diffstat filename column width

    • :stat_graph_width (Integer, String) — default: nil —

      override diffstat graph column width

    • :stat_count (Integer, String) — default: nil —

      limit diffstat to this many lines

    • :compact_summary (Boolean, nil) — default: nil —

      include creation/deletion mode changes in stat

    • :numstat (Boolean, nil) — default: nil —

      show per-file insertion/deletion counts (machine-friendly)

    • :shortstat (Boolean, nil) — default: nil —

      show aggregate totals line only

    • :dirstat (Boolean, String, nil) — default: nil —

      show distribution of changes per directory

      Pass true for the default, or a string like 'lines,cumulative,10' for params.

      Alias: :X

    • :cumulative (Boolean, nil) — default: nil —

      synonym for dirstat: 'cumulative'

    • :dirstat_by_file (Boolean, String, nil) — default: nil —

      synonym for dirstat: 'files,...'

    • :summary (Boolean, nil) — default: nil —

      show condensed extended header information

    • :patch_with_stat (Boolean, nil) — default: nil —

      synonym for patch: true, stat: true

    • :z (Boolean, nil) — default: nil —

      use NUL as output field terminator instead of newline

    • :name_only (Boolean, nil) — default: nil —

      show only changed file names

    • :name_status (Boolean, nil) — default: nil —

      show changed file names with status letters

    • :submodule (Boolean, String, nil) — default: nil —

      how to show submodule differences

      Pass true for the default, or a string like 'log' or 'diff' for a format name.

    • :color (Boolean, String, nil) — default: nil —

      control diff colorization (--color)

      Pass true for --color or a string like 'always' or 'auto' for a specific mode.

    • :no_color (Boolean, nil) — default: nil —

      suppress colorized output (--no-color)

    • :color_moved (Boolean, String, nil) — default: nil —

      color moved lines differently (--color-moved)

      Pass true for the default, or a mode string such as 'zebra' or 'dimmed-zebra'.

    • :no_color_moved (Boolean, nil) — default: nil —

      disable moved-line coloring (--no-color-moved)

    • :color_moved_ws (String) — default: nil —

      whitespace handling for moved-line color detection

      Comma-separated list of modes, e.g. 'ignore-space-at-eol,ignore-space-change'.

    • :no_color_moved_ws (Boolean, nil) — default: nil —

      synonym for color_moved_ws: 'no'

    • :word_diff (Boolean, String, nil) — default: nil —

      show a word-level diff

      Pass true for the default plain mode, or a string like 'color', 'porcelain', or 'none' for a specific mode.

    • :word_diff_regex (String) — default: nil —

      regular expression defining word boundaries for word diff

    • :color_words (Boolean, String, nil) — default: nil —

      equivalent to word_diff: 'color' plus an optional word regex

    • :ignore_cr_at_eol (Boolean, nil) — default: nil —

      ignore carriage-return at end of line

    • :ignore_space_at_eol (Boolean, nil) — default: nil —

      ignore whitespace changes at end of line

    • :ignore_space_change (Boolean, nil) — default: nil —

      ignore changes in amount of whitespace

      Alias: :b

    • :ignore_all_space (Boolean, nil) — default: nil —

      ignore all whitespace when comparing lines

      Alias: :w

    • :ignore_blank_lines (Boolean, nil) — default: nil —

      ignore changes whose lines are all blank

    • :ignore_matching_lines (String, Array<String>) — default: nil —

      ignore changes whose lines all match the given regex (repeatable)

      Alias: :I

    • :check (Boolean, nil) — default: nil —

      warn if changes introduce whitespace errors or conflict markers

    • :ws_error_highlight (String) — default: nil —

      highlight whitespace errors in the given diff line types (e.g. 'new', 'old,new', 'all')

    • :no_renames (Boolean, nil) — default: nil —

      disable rename detection

    • :rename_empty (Boolean, nil) — default: nil —

      use empty blobs as rename sources (--rename-empty)

    • :no_rename_empty (Boolean, nil) — default: nil —

      disallow empty blobs as rename sources (--no-rename-empty)

    • :full_index (Boolean, nil) — default: nil —

      show full blob SHA in index line

    • :binary (Boolean, nil) — default: nil —

      output binary diff suitable for git apply

    • :abbrev (Boolean, String, nil) — default: nil —

      abbreviate blob names in raw output

      Pass true for the default, or an integer string like '10' for a specific length.

    • :break_rewrites (Boolean, String, nil) — default: nil —

      break total rewrites into delete-and-create pairs

      Alias: :B

    • :find_renames (Boolean, String, nil) — default: nil —

      detect renames

      Pass true for the default threshold, or a string like '90%' for a custom similarity threshold.

      Alias: :M

    • :find_copies (Boolean, String, nil) — default: nil —

      detect copies as well as renames

      Pass true for the default threshold, or a string like '75%' for a custom similarity threshold.

      Alias: :C

    • :find_copies_harder (Boolean, nil) — default: nil —

      inspect all unmodified files as copy sources (very expensive for large repos)

    • :irreversible_delete (Boolean, nil) — default: nil —

      omit preimage for deleted files

      Alias: :D

    • :l (Integer, String) — default: nil —

      limit the number of rename/copy candidates considered during exhaustive detection

    • :diff_filter (String) — default: nil —

      select only certain kinds of changed files

      A string of status letters such as 'A', 'M', 'D', 'ACDM', or lowercase to exclude.

    • :S (String) — default: nil —

      find changes that alter the occurrence count of the given string (pickaxe)

    • :G (String) — default: nil —

      find changes whose patch text contains lines matching the given regex (pickaxe)

    • :find_object (String) — default: nil —

      find changes involving the given object id

    • :pickaxe_all (Boolean, nil) — default: nil —

      show all changes in a changeset when using -S or -G

    • :pickaxe_regex (Boolean, nil) — default: nil —

      treat the -S string as an extended POSIX regular expression

    • :O (String) — default: nil —

      path to an orderfile controlling output file order

    • :skip_to (String) — default: nil —

      discard files before the named file in the output

    • :rotate_to (String) — default: nil —

      move files before the named file to end of output

    • :R (Boolean, nil) — default: nil —

      swap the two diff inputs

    • :relative (Boolean, String, nil) — default: nil —

      show paths relative to a directory (--relative)

      Pass true to use the current directory, or a path string to name the directory explicitly.

    • :no_relative (Boolean, nil) — default: nil —

      use absolute paths in output (--no-relative)

    • :text (Boolean, nil) — default: nil —

      treat all files as text

      Alias: :a

    • :inter_hunk_context (Integer, String) — default: nil —

      show context between diff hunks up to this many lines, fusing close hunks

    • :function_context (Boolean, nil) — default: nil —

      show whole function as context for each change

      Alias: :W

    • :exit_code (Boolean, nil) — default: nil —

      exit with status 1 if differences are found, 0 if none

    • :quiet (Boolean, nil) — default: nil —

      suppress all output

      Implies --exit-code.

    • :ext_diff (Boolean, nil) — default: nil —

      allow external diff helpers (--ext-diff)

    • :no_ext_diff (Boolean, nil) — default: nil —

      disallow external diff helpers (--no-ext-diff)

    • :textconv (Boolean, nil) — default: nil —

      allow external text-conversion filters (--textconv)

    • :no_textconv (Boolean, nil) — default: nil —

      disallow external text-conversion filters (--no-textconv)

    • :ignore_submodules (Boolean, String, nil) — default: nil —

      ignore submodule changes

      Pass true for --ignore-submodules (equivalent to 'all'), or a string such as 'untracked', 'dirty', 'none', or 'all'.

    • :src_prefix (String) — default: nil —

      source prefix for diff headers (e.g. 'a/')

    • :dst_prefix (String) — default: nil —

      destination prefix for diff headers (e.g. 'b/')

    • :no_prefix (Boolean, nil) — default: nil —

      omit source and destination prefixes

    • :default_prefix (Boolean, nil) — default: nil —

      use the default a/ and b/ prefixes

    • :line_prefix (String) — default: nil —

      prepend this prefix to every output line

    • :ita_invisible_in_index (Boolean, nil) — default: nil —

      make git add -N entries appear as new files in git diff and non-existent in git diff --cached

    • :max_depth (Integer, String) — default: nil —

      maximum directory depth to descend for pathspecs

    Returns:

    Raises:

    • (ArgumentError) —

      if unsupported options are provided

    • (Git::FailedError) —

      if git exits outside the allowed range (exit code > 1)

  • #call(*path, **options) ⇒ Git::CommandLine::Result

    Compare the index to the working tree, limiting output to specific paths

    Parameters:

    • path (Array<String>) —

      pathspecs limiting which files are compared

    • options (Hash) —

      command options (same as the no-path overload)

    Returns:

    Raises:

    • (ArgumentError) —

      if unsupported options are provided

    • (Git::FailedError) —

      if git exits outside the allowed range (exit code > 1)



514
515
516
# File 'lib/git/commands/diff_files.rb', line 514

def call(*, **)
  super
end