Controle de Fonte

bazaar-subversion

Bazaar com Subversion

0

Para pessoas que ficaram viciadas em commits curtos e todo o histórico do fonte na própria máquina, foi uma surpresa descobrir que com o uso do plugin bzr-svn (já incluso no pacote de instalação), consigo ainda utilizar o Bazaar, mesmo que agora esteja trabalhando com um branch do Subversion.

Na verdade, melhor ainda: o bzr-svn baixa o SVN trunk com todo o histórico na máquina local, como se fosse um branch do próprio Bazaar, e permite a criação de branches desconectados para pequenos commits e o merge final para o servidor SVN.

E o melhor de tudo: não há segredo. Tudo que precisa fazer é instalar o Bazaar e fazer um get/co com o endereço do branch SVN que o plugin se vira sozinho para detectar que se trata do Subversion. (Se for um branch protegido, o usuário e senha serão pedidos durante o processo).

C:\Projetos>bzr co http://subversion.assembla.com/svn/caloni/ caloni
Initialising Subversion metadata cache in C:\Users\Caloni\AppData\Local\svn-cache\sbrubles.
C:\Projetos>cd caloni
C:\Projetos\caloni>bzr qlog
C:\Projetos\caloni>bzr get . ..\caloni.local
Branched 2 revision(s).
C:\Projetos\caloni>cd ..\caloni.local
C:\Projetos\caloni.local>vim readme.txt
C:\Projetos\caloni.local>bzr ci -m "Commit local"
Committing to: C:/Projetos/caloni.local/modified readme.txt
Committed revision 3.
C:\Projetos\caloni.local>vim readme.txt
C:\Projetos\caloni.local>bzr ci -m "Commit local"
Committing to: C:/Projetos/caloni.local/modified readme.txt
Committed revision 4.
C:\Projetos\caloni.local>vim readme.txt
C:\Projetos\caloni.local>bzr ci -m "Commit local"
Committing to: C:/Projetos/caloni.local/modified readme.txt
Committed revision 5.
C:\Projetos\caloni.local>cd ..\caloni
C:\Projetos\caloni>bzr merge ..\caloni.local
 M  readme.txt
All changes applied successfully.
C:\Projetos\caloni>bzr st
modified:  readme.txt
pending merge tips: (use -v to see all merge revisions)  
Wanderley Caloni 2011-03-23 Commit local
C:\Projetos\caloni>bzr ci -m "Commit pro servidor"
Committing to: http://subversion.assembla.com/svn/caloni
modified readme.txtHTTP subversion.assembla.com 
username: caloni
<http://subversion.assembla.com:80> 
Restricted Area caloni 
password:
Committed revision 3.
C:\Projetos\caloni>bzr qlog

Commit no server

Trabalhando em múltiplos ambientes

0

Existem diversas maneiras de se trabalhar com o Bazaar. Eu já havia definido como fazer na máquina de desenvolvedor para modificar o mesmo código-fonte em projetos paralelos, onde basicamente tenho um branch principal conectado no servidor (assim todo commit vai pra lá) e crio branches paralelos e desconectados para fazer quantos commits eu tenho vontade durante o desenvolvimento. Após todas as mudanças e testes básicos, atualizo o branch principal (com mudanças dos meus colegas) e faço o merge com o branch paralelo onde fiz todas as mudanças. Antes de subir com o commit final, ainda realizo um build de teste local, se necessário.

(more...)

Bazaar Logo

Então você ainda não usa controle de fonte?

5

Bazaar LogoGraças aos antigos SCMs, muitos programadores hoje em dia evitam ter que configurar um controle de fonte mínimo para seus projetos. E por um bom motivo: temos que programar e resolver problemas reais no dia-a-dia e não ficar configurando servidores de controle de fonte e lidando com conflitos na calada da noite. Isso vale tanto para o pessoal do Windows e o seu Visual Source Safe (eu que o diga) quanto para o pessoal do Unix/Linux e seu CVS ;aliás, hoje o pesadelo de ambos foi substituído pelo SubVersion: um pesadelo light.

Não há nada de errado nisso. Projetos robustos com uma equipe moderada — 5 a 10 programadores — precisam desse tipo de organização, e tornam a resolução dos problemas do dia-a-dia mais problemática sem esse controle. A questão reside para o programador solitário ou a equipe minúscula — 2 a 4 programadores. Esses geralmente questionam o custo-benefício de terem o trabalho de configurar e manter mais um sistema. Além disso, isso implica em uma mudança de grandes proporções em cada membro da equipe: uma mudança cultural.

Portanto, a primeira decisão que deve ser tomada pelo programador que quer mudar as coisas é instalar um controle de fonte moderno para seus projetos caseiros. Quando digo moderno, digo distribuído.Distribuído porque 1) é possível começar desde já com três comandos simples, 2) quando alguém copia a pasta do projeto está levando todo o histórico junto e 3) pastas duplicadas são branches distintos que podem interagir no futuro.

Os três comandos simples não são nada do outro mundo: criar o repositório, adicionar arquivos e fazer commit.

Dica: Um commit é uma maneira de dizer ao controle de fonte: "já modifiquei o que tinha pra modificar, então mande tudo que tenho de novo para o controle".

Tanto faz qual controle você pretende usar. No meu exemplo usarei o Bazaar, que é a ferramenta que uso no dia-a-dia com minha pequena equipe e serve bem para programadores solitários também. Basicamente para ter o Bazzar instalado basta baixá-lo, next next e finish.

(more...)

bzr-qconfig-diff.png

Novas diferenças no Bazaar

0

Novidade incrível nas novas versões do Bazaar. Dando continuidade à sua versão boiola gráfica, agora é possível configurar quantos visualizadores de diferenças você quiser. Na hora de ver a diferença em algum código-fonte, você pode optar pelo enrustido embutido ou, no caso, o meu favorito, WinMerge.

bzr-qconfig-diff.png

(more...)

Bazaar Shell Extension na Mão

Bazaar gráfico

0

Boiola quem usa esses comandos pink do Bazaar…Bom, já que por enquanto os assuntos de macho estão em falta (acabei de voltar de férias), apresento-lhes o maravilhoso mundo do Bazaar para boiolas user-friendly!

Ele é leve, vem enrustido embutido na última versão e pode economizar alguns page ups/downs no prompt do DOS. Ah, sim, antes que comentem, eu não uso o Tortoise for Bazaar porque instalar shell extensions, só os muito bem feitos. (Do contrário, bem-feito para quem instalou.)

Para exibir a lista de comandos "amigáveis", digite no prompt os comandos do Bazaar filtrando-os para os que começam com "q":

(more...)

Como compilar em somente um passo

4

Uma das primeiras perguntas do teste do Joel é saber se você pode compilar todo o projeto em apenas um passo. Essa é uma questão essencial e um desafio para muitas equipes. Perdem-se horas sagradas para gerar um novo Release.

Compilação automática geralmente está disponível nas ferramentas de desenvolvimento. Se você estiver usando o Visual Studio, por exemplo, é possível fazer isso com uma linha:

devenv minha-solução.sln /Rebuild Release

(more...)

projeto-modelo.png

Projeto-modelo

1

É muito difícil construir um modelo de pastas que sirva para a maioria dos projetos que tivermos que colocar na fôrma. Ainda mais se esses projetos tiverem que futuramente fazer parte da mesma ramificação. Foi pensando em várias coisas que chegamos a uma versão beta que pode ajudar aqueles que ficam pensando durantes dias antes mesmo de colocar as mãos no código.

(more...)

bazaar-prog2svc.png

Como estou trabalhando com o Bazaar

3

Depois de alguns ajustes e muitas perguntas do meu amigo-colega desenvolvedor Rafael, conseguimos definir alguns usos e costumes em nosso código controlado pelo Bazaar. Este é um guia para Dummies de como é possível organizar um ou mais projetos de forma a favorecer o refactoring e a liberdade de uso.

(more...)

branches-sem-ancestral.gif

Como fazer merge de projetos distintos no Bazaar

0

O problema foi o seguinte: Nós iniciamos o controle de fonte pelo Bazaar na parte Linux do projeto, já que ela não iria funcionar pelo Source Safe, mesmo. Dessa forma apenas um braço do projeto estava no controle de fonte e o resto não.

No segundo momento da evolução decidimos começar a migrar os projetos para o Bazaar, inclusive a parte daquele projeto que compila no Windows. Maravilha. Ambos sendo controlados é uma beleza, não é mesmo?

Até que veio o dia de juntar.

(more...)

bzr-space-tests.png

Guia básico de repositórios no Bazaar

3

Alguns conceitos-chave antes de trabalhar com o Bazaar são:

  • Revision (Revisão). Um snapshot dos arquivos que você está trabalhando.
  • Working Tree (Árvore de Trabalho). Um diretório contendo seus arquivos controlados por versão e subdiretórios.
  • Branch (Ramificação). Um grupo ordenado de revisões que descreve o histórico de um grupo de arquivos.
  • Repository (Repositório). Um depósito de revisões.

Agora vamos brincar um pouco com os conceitos.

(more...)

Go to Top