Subversion é um sistema de controle de versão livre/open-source. Isto é, o Subversion gerencia arquivos e diretórios, e as modificações feitas neles ao longo do tempo. Isto permite que você recupere versões antigas de seus dados, ou que examine o histórico de suas alterações. Devido a isso, muitas pessoas tratam um sistema de controle de versão como uma espécie de “máquina do tempo”.
O Subversion pode funcionar em rede, o que lhe possibilita ser usado por pessoas em diferentes computadores. Em certo nível, a capacidade de várias pessoas modificarem e gerenciarem o mesmo conjunto de dados de seus próprios locais é o que fomenta a colaboração. Progressos podem ocorrer muito mais rapidamente quando não há um gargalo único por onde todas as modificações devam acontecer. E como o trabalho está versionado, você não precisa ter medo de que seu trabalho perca qualidade por não ter essa via única para modificações—se os dados sofrerem alguma modificação indevida, apenas desfaça tal modificação.
Instalando o Subversion no Ubunto
Para instalar o Subversion, execute o seguinte comando no prompt de comando:
sudo apt-get install subversion libapache2-svn
Criando um repositório no Subversion
O repositório pode ser criado através do seguinte comando:
svnadmin create /path/to/repos/project
Importando arquivos
Depois de criar o repositório você pode importar arquivos para o repositório. Para importar um diretório, digite o seguinte comando em uma janela do terminal:
svn import /path/to/import/directory file:///path/to/repos/project
Comandos do Subversion
Para ver o status da sua cópia local comparando com o status do servidor, use:
svn status -u
Mantendo sua cópia local sincronizada com o servidor, use:
svn update
Para commitar atualizações, use:
svn commit
Para ver o log de cada um dos arquivos, ordenando cronologicamente, use:
svn log | tac
E para ver o log de somente um arquivo específico, utilize:
svn log file_name | tac
Para ver a diferença entre um dado arquivo em uma dada revisão e o estado atual do seu arquivo no repositório, use:
svn diff -r revision_number file_name
Para ver a diferença entre revisões de seeu arquivo no repositório, use:
svn diff -r revision_number_1:revision_number_2 file_name
Para reverter o estado de um arquivo de cópia local para uma dada revisão, use (ou use -R para um diretório):
svn revert file svn revert -R directory
Para criar uma nova tag ou uma branch experimental, use:
svn copy src_dir tag_dir
Para consultar o help de qualquer comando, use:
svn help command
Para ver o status da sua cópia local comparando com o status do servidor, use:
svn status -u
Mantendo sua cópia local sincronizada com o servidor, use:
svn update
Para commitar atualizações, use:
svn commit
Para ver o log de cada um dos arquivos, ordenando cronologicamente, use:
svn log | tac
E para ver o log de somente um arquivo específico, utilize:
svn log file_name | tac
Para ver a diferença entre um dado arquivo em uma dada revisão e o estado atual do seu arquivo no repositório, use:
svn diff -r revision_number file_name
Para ver a diferença entre revisões de seeu arquivo no repositório, use:
svn diff -r revision_number_1:revision_number_2 file_name
Para reverter o estado de um arquivo de cópia local para uma dada revisão, use (ou use -R para um diretório):
svn revert file svn revert -R directory
Para criar uma nova tag ou uma branch experimental, use:
svn copy src_dir tag_dir
Para consultar o help de qualquer comando, use:
svn help command