Struct git2::Diff [−][src]
pub struct Diff<'repo> { /* fields omitted */ }
Expand description
The diff object that contains all individual file deltas.
This is an opaque structure which will be allocated by one of the diff
generator functions on the Repository
structure (e.g. diff_tree_to_tree
or other diff_*
functions).
Implementations
Merge one diff into another.
This merges items from the “from” list into the “self” list. The resulting diff will have all items that appear in either list. If an item appears in both lists, then it will be “merged” to appear as if the old version was from the “onto” list and the new version is from the “from” list (with the exception that if the item has a pending DELETE in the middle, then it will show as deleted).
Returns an iterator over the deltas in this diff.
Return the diff delta for an entry in the diff list.
Check if deltas are sorted case sensitively or insensitively.
Iterate over a diff generating formatted text output.
Returning false
from the callback will terminate the iteration and
return an error from this function.
pub fn foreach(
&self,
file_cb: &mut (dyn FnMut(DiffDelta<'_>, f32) -> bool + '_),
binary_cb: Option<&mut (dyn FnMut(DiffDelta<'_>, DiffBinary<'_>) -> bool + '_)>,
hunk_cb: Option<&mut (dyn FnMut(DiffDelta<'_>, DiffHunk<'_>) -> bool + '_)>,
line_cb: Option<&mut (dyn FnMut(DiffDelta<'_>, Option<DiffHunk<'_>>, DiffLine<'_>) -> bool + '_)>
) -> Result<(), Error>
pub fn foreach(
&self,
file_cb: &mut (dyn FnMut(DiffDelta<'_>, f32) -> bool + '_),
binary_cb: Option<&mut (dyn FnMut(DiffDelta<'_>, DiffBinary<'_>) -> bool + '_)>,
hunk_cb: Option<&mut (dyn FnMut(DiffDelta<'_>, DiffHunk<'_>) -> bool + '_)>,
line_cb: Option<&mut (dyn FnMut(DiffDelta<'_>, Option<DiffHunk<'_>>, DiffLine<'_>) -> bool + '_)>
) -> Result<(), Error>
Loop over all deltas in a diff issuing callbacks.
Returning false
from any callback will terminate the iteration and
return an error from this function.
Transform a diff marking file renames, copies, etc.
This modifies a diff in place, replacing old entries that look like renames or copies with new entries reflecting those changes. This also will, if requested, break modified files into add/remove pairs if the amount of change is above a threshold.