code: func applyRevision(set *appsv1.StatefulSet, revision *appsv1.ControllerRevision) (*appsv1.StatefulSet, error) {
  	clone := set.DeepCopy()
  	patched, err := strategicpatch.StrategicMergePatch([]byte(runtime.EncodeOrDie(appsCodec, clone)), revision.Data.Raw, clone)
  	if err != nil {
  		return nil, err
  	}
  	err = json.Unmarshal(patched, clone)
  	if err != nil {
  		return nil, err
  	}
  	return clone, nil
  }
docs: // applyRevision returns a new StatefulSet constructed by restoring the state in revision to set. If the returned error
  // is nil, the returned StatefulSet is valid.