Estou utilizando o Bazaar VCS a algumas semanas, tanto para avaliar sua eficácia quanto para implementar em projetos que já estou trabalhando. Na minha atuação no Projeto GNU, sempre utilizei o CVS e acostumei com sua maneira de ser. Tinha coisas que não gostava, como o fato de ser apenas cliente servidor. Em outros projetos eu resolvi adotar o Subversion (SVN) e até então era meu sistema de controle de versão favorito.
Com o fato da distribuição Ubuntu utilizar amplamente o Bazaar, fiquei bastante curioso em testá-lo e ver quais eram as principais diferenças com o SVN. Logo no início já gostei de alguns pontos, como:
Mas também tem alguns pontos negativos, como ainda não ter suporte para a maioria dos IDEs. Eu mesmo não consegui fazer o Emacs funcionar corretamente com o Bazaar, mas confesso que não testei todos os módulos elisp que encontrei na internet.
O seu uso é bastante simples, veja:
anderson@yoda:~/tmp/teste$ touch arquivo1.txt
anderson@yoda:~/tmp/teste$ touch arquivo2.txt
anderson@yoda:~/tmp/teste$ touch arquivo3.txt
anderson@yoda:~/tmp/teste$ bzr init
anderson@yoda:~/tmp/teste$ bzr add
added arquivo1.txt
added arquivo2.txt
added arquivo3.txt
anderson@yoda:~/tmp/teste$ bzr commit -m ‘Primeiro import’
Committing to: /home/anderson/tmp/teste/
added arquivo1.txt
added arquivo2.txt
added arquivo3.txtCommitted revision 1.
Explicando: Criei um diretório (teste), dentro dele criei 3 arquivos vazios. Dentro do diretório, dei um bzr init para criar o repositório, depois adicionei todo conteúdo do diretório (bzr add) e por último, um commit para registrar como primeiro import ao sistema de controle de versões.
Dessa forma é possível trabalhar localmente com um projeto e tê-lo dentro de um sistema de controle de versões. O resto é praticamente idêntico aos outros VCS, sempre que finalizar uma alteração basta dar um commit, veja:
anderson@yoda:~/tmp/teste$ echo “Alteracao em um arquivo” >> arquivo1.txt
anderson@yoda:~/tmp/teste$ bzr status
modified:
arquivo1.txt
anderson@yoda:~/tmp/teste$ bzr diff arquivo1.txt
=== modified file ‘arquivo1.txt’
— arquivo1.txt 2008-04-24 23:05:14 +0000
+++ arquivo1.txt 2008-04-24 23:09:51 +0000
@@ -0,0 +1,1 @@
+Alteracao em um arquivo
E por último, um commit:
anderson@yoda:~/tmp/teste$ bzr commit -m “Mudancas na estrutura do arquivo1.txt”
Committing to: /home/anderson/tmp/teste/
modified arquivo1.txt
Committed revision 2.
Veja o log de alterações:
anderson@yoda:~/tmp/teste$ bzr log
————————————————————
revno: 2
committer: Christiano Anderson <anderson@gnu.org>
branch nick: teste
timestamp: Thu 2008-04-24 20:10:24 -0300
message:
Mudancas na estrutura do arquivo1.txt
————————————————————
revno: 1
committer: Christiano Anderson <anderson@gnu.org>
branch nick: teste
timestamp: Thu 2008-04-24 20:05:14 -0300
message:
Primeiro import
Se quiser colocar o conteúdo desse repositório em algum servidor para que outras pessoas trabalhem, mas utilizando o sftp, basta:
bzr push sftp://usuario@servidor/path/para/repositorio
Depois para outras pessoas fazerem o checkout:
bzr co sftp://usuario@servidor/path/para/repositorio
e a partir daí trabalhar normamente com os bzr update e bzr commit para mandar novamente para o servidor. É possível também fazer commits offline de pois fazer um merge com o branch do servidor, para isso basta um
bzr commit –local
Fica a dica!
Beleza Christiano?
Olha, eu vejo o pessoal da Canonical fazendo uma propaganda louca sobre o bzr, mas apesar de alguns poucos recursos diferentes do svn, ainda nao vi um motivo que seja incentivo suficiente para uma companhia simplesmente mudar de vcs. Os seus exemplos mostram um fluxo de trabalho comum no dia a dia de um programador, mas teria como voce adicionar alguns passos que mostrem porque o bzr vale a pena?
Grande abraco,
Og
hehee, todo mundo contra o svn
Opa Christiano! Mais um ponto: o Bazaar agora é um Projeto oficial da GNU também!
Og, tudo bem? Então, o fato do Bazaar ser descentralizado é uma grande vantagem. Poder dar commits e trabalhar offline é bastante interessante!
Og, obrigado pela sua mensagem. Foi justamente a propaganda da Canonical que me despertou a curiosidade em testar o Bazaar. Olhando de forma geral, ele é igual a quase todos os outros VCS (CVS, GIT, SVN, etc). O que gostei do Bazaar é a facilidade de trabalhar de forma descentralizada, além da facilidade em criar extensões em Python. Sim, entendo que o SVN tem suas bibliotecas (com bindings em várias linguagens) que também permitem uma certa facilidade, mas isso no Bazaar é mais simples para quem prefere desenvolver em Python. Abraços!
[...] publiquei nesse post, o Bazaar tem alguns recursos que facilitam muito minha vida. Além de ter outros detalhes que me [...]
[...] relacionado: Utilizando o Bazaar VCS [...]