in lib/gitlab_git/repository.rb [1109:1146]
def archive_to_file(treeish = 'master', filename = 'archive.tar.gz', format = nil, compress_cmd = %w(gzip -n))
git_archive_cmd = %W(git --git-dir=
prefix = "#{archive_name(treeish)}/"
git_archive_cmd << "--prefix=#{prefix}"
git_archive_cmd << "--format=#{format}" if format
git_archive_cmd += %W(--
open(filename, 'w') do |file|
pipe_rd, pipe_wr = IO.pipe
compress_pid = spawn(*nice(compress_cmd), in: pipe_rd, out: file)
pipe_rd.close
git_archive_pid = spawn(*nice(git_archive_cmd), out: pipe_wr)
pipe_wr.close
Process.waitpid(git_archive_pid)
raise "#{git_archive_cmd.join(' ')} failed" unless $?.success?
Process.waitpid(compress_pid)
raise "#{compress_cmd.join(' ')} failed" unless $?.success?
end
end