MCPcopy Index your code
hub / github.com/docker/docker-agent / loadTeamInWorktree

Method loadTeamInWorktree

cmd/root/run.go:550–575  ·  view source on GitHub ↗
(ctx context.Context, b backend, wd string)

Source from the content-addressed store, hash-verified

548}
549
550func (f *runExecFlags) loadTeamInWorktree(ctx context.Context, b backend, wd string) (*teamloader.LoadResult, *worktree.Worktree, string, error) {
551 createdWorktree, err := f.setupWorktree(ctx, wd)
552 if err != nil {
553 return nil, nil, wd, err
554 }
555 if createdWorktree != nil {
556 wd = createdWorktree.Dir
557 f.runConfig.WorkingDir = createdWorktree.Dir
558 }
559
560 loadResult, err := b.LoadTeam(ctx, b.LoadTeamRequest())
561 if err != nil {
562 // The worktree was created before the load; tear it down so a load
563 // failure doesn't leave an orphaned worktree behind. A fresh context
564 // is used because the load may have failed on a cancelled ctx (Ctrl-C),
565 // which would otherwise kill the git removal subprocess and orphan the
566 // worktree.
567 if createdWorktree != nil {
568 if rmErr := createdWorktree.Remove(context.WithoutCancel(ctx)); rmErr != nil {
569 slog.WarnContext(ctx, "Failed to remove worktree after load error", "dir", createdWorktree.Dir, "error", rmErr)
570 }
571 }
572 return nil, nil, wd, err
573 }
574 return loadResult, createdWorktree, wd, nil
575}
576
577// setupWorktree creates the git worktree requested by --worktree or
578// --worktree-pr, returning nil when neither was given. The returned worktree

Calls 4

setupWorktreeMethod · 0.95
LoadTeamMethod · 0.65
LoadTeamRequestMethod · 0.65
RemoveMethod · 0.45