I'm currently working on migrating our ODI environment to Git-based version control. I've been doing some research but couldn't find clear answers in the Oracle documentation, so I was hoping someone could share his/her experience.
I have three specific questions:
1. Git repository structure and XML file naming
When ODI exports objects to Git via VCS (Add to VCS / Create Version), does it automatically generate the folder structure and XML file names inside the local Git repository? Specifically, does the file naming reflect the ODI hierarchy (Project > Repository > Sub-repository > Object)? For example, would a package called PKG_Orders located in the sub-repository ORDERS be exported as something like ORDERS.PKG_Orders.xml inside a packages/ folder — or does ODI use a completely different naming and folder convention?
The Oracle documentation mentions that ODI stores objects as XML files in VCS but does not clearly describe the exact folder structure or file naming convention generated. Did you observe this directly in your Git repo?
2. Fallback to ODI internal versioning if Git doesn't work
If we configure ODI to use Git as the VCS and it doesn't work as expected, is it safe to switch back to ODI's internal versioning (legacy mode)? Would that switch impact the ongoing development work in ODI — for example, could it cause any loss of objects or broken references in the ODI repository?
3. Smart Export of a package — single file or full dependency tree?
When you do a Smart Export of a package in ODI, does it generate only one XML file for the package itself, or does it also export all dependent objects (mappings, variables, procedures, etc.) as separate XML files? In other words, is a Smart Export a single self-contained file, or does it produce multiple XML files that all need to be committed to Git?