@@ -21,6 +21,7 @@ import (
2121 "code.gitea.io/gitea/models/perm"
2222 "code.gitea.io/gitea/models/repo"
2323 "code.gitea.io/gitea/modules/git"
24+ "code.gitea.io/gitea/modules/git/gitcmd"
2425 "code.gitea.io/gitea/modules/json"
2526 "code.gitea.io/gitea/modules/lfstransfer"
2627 "code.gitea.io/gitea/modules/log"
@@ -312,30 +313,30 @@ func runServ(ctx context.Context, c *cli.Command) error {
312313 return nil
313314 }
314315
315- var gitcmd * exec.Cmd
316- gitBinPath := filepath .Dir (git .GitExecutable ) // e.g. /usr/bin
317- gitBinVerb := filepath .Join (gitBinPath , verb ) // e.g. /usr/bin/git-upload-pack
316+ var command * exec.Cmd
317+ gitBinPath := filepath .Dir (gitcmd .GitExecutable ) // e.g. /usr/bin
318+ gitBinVerb := filepath .Join (gitBinPath , verb ) // e.g. /usr/bin/git-upload-pack
318319 if _ , err := os .Stat (gitBinVerb ); err != nil {
319320 // if the command "git-upload-pack" doesn't exist, try to split "git-upload-pack" to use the sub-command with git
320321 // ps: Windows only has "git.exe" in the bin path, so Windows always uses this way
321322 verbFields := strings .SplitN (verb , "-" , 2 )
322323 if len (verbFields ) == 2 {
323324 // use git binary with the sub-command part: "C:\...\bin\git.exe", "upload-pack", ...
324- gitcmd = exec .CommandContext (ctx , git .GitExecutable , verbFields [1 ], repoPath )
325+ command = exec .CommandContext (ctx , gitcmd .GitExecutable , verbFields [1 ], repoPath )
325326 }
326327 }
327- if gitcmd == nil {
328+ if command == nil {
328329 // by default, use the verb (it has been checked above by allowedCommands)
329- gitcmd = exec .CommandContext (ctx , gitBinVerb , repoPath )
330+ command = exec .CommandContext (ctx , gitBinVerb , repoPath )
330331 }
331332
332- process .SetSysProcAttribute (gitcmd )
333- gitcmd .Dir = setting .RepoRootPath
334- gitcmd .Stdout = os .Stdout
335- gitcmd .Stdin = os .Stdin
336- gitcmd .Stderr = os .Stderr
337- gitcmd .Env = append (gitcmd .Env , os .Environ ()... )
338- gitcmd .Env = append (gitcmd .Env ,
333+ process .SetSysProcAttribute (command )
334+ command .Dir = setting .RepoRootPath
335+ command .Stdout = os .Stdout
336+ command .Stdin = os .Stdin
337+ command .Stderr = os .Stderr
338+ command .Env = append (command .Env , os .Environ ()... )
339+ command .Env = append (command .Env ,
339340 repo_module .EnvRepoIsWiki + "=" + strconv .FormatBool (results .IsWiki ),
340341 repo_module .EnvRepoName + "=" + results .RepoName ,
341342 repo_module .EnvRepoUsername + "=" + results .OwnerName ,
@@ -350,9 +351,9 @@ func runServ(ctx context.Context, c *cli.Command) error {
350351 )
351352 // to avoid breaking, here only use the minimal environment variables for the "gitea serv" command.
352353 // it could be re-considered whether to use the same git.CommonGitCmdEnvs() as "git" command later.
353- gitcmd .Env = append (gitcmd .Env , git .CommonCmdServEnvs ()... )
354+ command .Env = append (command .Env , gitcmd .CommonCmdServEnvs ()... )
354355
355- if err = gitcmd .Run (); err != nil {
356+ if err = command .Run (); err != nil {
356357 return fail (ctx , "Failed to execute git command" , "Failed to execute git command: %v" , err )
357358 }
358359
0 commit comments