Passei um tempinho sem postar aqui devido as últimas provas da faculdade, mas enfim estou de férias. Como de costume vou usar as férias para estudar alguns assuntos que me interessam como UML, Shell Script, e se possível implementar uma ideia de plugin para o Rhythmbox. Ahh claro, vou continuar postando.

Ainda sobre a faculdade, nesse fim de período implementei junto com Anderson Oliveira e Sergio Ribeiro um jogo da velha como projeto da cadeira de Linguagem de Programação Funcional. Além de Haskell como linguagem de programação utilizamos

wxHaskell – Como biblioteca gráfica.
Subvervion – Para controle de versão.
Google Code – Local onde hosteamos o projeto.

Assim como utilizamos o alguns projetos encontrados pela web espero que o nosso sirva de aprendizado para projetos futuros utilizando Haskell e a biblioteca wxHaskell.

| Projeto no Google code.

Rodrigo Lira

Uma dica para quem usa o Subversion como controle de versão é o livro gratuito da O’Really, Controle de Versão com Subversion. Ele está disponível em vários formatos na sua  página oficial, e para quem preferir há também  um projeto de tradução para a língua portuguesa no Google Code.

Rodrigo Lira

subversion

Como tinha dito no último post falarei  como autenticar um repositório svn mas antes disso darei uma dica para quem precisa encurtar o caminho de acesso.

Se você perceber no ultimo post o caminho do repositório para acesso externo ficou

svn://250.1.168.72/home/rodrigoclira/projeto

Além de ser extremamente grande, revela todo uma série de diretórios no seu pc, uma forma simples de resolver isso é criando um link simbólico no diretório raiz,

rodrigoclira@desktop:/# ln -s /home/rodrigoclira/projeto projeto
rodrigoclira@desktop:/# chmod 777 projeto

Agora podemos utilizar apenas

svn://250.1.168.72/projeto

Vamos para a autenticação…

Primeiramente, há três maneiras de fazer uma autenticação num repositório, via ssh, apache ou svn. Vou explicar utilizando a do próprio svn que é bem simples.

Dentro de qualquer repositório há algumas pastas entre elas a ‘conf’, essa pasta contém os arquivos que iremos alterar.

É no arquivo ‘passwd’ que iremos definir os usuários e suas respectivas senhas.

[users]
rodrigo = 1234

Dessa forma o repositório terá apenas um usuário, ‘rodrigo’ com a senha ‘1234’.

Agora é necessário alterar algumas linhas da tag [general] do arquivo ‘svnserve.conf’, que se encontra na mesma pasta.

No final a sua aparência será algo como

[general]
# Acesso anônimo não é autorizado
anon-access = none # outras opções, read ou write
# Usuários autenticados podem ler e escrever
auth-access = write
# O arquivo que define os usuários
password-db = passwd
# Nome real do repositório
realm = Repositorio do Rodrigo


Com essa configuração qualquer acesso ao repositório só será permitido após uma autenticação.

Instalando servidor svn no linux

| Controle de versão com Subversion

Rodrigo Lira

“Um sistema de controle de versão é um software que tem finalidade gerenciar diferentes tipos de 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. Este tipo de sistema é muito presente em empresas e instituições de tecnologia e desenvolvimento de software. É também muito comum no desenvolvimento de software livre. É útil, em diversos aspectos, tanto para projetos pessoais pequenos e simples como também para grandes projetos comerciais.”

Texto retirado do Wikipedia

Recentemente foi necessário instalar e configurar um servidor svn na empresa que estagio. Devido a grande quantidade de informação inútil absorvida na internet e minha total inexperiência no assunto, a instalação demorou mais do que o necessário porém o procedimento é bem simples. A instalação foi feita numa máquina virtualizada através do VMware com o Debian Lenny.

Vamos lá !

Para o funcionamento do Servidor SVN é necessário a instalação de três pacotes, o subversion, apache2 e a libapache2-svn. Para instalar os pacotes, como root, digite no terminal

#apt-get install subversion

#apt-get install apache2

#apt-get install libapache2-svn

Bem agora é necessário adicionar duas linhas no arquivo de configuração do apache, “httpd.conf” e caso você esteja usando Debian é necessário fazer o mesmo para o “apache2.conf”. Ambos são encontrados em /etc/apache2/

Adicione o seguinte

LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so

Depois é necessário reiniciar o servidor apache

rodrigoclira:/etc/apache2/# /etc/init.d/apache2 restart

Será impresso algo parecido com isso na tela

Forcing reload of web server: Apache2[Sun Apr 03 22:16:45 2010] [warn] module dav_module is already loaded,skipping

[Sun Apr 03 22:16:45 2010] module dav_svn_module is already loaded,skipping

[Sun Apr 03 22:16:48 2010] module dav_module is already loaded, skipping.

[Sun Apr 03 22:16:48 2010] module dav_svn_module is already loaded,skipping

Bem, está quase tudo pronto, agora é necessário rodar o comando svnserve que permite acessar aos repositórios usando o svn network protocol.

#svnserve -d

DICA Adicione esse comando no script de inicialização da máquina, veja como no artigo do vivaolinux

Acabada as configurações, vamos criar um repositório SVN

rodrigoclira@desktop:/home/rodrigoclira# svnadmin create projeto

Onde “projeto” é o nome do repositório a ser criado. Para acessar externamento ao repositório por um cliente SVN, como o TortoiseSVN , RapidSVN ou o svn, dê um checkout informando na url o seguinte

svn://IPdaMAQUINA/CAMINHOdoREPOSITORIO

 

Se tudo foi feito corretamente aparecerá a confirmação do checkout, informando que não há alterações no repositório.

Esse tutorial é baseado no Playing with SVN do Debian Administrator

Próximo post eu escreverei algumas dicas e explicarei como colocar autenticação no repositório SVN.

| Autenticação no repositório svn

| Controle de Versão com Subversion

| HP12C on line

Rodrigo Lira