Skip to content
  • Junio C Hamano's avatar
    diff-files: show diffs with stage0 and unmerged stage at the same time. · 15bf57a1
    Junio C Hamano authored
    
    
    After thinking about it more, I realized that much of the change
    I did on top of Linus' version does not make much sense.  This
    commit reverts it so that it by default shows diffs with stage0
    paths or stage2 paths with working tree; the unmerged stage to
    use can be overridden with -1/-2/-3 option (-2 is the default so
    essentially is a no-op).
    
    When the index file is unmerged, we are by definition in the
    middle of a conflicting merge, and we should show the diff with
    stage 2 by default.  More importantly, paths without conflicts
    are updated in the working tree and collapsed to stage0 in the
    index, so showing diff with stage0 at the same time does not
    hurt.  In normal cases, stage0 entries should be in sync with
    the working tree files and does not clutter the output.  It even
    helps the user to realize that the working tree has local
    changes unrelated to the merge and remember to be careful not to
    do a "git-commit -a" after resolving the conflicts.
    
    When there is no unmerged entries, giving diff_unmerged_stage a
    default value of 2 does not cause any harm, because it would not
    be used anyway.  So in all, always showing diff between stage0
    paths and unmerged entries from a stage (defaulting to 2) is the
    right thing to do, as Linus originally did.
    
    Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
    15bf57a1