<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bittersweet dev &#187; SVN</title>
	<atom:link href="http://blog.hboaventura.com/tag/svn/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hboaventura.com</link>
	<description>'cause that's the dev life</description>
	<lastBuildDate>Wed, 12 May 2010 02:29:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PHP: Instalando a extensão SVN no Ubuntu 9.04</title>
		<link>http://blog.hboaventura.com/php-instalando-a-extensao-svn-no-ubuntu-9-04/</link>
		<comments>http://blog.hboaventura.com/php-instalando-a-extensao-svn-no-ubuntu-9-04/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 02:30:43 +0000</pubDate>
		<dc:creator>kidh0</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.hboaventura.com/?p=225</guid>
		<description><![CDATA[Recentemente estive envolvido em um projeto que necessitava interagir com um repositório SVN (controle de versão? Não tem idéia do que é isso? Dê uma lida neste artigo). Era o básico, checkout e commit de arquivos, nada muito complexo. Para minha surpresa, o PHP não tem nenhuma função nativa de acesso a repositórios SVN, então [...]

<br/><br/>
<strong>  Leia também:</strong><ol><li><a href='http://blog.hboaventura.com/instalando-o-firefox-3-5-no-ubuntu-9-04/' rel='bookmark' title='Permanent Link: [update] Instalando o Firefox 3.5 no Ubuntu 9.04'>[update] Instalando o Firefox 3.5 no Ubuntu 9.04</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-233 alignleft" style="margin: 5px;" title="php" src="http://blog.hboaventura.com/wp-content/uploads/2009/07/php-300x158.png" alt="PHP" width="240" height="126" /></p>
<p>Recentemente estive envolvido em um projeto que necessitava interagir com um repositório SVN (controle de versão? Não tem idéia do que é isso? Dê uma lida neste <a href="http://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%A3o" target="_blank">artigo</a>). Era o básico, checkout e commit de arquivos, nada muito complexo. Para minha surpresa, o PHP não tem nenhuma função nativa de acesso a repositórios SVN, então a busca pela iluminação começou.</p>
<p>Primeiro pensei em usar a função exec() e só passar os comandos para ela. Isso resolve, mas é um tanto quando deselegante, pessoalmente achei até um pouco grosseiro, além de que rodar um exec() no servidor nunca é bem visto. <span style="text-decoration: line-through;">Mas funciona!</span></p>
<p>Como a idéia é sempre a melhor implementação (ou pelo menos o mais próximo possível disso), continuei minhas buscas pelo <a href="http://www.google.com" target="_blank">oráculo</a>. Acabei me deparando com uma extensão <a href="http://pecl.php.net/" target="_blank">PECL</a> que fazia exatamente o que eu precisava, a <a href="http://us3.php.net/manual/en/book.svn.php" target="_blank">PHP SVN</a>.</p>
<p>Dentre a lista de funções existentes, estão as funções básicas que eu precisava, checkout e commit , até mais avançadas, com parâmetros para a autenticação em servidores que requerem tal segurança.</p>
<h3>Instalação</h3>
<p>A instalação via <a href="http://pecl.php.net/" target="_blank">PECL</a> é bem simples, se não fosse por alguns problemas de dependência  que encontrei pelo caminho. Como não há necessidade alguma de vocês passarem pelos mesmos &#8220;apertos&#8221; pelos quais eu passei, segue o passo a passo:</p>
<h4>1º Passo &#8211; As dependências</h4>
<p>Existem algumas dependências necessárias para instalar o pacote PECL do SVN, segue o comando para instalar todas:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php5-dev libsvn-dev \
libsasl2-dev libsasl2-modules-ldap libneon27-gnutls-dev</pre></div></div>

<h4>2º Passo &#8211; O pacote PECL</h4>
<p>Depois de as dependências todas estarem instaladas, vamos para a instalação do pacote PECL SN:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> pecl <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #660033;">-f</span> <span style="color: #c20cb9; font-weight: bold;">svn</span></pre></div></div>

<h4>3º Passo &#8211; Configurando o PHP.ini</h4>
<p>Para finalizar, como super usuário, digite o seguinte comando no terminal:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">extension</span>=svn.so <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>php.ini</pre></div></div>

<p>Feito isso, para o apache reconhecer a extensão, ele deve ser reiniciado:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> apache2ctl restart</pre></div></div>

<p>Pronto! Já estão disponíves no servidor as <a href="http://us3.php.net/manual/en/ref.svn.php" target="_blank">funções</a> da extensão em seus scripts.</p>
<p>Referências:</p>
<ul>
<li><a href="http://us3.php.net/manual/en/book.svn.php" target="_blank">http://us3.php.net/manual/en/book.svn.php</a></li>
<li><a href="http://ubuntuforums.org/showthread.php?p=2143883" target="_blank">http://ubuntuforums.org/showthread.php?p=2143883</a></li>
<li><a href="http://hasin.wordpress.com/2008/04/21/installing-pecl-subversion-extension-for-php-in-ubuntu-710/" target="_blank">http://hasin.wordpress.com/2008/04/21/installing-pecl-subversion-extension-for-php-in-ubuntu-710/</a></li>
</ul>


<br/><br/><p><strong>  Leia também:</strong><ol><li><a href='http://blog.hboaventura.com/instalando-o-firefox-3-5-no-ubuntu-9-04/' rel='bookmark' title='Permanent Link: [update] Instalando o Firefox 3.5 no Ubuntu 9.04'>[update] Instalando o Firefox 3.5 no Ubuntu 9.04</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.hboaventura.com/php-instalando-a-extensao-svn-no-ubuntu-9-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
