Para instalação e configuração no fedora Clique Aqui
Segue a instalação e configuração do Apache com o SVN(Subversion) no Debian
1 - Logar como root
Instalar o apache o SVN e o módulo de comunicação(libapache2-svn) entre eles.
Execute o comando:
# apt-get install apache2 subversion libapache2-svn
Para testar o apache basta abrir em um browser o endereço http://localhost/. Você será redirecionado para http://localhost/apache2-default/, pois a configuração padrão do Apache2 redireciona o caminho raiz do servidor para o seu site padrão. Para alterar essa configuração você deve alterar o arquivo /etc/apache2/sites-available/default e comentar a linha "RedirectMatch ^/$ /apache2-default/", algo do tipo:
...
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# RedirectMatch ^/$ /apache2-default/
...
Reinicie o Apache2 e acesse o endereço http://localhost para ver o efeito da alteração.
Vale ressaltar que no Debian (e distribuições baseadas nele), a instalação do pacote do Apache2 organiza os arquivos de configuração de módulos e sites de uma maneira bem simples e funcional. Todos os arquivos de configuração ficam no diretório /etc/apache2, veja abaixo:
-/etc/apache2
|-apache2.conf
|-/conf.d
|-envvars
|-httpd.conf
|-/mods-available
|-/mods-enabled
|-ports.conf
|-/sites-available
|-/sites-enabled
Por enquanto o que importa saber é que os diretórios *-available e *-enabled, servem para os módulos/sites disponíveis e módulos/sites habilitados.
2 - Criar um repositório
Crie um diretório para o repositório que será criado
# mkdir /var/svn-repos
Agora basta criar o repositório com o utilitário svnadmin
# svnadmin create --fs-type fsfs /var/svn-repos/projeto
Após criar o repositório é necessário montar a estrutura inicial para o repositório
# svn mkdir file:///var/svn-repos/projeto/trunk file:///var/svn-repos/projeto/branches file:///var/svn-repos/projeto/tags -m "Criando estrutura inical do repositório"
Este comando irá criar os diretório trunk, tags e branches no repositório, os mesmos são necessário para controlar o código e as releases do projeto.
3 - Configurar o repositório
No diretório /var/svn-repos/projeto você encontrará a seguinte estrutura:
-/var/svn-repos/projeto
|-/conf
|-/dav
|-/db
|-/hooks
|-/locks
|-format
|-README.txt
Neste momento o mais importante é o diretório conf, onde temos o arquivo de configuração do repositório. Edite o svnserve.conf:
# nano /var/svn-repos/projeto/conf/svnserve.conf
e deixe o seu conteúdo da seguinte forma:
[general]
# Defini permissão de leitura para usuários anônimos
anon-access = read
# Defini permisão deescrita para usuário autenticados
auth-access = write
# Defini o arquivo de usuários e senhas
# password-db = passwd
# Defini as regras de autorização nos diretórios do repositório
# authz-db = authz
# Defini o nome do Repositório
realm = Repositório Subversion
4 - Integrar o Apache2 com o Subversion
Essa integração é feita pelo módulo libapache2-svn do Apache2, já instalado anteriormente.
É necessário alterar o arquivo de configuração deste módulo e indicar qual o diretório do repositório Subversion que deve ser disponibilizado através do Apache2. Então edite o arquivo /etc/apache2/mods-available/dav_svn.conf e altere seu conteúdo para que fique da seguinte forma:
DAV svn
# O SVNPath indica qual o diretório específico de um repositório Subversion
# SVNPath /var/lib/svn
# O SVNParentPath indica qual o diretório raiz de todos os repositórios Subversion
SVNParentPath /var/svn-repos
AuthType Basic
AuthName "Repositório Subversion"
AuthUserFile /etc/apache2/dav_svn.passwd
# AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Require valid-user
# SSLRequireSSL
Agora, salve o arquivo e volte a linha de comando.
Criando um usuário para acessar o SVN:
# htpasswd -cm /etc/apache2/dav_svn.passwd 'username' (
Ex:'username' pode ser admin, ao executar o comando será pedido a senha do usuário admin).
# htpasswd -cm /etc/apache2/dav_svn.passwd admin
New password:
Re-type new password:
Adding password for user admin
* O parâmetro -c só é necessário para o primeiro usuário, pois é usado para criar o arquivo.
Para os seguintes apenas o -m resolve, que é usado para criptografar a senha com o MD5.
Após isso, altere as permissões deste diretório e do arquivo de senhas:
# chown www-data:www-data /etc/apache2 -R
Reinicie o servidor Apache:
# /etc/init.d/apache2 restart
Para testar as alterações acesse o endereço http://localhost/svn/projeto. Lembre que foi criado um repositório no diretório /var/svn-repos/projeto e este link faz referência a este repositório.
Digite o
Pronto você acaba de configurar a integração entre o Apache 2 e o Subversion.
5 - Adicionar arquivos(import) e realizar checkout e commit
Vamos criar um pequeno projeto na pasta /tmp/projeto, com alguns arquivos de exemplo que podem ser textos simples. Vamos colocá-lo no repositório.
O nosso repositório é o /var/svn-repos/projeto dê permissão de Leitura e Escrita a essa pasta:
$ chmod -R o+w /var/svn-repos/projeto/
para importar arquivos execute o comando:
$ svn import /tmp/projeto http://localhost/svn/projeto/ -m "Testando"
onde localhost eh o servidor svn e /tmp/projeto é onde está o cliente.
Pronto, os arquivos foram importado acesse: http://localhost/svn/projeto/ ou liste como o comando:
$ svn list http://localhost/svn/projeto
OBS: Para acesso remoto localhost deve ser substituído pelo IP de sua máquina. Ex:
http://192.168.0.35/...
Agora vamos baixar os arquivos do repositório /var/svn-repos/projeto para a máquina local para que possamos trabalhar com esses arquivos e depois mandar de volta ao servidor, após modificá-los.
Se executa localmente, dê premissão para o seu usuário na pasta em que deseja baixar o arquivo. Exemplo:
$ chown -R "usuário" /project/
Agora saia do usuário root, mas continue no console com o "usuário" que deu permissão e faça o checkout para outra pasta local. Exemplo:
$ svn checkout http://localhost/svn/projeto/ /project/teste/
Acesse algum arquivo da pasta /project/teste modifique o arquivo salve e mande de volta ao servidor. Entre no diretório do projeto:
$ cd /project/teste
e depois execute:
$ svn commit --message "Testando novamente"
Pronto, o arquivo modificado foi enviado ao servidor e uma nova REVISION foi incrementada.
O que é um Branch?
-Seria uma cópia de uma versão de revisão de um ou vários arquivos. Com ele é possível fazer desenvolvimento paralelo dos mesmos fontes.
Isso é bastante útil quando você está com a versão de desenvovimento relativamente boa, mas tem a intenção de fazer grandes mudanças, ou pequenas
mudanças que causam grande impacto em todo o projeto. Assim, é possível essa segunda linha de desenvolvimento paralela a versão quente,
e depois quando você for fazer um merge das alterações, fica bem mais fácil. Principalmente se for utilizado um comparador de texto, como o BeyondCompare.
O que é uma TAG?
-Diferentemente de um Branch, uma TAG cria uma versão estática, que não pode mais ser alterada. Isto serve bastante para uma versão final,
quando você for liberar o seu projeto.
Nenhum comentário:
Postar um comentário