Currently, we build scripts local to a test project, and if it's a new version, simply append a "v2" to the name. When it passes testing, we release it to the wild, either for others to copy or to make global, plus disable the "v1". Eventually we remember to go and cleanup the v1s.
How does your company handle testing & versioning?