<?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>coding &#187; subversion</title>
	<atom:link href="http://www.coding.com.br/tag/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coding.com.br</link>
	<description>have you coded today?</description>
	<lastBuildDate>Wed, 08 Sep 2010 06:59:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Usando o subversion para sincronizar a $HOME</title>
		<link>http://www.coding.com.br/linux/usando-o-subversion-para-sincronizar-a-home/</link>
		<comments>http://www.coding.com.br/linux/usando-o-subversion-para-sincronizar-a-home/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 21:31:32 +0000</pubDate>
		<dc:creator>Celso Fernandes</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[sincronização]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=543</guid>
		<description><![CDATA[Enfim postando no blog agora que não tenho mais dor de cabeça universidade, mas vamos ao que interessa.
A muito tempo atrás vinha procurando uma forma de sincronizar minhas configurações de usuário como chaves públicas, scripts, hosts através de várias máquinas, uma vez que tenho que manter em sincronia a minha máquina no trabalho, notebook pessoal, [...]]]></description>
			<content:encoded><![CDATA[<p>Enfim postando no blog agora que não tenho mais <del datetime="2010-02-06T20:25:18+00:00">dor de cabeça</del> universidade, mas vamos ao que interessa.</p>
<p>A muito tempo atrás vinha procurando uma forma de sincronizar minhas configurações de usuário como chaves públicas, scripts, hosts através de várias máquinas, uma vez que tenho que manter em sincronia a minha máquina no trabalho, notebook pessoal, desktop pessoal (fora as máquinas virtuais).</p>
<p>A um tempo tentei algo como um script que utilizava scp, para sincronizar diretórios, mas com o problema de consumo de banda (o que no Brasil é um grande problema) e sobrescrever  alterações, resolvi adotar o rsync que já otimizava o uso da banda enviando somente as alterações e faz a checagem da data de modificação porém ele não faz nenhuma verificação quanto ao conteúdo do arquivo, e isto trazia um sério problema pois uma vez que houvessem alterações em duas máquinas, teríamos um sério problema na hora de sincronizar os arquivos.</p>
<p>Um dia desses no trabalho, utilizando o subversion para controle de versão em um projeto, ele fornece backup dos arquivos, histórico de alterações, otimiza o consumo de banda enviando somente alterações e ainda por cima verifica o conteúdo dos arquivos em questão.. Comecei a associar as coisas, e isto parecia ser uma possível solução para o meu problema, por que não tentar?</p>
<p>Criado o repositório online, ja que todas máquinas tem acesso a internet, dei um checkout na minha $HOME para criar os diretórios .svn de controle, a primeira coisa que fiz foi ignorar todos arquivos na minha pasta pessoal com o comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> propset <span style="color: #c20cb9; font-weight: bold;">svn</span>:ignore <span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

<p>Isto deve ser feito senão <strong>todos</strong> arquivos na HOME serão tratados como desconhecidos e perguntado se não devem ser adicionados ao controle de versão e não queremos isto, queremos fazer o controle de somente alguns arquivos/diretórios que são de nosso interesse.</p>
<p>logo após esse procedimento podemos começar a adicionar nossos arquivos ao controle de versão, como por exemplo nossa pasta .ssh e .gnupg para ter nossa chave pública em todas as máquinas:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> add .ssh
$ <span style="color: #c20cb9; font-weight: bold;">svn</span> add .gnupg</pre></div></div>

<p>Caso queira ignorar algum arquivo como o known_hosts na pasta ssh proceda da seguinte forma:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">--keep-local</span> known_hosts
$ <span style="color: #c20cb9; font-weight: bold;">svn</span> propset <span style="color: #c20cb9; font-weight: bold;">svn</span>:ignore known_hosts</pre></div></div>

<p>Uma vez feito isto já temos os arquivos que queremos no controle de versão e só falta o commit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> status <span style="color: #660033;">-uv</span> <span style="color: #666666; font-style: italic;"># cheque se esta tudo ok ;)</span>
$ <span style="color: #c20cb9; font-weight: bold;">svn</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;commit inicial da home&quot;</span></pre></div></div>

<p>Estou usando a algum tempo este procedimento, e tem dado muito certo, uma vez que não perco meus arquivos, mantenho um registro das alterações e tenho minhas máquinas (virtuais) sincronizadas. happy syncin&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/linux/usando-o-subversion-para-sincronizar-a-home/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
