Struct git2::DiffFindOptions

source ·
pub struct DiffFindOptions { /* private fields */ }
Expand description

Control behavior of rename and copy detection

Implementations§

source§

impl DiffFindOptions

source

pub fn new() -> DiffFindOptions

Creates a new set of empty diff find options.

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

source

pub fn by_config(&mut self) -> &mut DiffFindOptions

Reset all flags back to their unset state, indicating that diff.renames should be used instead. This is overridden once any flag is set.

source

pub fn renames(&mut self, find: bool) -> &mut DiffFindOptions

Look for renames?

source

pub fn renames_from_rewrites(&mut self, find: bool) -> &mut DiffFindOptions

Consider old side of modified for renames?

source

pub fn copies(&mut self, find: bool) -> &mut DiffFindOptions

Look for copies?

source

pub fn copies_from_unmodified(&mut self, find: bool) -> &mut DiffFindOptions

Consider unmodified as copy sources?

For this to work correctly, use include_unmodified when the initial diff is being generated.

source

pub fn rewrites(&mut self, find: bool) -> &mut DiffFindOptions

Mark significant rewrites for split.

source

pub fn break_rewrites(&mut self, find: bool) -> &mut DiffFindOptions

Actually split large rewrites into delete/add pairs

source

pub fn for_untracked(&mut self, find: bool) -> &mut DiffFindOptions

Find renames/copies for untracked items in working directory.

For this to work correctly use the include_untracked option when the initial diff is being generated.

source

pub fn all(&mut self, find: bool) -> &mut DiffFindOptions

Turn on all finding features.

source

pub fn ignore_leading_whitespace( &mut self, ignore: bool, ) -> &mut DiffFindOptions

Measure similarity ignoring leading whitespace (default)

source

pub fn ignore_whitespace(&mut self, ignore: bool) -> &mut DiffFindOptions

Measure similarity ignoring all whitespace

source

pub fn dont_ignore_whitespace(&mut self, dont: bool) -> &mut DiffFindOptions

Measure similarity including all data

source

pub fn exact_match_only(&mut self, exact: bool) -> &mut DiffFindOptions

Measure similarity only by comparing SHAs (fast and cheap)

source

pub fn break_rewrites_for_renames_only( &mut self, b: bool, ) -> &mut DiffFindOptions

Do not break rewrites unless they contribute to a rename.

Normally, break_rewrites and rewrites will measure the self-similarity of modified files and split the ones that have changed a lot into a delete/add pair. Then the sides of that pair will be considered candidates for rename and copy detection

If you add this flag in and the split pair is not used for an actual rename or copy, then the modified record will be restored to a regular modified record instead of being split.

source

pub fn remove_unmodified(&mut self, remove: bool) -> &mut DiffFindOptions

Remove any unmodified deltas after find_similar is done.

Using copies_from_unmodified to emulate the --find-copies-harder behavior requires building a diff with the include_unmodified flag. If you do not want unmodified records in the final result, pas this flag to have them removed.

source

pub fn rename_threshold(&mut self, thresh: u16) -> &mut DiffFindOptions

Similarity to consider a file renamed (default 50)

source

pub fn rename_from_rewrite_threshold( &mut self, thresh: u16, ) -> &mut DiffFindOptions

Similarity of modified to be eligible rename source (default 50)

source

pub fn copy_threshold(&mut self, thresh: u16) -> &mut DiffFindOptions

Similarity to consider a file copy (default 50)

source

pub fn break_rewrite_threshold(&mut self, thresh: u16) -> &mut DiffFindOptions

Similarity to split modify into delete/add pair (default 60)

source

pub fn rename_limit(&mut self, limit: usize) -> &mut DiffFindOptions

Maximum similarity sources to examine for a file (somewhat like git-diff’s -l option or diff.renameLimit config)

Defaults to 200

source

pub unsafe fn raw(&mut self) -> *const git_diff_find_options

Acquire a pointer to the underlying raw options.

Trait Implementations§

source§

impl Default for DiffFindOptions

source§

fn default() -> Self

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

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.