summaryrefslogtreecommitdiff
path: root/src/diff.c
diff options
context:
space:
mode:
authorPierre-Olivier Latour <pol@mac.com>2015-06-30 09:30:20 -0700
committerPierre-Olivier Latour <pol@mac.com>2015-06-30 10:03:32 -0700
commitccef5adb63bdba7f5182aec9f0bdc83a2887d9d1 (patch)
treead391dc12dbdb5777b3bd0114c0c1013f17f2688 /src/diff.c
parent3451c871cb81310cefa41cae8e0e76a4944428a5 (diff)
downloadlibgit2-ccef5adb63bdba7f5182aec9f0bdc83a2887d9d1.tar.gz
Added git_diff_index_to_index()
Diffstat (limited to 'src/diff.c')
-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);