<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Quebra de build devido ao mau uso do Subversion</title>
	<atom:link href="http://pronus.eng.br/blog/http:/pronus.eng.br/blog/quebra-de-build-devido-ao-mau-uso-do-subversion/feed" rel="self" type="application/rss+xml" />
	<link>http://pronus.eng.br/blog/http:/pronus.eng.br/blog/quebra-de-build-devido-ao-mau-uso-do-subversion</link>
	<description></description>
	<lastBuildDate>Mon, 23 Aug 2010 21:17:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Gage</title>
		<link>http://pronus.eng.br/blog/http:/pronus.eng.br/blog/quebra-de-build-devido-ao-mau-uso-do-subversion/comment-page-1#comment-540</link>
		<dc:creator>Gage</dc:creator>
		<pubDate>Wed, 28 Oct 2009 17:56:37 +0000</pubDate>
		<guid isPermaLink="false">http://pronus.eng.br/blog/?p=13#comment-540</guid>
		<description>Hi, I applaud your blog for informing people.</description>
		<content:encoded><![CDATA[<p>Hi, I applaud your blog for informing people.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: André Caldas</title>
		<link>http://pronus.eng.br/blog/http:/pronus.eng.br/blog/quebra-de-build-devido-ao-mau-uso-do-subversion/comment-page-1#comment-20</link>
		<dc:creator>André Caldas</dc:creator>
		<pubDate>Tue, 17 Jun 2008 19:55:24 +0000</pubDate>
		<guid isPermaLink="false">http://pronus.eng.br/blog/?p=13#comment-20</guid>
		<description>Edson,

Com controle de versões, não é necessário que tudo seja tão amarrado. É responsabilidade de cada um &quot;mesclar&quot; suas modificações ao fazer o &quot;commit&quot;. O que o artigo diz, é que o programador deve conhecer o paradigma para não atrapalhar os outros. Fazer &quot;commit&quot; só pra fazer backup atrapalha todos os outros.

A solução é: (eu acho)
* Modifica-se o código.
* Testa-se.
* Update.
* Resolução de conflitos.
* Commit.

Os commits devem ser os menores possíveis que não &quot;quebrem o build&quot;. Claro que &quot;quebrar o build&quot; por acidente não é um problema tão grave. O time pode simplesmente voltar para uma versão anterior enquanto alguém arruma o problema. Assim a equipe não precisa parar.

Um efeito colateral indesejado de se fazer &quot;commits de backup&quot; é que os desenvolvedores não irão fazer &quot;updates&quot; com tanta freqüência. Para evitar &quot;updates&quot; vão evitar &quot;commits&quot;. Assim, os problemas serão detectados mais tardiamente. Só haverão &quot;commits de backup&quot;.

Se você tiver &quot;ramos&quot; (branches) no controle de versões é ainda pior. Se, com tantos &quot;commits de backup&quot;  já é difícil fazer update no tronco principal, imagine mesclar diferenças entre os &quot;ramos&quot; e o tronco principal? E se der conflito, como você vai decidir qual é o código correto se o &quot;commit&quot; está incompleto?


André Caldas.</description>
		<content:encoded><![CDATA[<p>Edson,</p>
<p>Com controle de versões, não é necessário que tudo seja tão amarrado. É responsabilidade de cada um &#8220;mesclar&#8221; suas modificações ao fazer o &#8220;commit&#8221;. O que o artigo diz, é que o programador deve conhecer o paradigma para não atrapalhar os outros. Fazer &#8220;commit&#8221; só pra fazer backup atrapalha todos os outros.</p>
<p>A solução é: (eu acho)<br />
* Modifica-se o código.<br />
* Testa-se.<br />
* Update.<br />
* Resolução de conflitos.<br />
* Commit.</p>
<p>Os commits devem ser os menores possíveis que não &#8220;quebrem o build&#8221;. Claro que &#8220;quebrar o build&#8221; por acidente não é um problema tão grave. O time pode simplesmente voltar para uma versão anterior enquanto alguém arruma o problema. Assim a equipe não precisa parar.</p>
<p>Um efeito colateral indesejado de se fazer &#8220;commits de backup&#8221; é que os desenvolvedores não irão fazer &#8220;updates&#8221; com tanta freqüência. Para evitar &#8220;updates&#8221; vão evitar &#8220;commits&#8221;. Assim, os problemas serão detectados mais tardiamente. Só haverão &#8220;commits de backup&#8221;.</p>
<p>Se você tiver &#8220;ramos&#8221; (branches) no controle de versões é ainda pior. Se, com tantos &#8220;commits de backup&#8221;  já é difícil fazer update no tronco principal, imagine mesclar diferenças entre os &#8220;ramos&#8221; e o tronco principal? E se der conflito, como você vai decidir qual é o código correto se o &#8220;commit&#8221; está incompleto?</p>
<p>André Caldas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rogerio</title>
		<link>http://pronus.eng.br/blog/http:/pronus.eng.br/blog/quebra-de-build-devido-ao-mau-uso-do-subversion/comment-page-1#comment-19</link>
		<dc:creator>Rogerio</dc:creator>
		<pubDate>Tue, 17 Jun 2008 19:00:56 +0000</pubDate>
		<guid isPermaLink="false">http://pronus.eng.br/blog/?p=13#comment-19</guid>
		<description>Aqui na empresa tentamos minimizar isso com ferramentar de integração contínua como Bamboo (proprietário) e o Apache Continnum. O que ele faz é de tempo em tempo estabelecido em configuração, um update do projeto do svn e tenta gerar um novo build. Quando há algum problema, ele notifica por e-mail falha no build e manda o usuário que comitou o trecho de código que ocasionou o problema.</description>
		<content:encoded><![CDATA[<p>Aqui na empresa tentamos minimizar isso com ferramentar de integração contínua como Bamboo (proprietário) e o Apache Continnum. O que ele faz é de tempo em tempo estabelecido em configuração, um update do projeto do svn e tenta gerar um novo build. Quando há algum problema, ele notifica por e-mail falha no build e manda o usuário que comitou o trecho de código que ocasionou o problema.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edson</title>
		<link>http://pronus.eng.br/blog/http:/pronus.eng.br/blog/quebra-de-build-devido-ao-mau-uso-do-subversion/comment-page-1#comment-18</link>
		<dc:creator>Edson</dc:creator>
		<pubDate>Tue, 17 Jun 2008 14:11:55 +0000</pubDate>
		<guid isPermaLink="false">http://pronus.eng.br/blog/?p=13#comment-18</guid>
		<description>Isso é uma realidade. Aqui no trabalho nós dividimos as tarefas e cada programador fica com uma parte do código, se ele precisa de alguma alteração na parte do outro ele faz uma solicitação para o outro implementar, uma linguagem orientada a objetos ajuda nestes casos visto que vc não precisa saber o que foi feito pelo outro programador, vc somente precisa da função funcionando redondinho.
Dessa forma todos sabem quem fez o que e se uma classe do repositório não compila todos vão em cima do programador que fez a caca e dá um supapo que é pro cara se ligar e corrigir.
Hehe.
Organizar o projeto e os programadores eu acho que é a melhor solução para esse problema.
Minha opinião, não sei a dos outros. Se alguém tiver uma solução melhor posta aí.</description>
		<content:encoded><![CDATA[<p>Isso é uma realidade. Aqui no trabalho nós dividimos as tarefas e cada programador fica com uma parte do código, se ele precisa de alguma alteração na parte do outro ele faz uma solicitação para o outro implementar, uma linguagem orientada a objetos ajuda nestes casos visto que vc não precisa saber o que foi feito pelo outro programador, vc somente precisa da função funcionando redondinho.<br />
Dessa forma todos sabem quem fez o que e se uma classe do repositório não compila todos vão em cima do programador que fez a caca e dá um supapo que é pro cara se ligar e corrigir.<br />
Hehe.<br />
Organizar o projeto e os programadores eu acho que é a melhor solução para esse problema.<br />
Minha opinião, não sei a dos outros. Se alguém tiver uma solução melhor posta aí.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
