Checkout does not create a new directory structure, but switch your working tree to the desired revision.
So your other scripts do not need to change. Using checkout you switch your working git tree to the desired version, then you will do tasks that you need - like building. And by further checkout you switch your working git tree to the next desired version. Everything is still in the same working folder.
For example - switch whole tree to v3.5.13-sru branch:
git checkout v3.5.13-sru && git submodule update --recursive
...and switch back to current state of master branch:
git checkout master && git submodule update --recursive
Note: In this switching may occur a little problem with modules that are not contained in the desired version.
So checkout only creates a viewing illusion. That is, the package sources remain the same as the most recent re-sync and only the view a person has is different.
As my build scripts just copy the package sources directly from GIT, the view illusion does not help.
I am not grasping how my build scripts can distinguish the difference. I understand how my eyes distinguish the difference because GIT creates the illusion of what I am allowed to see. Yet the underlying sources in the package tree remain exactly the same.
Darrell