Controle de versão com Subversion
Diversos May 19th, 2008
Há alguns meses atrás eu tive uma grande necessidade de organizar as versões de uma aplicação. Simplesmente porque a situação já não estava “legal”. O que quero dizer é que haviam arquivos e mais arquivos de backup, e no final das contas era praticamente impossível saber qual era a última versão que funcionava.
Uma forma de minimizar esses tipos de problemas é utilizar uma ferramenta de controle de versão. A ferramenta que venho utilizando chama-se SUBVERSION.
O que é um software de controle de versão? E, para que serve? (Wikipédia)
“Um sistema de controle de versão é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões – histórico e desenvolvimento – dos códigos-fontes e também da documentação.”
Antes de ver como utilizar a ferramenta, vamos ver alguns conceitos importantes:
- Repositório: Local onde o(s) projeto(s) será(ão) armazenado(s).
- Trunk: Diretório onde se encontrará o projeto em fase de desenvolvimento (Dia a dia). O desenvolvimento do projeto começa aqui dentro.
- Branch: Diretório destinado às fases de testes. Vamos supor o seguinte cenário, enquanto a Equipe A trabalha no desenvolvimento de novas funcionalidades da versão 1.0 do projeto, a Equipe B já inicia alguns testes para adicionar na versão 2.0 do projeto. Este projeto é de grande importância. Tudo o que for feito como forma de testar algo, sem comprometer o projeto como um todo, deverá ser colocado dentro deste diretório.
- Tags: Diretório destinado às releases do projeto. Sempre que novas funcionalidades são adicionadas ao projeto e/ou bugs são corrigidos novas versões surgem dentro do diretório TAGS.
Sempre que se cria uma nova release, todo o projeto que se encontra em trunk é copiado para tags. É legal saber que, os arquivos não são copiados literalmente sempre que uma nova release é lançada. O subversion controla os arquivos e copia apenas os arquivos que sofreram alterações, isto é, arquivos que não sofreram modificações são linkados internamente dentro da nova release, fazendo com que o número de arquivos repetidos dentro do seu repositório seja mínimo.
Subversion + Subclipse
Instalando e configurando o subversion:
1) Acesse o link do projeto (http://subversion.tigris.org/) e faça o download da última versão estável do subversion.
2) Descompacte o arquivo no diretório da sua escolha.
3) A partir do diretório BIN, podemos iniciar o servidor através da seguinte linha de comando:

4) Agora, com o servidor rodando, abra um novo prompt de comando e execute a seguinte instrução para criar um repositório para o PROJETO:

5) Com a estrutura criado para o PROJETO, vamos configurar as permissões de acesso para os arquivos. Abra o seguinte arquivo: E:\Repositorio\projeto\conf\svnserve.conf
Vamos modificar o arquivo para:
[general]
anon-access = read
auth-access = write
password-db = passwd
A opção anon-acess define como será o acesso anônimo ao repositório. Já a opção auth-acess define como será o acesso para os usuários autorizados. E, por fim, a opção password-db define o nome do arquivo que contém os dados dos usuários autorizados.
[users]
alberto = leal
Instalando e configurando o subclipse:
1) Para instalar o plugin Subclipse no Eclipse 3.x, basta acessar a página do projeto (http://subclipse.tigris.org/) e fazer o download do plugin. Após o download, coloque os arquivos dentro dos respectivos diretórios do Eclipse 3.x
2) Com o Eclipse aberto, execute os seguintes passos:

Clique na opção indicada pelo círculo vermelho. Na tela que abrir, informe o caminho para o seu repositório e clique em FINISH: (Caso você tenha configurado um login e senha no arquivo de usuários, o subclipse solicitará que você informe).

Bem pessoal, esta foi apenas uma pequena explanação sobre controle de versão e um plugin para o eclipse. Caso alguém queira saber mais informações, sobre subversion, subclipse, ou mesmo material de apoio, postem suas dúvidas ou enviem emails.
[ATUALIZADO]
Existe uma comunidade Brasileira fazendo a tradução do livro do subversion. Para maiores informações: http://code.google.com/p/svnbook-pt-br/
March 2nd, 2009 at 5:16 pm
Hi,
Can i get a one small pic from your blog?
Thank you
Bodyc
March 17th, 2009 at 12:16 pm
Bodyc, which pic do you want?
March 18th, 2009 at 2:55 am
Hello,
Super post, Need to mark it on Digg
Thank you
GlenStef