Add elapsed time on debug for slow git commands (#25642)

To record which command is slow, this PR adds a debug log for slow git
operations.

---------

Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
Lunny Xiao 2023-07-05 00:22:37 +08:00 committed by GitHub
parent 934124c641
commit f35ea2b09a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -301,6 +301,8 @@ func (c *Command) Run(opts *RunOpts) error {
}
defer finished()
startTime := time.Now()
cmd := exec.CommandContext(ctx, c.prog, c.args...)
if opts.Env == nil {
cmd.Env = os.Environ()
@ -327,7 +329,13 @@ func (c *Command) Run(opts *RunOpts) error {
}
}
if err := cmd.Wait(); err != nil && ctx.Err() != context.DeadlineExceeded {
err := cmd.Wait()
elapsed := time.Since(startTime)
if elapsed > time.Second {
log.Debug("slow git.Command.Run: %s (%s)", c, elapsed)
}
if err != nil && ctx.Err() != context.DeadlineExceeded {
return err
}