Forum OpenACS Development: Re: What version control system (SCM) does OpenACS use now, still CVS, or Git?

My approach:

I use some tcl scripts which capture information about git repositories in a given local directory. Then I can check out and synchronize multiple local git repositories between developer, staging, and production sites. With one command I clone or synchronize the OpenACS core, any custom packages for a given site, and a custom page_root directory. I found git sub modules to be too restrictive.
They are available at: https://bbs.logansw.com/projects/TOOLS/repos/git-sync/browse

- git-info.tcl: creates a text file containing information about all git repos under the current directory.
- git-diff.tcl: lists the differences between the current directory and a git-info file
- git-sync.tcl: clones or updates local repos to match a git-info file.
- git-status.tcl: lists basic info about local repos; branch, tag, local changes.

I use tags for release-ready code and tend to put those on directly on the release branch rather than merging back to the main/master branch. I also usually create forks of vendor or OpenACS community packages that I use a lot. Then I create tags on those forks to ensure consistency across all of my developer's installations.