Skip to content
  • David Turner's avatar
    unpack-trees: don't update files with CE_WT_REMOVE set · 7d782416
    David Turner authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Don't update files in the worktree from cache entries which are
    flagged with CE_WT_REMOVE.
    
    When a user does a sparse checkout, git removes files that are
    marked with CE_WT_REMOVE (because they are out-of-scope for the
    sparse checkout). If those files are also marked CE_UPDATE (for
    instance, because they differ in the branch that is being checked
    out and the outgoing branch), git would previously recreate them.
    This patch prevents them from being recreated.
    
    These erroneously-created files would also interfere with merges,
    causing pre-merge revisions of out-of-scope files to appear in the
    worktree.
    
    apply_sparse_checkout() is the function where all "action"
    manipulation (add, delete, update files..) for sparse checkout
    occurs; it should not ask to delete and update both at the same
    time.
    
    Signed-off-by: default avatarAnatole Shaw <git-devel@omni.poc.net>
    Signed-off-by: default avatarDavid Turner <dturner@twopensource.com>
    Helped-by: default avatarDuy Nguyen <pclouds@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    7d782416