Com o versionamento de software tm-se toda a histria do
desenvolvimento do software, quem criou determinado cdigo, quem o
alterou, quando etc. Com esse tipo de ferramenta possvel dar mais segurana e eficincia ao processo, visto a possibilidade de rollback, no caso de falhas em novas verses do cdigo, bem como tambm o uso de recursos como o fork, para criar-se um novo repositrio de cdigo, de forma a estender alguma funo do software em questo ou mesmo desenvolver um novo software a partir de um outro j existente (como uma nova ferramenta com funes semelhantes anterior).
De fato essa uma prtica constante em software houses, pois o
reaproveitamento de cdigo aumenta-se muito a eficincia no processo de desenvolvimento, bem como melhora a qualidade do mesmo, quando um software previamente j testado e aprovado tem seu cdigo reutilizado para a criao de um novo.
Frameworks so exemplos claros destes recursos e seu papel, visto que
estes implementa o cerne estrutural bsico de uma aplicao, sendo ento reutilizado em cada novo projeto e provendo as funes bsicas principais, bem como bibliotecas para as regras do negcio da soluo. Tomando os frameworks como analogia, o mesmo possvel atravs de versionamento de software, pois atravs deste controle possvel criar um software a partir de outro j existente, modificando as reas necessrias e expandindo-o para novas reas ou ainda os recursos que, em si, o definem como um novo produto de software.
Sistemas de versionamento de software tambm esto no cerne de
processos como CI (Continuous Integration, ou integrao contnua, em traduo literal), onde o desenvolvedor (ou o time de desenvolvimento), com frequncia, unem todas as alteraes dos cdigos de um sistema em um repositrio principal, onde, aps, o build e os testes so executados.
Estes e outros processos de automao (ou que podem ser automatizados)