Skip to content
  • davvid's avatar
    mergetool: honor mergetool.$tool.trustExitCode for built-in tools · 7c10605d
    davvid authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    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: default avatarDun Peal <dunpealer@gmail.com>
    Signed-off-by: default avatarDavid Aguilar <davvid@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    7c10605d