From 9451781ebea0d9945127c142136e5b6ef373141c Mon Sep 17 00:00:00 2001
From: Giteabot <teabot@gitea.io>
Date: Fri, 4 Aug 2023 21:44:25 +0800
Subject: [PATCH] Make git batch operations use parent context timeout instead
 of default timeout (#26325) (#26330)

Backport #26325 by @wxiaoguang

Fix #26064

Some git commands should use parent context, otherwise it would exit too
early (by the default timeout, 10m), and the "cmd.Wait" waits till the
pipes are closed.

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
---
 modules/git/batch_reader.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/modules/git/batch_reader.go b/modules/git/batch_reader.go
index 75539c0d0a..9f65e67206 100644
--- a/modules/git/batch_reader.go
+++ b/modules/git/batch_reader.go
@@ -74,6 +74,8 @@ func CatFileBatchCheck(ctx context.Context, repoPath string) (WriteCloserError,
 				Stdin:  batchStdinReader,
 				Stdout: batchStdoutWriter,
 				Stderr: &stderr,
+
+				UseContextTimeout: true,
 			})
 		if err != nil {
 			_ = batchStdoutWriter.CloseWithError(ConcatenateError(err, (&stderr).String()))
@@ -124,6 +126,8 @@ func CatFileBatch(ctx context.Context, repoPath string) (WriteCloserError, *bufi
 				Stdin:  batchStdinReader,
 				Stdout: batchStdoutWriter,
 				Stderr: &stderr,
+
+				UseContextTimeout: true,
 			})
 		if err != nil {
 			_ = batchStdoutWriter.CloseWithError(ConcatenateError(err, (&stderr).String()))