Nguyen Thai Ngoc Duy wrote: >> Nguyễn Thái Ngọc Duy wrote: >>> --- a/cache-tree.c >>> +++ b/cache-tree.c >>> @@ -156,6 +156,8 @@ static int verify_cache(struct cache_entry **cache, >>> funny = 0; >>> for (i = 0; i < entries; i++) { >>> struct cache_entry *ce = cache[i]; >>> + if (ce->ce_flags & CE_REMOVE) >>> + continue; [...] > I was lazy. In patch 26, upload-narrow-merge do three way merge and > drop staged entries within narrow tree (this is at server side, > conflicts within narrow tree will be handled at client side later). > Instead of removing staged entries, I mark them CE_REMOVE. Ah, ok; so it's to avoid spending time in remove_marked_cache_entries(). I think (though it wouldn't come up in your application) that to keep this and avoid caller confusion one would need something like if ((cache[i]->ce_flags & CE_REMOVE) || (cache[i+1]->ce_flags & CE_REMOVE)) continue; in the other loop. I say "something like" because a person could have marked some some but not all stages with CE_REMOVE, causing file/directory conflicts to be missed. Thanks for the explanation. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html