Skip unreadable files for now.

This commit is contained in:
Alan Rogers 2014-05-15 17:40:28 +10:00
parent 158c8ba1ee
commit dc4906f12a
2 changed files with 6 additions and 4 deletions

View File

@ -1108,13 +1108,12 @@ int git_path_dirload_with_stat(
if ((error = git_buf_joinpath(&full, full.ptr, ps->path)) < 0 || if ((error = git_buf_joinpath(&full, full.ptr, ps->path)) < 0 ||
(error = git_path_lstat(full.ptr, &ps->st)) < 0) { (error = git_path_lstat(full.ptr, &ps->st)) < 0) {
if (error == GIT_ENOTFOUND) { if (error == GIT_ENOTFOUND || error == GIT_ENOACCESS) {
giterr_clear(); giterr_clear();
error = 0; error = 0;
git_vector_remove(contents, i--); git_vector_remove(contents, i--);
continue; continue;
} }
break; break;
} }

View File

@ -955,16 +955,19 @@ void test_status_worktree__nopermissions(void)
counts.expected_entry_count = 1; counts.expected_entry_count = 1;
counts.expected_paths = expected_paths; counts.expected_paths = expected_paths;
counts.expected_statuses = expected_statuses; counts.expected_statuses = expected_statuses;
counts.debug = 1;
opts.show = GIT_STATUS_SHOW_WORKDIR_ONLY; opts.show = GIT_STATUS_SHOW_WORKDIR_ONLY;
opts.flags = GIT_STATUS_OPT_DEFAULTS; opts.flags = GIT_STATUS_OPT_DEFAULTS;
cl_git_pass( cl_git_pass(
git_status_foreach_ext(repo, &opts, cb_status__normal, &counts) ); git_status_foreach_ext(repo, &opts, cb_status__normal, &counts) );
// Restore permissions so we can cleanup :)
p_chmod("empty_standard_repo/no_permission", 0777);
cl_assert_equal_i(counts.expected_entry_count, counts.entry_count); cl_assert_equal_i(counts.expected_entry_count, counts.entry_count);
cl_assert_equal_i(0, counts.wrong_status_flags_count); cl_assert_equal_i(0, counts.wrong_status_flags_count);
cl_assert_equal_i(0, counts.wrong_sorted_path); cl_assert_equal_i(0, counts.wrong_sorted_path);
// Restore permissions so we can cleanup :)
p_chmod("empty_standard_repo/no_permission", 0777);
} }