• David Aguilar's avatar
    mergetool: honor mergetool.$tool.trustExitCode for built-in tools · 7c10605d
    David Aguilar authored
    Built-in merge tools contain a hard-coded assumption about
    whether or not a tool's exit code can be trusted to determine
    the success or failure of a merge.  Tools whose exit codes are
    not trusted contain calls to check_unchanged() in their
    merge_cmd() functions.
    
    A problem with this is that the trustExitCode configuration is
    not honored for built-in tools.
    
    Teach built-in tools to honor the trustExitCode configuration.
    Extend run_merge_cmd() so that it is responsible for calling
    check_unchanged() when a tool's exit code cannot be trusted.
    Remove check_unchanged() calls from scriptlets since they are no
    longer responsible for calling it.
    
    When no configuration is present, exit_code_trustable() is
    checked to see whether the exit code should be trusted.
    The default implementation returns false.
    
    Tools whose exit codes can be trusted override
    exit_code_trustable() to true.
    Reported-by: Dun Peal's avatarDun Peal <dunpealer@gmail.com>
    Signed-off-by: David Aguilar's avatarDavid Aguilar <davvid@gmail.com>
    Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
    7c10605d
ecmerge 306 Bytes