code: func (h *Hook) Upgrade() error {
  	match, err := h.matchesCurrent()
  	if err != nil {
  		return err
  	}
  
  	if !match {
  		return nil
  	}
  
  	return h.write()
  }
docs: // Upgrade upgrades the (assumed to be) existing git hook to the current
  // contents. A hook is considered "upgrade-able" if its contents are matched in
  // the member variable `Upgradeables`. It halts and returns any errors as they
  // arise.