summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-07-07 12:38:47 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2015-07-07 12:38:47 +0200
commit3704ac35d32a274339a66cd51abce6dbea315022 (patch)
tree8a006f891a9624f355f0c22c2bfa06a001edfa61 /src
parentea445e06028a1192e7e948cc81c87c4b39bc446e (diff)
parentccef5adb63bdba7f5182aec9f0bdc83a2887d9d1 (diff)
downloadlibgit2-3704ac35d32a274339a66cd51abce6dbea315022.tar.gz
Merge pull request #3277 from git-up/git_diff_index_to_index
Added git_diff_index_to_index()
Diffstat (limited to 'src')
-rw-r--r--src/diff.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/diff.c b/src/diff.c
index c1adcc662..44f627880 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1421,6 +1421,31 @@ int git_diff_tree_to_workdir_with_index(
return error;
}
+int git_diff_index_to_index(
+ git_diff **diff,
+ git_repository *repo,
+ git_index *old_index,
+ git_index *new_index,
+ const git_diff_options *opts)
+{
+ int error = 0;
+
+ assert(diff && old_index && new_index);
+
+ DIFF_FROM_ITERATORS(
+ git_iterator_for_index(
+ &a, old_index, GIT_ITERATOR_DONT_IGNORE_CASE, pfx, pfx),
+ git_iterator_for_index(
+ &b, new_index, GIT_ITERATOR_DONT_IGNORE_CASE, pfx, pfx)
+ );
+
+ /* if index is in case-insensitive order, re-sort deltas to match */
+ if (!error && (old_index->ignore_case || new_index->ignore_case))
+ diff_set_ignore_case(*diff, true);
+
+ return error;
+}
+
size_t git_diff_num_deltas(const git_diff *diff)
{
assert(diff);