Index: google3/third_party/llvm/llvm/tools/clang/tools/clang-format/git-clang-format =================================================================== --- google3/third_party/llvm/llvm/tools/clang/tools/clang-format/git-clang-format +++ google3/third_party/llvm/llvm/tools/clang/tools/clang-format/git-clang-format @@ -356,12 +356,9 @@ def index_info_generator(): for filename, line_ranges in iteritems(changed_lines): if revision: - git_metadata_cmd = ['git', 'ls-tree', - '%s:%s' % (revision, os.path.dirname(filename)), - os.path.basename(filename)] - git_metadata = subprocess.Popen(git_metadata_cmd, stdin=subprocess.PIPE, - stdout=subprocess.PIPE) - stdout = git_metadata.communicate()[0] + stdout = run('git', 'ls-tree', + '%s:%s' % (revision, os.path.dirname(filename)), + os.path.basename(filename)) mode = oct(int(stdout.split()[0], 8)) else: mode = oct(os.stat(filename).st_mode) @@ -384,14 +381,9 @@ --index-info", such as " ". Any other mode is invalid.""" assert mode in ('--stdin', '--index-info') - cmd = ['git', 'update-index', '--add', '-z', mode] with temporary_index_file(): - p = subprocess.Popen(cmd, stdin=subprocess.PIPE) - for line in input_lines: - p.stdin.write(to_bytes('%s\0' % line)) - p.stdin.close() - if p.wait() != 0: - die('`%s` failed' % ' '.join(cmd)) + run('git', 'update-index', '--add', '-z', mode, + stdin=to_bytes(''.join('%s\0' % line for line in input_lines))) tree_id = run('git', 'write-tree') return tree_id @@ -522,6 +514,7 @@ def run(*args, **kwargs): + """Runs the given command and returns stdout; exits on command failure.""" stdin = kwargs.pop('stdin', '') verbose = kwargs.pop('verbose', True) strip = kwargs.pop('strip', True)