code: func NewControllerRevisionControllerRefManager(
  	crControl ControllerRevisionControlInterface,
  	controller metav1.Object,
  	selector labels.Selector,
  	controllerKind schema.GroupVersionKind,
  	canAdopt func() error,
  ) *ControllerRevisionControllerRefManager {
  	return &ControllerRevisionControllerRefManager{
  		BaseControllerRefManager: BaseControllerRefManager{
  			Controller:   controller,
  			Selector:     selector,
  			CanAdoptFunc: canAdopt,
  		},
  		controllerKind: controllerKind,
  		crControl:      crControl,
  	}
  }
docs: // NewControllerRevisionControllerRefManager returns a ControllerRevisionControllerRefManager that exposes
  // methods to manage the controllerRef of ControllerRevisions.
  //
  // The canAdopt() function can be used to perform a potentially expensive check
  // (such as a live GET from the API server) prior to the first adoption.
  // It will only be called (at most once) if an adoption is actually attempted.
  // If canAdopt() returns a non-nil error, all adoptions will fail.
  //
  // NOTE: Once canAdopt() is called, it will not be called again by the same
  //       ControllerRevisionControllerRefManager instance. Create a new instance if it
  //       makes sense to check canAdopt() again (e.g. in a different sync pass).