code: func (i *VCSInstaller) Update() error {
  	debug("updating %s", i.Repo.Remote())
  	if i.Repo.IsDirty() {
  		return errors.New("plugin repo was modified")
  	}
  	if err := i.Repo.Update(); err != nil {
  		return err
  	}
  	if !isPlugin(i.Repo.LocalPath()) {
  		return ErrMissingMetadata
  	}
  	return nil
  }
docs: // Update updates a remote repository