diff --git a/clang/tools/clang-format/git-clang-format b/clang/tools/clang-format/git-clang-format --- a/clang/tools/clang-format/git-clang-format +++ b/clang/tools/clang-format/git-clang-format @@ -198,9 +198,9 @@ return 0 if opts.diff: - print_diff(old_tree, new_tree) + return print_diff(old_tree, new_tree) elif opts.diffstat: - print_diffstat(old_tree, new_tree) + return print_diffstat(old_tree, new_tree) else: changed_files = apply_changes(old_tree, new_tree, force=opts.force, patch_mode=opts.patch) @@ -209,7 +209,7 @@ for filename in changed_files: print(' %s' % filename) - return 1 + return 1 def load_git_config(non_string_options=None): @@ -536,8 +536,8 @@ # We also only print modified files since `new_tree` only contains the files # that were modified, so unmodified files would show as deleted without the # filter. - subprocess.check_call(['git', 'diff', '--diff-filter=M', old_tree, new_tree, - '--']) + subprocess.check_call(['git', 'diff', '--diff-filter=M', + old_tree, new_tree, '--exit-code', '--']) def print_diffstat(old_tree, new_tree): """Print the diffstat between the two trees to stdout.""" @@ -548,7 +548,13 @@ # We also only print modified files since `new_tree` only contains the files # that were modified, so unmodified files would show as deleted without the # filter. - subprocess.check_call(['git', 'diff', '--diff-filter=M', '--stat', old_tree, new_tree, + subprocess.check_call(['git', + 'diff', + '--diff-filter=M', + '--stat', + old_tree, + new_tree, + '--exit-code', '--']) def apply_changes(old_tree, new_tree, force=False, patch_mode=False):