diff options
author | Russell Belfer <rb@github.com> | 2012-10-24 17:37:07 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2012-11-09 13:52:06 -0800 |
commit | 32def5af9a951396e626c3e276a0f94683753e3d (patch) | |
tree | 472b5559384415acb13c34b27c06fd808e7ded73 /tests-clar/diff/tree.c | |
parent | 331e7de9004db5909edd1057db88f63a53dd2d3f (diff) | |
download | libgit2-32def5af9a951396e626c3e276a0f94683753e3d.tar.gz |
Fix checkout behavior when its hands are tied
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.
Diffstat (limited to 'tests-clar/diff/tree.c')
0 files changed, 0 insertions, 0 deletions