summaryrefslogtreecommitdiff
path: root/src/diff.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2012-11-13 14:02:59 -0800
committerRussell Belfer <rb@github.com>2012-11-14 22:55:40 -0800
commitbad68c0a998116685ad75cab84210004dd2c5be1 (patch)
treed8b6db9be06ea1fcc150b5a7d2ba4cd635a174aa /src/diff.c
parent5735bf5e6ab4da347b601d4b85c09c5c701dc002 (diff)
downloadlibgit2-bad68c0a998116685ad75cab84210004dd2c5be1.tar.gz
Add iterator for git_index object
The index iterator could previously only be created from a repo object, but this allows creating an iterator from a `git_index` object instead (while keeping, though renaming, the old function).
Diffstat (limited to 'src/diff.c')
-rw-r--r--src/diff.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/diff.c b/src/diff.c
index b75ada1e0..e6634e6d2 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -777,6 +777,19 @@ int git_diff_tree_to_tree(
);
}
+int git_diff__tree_to_index(
+ git_diff_list **diff,
+ git_tree *tree,
+ git_index *index,
+ const git_diff_options *opts)
+{
+ DIFF_FROM_ITERATORS(
+ git_repository *repo = git_index_owner(index),
+ git_iterator_for_index_range(&a, index, pfx, pfx),
+ git_iterator_for_tree_range(&b, repo, tree, pfx, pfx)
+ );
+}
+
int git_diff_index_to_tree(
git_diff_list **diff,
git_repository *repo,
@@ -786,7 +799,7 @@ int git_diff_index_to_tree(
DIFF_FROM_ITERATORS(
assert(repo && diff),
git_iterator_for_tree_range(&a, repo, old_tree, pfx, pfx),
- git_iterator_for_index_range(&b, repo, pfx, pfx)
+ git_iterator_for_repo_index_range(&b, repo, pfx, pfx)
);
}
@@ -797,7 +810,7 @@ int git_diff_workdir_to_index(
{
DIFF_FROM_ITERATORS(
assert(repo && diff),
- git_iterator_for_index_range(&a, repo, pfx, pfx),
+ git_iterator_for_repo_index_range(&a, repo, pfx, pfx),
git_iterator_for_workdir_range(&b, repo, pfx, pfx)
);
}