diff --git a/LibGit2Sharp/CompareOptions.cs b/LibGit2Sharp/CompareOptions.cs
index fb4234439..abf67c32d 100644
--- a/LibGit2Sharp/CompareOptions.cs
+++ b/LibGit2Sharp/CompareOptions.cs
@@ -2,6 +2,25 @@
namespace LibGit2Sharp
{
+ ///
+ /// Represents a mode for handling whitespace while making diff.
+ ///
+ public enum DiffWhitespaceMode
+ {
+ ///
+ /// Ignore all whitespace
+ ///
+ IgnoreAllWhitespaces,
+ ///
+ /// Ignore changes in amount of whitespace
+ ///
+ IgnoreWhitespaceChange,
+ ///
+ /// Ignore whitespace at end of line
+ ///
+ IgnoreWhitespaceEol
+ }
+
///
/// Options to define file comparison behavior.
///
@@ -34,6 +53,12 @@ public CompareOptions()
///
public SimilarityOptions Similarity { get; set; }
+ ///
+ /// Represents a mode for handling whitespace while making diff.
+ /// By default is null - it means no extra flag is passed
+ ///
+ public DiffWhitespaceMode? WhitespaceMode { get; set; }
+
///
/// Include "unmodified" entries in the results.
///
diff --git a/LibGit2Sharp/Diff.cs b/LibGit2Sharp/Diff.cs
index 087ee8d6d..5ac438561 100644
--- a/LibGit2Sharp/Diff.cs
+++ b/LibGit2Sharp/Diff.cs
@@ -58,6 +58,22 @@ private static GitDiffOptions BuildOptions(DiffModifiers diffOptions, FilePath[]
options.Flags |= GitDiffOptionFlags.GIT_DIFF_MINIMAL;
}
+ if (compareOptions.WhitespaceMode != null)
+ {
+ if (compareOptions.WhitespaceMode == DiffWhitespaceMode.IgnoreAllWhitespaces)
+ {
+ options.Flags |= GitDiffOptionFlags.GIT_DIFF_IGNORE_WHITESPACE;
+ }
+ else if (compareOptions.WhitespaceMode == DiffWhitespaceMode.IgnoreWhitespaceChange)
+ {
+ options.Flags |= GitDiffOptionFlags.GIT_DIFF_IGNORE_WHITESPACE_CHANGE;
+ }
+ else
+ {
+ options.Flags |= GitDiffOptionFlags.GIT_DIFF_IGNORE_WHITESPACE_EOL;
+ }
+ }
+
if (diffOptions.HasFlag(DiffModifiers.DisablePathspecMatch))
{
options.Flags |= GitDiffOptionFlags.GIT_DIFF_DISABLE_PATHSPEC_MATCH;
@@ -546,7 +562,7 @@ private DiffHandle BuildDiffList(
MatchedPathsAggregator matchedPaths = null;
- // We can't match paths unless we've got something to match
+ // We can't match paths unless we've got something to match
// against and we're told to do so.
if (filePaths != null && explicitPathsOptions != null)
{
pFad - Phonifier reborn
Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy