Skip to content
  • Max A.K.'s avatar
    git-show: fix 'git show -s' to not add extra terminator after merge commit · ad2f7255
    Max A.K. authored and Junio C Hamano's avatar Junio C Hamano committed
    When git show -s is called for merge commit it prints extra newline
    after any merge commit. This differs from output for commits with one
    parent. Fix it by more thorough checking that diff output is disabled.
    
    The code in question exists since commit 3969cf7d
    
    . The additional
    newline is really needed for cases when patch is requested, test
    t4013-diff-various.sh contains cases which can demonstrate behavior when
    the condition is restricted further.
    
    Tests:
    
    Added merge commit to 'set up a bit of history' case in t7007-show.sh to
    cover the fix.
    
    Existing tests are updated to demonstrate the new behaviour.  Earlier,
    the tests that used "git show -s --pretty=format:%s", even though
    "--pretty=format:%s" calls for item separator semantics and does not ask
    for the terminating newline after the last item, expected the output to
    end with such a newline.  They were relying on the buggy behaviour.  Use
    of "--format=%s", which is equivalent to "--pretty=tformat:%s" that asks
    for a terminating newline after each item, is a more realistic way to
    use the command.
    
    In the test 'merge log messages' the expected data is changed, because
    it was explicitly listing the extra newline. Also the msg.nologff and
    msg.nolognoff expected files are replaced by one msg.nolog, because they
    were diffing because of the bug, and now there should be no difference.
    
    Signed-off-by: default avatarMax Kirillov <max@max630.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    ad2f7255