-
Notifications
You must be signed in to change notification settings - Fork 840
Closed
Description
When pulling or cloning from a repo, go-git will update submodules if the option is set.
The problem is when calling (*Worktree).updateSubmodules. It doesn't take the context from a caller.
Lines 151 to 158 in c7feada
| func (w *Worktree) updateSubmodules(o *SubmoduleUpdateOptions) error { | |
| s, err := w.Submodules() | |
| if err != nil { | |
| return err | |
| } | |
| o.Init = true | |
| return s.Update(o) | |
| } |
It creates new context internally.
Lines 298 to 301 in c7feada
| // Update updates all the submodules in this list. | |
| func (s Submodules) Update(o *SubmoduleUpdateOptions) error { | |
| return s.UpdateContext(context.Background(), o) | |
| } |
This can lead to situations where we can't gracefully handle slow fetching of submodules or etc.
Is there any reason that it ignores context from caller?
If there isn't, I think we better pass context to the funciton.
ccoVeille
Metadata
Metadata
Assignees
Labels
No labels