Message ID | 8ffdb6c8a8a3b162c898ba759137d41bbfd44b39.1677511700.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b413a827126abd54fa95470be7c63fa4f00d5d47 |
Headers | show |
Series | Clarify API for dir.[ch] and unpack-trees.[ch] -- mark relevant fields as internal | expand |
"Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com> writes: > diff --git a/unpack-trees.c b/unpack-trees.c > index 3d05e45a279..4518d33ed99 100644 > --- a/unpack-trees.c > +++ b/unpack-trees.c > @@ -2337,7 +2337,7 @@ static int verify_clean_subdirectory(const struct cache_entry *ce, > > memset(&d, 0, sizeof(d)); > if (o->dir) > - d.exclude_per_dir = o->dir->exclude_per_dir; > + setup_standard_excludes(&d); > i = read_directory(&d, o->src_index, pathbuf, namelen+1, NULL); > dir_clear(&d); > free(pathbuf); Thanks to the later patches in this patch set, I only needed to look at unpack-trees.c to see how o->dir (later, o->internal.dir) is set. The only place it is set is in unpack_trees(), in which a flag is set and setup_standard_excludes() is called. So the RHS of the diff here does effectively the same thing as the LHS. (As for the flag, it is not set in the RHS, but it was not set in the LHS in the first place, so that's fine.) Thanks - all 13 patches in this patch set look good.
diff --git a/t/t2021-checkout-overwrite.sh b/t/t2021-checkout-overwrite.sh index baca66e1a31..034f62c13c5 100755 --- a/t/t2021-checkout-overwrite.sh +++ b/t/t2021-checkout-overwrite.sh @@ -69,4 +69,15 @@ test_expect_success SYMLINKS 'checkout -f must not follow symlinks when removing test_path_is_file untracked/f ' +test_expect_success 'checkout --overwrite-ignore should succeed if only ignored files in the way' ' + git checkout -b df_conflict && + test_commit contents some_dir && + git checkout start && + mkdir some_dir && + echo autogenerated information >some_dir/ignore && + echo ignore >.git/info/exclude && + git checkout --overwrite-ignore df_conflict && + ! test_path_is_dir some_dir +' + test_done diff --git a/unpack-trees.c b/unpack-trees.c index 3d05e45a279..4518d33ed99 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -2337,7 +2337,7 @@ static int verify_clean_subdirectory(const struct cache_entry *ce, memset(&d, 0, sizeof(d)); if (o->dir) - d.exclude_per_dir = o->dir->exclude_per_dir; + setup_standard_excludes(&d); i = read_directory(&d, o->src_index, pathbuf, namelen+1, NULL); dir_clear(&d); free(pathbuf);