summaryrefslogtreecommitdiff
path: root/tests-clar/diff/tree.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2012-10-24 17:37:07 -0700
committerRussell Belfer <rb@github.com>2012-11-09 13:52:06 -0800
commit32def5af9a951396e626c3e276a0f94683753e3d (patch)
tree472b5559384415acb13c34b27c06fd808e7ded73 /tests-clar/diff/tree.c
parent331e7de9004db5909edd1057db88f63a53dd2d3f (diff)
downloadlibgit2-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