diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2022-03-31 19:56:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-31 13:56:22 +0200 |
commit | b877504b03a43dc5ed19109f1a00f08a343ebaba (patch) | |
tree | e1769eab011325f444b07fd388a7f7430abc85c6 /routers | |
parent | d4f84f1c937e24e71aa5f05c58d440cde741450f (diff) | |
download | gitea-b877504b03a43dc5ed19109f1a00f08a343ebaba.tar.gz gitea-b877504b03a43dc5ed19109f1a00f08a343ebaba.zip |
Refactor `git.Command.Run*`, introduce `RunWithContextString` and `RunWithContextBytes` (#19266)
This follows
* https://github.com/go-gitea/gitea/issues/18553
Introduce `RunWithContextString` and `RunWithContextBytes` to help the refactoring. Add related unit tests. They keep the same behavior to save stderr into err.Error() as `RunInXxx` before.
Remove `RunInDirTimeoutPipeline` `RunInDirTimeoutFullPipeline` `RunInDirTimeout` `RunInDirTimeoutEnv` `RunInDirPipeline` `RunInDirFullPipeline` `RunTimeout`, `RunInDirTimeoutEnvPipeline`, `RunInDirTimeoutEnvFullPipeline`, `RunInDirTimeoutEnvFullPipelineFunc`.
Then remaining `RunInDir` `RunInDirBytes` `RunInDirWithEnv` can be easily refactored in next PR with a simple search & replace:
* before: `stdout, err := RunInDir(path)`
* next: `stdout, _, err := RunWithContextString(&git.RunContext{Dir:path})`
Other changes:
1. When `timeout <= 0`, use default. Because `timeout==0` is meaningless and could cause bugs. And now many functions becomes more simple, eg: `GitGcRepos` 9 lines to 1 line. `Fsck` 6 lines to 1 line.
2. Only set defaultCommandExecutionTimeout when the option `setting.Git.Timeout.Default > 0`
Diffstat (limited to 'routers')
-rw-r--r-- | routers/web/repo/http.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/routers/web/repo/http.go b/routers/web/repo/http.go index d149d4f89f..82ac95c1bc 100644 --- a/routers/web/repo/http.go +++ b/routers/web/repo/http.go @@ -542,7 +542,7 @@ func GetInfoRefs(ctx *context.Context) { } h.environ = append(os.Environ(), h.environ...) - refs, err := git.NewCommand(ctx, service, "--stateless-rpc", "--advertise-refs", ".").RunInDirTimeoutEnv(h.environ, -1, h.dir) + refs, _, err := git.NewCommand(ctx, service, "--stateless-rpc", "--advertise-refs", ".").RunWithContextBytes(&git.RunContext{Env: h.environ, Dir: h.dir}) if err != nil { log.Error(fmt.Sprintf("%v - %s", err, string(refs))) } |