Here at the State and in past lives, we used a number of SCM systems. Ultimately, our Department settled on Git for the following reasons:
- Standard - Git is the long overdue successor to CVS and has quickly become the defacto standard for SCM. As such, great documentation and extensive tooling are widely available.
- Best Practice - Old school limitations like check-out locking are long gone. High value features from years of SCM system evolution are built-in.
- Cross Platform - Our systems, code, and tools span multiple platforms. As such, we require an SCM that plays well across platforms.
- Low Admin Overhead - Git is easy to setup and maintain. Some SCM systems had great capabilities but extraordinary administrative requirements (i.e. configure / maintain multiple large products across multiple servers) - this is not workable for small teams.
- Ideal Licensing - An open source SCM eliminated hairy licensing issues. For example, proprietary SCM's had strict remote access licensing requirements; making working with outsourced resources difficult.
- Low Cost - No licensing fees.
git - Git Home
msysgit - Git for Windows (core)
TortoiseGit - Git Windows Explorer Integration
Pro Git - The book