<?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"
	>
<channel>
	<title>Comments on: Quebra de build devido ao mau uso do Subversion</title>
	<atom:link href="http://br-linux.org/2008/quebra-de-build-devido-ao-mau-uso-do-subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://br-linux.org/2008/quebra-de-build-devido-ao-mau-uso-do-subversion/</link>
	<description>Linux levado a sério desde 1996</description>
	<pubDate>Fri, 21 Nov 2008 00:09:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: daltonmatos</title>
		<link>http://br-linux.org/2008/quebra-de-build-devido-ao-mau-uso-do-subversion/#comment-12805</link>
		<dc:creator>daltonmatos</dc:creator>
		<pubDate>Tue, 17 Jun 2008 17:18:33 +0000</pubDate>
		<guid isPermaLink="false">http://br-linux.org/?p=1996#comment-12805</guid>
		<description>&lt;blockquote cite="Paulo Pontes"&gt;Quam criou essa política tem que apanhar com um gato morto até ele miar. &lt;/blockquote&gt;

Falou tudo! Pensei isso antes mesmo de acabar de ler o texto.

Aqui no trabalho usamos branhces para implementar novas funcionalidades. Antes comitavamos sempre no trunk mas isso trazia uma perda de velocidade, pois se alguem tivesse terminado uma funcionalidade "nao poderia" colocar em produção pois as outras funcionalidade inacabadas tambem faziam parte desse codigo e estavam comitadas no trunk. É claro que antes de colocar em producao poderiamos "limpar" o codigo e retirar qualquer vinculo com as funcionalidades inacabadas, mas nao faziamos isso. ;-)

O que fazemos para minimizar os conflitos na hora do merge é o segunte: Cada desenvolvedor faz diariamente a "absorção" do codigo que está no trunk. Assim a "distância" entre o trunk e a branch nao tende a ficar grande e quando for a hora de fazer o contrario (jogar no trunk as modificacoes da branch) a tendência é que nao existam conflitos, pois como a branch é a implementacao de uma coisa nova, essa "coisa" é novidade no trunk. Mesmo que a branch altere um codigo existente no trunk, as absorções diárias evitam conflitos nesses códigos.

Estamos trabalhando assim há alguns meses e tem funcionado muito bem. A velocidade que gahamos é que sempre que uma funcionalidade acaba de ser implementada é feito o merge dessa branch com o trunk e o "novo" sistema já pode ir pra produção.</description>
		<content:encoded><![CDATA[<blockquote cite="Paulo Pontes"><p>Quam criou essa política tem que apanhar com um gato morto até ele miar. </p></blockquote>
<p>Falou tudo! Pensei isso antes mesmo de acabar de ler o texto.</p>
<p>Aqui no trabalho usamos branhces para implementar novas funcionalidades. Antes comitavamos sempre no trunk mas isso trazia uma perda de velocidade, pois se alguem tivesse terminado uma funcionalidade &#8220;nao poderia&#8221; colocar em produção pois as outras funcionalidade inacabadas tambem faziam parte desse codigo e estavam comitadas no trunk. É claro que antes de colocar em producao poderiamos &#8220;limpar&#8221; o codigo e retirar qualquer vinculo com as funcionalidades inacabadas, mas nao faziamos isso. ;-)</p>
<p>O que fazemos para minimizar os conflitos na hora do merge é o segunte: Cada desenvolvedor faz diariamente a &#8220;absorção&#8221; do codigo que está no trunk. Assim a &#8220;distância&#8221; entre o trunk e a branch nao tende a ficar grande e quando for a hora de fazer o contrario (jogar no trunk as modificacoes da branch) a tendência é que nao existam conflitos, pois como a branch é a implementacao de uma coisa nova, essa &#8220;coisa&#8221; é novidade no trunk. Mesmo que a branch altere um codigo existente no trunk, as absorções diárias evitam conflitos nesses códigos.</p>
<p>Estamos trabalhando assim há alguns meses e tem funcionado muito bem. A velocidade que gahamos é que sempre que uma funcionalidade acaba de ser implementada é feito o merge dessa branch com o trunk e o &#8220;novo&#8221; sistema já pode ir pra produção.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cristo</title>
		<link>http://br-linux.org/2008/quebra-de-build-devido-ao-mau-uso-do-subversion/#comment-12791</link>
		<dc:creator>cristo</dc:creator>
		<pubDate>Tue, 17 Jun 2008 16:43:11 +0000</pubDate>
		<guid isPermaLink="false">http://br-linux.org/?p=1996#comment-12791</guid>
		<description>Para solução disto é feito um build local quando é concluído o a iteração do sistema, nós mesmos nem fazemos builds e mandamos por controle de versões, para o controle de versões só mandamos os documentos de desenvolvimento, o código fonte do sistema, as ferramentas utilizadas ou feitas por nós e imagens, mas o compilado sempre é local, só deixamos explicito a pasta Build pois quando for rodado o make ele irá procurar por esta pasta para colocar o programa compilado.

E atribuimos em nossa polita que haverá um lock de dados quando alguém for fazer alguma iteração de dados.</description>
		<content:encoded><![CDATA[<p>Para solução disto é feito um build local quando é concluído o a iteração do sistema, nós mesmos nem fazemos builds e mandamos por controle de versões, para o controle de versões só mandamos os documentos de desenvolvimento, o código fonte do sistema, as ferramentas utilizadas ou feitas por nós e imagens, mas o compilado sempre é local, só deixamos explicito a pasta Build pois quando for rodado o make ele irá procurar por esta pasta para colocar o programa compilado.</p>
<p>E atribuimos em nossa polita que haverá um lock de dados quando alguém for fazer alguma iteração de dados.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paulo Pontes</title>
		<link>http://br-linux.org/2008/quebra-de-build-devido-ao-mau-uso-do-subversion/#comment-12787</link>
		<dc:creator>Paulo Pontes</dc:creator>
		<pubDate>Tue, 17 Jun 2008 16:25:23 +0000</pubDate>
		<guid isPermaLink="false">http://br-linux.org/?p=1996#comment-12787</guid>
		<description>Qualquer ferramenta se mal usada vai criar problemas.

"Imagine uma equipe com 10 desenvolvedores que usam a política de sempre fazer o commit das alterações feitas durante o dia antes de ir embora da empresa."

Quam criou essa política tem que apanhar com um gato morto até ele miar. Só se dá commit quando vc tem algo completo e compilável, de preferência junto com a documentação correspondente sob o mesmo tag para eventuais consultas.

@el_foo
O que ele quis dizer é que pdoe comitar o código quebrado em um branch privado, mas que na hora do merge, o último commit tem que estar funcionando direito. Funciona, mas não acho uma boa idéia, pois estimula uma má pratica (commit de código quebrado) e dá trabalho extra, merges de projetos grandes são penosos</description>
		<content:encoded><![CDATA[<p>Qualquer ferramenta se mal usada vai criar problemas.</p>
<p>&#8220;Imagine uma equipe com 10 desenvolvedores que usam a política de sempre fazer o commit das alterações feitas durante o dia antes de ir embora da empresa.&#8221;</p>
<p>Quam criou essa política tem que apanhar com um gato morto até ele miar. Só se dá commit quando vc tem algo completo e compilável, de preferência junto com a documentação correspondente sob o mesmo tag para eventuais consultas.</p>
<p>@el_foo<br />
O que ele quis dizer é que pdoe comitar o código quebrado em um branch privado, mas que na hora do merge, o último commit tem que estar funcionando direito. Funciona, mas não acho uma boa idéia, pois estimula uma má pratica (commit de código quebrado) e dá trabalho extra, merges de projetos grandes são penosos</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: El_Foo</title>
		<link>http://br-linux.org/2008/quebra-de-build-devido-ao-mau-uso-do-subversion/#comment-12772</link>
		<dc:creator>El_Foo</dc:creator>
		<pubDate>Tue, 17 Jun 2008 14:16:04 +0000</pubDate>
		<guid isPermaLink="false">http://br-linux.org/?p=1996#comment-12772</guid>
		<description>Falou besteira das grandes. Ficar fazendo branch não é a solução para desenvolvedor tosco que comita código quebrado. Unit test neles ...</description>
		<content:encoded><![CDATA[<p>Falou besteira das grandes. Ficar fazendo branch não é a solução para desenvolvedor tosco que comita código quebrado. Unit test neles &#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
