| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| binaryunicode.c | ||
| checkout_helpers.c | ||
| checkout_helpers.h | ||
| conflict.c | ||
| crlf.c | ||
| head.c | ||
| icase.c | ||
| index.c | ||
| nasty.c | ||
| tree.c | ||
| typechange.c |
git_checkout_tree() sets up its working directory iterator to respect the pathlist if GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH is present, which is great. What's not so great is that this iterator is then used side-by-side with an iterator created by git_checkout_iterator(), which did not set up its pathlist appropriately (although the iterator mirrors all other iterator options). This could cause git_checkout_tree() to delete working tree files which were not specified in the pathlist when GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH was used, as the unsynchronized iterators causes git_checkout_tree() to think that files have been deleted between the two trees. Oops. And added a test which fails without this fix (specifically, the final check for "testrepo/README" to still be present fails).
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| binaryunicode.c | Loading commit data... | |
| checkout_helpers.c | Loading commit data... | |
| checkout_helpers.h | Loading commit data... | |
| conflict.c | Loading commit data... | |
| crlf.c | Loading commit data... | |
| head.c | Loading commit data... | |
| icase.c | Loading commit data... | |
| index.c | Loading commit data... | |
| nasty.c | Loading commit data... | |
| tree.c | Loading commit data... | |
| typechange.c | Loading commit data... |