<?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: Por um controle de versão menos insano</title>
	<atom:link href="http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/</link>
	<description>Pensamentos, idéias e devaneios sobre desenvolvimento de software e tecnologia em geral</description>
	<lastBuildDate>Fri, 16 Apr 2010 04:05:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: thiagoarrais</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-214</link>
		<dc:creator>thiagoarrais</dc:creator>
		<pubDate>Thu, 07 Aug 2008 12:23:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-214</guid>
		<description>Mais um argumento a favor dos sistemas distribuídos, Rodrigo. Dessa vez não só dos não-seqüenciais, mas dos verdadeiramente distribuídos mesmo. A razão das pessoas estarem compartilhando código fora do controle de versão muitas vezes é o código simplesmente não estar pronto para ser publicado.

Digamos que estou trabalhando em algum tipo de reestruturação extensiva. Para fazer essa reestruturação, eu preciso deixar alguns testes falhando por algum tempo. Eu sei que, quando terminar, os testes vão voltar a passar, mas eu preciso deixa-los quebrados por algum tempo enquanto eu termino. Eu não posso publicar o código para o repositório de código central porque isso atrapalharia os demais desenvolvedores. Faz sentido, entretanto, dividir qualquer reestruturação deste tipo em pequenos objetivos. Portanto, faz sentido fazer checkin de metas parciais. Porém, se o sistema é centralizado, eu não posso fazer isso para não atrapalhar meus colegas.

Enquanto estou fazendo essa reestruturação, pode ser que você precise de algumas modificações que eu fiz. É em horas como essas que o pessoal começa a compartilhar código pela rede, fazer merge manual e usar de uma imaginação incrível &lt;em&gt;para contornar as limitações do sistema&lt;/em&gt;. Com controle distribuído, cada desenvolvedor tem um repositório pessoal que, em termos de recursos de versionamento, não deixa nada devendo em relação ao repositório central. Se você precisa das minhas alterações, você simplesmente as importa diretamente do meu repositório. Não precisamos passar pelo repositório central se não quisermos. Desse modo só nós dois precisamos lidar com aqueles testes falhando, e não a equipe toda.

Sobre interface gráficas, este não é um problema inerente à distribuição e pode ser resolvido. Na verdade, eu acredito que já venha sendo resolvido. Eu particularmente não tenho problemas para trabalhar na linha de comando, portanto nem cheguei a procurar esse tipo de front-end. Então não posso dizer com toda a certeza que este problema não existe, mas provavelmente já deve estar bem perto de terminar.

De qualquer modo, se a equipe é pouco capacitada, pode acreditar que a falta de interfaces gráficas é o menor dos problemas.</description>
		<content:encoded><![CDATA[<p>Mais um argumento a favor dos sistemas distribuídos, Rodrigo. Dessa vez não só dos não-seqüenciais, mas dos verdadeiramente distribuídos mesmo. A razão das pessoas estarem compartilhando código fora do controle de versão muitas vezes é o código simplesmente não estar pronto para ser publicado.</p>
<p>Digamos que estou trabalhando em algum tipo de reestruturação extensiva. Para fazer essa reestruturação, eu preciso deixar alguns testes falhando por algum tempo. Eu sei que, quando terminar, os testes vão voltar a passar, mas eu preciso deixa-los quebrados por algum tempo enquanto eu termino. Eu não posso publicar o código para o repositório de código central porque isso atrapalharia os demais desenvolvedores. Faz sentido, entretanto, dividir qualquer reestruturação deste tipo em pequenos objetivos. Portanto, faz sentido fazer checkin de metas parciais. Porém, se o sistema é centralizado, eu não posso fazer isso para não atrapalhar meus colegas.</p>
<p>Enquanto estou fazendo essa reestruturação, pode ser que você precise de algumas modificações que eu fiz. É em horas como essas que o pessoal começa a compartilhar código pela rede, fazer merge manual e usar de uma imaginação incrível <em>para contornar as limitações do sistema</em>. Com controle distribuído, cada desenvolvedor tem um repositório pessoal que, em termos de recursos de versionamento, não deixa nada devendo em relação ao repositório central. Se você precisa das minhas alterações, você simplesmente as importa diretamente do meu repositório. Não precisamos passar pelo repositório central se não quisermos. Desse modo só nós dois precisamos lidar com aqueles testes falhando, e não a equipe toda.</p>
<p>Sobre interface gráficas, este não é um problema inerente à distribuição e pode ser resolvido. Na verdade, eu acredito que já venha sendo resolvido. Eu particularmente não tenho problemas para trabalhar na linha de comando, portanto nem cheguei a procurar esse tipo de front-end. Então não posso dizer com toda a certeza que este problema não existe, mas provavelmente já deve estar bem perto de terminar.</p>
<p>De qualquer modo, se a equipe é pouco capacitada, pode acreditar que a falta de interfaces gráficas é o menor dos problemas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rodrigo Araujo</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-213</link>
		<dc:creator>Rodrigo Araujo</dc:creator>
		<pubDate>Thu, 07 Aug 2008 02:41:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-213</guid>
		<description>O grande problema também arrais são os usuários do controle de versão. Já trabalhei como CM e é impressionante como o pessoal consegue fazer &quot;cagada&quot; no controle de versão. Se deixar a turma não faz nem checkin no fonte... compartilha código pela rede... faz merge manual... tem neguinho que usa de uma imaginação incrivel para fazer besteira!
E outra limitação é a falta de uma interface mais amigavel, a interface gráfica e intuitiva é muiiito importante para times pouco capacitados. (nunca fiz muitos testes nos sistemas que você falou, mas não lembro de ter visto um front-end gráfico legal em nenhum deles)</description>
		<content:encoded><![CDATA[<p>O grande problema também arrais são os usuários do controle de versão. Já trabalhei como CM e é impressionante como o pessoal consegue fazer &#8220;cagada&#8221; no controle de versão. Se deixar a turma não faz nem checkin no fonte&#8230; compartilha código pela rede&#8230; faz merge manual&#8230; tem neguinho que usa de uma imaginação incrivel para fazer besteira!<br />
E outra limitação é a falta de uma interface mais amigavel, a interface gráfica e intuitiva é muiiito importante para times pouco capacitados. (nunca fiz muitos testes nos sistemas que você falou, mas não lembro de ter visto um front-end gráfico legal em nenhum deles)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thiagoarrais</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-212</link>
		<dc:creator>thiagoarrais</dc:creator>
		<pubDate>Mon, 04 Aug 2008 20:34:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-212</guid>
		<description>Tetsuo, se duas pessoas estão trabalhando no mesmo trecho de código, os conflitos certamente serão os mesmos não importa qual o sistema de controle de versão que usem. Neste caso, as duas pessoas provavelmente precisam reestruturar o código para evitar pisar nos pés uma da outra.

O controle de versão por patches (e aí não estou necessariamente falando de controle distribuído, como mostra o texto) evita que você precise lembrar quais as modificações que você já tem. Um bom exemplo é quando você está fazendo merges sucessivos, como no caso do branch de desenvolvimento do texto que precisa incorporar as modificações feitas no branch de conserto de bugs. Com controle de patches, você pode derivar uma base de código qualquer, fazer modificações locais e incorporar de tempos em tempos as modificações que sejam feitas no código original sem (tanta) dor de cabeça.</description>
		<content:encoded><![CDATA[<p>Tetsuo, se duas pessoas estão trabalhando no mesmo trecho de código, os conflitos certamente serão os mesmos não importa qual o sistema de controle de versão que usem. Neste caso, as duas pessoas provavelmente precisam reestruturar o código para evitar pisar nos pés uma da outra.</p>
<p>O controle de versão por patches (e aí não estou necessariamente falando de controle distribuído, como mostra o texto) evita que você precise lembrar quais as modificações que você já tem. Um bom exemplo é quando você está fazendo merges sucessivos, como no caso do branch de desenvolvimento do texto que precisa incorporar as modificações feitas no branch de conserto de bugs. Com controle de patches, você pode derivar uma base de código qualquer, fazer modificações locais e incorporar de tempos em tempos as modificações que sejam feitas no código original sem (tanta) dor de cabeça.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tetsuo</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-211</link>
		<dc:creator>Tetsuo</dc:creator>
		<pubDate>Mon, 04 Aug 2008 15:06:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-211</guid>
		<description>Eu já brinquei um pouco com o Mercurial. Eu também assisti o vídeo do Linus. Entendo que há vantagens em se usar um controle de versão distribuído (facilita a experimentação, você tem um histórico de suas modificações intermediárias, etc.), mas não entendi como ele facilita merges. Se duas pessoas estão trabalhando no mesmo código, os conflitos vão ser os mesmos. Ou pior, ter seu repositório local teoricamente incentiva você a demorar mais pra fazer o merge com o repositório principal, o que pode levar a ainda mais conflitos e erros na integração.

Bem, eu devo ter perdido alguma coisa...</description>
		<content:encoded><![CDATA[<p>Eu já brinquei um pouco com o Mercurial. Eu também assisti o vídeo do Linus. Entendo que há vantagens em se usar um controle de versão distribuído (facilita a experimentação, você tem um histórico de suas modificações intermediárias, etc.), mas não entendi como ele facilita merges. Se duas pessoas estão trabalhando no mesmo código, os conflitos vão ser os mesmos. Ou pior, ter seu repositório local teoricamente incentiva você a demorar mais pra fazer o merge com o repositório principal, o que pode levar a ainda mais conflitos e erros na integração.</p>
<p>Bem, eu devo ter perdido alguma coisa&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thiagoarrais</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-210</link>
		<dc:creator>thiagoarrais</dc:creator>
		<pubDate>Thu, 31 Jul 2008 17:47:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-210</guid>
		<description>Entendo a suposta necessidade de algumas organizações de manter um controle mais rígido e centralizado do código-fonte. É bem verdade que muitas vezes não é bem por necessidade, mas simplesmente por teimosia ou a boa e simples força do hábito (também conhecida como inércia corporativa) que elas fazem isso, mas admitamos que seja o caso de realmente &lt;em&gt;haver&lt;/em&gt; a necessidade de ter um local central para se chamar de oficial.

Não há nada impedindo que os sistemas distribuídos de hoje em dia sejam usados de forma centralizada. A equipe pode muito bem escolher um local para chamar de central e oficial, mas elas não são &lt;em&gt;obrigadas&lt;/em&gt;. A questão é que há limitações que os sistemas centralizados têm que os distribuídos não têm. Não manter histórico das alterações das cópias de trabalho locais e exigir acesso de rede para commitar são só duas delas...

P.S.: Bom saber sobre o Subversion. Há algum tempo eu tinha desistido dele, mas se ele pelo menos melhorou o suporte para merge na nova versão, acho que vale a pena dar uma olhada. E se ele verdadeiramente passou a controlar patches (revisões) ao invés de versões, já tem tudo para ser distribuído. Será que ele chega lá?</description>
		<content:encoded><![CDATA[<p>Entendo a suposta necessidade de algumas organizações de manter um controle mais rígido e centralizado do código-fonte. É bem verdade que muitas vezes não é bem por necessidade, mas simplesmente por teimosia ou a boa e simples força do hábito (também conhecida como inércia corporativa) que elas fazem isso, mas admitamos que seja o caso de realmente <em>haver</em> a necessidade de ter um local central para se chamar de oficial.</p>
<p>Não há nada impedindo que os sistemas distribuídos de hoje em dia sejam usados de forma centralizada. A equipe pode muito bem escolher um local para chamar de central e oficial, mas elas não são <em>obrigadas</em>. A questão é que há limitações que os sistemas centralizados têm que os distribuídos não têm. Não manter histórico das alterações das cópias de trabalho locais e exigir acesso de rede para commitar são só duas delas&#8230;</p>
<p>P.S.: Bom saber sobre o Subversion. Há algum tempo eu tinha desistido dele, mas se ele pelo menos melhorou o suporte para merge na nova versão, acho que vale a pena dar uma olhada. E se ele verdadeiramente passou a controlar patches (revisões) ao invés de versões, já tem tudo para ser distribuído. Será que ele chega lá?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rodrigo Araujo</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-209</link>
		<dc:creator>Rodrigo Araujo</dc:creator>
		<pubDate>Thu, 31 Jul 2008 12:49:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-209</guid>
		<description>Grande Arrais! Fala garoto.

Vou ser sincero com você, ainda não conheço o GIT nem Darcs nem Mercurial. Porém o que você fala sobre merge no SVN se encaixa perfeitamente na versão 1.4. A recem lançada versão 1.5 vem com um suporte a merge que eu nunca tinha visto melhor.

Quanto a adoção desses sistemas centralizados no ambiente de produção das empresas pode ser justificado sim.

Empresas precisam ter um certo controle maior sobre o seu maior bem, que é o código fonte de seus produtos, e por isso a centralização ajuda a manter esse controle. Sei que eiste N maneiras melhor de deixar o fonte sobre controle, como testes atomatizados, equipes auto-gerenciaveis, mas infelizmente não é essa a rotina da maioria das empresas! Nem todos os programadores que tem por ai no mercado tem a mesma responsabilidade e competencia do autor do blog e da maioria de seus leitores. Por anos trabalhando em diversas empresas por ai é incrivel como alguns programadores fazem m*rd* por ai... Claro que esses programadores deveriam ser demitidos e ser contratados programadores melhores para seus lugares, mas mão de obra boa nem é barata e nem fácil de encontrar :)</description>
		<content:encoded><![CDATA[<p>Grande Arrais! Fala garoto.</p>
<p>Vou ser sincero com você, ainda não conheço o GIT nem Darcs nem Mercurial. Porém o que você fala sobre merge no SVN se encaixa perfeitamente na versão 1.4. A recem lançada versão 1.5 vem com um suporte a merge que eu nunca tinha visto melhor.</p>
<p>Quanto a adoção desses sistemas centralizados no ambiente de produção das empresas pode ser justificado sim.</p>
<p>Empresas precisam ter um certo controle maior sobre o seu maior bem, que é o código fonte de seus produtos, e por isso a centralização ajuda a manter esse controle. Sei que eiste N maneiras melhor de deixar o fonte sobre controle, como testes atomatizados, equipes auto-gerenciaveis, mas infelizmente não é essa a rotina da maioria das empresas! Nem todos os programadores que tem por ai no mercado tem a mesma responsabilidade e competencia do autor do blog e da maioria de seus leitores. Por anos trabalhando em diversas empresas por ai é incrivel como alguns programadores fazem m*rd* por ai&#8230; Claro que esses programadores deveriam ser demitidos e ser contratados programadores melhores para seus lugares, mas mão de obra boa nem é barata e nem fácil de encontrar <img src='http://blog.thiagoarrais.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BrunoPedroso</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-208</link>
		<dc:creator>BrunoPedroso</dc:creator>
		<pubDate>Sun, 27 Jul 2008 14:13:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-208</guid>
		<description>Legal vc ter deixado claro o ponto onde o merge é mais complicado no SVN, em relação ao (por exeplo) GIT.

O que costumo ver são as pessoas repetindo que o GIT é melhor em fazer merge, mas sem entender bem porque. O SVN faz o merge, mas é vc que tem que se organizar com ele. Precisa criar um sistema &quot;a parte&quot; (nos comentáios de commits) para lidar com isso.</description>
		<content:encoded><![CDATA[<p>Legal vc ter deixado claro o ponto onde o merge é mais complicado no SVN, em relação ao (por exeplo) GIT.</p>
<p>O que costumo ver são as pessoas repetindo que o GIT é melhor em fazer merge, mas sem entender bem porque. O SVN faz o merge, mas é vc que tem que se organizar com ele. Precisa criar um sistema &#8220;a parte&#8221; (nos comentáios de commits) para lidar com isso.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thiagoarrais</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-207</link>
		<dc:creator>thiagoarrais</dc:creator>
		<pubDate>Thu, 24 Jul 2008 12:14:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-207</guid>
		<description>Para fazer justiça mesmo eu teria que tocar no assunto &lt;a href=&quot;http://git.or.cz/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt;, no assunto &lt;a href=&quot;http://darcs.net/&quot; rel=&quot;nofollow&quot;&gt;Darcs&lt;/a&gt;, no assunto &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/&quot; rel=&quot;nofollow&quot;&gt;Mercurial&lt;/a&gt;, entre outros. Afinal de contas, todos estes são infinitamente menos insanos que os sistemas de controle de versão usados tradicionalmente na maioria dos projetos.

Todos estes controlam modificações, ao invés de versões.

Todos estes tornam o merge muito mais fácil do que grande parte das alternativas centralizadas.</description>
		<content:encoded><![CDATA[<p>Para fazer justiça mesmo eu teria que tocar no assunto <a href="http://git.or.cz/" rel="nofollow">Git</a>, no assunto <a href="http://darcs.net/" rel="nofollow">Darcs</a>, no assunto <a href="http://www.selenic.com/mercurial/wiki/" rel="nofollow">Mercurial</a>, entre outros. Afinal de contas, todos estes são infinitamente menos insanos que os sistemas de controle de versão usados tradicionalmente na maioria dos projetos.</p>
<p>Todos estes controlam modificações, ao invés de versões.</p>
<p>Todos estes tornam o merge muito mais fácil do que grande parte das alternativas centralizadas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roger Leite</title>
		<link>http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/comment-page-1/#comment-206</link>
		<dc:creator>Roger Leite</dc:creator>
		<pubDate>Thu, 24 Jul 2008 12:01:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.thiagoarrais.com.br/2008/07/23/por-um-controle-de-versao-menos-insano/#comment-206</guid>
		<description>&quot;[...] algumas vezes ainda insistimos em usar sistemas centralizados?&quot;


Hipocrisia do ambiente corporativo ?

Pensei que ia tocar no assunto &lt;a href=&quot;http://git.or.cz/&quot; rel=&quot;nofollow&quot;&gt;Git&lt;/a&gt;, pelo jeito ficou pra um próximo post ...</description>
		<content:encoded><![CDATA[<p>&#8220;[...] algumas vezes ainda insistimos em usar sistemas centralizados?&#8221;</p>
<p>Hipocrisia do ambiente corporativo ?</p>
<p>Pensei que ia tocar no assunto <a href="http://git.or.cz/" rel="nofollow">Git</a>, pelo jeito ficou pra um próximo post &#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
