Jump to content

Criar e usar um servidor SVN


mephistor

Recommended Posts

Achei esse topico muito legal para quem esta começamdo o compilar ...e nao sabe como criar seu priprio server de svn..

nao sei se ja tem topico relacionado ..a esse assunto ..mas como tem varios topicos iguais mas escritos de maneiras diferentes aqui e ninguem fala nada acho que nao tem nada haver .. PARA QUEM INTERESSA A AE! TUTORIAL COMPLETO NO LINK http://samuca.wordpress.com

 

Subversion é um software muito usado para controle de versões de sistemas. Muitas vezes desenvolvemos um projeto e precisamos ter um bom controle do seu versionamento, nesse caso o svn é uma ferramenta muito interessante.

 

Nesse documento estão descritas algumas maneiras de configurar um servidor svn e alguns comandos úteis para usá-lo.

 

Os pacotes necessários para a instalação e configuração são os seguintes:

 

* httpd ou apache ou apache2 (depende da distribuição)

* subversion

* mod_dav_svn ou subversion-server ou libapache2-svn (depende da distribuição)

 

Partiremos do princípio que os pacotes necessários já estão instalados na máquina que será o servidor svn.

Criar um repositório svn no servidor

 

Nos passos abaixo usaremos um repositório chamado /svn, mas se desejar criá-lo em /home/usuario/svn, ou em qualquer outro local desejado, basta trocar /svn pelo qual será usado em seu servidor.

 

Antes de criar o repositório precisamos ter o diretório correspondente no sistema, por isso, use o comando abaixo para criá-lo:

 

# mkdir /svn

 

Agora vamos executar o comando necessário para criar o repositório /svn, vale lembrar que o comando abaixo deve ser executado em um diretório vazio, porém, já existente no sistema, pois o subversion irá apenas criar toda a estrutura necessária para o controle de versões, então execute o comando abaixo para tal procedimento:

 

# svnadmin create /svn

 

Vale uma observação aqui, até a versão 1.1 do subversion, o tipo de repositório padrão era o Berkeley DB, mas a partir da versão 1.2 o padrão passou a ser o FSFS. O suporte FSFS apareceu na versão 1.1. Na 1.0 apenas o Berkeley DB era suportado.

 

Para especificar o tipo do repositório pode-se usar o argumento --fs-type:

 

# svnadmin create --fs-type fsfs /svn

# svnadmin create --fs-type bdb /svn

 

O repositório criado estará vazio e começará a contar a partir da revisão 0 (zero), a qual corresponderá à sua criação.

 

Para mais informações sobre o tipo do repositório acesse http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html

Configurar o apache

 

O apache é usado porque além de ser o servidor http mais usual, através do módulo mod_dav_svn.so ele consegue acessar um repositório svn e torná-lo acessível para clientes que usam o protocolo WebDAV/DeltaV, (é o caso do comando svn, o qual veremos ainda neste documento), ele é uma extensão do protocolo HTTP.

 

Onde o arquivo de configuração, do subversion, é armazenado pode variar de distribuição para distribuição. Por exemplo, ele pode estar tanto em /etc/httpd/conf.d/subversion.conf, como em /etc/apache/conf/conf.d/subversion.conf, ou até mesmo em outro diretório.

 

Muitas vezes é possível localiza-lo através do comando locate:

 

# locate subversion.conf

 

Por isso, neste documento, trataremos o arquivo de configuração apenas por: subversion.conf.

 

Vamos abordar duas formas de configuração, são elas:

 

* acesso irrestrito para leitura e escrita (sem senha)

* acesso irrestrito para leitura e acesso restrito para escrita (com senha)

 

Antes de tudo faça um backup do arquivo de configuração original:

 

# cp subversion.conf subversion.conf.orig

 

Ajustar o dono do svn

 

Como vamos configurar o apache para o gerenciamento do repositório, é importante configurarmos o seu dono, pois estaremos lendo e escrevendo no svn através do protocolo HTTP.

 

Mude o dono do diretório /svn de root para apache:

 

# chown -R apache.apache /svn

 

Essa modificação é necessária para que o svn fique acessível via http. Caso o usuário root continuasse como dono do diretório e dos demais arquivos, o apache não teria permissões para acessá-los. Em algumas distribuições o usuário chama-se www ao invés de apache, verifique o nome do usuário do apache antes de executar esse comando.

Acesso irrestrito para leitura e escrita

 

Abaixo segue um exemplo de configuração do arquivo subversion.conf para o acesso sem senha. Use-o caso deseje configurar um servidor svn sem senha.

 

# inicio do arquivo subversion.conf

 

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

 

<Location /svn>

DAV svn

SVNPath /svn

# desliga senha

SVNPathAuthz off

</Location>

 

# fim do arquivo subversion.conf

 

Acesso irrestrito para leitura e acesso restrito para escrita

 

Abaixo segue um exemplo de configuração do arquivo subversion.conf para o acesso com senha. Use-o caso deseje configurar um servidor svn com senha para escrita.

 

# inicio do arquivo subversion.conf

 

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

 

<Location /svn>

DAV svn

SVNPath /svn

# autenticando um usuario

AuthType Basic

AuthName "Subversion repository"

AuthUserFile /etc/svn-passwd

# qualquer operacao que nao seja leitura requer um usuario valido

<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

</LimitExcept>

</Location>

 

# fim do arquivo subversion.conf

 

Mais informações sobre como configurar o arquivo subversion.conf

Criar o arquivo de senha

 

Se o svn foi configurado com senha, como em um dos exemplos acima, será necessário criar o arquivo /etc/svn-passwd, ou o correspondente da sua configuração, onde serão armazenados os usuários, os quais terão acesso de escrita no repositório /svn e suas respectivas senhas.

 

Ele pode ser criado por meio do seguinte comando:

 

# htpasswd -c /etc/svn-passwd root

 

O comando acima cria o arquivo /etc/svn-passwd e pede que a senha do usuário root seja informada.

 

Para adicionar um novo usuário pode-se usar o comando abaixo:

 

# htpasswd /etc/svn-passwd andre

 

O usuário digita a senha e o arquivo é automaticamente atualizado. Ou o usuário executa o seguinte comando:

 

# htpasswd -n andre

 

Envia o resultado do comando para o administrador do svn e ele inclui o usuário e a sua respectiva senha no arquivo correspondente.

Iniciar/Reiniciar o apache

 

Para efetivar as configurações e tornar o svn acessível através da url: http://nome_do_servidor/svn, precisamos iniciar o apache caso ele esteja parado ou reiniciá-lo, se ele já estiver sendo executado na máquina.

 

O comando abaixo reinicia o apache estando ele ligado ou desligado:

 

# service httpd stop && service httpd start

 

Observe que o comando pode ser diferente dependendo da distribuição que estiver sendo usada, ou seja, ao invés de httpd pode ser apache ou até mesmo apache2.

 

Agora o seu repositório svn já pode ser acessado, usando um navegador qualquer, através do link:

 

http://servidor/svn

 

Se o servidor svn foi configurado em sua rede, em casa, e não há nenhum dns configurado, para responder pelos nomes das máquinas, pode-se usar apenas o ip do servidor:

 

http://ip_do_servidor/svn

Alguns comandos úteis para manusear projetos no svn configurado

 

Após criarmos um repositório svn é interessante conhecermos alguns comandos que possibilitam o manuseio desta ferramenta.

 

Se uma das variáveis de ambiente $SVN_EDITOR, $VISUAL ou $EDITOR não estiverem definidas, provavelmente uma mensagem de erro, semelhante a que segue abaixo, será exibida ao tentar efetuar uma alteração no svn.

 

svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found

 

Para definir o editor de texto padrão, o qual será usado para escrever os logs dos commits, pode-se usar a seguinte linha de comando:

 

# export SVN_EDITOR='vim'

 

Acima definimos que o editor padrão será o vim.

 

Para que todos os usuários tenham essa variável configurada, basta adicionar a linha de comando acima no arquivo /etc/profile.

Criar um diretório no svn

 

Antes de adicionarmos um projeto em nosso repositório precisamos criar o diretório onde ele ficará armazenado. Pode-se fazer isso através do seguinte comando:

 

# svn mkdir http://servidor/svn/projeto

 

Importar um projeto para o svn

 

Algumas vezes já temos um projeto em algum canto de nossa máquina; Importe-o para o svn usando a linha de comando abaixo:

 

# svn import /tmp/projeto http://servidor/svn/projeto

 

O comando acima importará todos os arquivos do diretório /tmp/projeto para o repositório projeto em http://servidor/svn/

 

Uma outra maneira de executar o procedimento acima é acessar o diretório e então importá-lo para o svn:

 

# cd /tmp/projeto

# svn import http://servidor/svn/projeto

 

Baixar um projeto do svn

 

Quando for preciso efetuar modificações em um projeto que já está no svn, antes é preciso fazer o checkout, ou seja, efetuar o download dos arquivos correspondentes ao projeto.

 

Efetuando o checkout:

 

# svn co http://servidor/svn/projeto

 

Efetivar alterações em um projeto do svn

 

Depois de concluídas as modificações necessárias precisamos colocar a nova revisão do projeto no svn, para isso precisamos efetuar um commit.

 

De dentro do diretório principal do projeto efetue o commit:

 

# svn commit

 

Listar arquivos de um projeto

 

Depois de efetuar várias mudanças em um projeto baixado do svn, é importante poder listar o seu conteúdo e saber quais arquivos estão armazenados e quais não estão no seu respectivo repositório no svn.

 

Para isso, execute o seguinte comando no diretório principal do projeto:

 

# svn list

 

Adicionar arquivos a um projeto

 

No decorrer de um projeto novos arquivos surgem e precisam ser adicionados no repositório svn.

 

Para efetuar essa operação pode-se usar o seguinte comando:

 

# svn add projeto.c

 

Quando o commit for efetuado, o arquivo projeto.c será adicionado à árvore correspondente do projeto em que estava trabalhando.

Remover arquivos de um projeto

 

A medida que arquivos vão sendo incluso no projetos, há a necessidade de excluir alguns.

 

Use o seguinte comando para efetuar tal operação:

 

# svn rm projeto.c

 

É possível remover um projeto inteiro do svn, para isto basta executar:

 

svn rm http://servidor/svn/projeto

 

Quando o commit for efetuado, o arquivo projeto.c será removido da árvore onde ele era armazenado e na nova revisão ele não fará mais parte do projeto.

Verificar as alterações antes de efetuar um commit

 

Na maioria das vezes é interessante, antes de efetuar o commit, verificar quais são as modificações. Para isso usamos o svn diff. Porém, se existirem muitas modificações, é preciso jogar a saída do comando para um editor de texto, sendo assim possível analisar todo o diff gerado.

 

Executando apenas o svn diff:

 

svn diff

 

Jogando a saída para um editor de texto, no caso o vim:

 

svn diff | vim -

 

Lembrando que o comando acima mostra as diferenças do diretório onde foi executado e o seu correspondente no svn. Para verificar todas as modificações de um projeto, basta executá-lo na raiz principal dele.

 

* Verificar o log de um projeto

 

Muitas vezes esquecemos o que fizemos, por isso, ao efetuar um commit o svn sempre pede uma mesagem para ser adicionada ao log do projeto.

 

Para verificar os logs de um determinado projeto: efetue o checkout dele, acesse o diretório onde ele foi baixado e execute o seguinte comando:

 

svn log

 

==Obter ajuda dos próprios comandos==

 

Para verificar os comandos disponíveis use:

 

svn help

 

Uma série de comandos, possíveis, será listada. Para obter informções sobre um comando em específico use:

 

svn comando --help

CREDITOS: André Murbach Maidl

 

Data de Publicação: 09 de Setembro de 2005

 

 

 

Atenção:mas informações

 

[LINK]http://samuca.wordpress.com[/LINK]

Edited by mephistor
  • Like 1

Projeto L2JSites By Mephistor

Iniciado em 11-02-2011 webdesign

Contato: E-mail:[email protected]

Link to comment
Share on other sites


  • 2 weeks later...
  • 1 month later...
  • 10 months later...

Alguem pode mim fala como eu do restart no serve ?

eh so ir no comando //admin depois clica ali em cima server depois shutdown depois tu bota o tempo em segundos depois clica em restart

 

Aquele que aprendeu e reviveu aqui na l2jbrasil

Faço muitos trabalhos para esta comunidade, assim como tambem ajudo aos que precisão.

A VIDA E UMA CAIXINHA DE SUPRESAS, NAO DEIXE PARA DEPOIS O QUE PODES FAZER AGORA!

 

Link to comment
Share on other sites

eh so ir no comando //admin depois clica ali em cima server depois shutdown depois tu bota o tempo em segundos depois clica em restart

 

Tem um jeito mais facil também, usando o comando //server_restart tempo em segundos

Voltando a ATIVA!


Aguardem.......


Link to comment
Share on other sites

  • 11 months later...
  • 5 months later...
  • Join now

    Be part of the largest and oldest communities about Lineage2 in Latin America.





×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.