summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-10-17 15:30:22 +0200
committerBen Straub <bs@github.com>2012-10-19 19:36:22 -0700
commit0ae81fc479bf3cf7ed31b3e3b070de7990102f1d (patch)
tree822324b25c1617c04d5fde7c2c6f0e28a8fc9c0f
parent2b7efe03406411dd8fe25bcc15b0783313097692 (diff)
downloadlibgit2-0ae81fc479bf3cf7ed31b3e3b070de7990102f1d.tar.gz
index: remove read_tree() progress indicator
git_index_read_tree() was exposing a parameter to provide the user with a progress indicator. Unfortunately, due to the recursive nature of the tree walk, the maximum number of items to process was unknown. Thus, the indicator was only counting processed entries, without providing any information how the number of remaining items.
-rw-r--r--include/git2/index.h3
-rw-r--r--src/checkout.c2
-rw-r--r--src/index.c17
-rw-r--r--src/reset.c2
-rw-r--r--tests-clar/checkout/index.c2
-rw-r--r--tests-clar/index/read_tree.c2
-rw-r--r--tests-clar/status/worktree.c2
7 files changed, 10 insertions, 20 deletions
diff --git a/include/git2/index.h b/include/git2/index.h
index 062932e1a..d8282e80f 100644
--- a/include/git2/index.h
+++ b/include/git2/index.h
@@ -343,10 +343,9 @@ GIT_EXTERN(int) git_index_entry_stage(const git_index_entry *entry);
*
* @param index an existing index object
* @param tree tree to read
- * @param stats structure that receives the total node count (may be NULL)
* @return 0 or an error code
*/
-GIT_EXTERN(int) git_index_read_tree(git_index *index, git_tree *tree, git_indexer_stats *stats);
+GIT_EXTERN(int) git_index_read_tree(git_index *index, git_tree *tree);
/** @} */
GIT_END_DECL
diff --git a/src/checkout.c b/src/checkout.c
index cbe13aa79..155ac5ac1 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -403,7 +403,7 @@ int git_checkout_tree(
if ((error = git_repository_index(&index, repo)) < 0)
goto cleanup;
- if ((error = git_index_read_tree(index, tree, NULL)) < 0)
+ if ((error = git_index_read_tree(index, tree)) < 0)
goto cleanup;
if ((error = git_index_write(index)) < 0)
diff --git a/src/index.c b/src/index.c
index f9f3b14cc..362c2c690 100644
--- a/src/index.c
+++ b/src/index.c
@@ -1039,12 +1039,10 @@ typedef struct read_tree_data {
static int read_tree_cb(const char *root, const git_tree_entry *tentry, void *data)
{
- read_tree_data *rtd = data;
+ git_index *index = (git_index *)data;
git_index_entry *entry = NULL;
git_buf path = GIT_BUF_INIT;
- rtd->stats->total++;
-
if (git_tree_entry__is_tree(tentry))
return 0;
@@ -1059,7 +1057,7 @@ static int read_tree_cb(const char *root, const git_tree_entry *tentry, void *da
entry->path = git_buf_detach(&path);
git_buf_free(&path);
- if (index_insert(rtd->index, entry, 0) < 0) {
+ if (index_insert(index, entry, 0) < 0) {
index_entry_free(entry);
return -1;
}
@@ -1067,16 +1065,9 @@ static int read_tree_cb(const char *root, const git_tree_entry *tentry, void *da
return 0;
}
-int git_index_read_tree(git_index *index, git_tree *tree, git_indexer_stats *stats)
+int git_index_read_tree(git_index *index, git_tree *tree)
{
- git_indexer_stats dummy_stats;
- read_tree_data rtd = {index, NULL};
-
- if (!stats) stats = &dummy_stats;
- stats->total = 0;
- rtd.stats = stats;
-
git_index_clear(index);
- return git_tree_walk(tree, read_tree_cb, GIT_TREEWALK_POST, &rtd);
+ return git_tree_walk(tree, read_tree_cb, GIT_TREEWALK_POST, index);
}
diff --git a/src/reset.c b/src/reset.c
index 3fcad7f46..642318d90 100644
--- a/src/reset.c
+++ b/src/reset.c
@@ -73,7 +73,7 @@ int git_reset(
goto cleanup;
}
- if (git_index_read_tree(index, tree, NULL) < 0) {
+ if (git_index_read_tree(index, tree) < 0) {
giterr_set(GITERR_INDEX, "%s - Failed to update the index.", ERROR_MSG);
goto cleanup;
}
diff --git a/tests-clar/checkout/index.c b/tests-clar/checkout/index.c
index 944d679f8..a21af5f60 100644
--- a/tests-clar/checkout/index.c
+++ b/tests-clar/checkout/index.c
@@ -14,7 +14,7 @@ static void reset_index_to_treeish(git_object *treeish)
cl_git_pass(git_object_peel(&tree, treeish, GIT_OBJ_TREE));
cl_git_pass(git_repository_index(&index, g_repo));
- cl_git_pass(git_index_read_tree(index, (git_tree *)tree, NULL));
+ cl_git_pass(git_index_read_tree(index, (git_tree *)tree));
cl_git_pass(git_index_write(index));
git_object_free(tree);
diff --git a/tests-clar/index/read_tree.c b/tests-clar/index/read_tree.c
index 0479332dc..c657d4f71 100644
--- a/tests-clar/index/read_tree.c
+++ b/tests-clar/index/read_tree.c
@@ -33,7 +33,7 @@ void test_index_read_tree__read_write_involution(void)
/* read-tree */
git_tree_lookup(&tree, repo, &expected);
- cl_git_pass(git_index_read_tree(index, tree, NULL));
+ cl_git_pass(git_index_read_tree(index, tree));
git_tree_free(tree);
cl_git_pass(git_tree_create_fromindex(&tree_oid, index));
diff --git a/tests-clar/status/worktree.c b/tests-clar/status/worktree.c
index 908d34510..4ff315f84 100644
--- a/tests-clar/status/worktree.c
+++ b/tests-clar/status/worktree.c
@@ -486,7 +486,7 @@ static void fill_index_wth_head_entries(git_repository *repo, git_index *index)
cl_git_pass(git_commit_lookup(&commit, repo, &oid));
cl_git_pass(git_commit_tree(&tree, commit));
- cl_git_pass(git_index_read_tree(index, tree, NULL));
+ cl_git_pass(git_index_read_tree(index, tree));
cl_git_pass(git_index_write(index));
git_tree_free(tree);