The alternative method of promote would be something like:
git checkout -f $TAG git submodule update --recursive
This would make scap work a lot better with phabricator, which currently has a lot of files which are generated by puppet. These files currently must be re-created after every scap deploy. Running puppet is slow and I am not sure what will happen if I try running it from a check script hook.