Ok I revised the comments to be more explanatory, and I ran the entire file through a tab to space filter to make sure the formatting looks right again :)
The new patch is a bit bigger because of the formatting, but there are no changes to the actual code beyond the original patch. I would like to apply it to the trunk unless there are any questions or objections.
In addition after applying this patch to GetComponents I would like to add the git version back to einsteintoolkit.th. Then after a certain period of time, maybe a month, we can be certain that everyone using the trunk will have the git version, and GetComponents can complete its transition to GitHub, removing the svn version from Utilities/Scripts.
Eric
Somehow some tabs got in the code, I normally have BBEdit auto expand the tabs to be consistent.. I think the solution in the patch is kind of ugly from a design standpoint, which is probably why i called it a hack in the comment, but it is a proper solution. The other way I can see to address it would be to check for a path separator in $checkout, and then conditionally split. But then I would need to see if $checkout_dir is defined before creating the relative path, so it ends up being the same amount or more code.
I don't think it matters much which way the fix is implemented, although I should probably modify the comment calling it a hack.