There are cases where it makes sense to find parent RepositoryCfgs by relative path (e.g. if they are side by side and may get moved together to a new location), and cases where it makes sense to find them by absolute path (e.g. if the parent is a Level-1 type dataset that exists in a permanent location).
K-T's idea is:
- add a GUID to the persisted RepositoryCfg.
- in a RepositoryCfg's parents list, store:
- the relative path to the parent (where applicable)
- the absolute path to the parent
- the GUID of the parent.
- when locating a parent repo, search first by relative path and then by absolute path.
- First search the absolute path to the parent. If a RepositoryCfg is found, compare the found RepositoryCfg's GUID to the expected GUID. If the GUIDs don't match, assume the RepositoryCfg is not the desired parent repository cfg. Then try the relative path; if the parent RepositoryCfg can not be found, an exception must be raised.