Controle de versão é um sistema que registra alterações em um arquivo ou conjunto de arquivos ao longo do tempo para que as pessoas possam recuperar versões específicas mais tarde. Um sistema de controle de versão permite que arquivos ou projetos completos sejam revertidos para um estado anterior; que as mudanças ao longo do tempo possam ser comparadas; descobrir quem e quando alguém introduziu um problema. Em um ambiente de desenvolvimento de software, torna-se crucial o uso de ferramentas de controle de versão e estão disponíveis várias opções, tais como Subversion, Git e Mercurial. Sobre essas ferramentas é possível afirmar que: