Are you using an earlier version of Understand? Read about those portability options here: https://support.scitools.com/a/solutions/articles/70000583146
What Changed with Understand 6?
In older versions of Understand (version 5.x and earlier), you had to manually tell the software how to find everything. It was like giving very specific, absolute directions – "look on this exact drive, in this exact folder." You could also choose to give relative directions, like "look in the folder next to this one." And Named Roots were like shortcuts you could create, but sometimes these shortcuts could point to the same place or even overlap, which could get confusing.
Now, in Understand 6 and onward, things are a bit smarter and more automatic. Understand tries its best to figure out the relationships between your project files and folders automatically. It prefers to use relative paths whenever possible. This is great because it means your project becomes more portable – you can move it around on your computer or even share it with someone else, and Understand will still be able to find everything without you having to make any changes.
However, sometimes Understand might encounter files that have absolute paths, pointing to a specific location on your computer. This can make your project less portable because if you move it, those absolute paths might no longer be correct.
Named Roots
That's where Named Roots come in! In the newer versions of Understand, Named Roots are unique labels you can create for important starting points within your project's file structure. Imagine you have a main "source" folder where all your code lives. You can create a Named Root called something like "SourceRoot" and tell Understand that this label always refers to that specific "source" folder, no matter where the overall project folder might be on your computer.
The key difference now is that each Named Root has to be unique. You can't have two different Named Roots pointing to the exact same place, and they can't overlap. This helps Understand keep track of everything clearly.
Why is this important? Well, it allows Understand to automatically figure out the best relative paths for all your files. If it encounters a file with an absolute path, it can use your unique Named Roots to understand where that file really belongs within your project's structure. This makes your project much more reliable and easier to move around.
If you turn on the "Enforce Portability" option, Understand will warn you if any of your files are still using absolute paths and will encourage you to create Named Roots to make everything relative and portable. This ensures that your project can be easily shared and used in different environments without any broken links.
Portability Options and Und
The Und commands were also updated with Understand 6. You can now enable portability, set roots and view them using the following types of commands:
und settings -EnforcePortability On -db myProject.und und add -root GROOT=d:\xdocs\Understand\Source\qtest -db myProject.und und list roots -db myProject.und und list -unmapped -unportable roots myProject.und
For a full guide on how to use Named Roots with Und, simply run the command:
und help roots
Conclusion
In summary, Named Roots in Understand 6 onward are like unique, smart labels that help Understand visualize the structure of your project, making it more portable and reliable, especially when dealing with files that might have been linked using specific, absolute locations. They help Understand keep everything organized and make sure it can always find its way around your project, no matter where it's located.