From c0d5acf69a647baa06bd5d8e570105b93b5070e7 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Thu, 15 Nov 2012 14:43:21 -0200 Subject: [PATCH] Add option to ignore file mode in diffs --- include/git2/diff.h | 2 ++ src/diff.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/include/git2/diff.h b/include/git2/diff.h index 9b11f169b..6396aaa02 100644 --- a/include/git2/diff.h +++ b/include/git2/diff.h @@ -86,6 +86,8 @@ typedef enum { * mode set to tree. Note: the tree SHA will not be available. */ GIT_DIFF_INCLUDE_TYPECHANGE_TREES = (1 << 16), + /** Ignore file mode changes */ + GIT_DIFF_IGNORE_FILEMODE = (1 << 17), } git_diff_option_t; /** diff --git a/src/diff.c b/src/diff.c index 6f48d72a2..29ce97bb4 100644 --- a/src/diff.c +++ b/src/diff.c @@ -267,6 +267,9 @@ static git_diff_list *git_diff_list_alloc( memcpy(&diff->opts, opts, sizeof(git_diff_options)); + if(opts->flags & GIT_DIFF_IGNORE_FILEMODE) + diff->diffcaps = diff->diffcaps & ~GIT_DIFFCAPS_TRUST_MODE_BITS; + /* pathspec init will do nothing for empty pathspec */ if (git_pathspec_init(&diff->pathspec, &opts->pathspec, &diff->pool) < 0) goto fail;