On Wed, Sep 21, 2011 at 11:16:15AM +0200, Michael J Gruber wrote:
Thanks. I can confirm that with the above patch, the code compiles and
fails my test. So it's the earlier of the two commits which introduces this.
I was afraid some logic had gone horribly wrong. Turns out I did not
catch up with unpack_trees() coding style and drop the error messages
so "git checkout" in this case becomes "git checkout -q".
This patch should fix it. Need another look before I submit a real
patch though.
diff --git a/unpack-trees.c b/unpack-trees.c
index cc616c3..79e9e88 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -1102,12 +1102,10 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
*/
if (ce->ce_flags & CE_ADDED &&
verify_absent(ce, ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN, o))
- return -1;
+ goto return_failed;
- if (apply_sparse_checkout(ce, o)) {
- ret = -1;
- goto done;
- }
+ if (apply_sparse_checkout(ce, o))
+ goto return_failed;
if (!ce_skip_worktree(ce))
empty_worktree = 0;