When you package a custom IP and share it among several projects, you should use a custom IP repository. In this case, the project used to create and package the custom IP should be revision controlled following the methodology specified in this chapter. The packaged IP with the component.xml file should reside in a custom revision controlled IP repository managed by you. The project that uses the IP should contain a pointer to your custom IP repository and an XCI file with the desired customizations applied to the IP. The script to recreate the project should set the IP repository to the custom IP repository path and add the XCI file as a source to the project. When the project is recreated, similar to a project with Xilinx IP, Vivado would copy the RTL and constraints from your custom IP repository to your local project directory and applies the parameters from the XCI file. The XCI files along with your custom IP repository are sufficient to regenerate the complete project.