No início apareceram os sistemas de controlo de versões para ficheiros individuais, casos do RCS e SCCS. Serviam para versionar ficheiros isoladamente, um a um. Introduziram um conjunto de comandos para suportar a gestão de versões que são a base do que se usa actualmente.
ci | checkin / commit |
co | checkout |
rcsdiff | diferenças entre revisões |
rcs | uma espécie de “add” |
rlog | log |
Depois vieram os sistemas de controlo de versões com repositório central, como o CVS e SVN. Estes sistemas já operavam em grupos de ficheiros, permitindo o conceito de projecto. O repositório central estava associado a um sistema de servidor de qualquer tipo o que facilitava o trabalho de equipas nos mesmos projectos. O CVS originalmente usava o RCS como motor de controlo de versões (ficheiros de extensão ,v).
cvs commit |
cvs checkout |
cvs diff |
cvs add |
cvs log |
cvs update | sincroniza com o repositório |
cvs remove | remove ficheiros do repositório |
cvs tag | cria branches e tags |
Nos últimos anos multiplicaram-se as implementações de sistemas de controlo de versões distribuídos. Nestes sistemas, cada working directory / working copy é um repositório completo local. Todas as operações dos sistemas de repositório central estão agora disponíveis localmente e adicionaram-se novos comandos (principais: pull, push) para sincronizar repositórios. Como cada cópia local é um repositório, cada commit produz um changeset (eventualmente) diferente por repositório, que passa a ser identificado pelo sua assinatura (SHA1 por exemplo).
Os sistemas deste género com mais hype nos dias que correm são o GIT, da fama do Linus Torvalds, e o Mercurial (HG).
Repositório central:
Sistemas distribuídos:
- mercurial / hg http://mercurial.selenic.com/
- git http://git-scm.com/
- bazaar http://bazaar.canonical.com/
- darcs http://darcs.net/
- monotone http://www.monotone.ca/
Comparação entre sistemas de controlo distribuídos com contextualização:
Sem comentários:
Enviar um comentário