<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.lupahosting.com.br/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>SVN-Subversion - Histórico de revisão</title>
		<link>https://wiki.lupahosting.com.br/index.php?title=SVN-Subversion&amp;action=history</link>
		<description>Histórico de revisões para esta página nesta wiki</description>
		<language>pt-br</language>
		<generator>MediaWiki 1.15.1</generator>
		<lastBuildDate>Fri, 03 Jul 2026 11:46:11 GMT</lastBuildDate>
		<item>
			<title>Wiki:&amp;#32;Criou página com ''''Instalando e usando o Subversion'''   Subversion é um software muito usado para controle de versões de sistemas. Muitas vezes desenvolvemos um projeto e precisamos ter um bo…'</title>
			<link>https://wiki.lupahosting.com.br/index.php?title=SVN-Subversion&amp;diff=195&amp;oldid=prev</link>
			<description>&lt;p&gt;Criou página com &amp;#39;&amp;#39;&amp;#39;&amp;#39;Instalando e usando o Subversion&amp;#39;&amp;#39;&amp;#39;   Subversion é um software muito usado para controle de versões de sistemas. Muitas vezes desenvolvemos um projeto e precisamos ter um bo…&amp;#39;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nova página&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Instalando e usando o Subversion'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Nesse documento estão descritas algumas maneiras de configurar um servidor svn e alguns comandos úteis para usá-lo.&lt;br /&gt;
&lt;br /&gt;
Os pacotes necessários para a instalação e configuração são os seguintes:&lt;br /&gt;
&lt;br /&gt;
    * httpd ou apache ou apache2 (depende da distribuição)&lt;br /&gt;
    * subversion&lt;br /&gt;
    * mod_dav_svn ou subversion-server ou libapache2-svn (depende da distribuição) &lt;br /&gt;
&lt;br /&gt;
Partiremos do princípio que os pacotes necessários já estão instalados na máquina que será o servidor svn.&lt;br /&gt;
Criar um repositório svn no servidor&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Antes de criar o repositório precisamos ter o diretório correspondente no sistema, por isso, use o comando abaixo para criá-lo:&lt;br /&gt;
&lt;br /&gt;
  # mkdir /svn&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  # svnadmin create /svn&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Para especificar o tipo do repositório pode-se usar o argumento --fs-type:&lt;br /&gt;
&lt;br /&gt;
  # svnadmin create --fs-type fsfs /svn&lt;br /&gt;
  # svnadmin create --fs-type bdb /svn&lt;br /&gt;
&lt;br /&gt;
O repositório criado estará vazio e começará a contar a partir da revisão 0 (zero), a qual corresponderá à sua criação.&lt;br /&gt;
&lt;br /&gt;
Para mais informações sobre o tipo do repositório acesse http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html&lt;br /&gt;
Configurar o apache&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Muitas vezes é possível localiza-lo através do comando locate:&lt;br /&gt;
&lt;br /&gt;
  # locate subversion.conf&lt;br /&gt;
&lt;br /&gt;
Por isso, neste documento, trataremos o arquivo de configuração apenas por: subversion.conf.&lt;br /&gt;
&lt;br /&gt;
Vamos abordar duas formas de configuração, são elas:&lt;br /&gt;
&lt;br /&gt;
    * acesso irrestrito para leitura e escrita (sem senha)&lt;br /&gt;
    * acesso irrestrito para leitura e acesso restrito para escrita (com senha) &lt;br /&gt;
&lt;br /&gt;
Antes de tudo faça um backup do arquivo de configuração original:&lt;br /&gt;
&lt;br /&gt;
  # cp subversion.conf subversion.conf.orig&lt;br /&gt;
&lt;br /&gt;
Ajustar o dono do svn&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Mude o dono do diretório /svn de root para apache:&lt;br /&gt;
&lt;br /&gt;
  # chown -R apache.apache /svn&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Acesso irrestrito para leitura e escrita&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
  # inicio do arquivo subversion.conf&lt;br /&gt;
  &lt;br /&gt;
  LoadModule dav_svn_module     modules/mod_dav_svn.so&lt;br /&gt;
  LoadModule authz_svn_module   modules/mod_authz_svn.so&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Location /svn&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  SVNPath /svn&lt;br /&gt;
  # desliga senha&lt;br /&gt;
  SVNPathAuthz off&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  # fim do arquivo subversion.conf&lt;br /&gt;
&lt;br /&gt;
Acesso irrestrito para leitura e acesso restrito para escrita&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
  # inicio do arquivo subversion.conf&lt;br /&gt;
  &lt;br /&gt;
  LoadModule dav_svn_module     modules/mod_dav_svn.so&lt;br /&gt;
  LoadModule authz_svn_module   modules/mod_authz_svn.so&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Location /svn&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  SVNPath /svn&lt;br /&gt;
  # autenticando um usuario&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;Subversion repository&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/svn-passwd&lt;br /&gt;
  # qualquer operacao que nao seja leitura requer um usuario valido&lt;br /&gt;
  &amp;lt;LimitExcept GET PROPFIND OPTIONS REPORT&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
  &amp;lt;/LimitExcept&amp;gt;&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  # fim do arquivo subversion.conf&lt;br /&gt;
&lt;br /&gt;
Mais informações sobre como configurar o arquivo subversion.conf&lt;br /&gt;
Criar o arquivo de senha&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Ele pode ser criado por meio do seguinte comando:&lt;br /&gt;
&lt;br /&gt;
  # htpasswd -c /etc/svn-passwd root&lt;br /&gt;
&lt;br /&gt;
O comando acima cria o arquivo /etc/svn-passwd e pede que a senha do usuário root seja informada.&lt;br /&gt;
&lt;br /&gt;
Para adicionar um novo usuário pode-se usar o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
  # htpasswd /etc/svn-passwd andre&lt;br /&gt;
&lt;br /&gt;
O usuário digita a senha e o arquivo é automaticamente atualizado. Ou o usuário executa o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
  # htpasswd -n andre&lt;br /&gt;
&lt;br /&gt;
Envia o resultado do comando para o administrador do svn e ele inclui o usuário e a sua respectiva senha no arquivo correspondente.&lt;br /&gt;
Iniciar/Reiniciar o apache&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
O comando abaixo reinicia o apache estando ele ligado ou desligado:&lt;br /&gt;
&lt;br /&gt;
  # service httpd stop &amp;amp;&amp;amp; service httpd start&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Agora o seu repositório svn já pode ser acessado, usando um navegador qualquer, através do link:&lt;br /&gt;
&lt;br /&gt;
http://servidor/svn&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
http://ip_do_servidor/svn&lt;br /&gt;
Alguns comandos úteis para manusear projetos no svn configurado&lt;br /&gt;
&lt;br /&gt;
Após criarmos um repositório svn é interessante conhecermos alguns comandos que possibilitam o manuseio desta ferramenta.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  # export SVN_EDITOR='vim'&lt;br /&gt;
&lt;br /&gt;
Acima definimos que o editor padrão será o vim.&lt;br /&gt;
&lt;br /&gt;
Para que todos os usuários tenham essa variável configurada, basta adicionar a linha de comando acima no arquivo /etc/profile.&lt;br /&gt;
Criar um diretório no svn&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  # svn mkdir http://servidor/svn/projeto&lt;br /&gt;
&lt;br /&gt;
Importar um projeto para o svn&lt;br /&gt;
&lt;br /&gt;
Algumas vezes já temos um projeto em algum canto de nossa máquina; Importe-o para o svn usando a linha de comando abaixo:&lt;br /&gt;
&lt;br /&gt;
  # svn import /tmp/projeto http://servidor/svn/projeto&lt;br /&gt;
&lt;br /&gt;
O comando acima importará todos os arquivos do diretório /tmp/projeto para o repositório projeto em http://servidor/svn/&lt;br /&gt;
&lt;br /&gt;
Uma outra maneira de executar o procedimento acima é acessar o diretório e então importá-lo para o svn:&lt;br /&gt;
&lt;br /&gt;
  # cd /tmp/projeto&lt;br /&gt;
  # svn import http://servidor/svn/projeto&lt;br /&gt;
&lt;br /&gt;
Baixar um projeto do svn&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Efetuando o checkout:&lt;br /&gt;
&lt;br /&gt;
  # svn co http://servidor/svn/projeto&lt;br /&gt;
&lt;br /&gt;
Efetivar alterações em um projeto do svn&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
De dentro do diretório principal do projeto efetue o commit:&lt;br /&gt;
&lt;br /&gt;
  # svn commit&lt;br /&gt;
&lt;br /&gt;
Listar arquivos de um projeto&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Para isso, execute o seguinte comando no diretório principal do projeto:&lt;br /&gt;
&lt;br /&gt;
  # svn list&lt;br /&gt;
&lt;br /&gt;
Adicionar arquivos a um projeto&lt;br /&gt;
&lt;br /&gt;
No decorrer de um projeto novos arquivos surgem e precisam ser adicionados no repositório svn.&lt;br /&gt;
&lt;br /&gt;
Para efetuar essa operação pode-se usar o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
  # svn add projeto.c&lt;br /&gt;
&lt;br /&gt;
Quando o commit for efetuado, o arquivo projeto.c será adicionado à árvore correspondente do projeto em que estava trabalhando.&lt;br /&gt;
Remover arquivos de um projeto&lt;br /&gt;
&lt;br /&gt;
A medida que arquivos vão sendo incluso no projetos, há a necessidade de excluir alguns.&lt;br /&gt;
&lt;br /&gt;
Use o seguinte comando para efetuar tal operação:&lt;br /&gt;
&lt;br /&gt;
  # svn rm projeto.c&lt;br /&gt;
&lt;br /&gt;
É possível remover um projeto inteiro do svn, para isto basta executar:&lt;br /&gt;
&lt;br /&gt;
  svn rm http://servidor/svn/projeto&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Verificar as alterações antes de efetuar um commit&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Executando apenas o svn diff:&lt;br /&gt;
&lt;br /&gt;
  svn diff&lt;br /&gt;
&lt;br /&gt;
Jogando a saída para um editor de texto, no caso o vim:&lt;br /&gt;
&lt;br /&gt;
  svn diff | vim -&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Verificar o log de um projeto&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  svn log&lt;br /&gt;
&lt;br /&gt;
Obter ajuda dos próprios comandos&lt;br /&gt;
&lt;br /&gt;
Para verificar os comandos disponíveis use:&lt;br /&gt;
&lt;br /&gt;
  svn help&lt;br /&gt;
&lt;br /&gt;
Uma série de comandos, possíveis, será listada. Para obter informções sobre um comando em específico use:&lt;br /&gt;
&lt;br /&gt;
  svn comando --help&lt;/div&gt;</description>
			<pubDate>Wed, 10 Mar 2010 19:50:58 GMT</pubDate>			<dc:creator>Wiki</dc:creator>			<comments>https://wiki.lupahosting.com.br/index.php/Discuss%C3%A3o:SVN-Subversion</comments>		</item>
	</channel>
</rss>