Commit 482e3853 by Edward Thomson

Merge remote-tracking branch 'mathworks/longpath_filter_bug' into main

parents 0644c2e8 0d30e7bb
...@@ -138,12 +138,13 @@ static int write_file_filtered( ...@@ -138,12 +138,13 @@ static int write_file_filtered(
git_object_size_t *size, git_object_size_t *size,
git_odb *odb, git_odb *odb,
const char *full_path, const char *full_path,
git_filter_list *fl) git_filter_list *fl,
git_repository* repo)
{ {
int error; int error;
git_buf tgt = GIT_BUF_INIT; git_buf tgt = GIT_BUF_INIT;
error = git_filter_list_apply_to_file(&tgt, fl, NULL, full_path); error = git_filter_list_apply_to_file(&tgt, fl, repo, full_path);
/* Write the file to disk if it was properly filtered */ /* Write the file to disk if it was properly filtered */
if (!error) { if (!error) {
...@@ -238,7 +239,7 @@ int git_blob__create_from_paths( ...@@ -238,7 +239,7 @@ int git_blob__create_from_paths(
error = write_file_stream(id, odb, content_path, size); error = write_file_stream(id, odb, content_path, size);
else { else {
/* We need to apply one or more filters */ /* We need to apply one or more filters */
error = write_file_filtered(id, &size, odb, content_path, fl); error = write_file_filtered(id, &size, odb, content_path, fl, repo);
git_filter_list_free(fl); git_filter_list_free(fl);
} }
......
...@@ -64,15 +64,12 @@ void test_win32_longpath__workdir_path_validated(void) ...@@ -64,15 +64,12 @@ void test_win32_longpath__workdir_path_validated(void)
#endif #endif
} }
void test_win32_longpath__status_and_add(void)
{
#ifdef GIT_WIN32 #ifdef GIT_WIN32
git_repository *repo = cl_git_sandbox_init("testrepo"); static void assert_longpath_status_and_add(git_repository* repo) {
git_index *index; git_index *index;
git_buf out = GIT_BUF_INIT; git_buf out = GIT_BUF_INIT;
unsigned int status_flags; unsigned int status_flags;
cl_repo_set_bool(repo, "core.longpaths", true);
cl_git_pass(git_repository_workdir_path(&out, repo, LONG_FILENAME)); cl_git_pass(git_repository_workdir_path(&out, repo, LONG_FILENAME));
cl_git_rewritefile(out.ptr, "This is a long path.\r\n"); cl_git_rewritefile(out.ptr, "This is a long path.\r\n");
...@@ -88,5 +85,28 @@ void test_win32_longpath__status_and_add(void) ...@@ -88,5 +85,28 @@ void test_win32_longpath__status_and_add(void)
git_index_free(index); git_index_free(index);
git_buf_dispose(&out); git_buf_dispose(&out);
}
#endif
void test_win32_longpath__status_and_add(void)
{
#ifdef GIT_WIN32
git_repository *repo = cl_git_sandbox_init("testrepo");
cl_repo_set_bool(repo, "core.longpaths", true);
assert_longpath_status_and_add(repo);
#endif
}
void test_win32_longpath__status_and_add_with_filter(void)
{
#ifdef GIT_WIN32
git_repository *repo = cl_git_sandbox_init("testrepo");
cl_repo_set_bool(repo, "core.longpaths", true);
cl_repo_set_bool(repo, "core.autocrlf", true);
assert_longpath_status_and_add(repo);
#endif #endif
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment