A evolução do sistema de controle de versão
Neste post faremos um breve histórico sobre sistema de controle de versão de software, de 1972 a 2012.
O SCCS, primeiro sistema de controle de versão foi criado em 1972 na Bell Labs, onde eles desenvolveram o UNIX. Esse sistema estava disponível apenas para UNIX e só funcionava com arquivos de código-fonte.
O RCS (Revision Control System), foi criado em 1982 e foi o primeiro sistema de controle de versão entre plataformas, mas também foi apenas para arquivos de texto. Tanto o SCCS como o RCS só funcionavam no sistema de desenvolvimento e não eram para compartilhar código, pois só funcionavam para um único usuário.
A partir de 1986 foi desenvolvido foi desenvolvido o controle de versão centralizado, o CVS (Concurrent Versions System), desenvolvido com base no RCS, mas com a possibilidade de gerenciar projetos inteiros e não só um arquivo individualmente, como no RCS. Foi o primeiro que tinha repositório central e era utilizavel por vários usuários. Ainda era focado em arquivos e monitorava as mudanças em arquivos individuais, em vez de manter o controle de mudanças em árvores inteiras de diretório.
Na década de 1980, veio a Perforce, e foi amplamente utilizado durante a era .com. Ainda é o maior repositório usado no Google.
Em 2000, um novo produto chamado Subversion foi criado e suportado arquivos não-texto, rastreando mudanças na estrutura de diretórios, como renomeações e movimentações de arquivos, e sua unidade de transação era o diretório em oposição a um arquivo individual.
Em 2004, a Microsoft criou o TFS, (Team Foundation Server), para substituir o antigo sistema de controle de versão do Visual SourceSafe, que era basicamente um sistema Cliente Servidor. Tem uma edição do TFS Express que pode ser usada por até 5 usuários . Ele suporta não apenas o controle do código-fonte, mas também possui rastreamento de bug e itens de trabalho e recursos para fazer testes automatizados.
O controle de código fonte distribuído surgiu em 2005 com o Git, devido a uma mudança no licenciamento de uma empresa chamada BitKeeper. Anteriormente, eles tinham um produto que era usado por Linus Torvalds e pelo grupo de kernel no Linux que era chamado de Community Edition, e era grátis. Em 2005, o BitKeeper decidiu tornar toda sua linha de produtos comercial apenas, significando que você tinha que pagar uma taxa para usá-lo, e Linus decidiu que queria ter certeza de que tudo em torno do Linux fosse gratuito, e então criou algo chamado Git. É amplamente usado em conjunto com algo chamado GitHub, que é um serviço on-line baseado na nuvem que oferece hospedagem gratuita para projetos de código aberto e também hospedagem comercial para uso privado.
Um produto concorrente Mercurial também foi criado em 2005 em resposta à mesma mudança do BitKeeper e também é amplamente usado em projetos de código aberto.
Atualmente, praticamente todos usam um dos cinco sistemas, Perforce, Subversion ou TFS, se quiserem um sistema centralizado, Git ou Mercurial, se quiserem um sistema distribuído.
O SCCS, primeiro sistema de controle de versão foi criado em 1972 na Bell Labs, onde eles desenvolveram o UNIX. Esse sistema estava disponível apenas para UNIX e só funcionava com arquivos de código-fonte.
O RCS (Revision Control System), foi criado em 1982 e foi o primeiro sistema de controle de versão entre plataformas, mas também foi apenas para arquivos de texto. Tanto o SCCS como o RCS só funcionavam no sistema de desenvolvimento e não eram para compartilhar código, pois só funcionavam para um único usuário.
A partir de 1986 foi desenvolvido foi desenvolvido o controle de versão centralizado, o CVS (Concurrent Versions System), desenvolvido com base no RCS, mas com a possibilidade de gerenciar projetos inteiros e não só um arquivo individualmente, como no RCS. Foi o primeiro que tinha repositório central e era utilizavel por vários usuários. Ainda era focado em arquivos e monitorava as mudanças em arquivos individuais, em vez de manter o controle de mudanças em árvores inteiras de diretório.
Na década de 1980, veio a Perforce, e foi amplamente utilizado durante a era .com. Ainda é o maior repositório usado no Google.
Em 2000, um novo produto chamado Subversion foi criado e suportado arquivos não-texto, rastreando mudanças na estrutura de diretórios, como renomeações e movimentações de arquivos, e sua unidade de transação era o diretório em oposição a um arquivo individual.
Em 2004, a Microsoft criou o TFS, (Team Foundation Server), para substituir o antigo sistema de controle de versão do Visual SourceSafe, que era basicamente um sistema Cliente Servidor. Tem uma edição do TFS Express que pode ser usada por até 5 usuários . Ele suporta não apenas o controle do código-fonte, mas também possui rastreamento de bug e itens de trabalho e recursos para fazer testes automatizados.
O controle de código fonte distribuído surgiu em 2005 com o Git, devido a uma mudança no licenciamento de uma empresa chamada BitKeeper. Anteriormente, eles tinham um produto que era usado por Linus Torvalds e pelo grupo de kernel no Linux que era chamado de Community Edition, e era grátis. Em 2005, o BitKeeper decidiu tornar toda sua linha de produtos comercial apenas, significando que você tinha que pagar uma taxa para usá-lo, e Linus decidiu que queria ter certeza de que tudo em torno do Linux fosse gratuito, e então criou algo chamado Git. É amplamente usado em conjunto com algo chamado GitHub, que é um serviço on-line baseado na nuvem que oferece hospedagem gratuita para projetos de código aberto e também hospedagem comercial para uso privado.
Um produto concorrente Mercurial também foi criado em 2005 em resposta à mesma mudança do BitKeeper e também é amplamente usado em projetos de código aberto.
Atualmente, praticamente todos usam um dos cinco sistemas, Perforce, Subversion ou TFS, se quiserem um sistema centralizado, Git ou Mercurial, se quiserem um sistema distribuído.
REFERÊNCIAS
- https://en.wikipedia.org/wiki/Source_Code_Control_System
- www.lynda.com/ALMTFS-tutorials/history-version-control/106788/115979-4.html#tab
- http://gerpro2017.blogspot.com/2017/01/o-sistema-de-controle-de-codigo-fonte.html
Interessante notar que cada etapa na evolução dos SCV foi surgindo das necessidades que surgiam com as mudanças nos processos de software ao longo dos anos.
ResponderExcluir