So, @nulltoken created a failing test case for checkout that proved to be particularly daunting. If checkout is given only a very limited strategy mask (e.g. just GIT_CHECKOUT_CREATE_MISSING) then it is possible for typechange/rename modifications to leave it unable to complete the request. That's okay, but the existing code did not have enough information not to generate an error (at least for tree/blob conflicts). This led me to a significant reorganization of the code to handle the failing case, but it has three benefits: 1. The test case is handled correctly (I think) 2. The new code should actually be much faster than the old code since I decided to make checkout aware of diff list internals. 3. The progress value accuracy is hugely increased since I added a fourth pass which calculates exactly what work needs to be done before doing anything.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
attr | Loading commit data... | |
buf | Loading commit data... | |
checkout | Loading commit data... | |
clone | Loading commit data... | |
commit | Loading commit data... | |
config | Loading commit data... | |
core | Loading commit data... | |
date | Loading commit data... | |
diff | Loading commit data... | |
index | Loading commit data... | |
network | Loading commit data... | |
notes | Loading commit data... | |
object | Loading commit data... | |
odb | Loading commit data... | |
pack | Loading commit data... | |
refs | Loading commit data... | |
repo | Loading commit data... | |
reset | Loading commit data... | |
resources | Loading commit data... | |
revwalk | Loading commit data... | |
stash | Loading commit data... | |
status | Loading commit data... | |
submodule | Loading commit data... | |
threads | Loading commit data... | |
README.md | Loading commit data... | |
clar | Loading commit data... | |
clar_helpers.c | Loading commit data... | |
clar_libgit2.h | Loading commit data... | |
valgrind-supp-mac.txt | Loading commit data... |