<?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>Thiago Marcos P. Santos &#187; git</title>
	<atom:link href="http://www.tmpsantos.com.br/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tmpsantos.com.br</link>
	<description></description>
	<lastBuildDate>Mon, 09 Aug 2010 21:16:42 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Git e Gitweb no DreamHost</title>
		<link>http://www.tmpsantos.com.br/2009/05/git-gitweb-on-dreamhost/</link>
		<comments>http://www.tmpsantos.com.br/2009/05/git-gitweb-on-dreamhost/#comments</comments>
		<pubDate>Tue, 19 May 2009 00:08:28 +0000</pubDate>
		<dc:creator>Thiago</dc:creator>
				<category><![CDATA[artigo]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[pt_br]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.tmpsantos.com.br/?p=188</guid>
		<description><![CDATA[Queria colocar no meu site uma área com repositórios de código no qual estou trabalhando. Git foi minha primeira escolha, vendo que deixei o SVN para trás a algum tempo. Infelizmente o DreamHost, que hospeda meu site, não tem suporte oficial a Git. Neste tutorial explico como configurar um repositório Git no DreamHost, inclusive com [...]]]></description>
			<content:encoded><![CDATA[<p>Queria colocar no meu site uma área com repositórios de código no qual estou trabalhando. <a href="http://git-scm.com/">Git</a> foi minha primeira escolha, vendo que deixei o SVN para trás a algum tempo. Infelizmente o <a href="http://www.dreamhost.com/">DreamHost</a>, que hospeda meu site, não tem suporte oficial a Git.</p>
<p>Neste tutorial explico como configurar um repositório Git no DreamHost, inclusive com o Gitweb ativado. Você terá acesso de commit no seu repositório usando SSH e ele estara publicamente disponível para ser clonado via HTTP (uma vez que não temos o git-daemon rodando).</p>
<p>Aviso que o objetivo aqui não é ensinar a usar o Git, e sim, ensinar como publicar um repositório no DreamHost.</p>
<h2>Preparando um hostname</h2>
<p>Seu repositório Git pode ser instalado em qualquer um de seus sites hospedados no DreamHost. Preferi criar um <a href="http://git.tmpsantos.com.br">sub-domínio</a> exclusivo para isolar o conteúdo e facilitar meu gerenciamento.</p>
<h2>Atualizando o Git</h2>
<p>Neste momento, a versão instalada nos servidores do DreamHost é a 1.5.6.5. Achei prudente atualizar para uma versão &gt;= 1.6 na tentativa de manter a compatibilidade com a versão do Git que acompanha as distros mais recentes (ex. Ubuntu Jaunty).</p>
<p>Acesse sua conta no DreamHost via SSH e faça <a href="http://git-scm.com/download">download</a> da última versão estável do Git. Algumas coisas devem ser observadas antes de instalar:</p>
<ul>
<li> Não é necessário a dependência da libcurl, uma vez que só vamos hospedar o repositório.</li>
<li>Devemos desativar o <strong>mmap(2)</strong> para o DreamHost não achar que o Git está consumindo muita memória e matar o processo.</li>
<li>Os arquivos devem ser instalados dentro de <strong>/home/$USER/packages</strong>. Este diretório é correto para instalações de software do usuário no DreamHost. O <strong>/home/$USER/packages/bin </strong>inclusive já está na sua variável de ambiente <strong>$PATH</strong> por padrão.</li>
</ul>
<p>Portanto, após descompactar o código fonte, atente-se para rodar o script de configuração com as seguintes opções (o restante da instalação é convencional):</p>
<pre>$ ./configure --prefix=/home/$USER/packages NO_CURL=1 NO_MMAP=1</pre>
<h2>Criando o repositório</h2>
<p>Como criei um sub-domínio para meus repositórios, a raíz do meu domínio está em <strong>/home/$USER/git.example.com</strong>. Dentro deste diretório,  crie seu repositório:</p>
<pre>$ mkdir test.git
$ cd test.git
$ git init --bare</pre>
<p>Edite o arquivo <strong>description</strong> com algo relevante para aparecer no Gitweb. Por se tratar de um repositório que será clonado via HTTP, é necessário ativar um hook a ser executado após cada commit. Este hook atualiza algumas informações necessárias para clonar o repositório que convecionalmente é feito pelo git-daemon.</p>
<pre>$ mv hooks/post-update.sample hooks/post-update</pre>
<p>Na sua máquina local, dentro de um repositório Git válido já com alguns commits, adicione o seu repositório remoto (usei o nome &#8220;public&#8221; no exemplo). Em seguida faça o push para criar o branch master:</p>
<pre>$ git remote add public ssh://username@example.com/home/username/git.example.com/test.git
$ git push public master</pre>
<p>Caso não queira passar pela amolação de digitar senha a todo momento para atualizar o repositório, <a href="http://www.guiadohardware.net/tutoriais/dominando-ssh/pagina5.html">copie sua chave</a> para o servidor remoto.</p>
<p>Quem quiser clonar o seu repositório público o fará via HTTP pelo comando a seguir:</p>
<pre>$ git clone http://git.example.com/test.git</pre>
<h2>Instalando o Gitweb</h2>
<p>Para usar o Gitweb, você precisa ter o suport a CGI ativado no DreamHost, como normalmente se tem por padrão. Copie o conteúdo da pasta <strong>gitweb</strong> que acompanha o tarball do Git para qualquer lugar acessível externamente (exemplo: crie a pasta <strong>cgi-bin/</strong> e mova o arquivo para lá para termos http://git.example.com/cgi-bin/gitweb.cgi).</p>
<p>Nesta pasta, crie o arquivo <strong>gitweb_config.perl</strong> com o seguinte conteúdo:</p>
<pre name="code" class="html">$GIT = "/home/USERNAME/packages/bin/git";
$projectroot = "/home/USERNAME/git.example.com/";
$home_link_str = "http://git.example.com";

@stylesheets = ("gitweb.css");

$logo = "git-logo.png";
$favicon = "git-favicon.png";
$site_name = "git repositories";</pre>
<h2>Polindo a instalação</h2>
<p>Desativei o <a href="http://blog.dreamhosters.com/kbase/index.cgi?area=2517">directory listing</a> que é comportamento padrão editando o arquivo <strong>.htaccess</strong> e acrescentando a seguinte linha:</p>
<pre name="code" class="html">Options -Indexes</pre>
<p>Recomendo também criar um arquivo <strong>index.php</strong> que redirecione os acessos a http://git.example.com para o Gitweb:</p>
<pre name="code" class="php">
&lt;?php
header("location:http://git.example.com/cgi-bin/gitweb.cgi");
?&gt;</pre>
<h2>Considerações finais</h2>
<p>Este material foi fortemente baseado no conteúdo citado nas referências. É basicamente uma compilação atualizada das melhores partes com alguns poucos toques pessoais.</p>
<p>Por fim, sugiro que você, dono de uma conta no DreamHost, <a href="https://panel.dreamhost.com/?tree=home.sugg&amp;category=New%20Features&amp;search=Git%20source">vote</a> para que a equipe técnica que administra os servidores, proveja suporte nativo.</p>
<h2>Referências:</h2>
<ul>
<li><a href="http://wiki.dreamhost.com/Git">DreamHost Wiki</a></li>
<li><a href="http://autopragmatic.com/2008/01/26/hosting-a-git-repository-on-dreamhost/">Autopragmatic</a></li>
<li><a href="http://craigjolicoeur.com/blog/2008/04/hosting-git-repositories-on-dreamhost/">Craig Jolicoeur</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tmpsantos.com.br/2009/05/git-gitweb-on-dreamhost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
