pub struct DiffOptions { /* private fields */ }
Expand description

Structure describing options about how the diff should be executed.

Implementations

Creates a new set of empty diff options.

All flags and other options are defaulted to false or their otherwise zero equivalents.

Flag indicating whether the sides of the diff will be reversed.

Flag indicating whether ignored files are included.

Flag indicating whether ignored directories are traversed deeply or not.

Flag indicating whether untracked files are in the diff

Flag indicating whether untracked directories are traversed deeply or not.

Flag indicating whether unmodified files are in the diff.

If enabled, then Typechange delta records are generated.

Event with include_typechange, the tree returned generally shows a deleted blob. This flag correctly labels the tree transitions as a typechange record with the new_file’s mode set to tree.

Note that the tree SHA will not be available.

Flag indicating whether file mode changes are ignored.

Flag indicating whether all submodules should be treated as unmodified.

Flag indicating whether case insensitive filenames should be used.

If pathspecs are specified, this flag means that they should be applied as an exact match instead of a fnmatch pattern.

Disable updating the binary flag in delta records. This is useful when iterating over a diff if you don’t need hunk and data callbacks and want to avoid having to load a file completely.

When diff finds an untracked directory, to match the behavior of core Git, it scans the contents for ignored and untracked files. If all contents are ignored, then the directory is ignored; if any contents are not ignored, then the directory is untracked. This is extra work that may not matter in many cases.

This flag turns off that scan and immediately labels an untracked directory as untracked (changing the behavior to not match core git).

When diff finds a file in the working directory with stat information different from the index, but the OID ends up being the same, write the correct stat information into the index. Note: without this flag, diff will always leave the index untouched.

Include unreadable files in the diff

Include unreadable files in the diff as untracked files

Treat all files as text, disabling binary attributes and detection.

Treat all files as binary, disabling text diffs

Ignore all whitespace

Ignore changes in the amount of whitespace

Ignore whitespace at the end of line

When generating patch text, include the content of untracked files.

This automatically turns on include_untracked but it does not turn on recurse_untracked_dirs. Add that flag if you want the content of every single untracked file.

When generating output, include the names of unmodified files if they are included in the Diff. Normally these are skipped in the formats that list files (e.g. name-only, name-status, raw). Even with this these will not be included in the patch format.

Use the “patience diff” algorithm

Take extra time to find the minimal diff

Include the necessary deflate/delta information so that git-apply can apply given diff information to binary files.

Use a heuristic that takes indentation and whitespace into account which generally can produce better diffs when dealing with ambiguous diff hunks.

Set the number of unchanged lines that define the boundary of a hunk (and to display before and after).

The default value for this is 3.

Set the maximum number of unchanged lines between hunk boundaries before the hunks will be merged into one.

The default value for this is 0.

The default value for this is core.abbrev or 7 if unset.

Maximum size (in bytes) above which a blob will be marked as binary automatically.

A negative value will disable this entirely.

The default value for this is 512MB.

The virtual “directory” to prefix old file names with in hunk headers.

The default value for this is “a”.

The virtual “directory” to prefix new file names with in hunk headers.

The default value for this is “b”.

Add to the array of paths/fnmatch patterns to constrain the diff.

Acquire a pointer to the underlying raw options.

This function is unsafe as the pointer is only valid so long as this structure is not moved, modified, or used elsewhere.

Trait Implementations

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.