Duy Nguyen <pclouds@xxxxxxxxx> writes: > Thank you both for catching this. Just a small suggestion. Perhaps we > should do this instead. apply_sparse_checkout() is the function where > all "action" manipulation (add, delete, update files..) for sparse > checkout occurs and it should not ask to delete and update both at the > same time. Sounds good. The first hunk may merely be a noise, but the second one is the true bugfix for the issue observed, I think. > > -- 8< -- > diff --git a/unpack-trees.c b/unpack-trees.c > index 2927660..d6cf849 100644 > --- a/unpack-trees.c > +++ b/unpack-trees.c > @@ -224,6 +224,9 @@ static int check_updates(struct unpack_trees_options *o) > struct cache_entry *ce = index->cache[i]; > > if (ce->ce_flags & CE_UPDATE) { > + if (ce->ce_flags & CE_WT_REMOVE) > + die("BUG: both update and delete flags are set on %s", > + ce->name); > display_progress(progress, ++cnt); > ce->ce_flags &= ~CE_UPDATE; > if (o->update && !o->dry_run) { > @@ -293,6 +296,7 @@ static int apply_sparse_checkout(struct index_state *istate, > if (!(ce->ce_flags & CE_UPDATE) && verify_uptodate_sparse(ce, o)) > return -1; > ce->ce_flags |= CE_WT_REMOVE; > + ce->ce_flags &= ~CE_UPDATE; > } > if (was_skip_worktree && !ce_skip_worktree(ce)) { > if (verify_absent_sparse(ce, ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN, o)) > -- 8< -- > > -- > Duy -- 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