Context is not passed when updating submodules

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.

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.

// 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.