Baazarem5min

Bazaar em cinco minutos

Bazaar é um sistema de controle de versão distribuído que facilita para que pessoas possam trabalhar juntas em projetos de software.

Durante os próximos cinco minutos, você vai aprender como incluir seus arquivos sob controle de versão, como gravar mudanças neles, inspecionar seu trabalho em busca de mudanças, publicar seu projeto e enviar suas alterações para que possam ser integrado à raiz do projeto hospedado em outro lugar.

Para instalar o bazaar no ubuntu, instalando ferramentas complementares como um cliente GTK e também ferramentas para integrar e converter repositórios subversion, basta um simples comando:

$ sudo aptitude install bzr bzr-gtk bzr-svn bzrtools

Quando questionado pelo comando sudo, entre com sua senha.

Introduzindo-se ao bazaar

Antes de você começar a trabalhar, é legal dizer ao Bazaar quem você é. Desta maneira seu trabalho será identificado (seu nome será incluído) nos logs de revisão. Usando seu nome e seu endereço de e-mail, digite:

$ bzr whoami "Dom Quixote <quixote@gmail.com>"

Bazaar vai criar e/ou modificar um arquivo de configuração, incluíndo seu nome e endereço de e-mail. Para ver o resultado, verificando se foi incluído corretamente, use:

$ bzr whoami
Dom Quixote <quixote@gmail.com>

Incluíndo seus arquivos no controle de versão

Vamos criar um diretório e alguns arquivos que iremos versionar usando Bazaar:

$ mkdir myproject
$ cd myproject
$ mkdir subdirectory
$ touch test1.txt test2.txt test3.txt subdirectory/test4.txt

Agora vamos fazer com que o Bazaar inicialize o trabalho dele dentro do diretório:

$ bzr init

Se por acaso parecer que nada aconteceu, não se preocupe, pois o Bazaar criou todos os diretórios/arquivos necessários que vão armazenar todo o seus histórico de revisões. Está tudo lá, pronto para ser usado.

No passo seguinte você vai dizer ao Bazaar quais arquivos você gostaria que ele versione. Utilizando o comando bzr você vai adicionar, recursivamente, tudo do seu projeto no diretório myproject:

$ bzr add
added subdirectory
added test1.txt
added test2.txt
added test3.txt
added subdirectory/test4.txt

Em seguida comite seu arquivos, registrando por meio de uma mensagem que explicará seu comite, mensagem esta que vai explicar a razão daquela alteração:

$ bzr commit -m "Primeiro comite"

Como o Bazaar é um sistema distribuído de controle de versão, ele não necessita está conectado a um servidor central que armazenará seus comites, pelo contrário, Bazaar armazenará todos os seus comites dentro do diretório que você criou para o seu projeto; procure o sub-diretório .bzr dentro do diretório myproject, dentro dele terá tudo relativo aos seus comites.

Salvando modificações e versões

Modifique um dos seus arquivos e vamos comitar a mudança no seu repositório. Abra o arquivo test1.txt no seu editor de texto favorito, modifique-o (mude algo e salve), então verifique o que vc fez no repositório:

$ bzr diff
=== modified file 'test1.txt'
--- test1.txt   2007-10-08 17:56:14 +0000
+++ test1.txt   2007-10-08 17:46:22 +0000
@@ -0,0 +1,1 @@
+test test test

Agora comite sua mudança no seu respositório Bazar:

$ bzr commit -m "Adicionando a primeira linha de texto"
Committed revision 2.

Vamos inspecionar as mudanças no repositório. Você pode ver o histórico do seu repositório navegando no seu log:

$ bzr log
------------------------------------------------------------
revno: 2
committer: Dom Quixote <quixote@gmail.com>
branch nick: myproject
timestamp: Mon 2007-10-08 17:56:14 +0000
message:
  Adicionando a primeira linha de texto
------------------------------------------------------------
revno: 1
committer: Dom Quixote <quixote@gmail.com>
branch nick: myproject
timestamp: Mon 2006-10-08 17:46:22 +0000
message:
  Primeiro comite

Publicando seu repositório com SFTP

Existem várias maneira de publicar seu repositório. Se você já tem um servidor SFTP (FTP Seguro) ou facilmente poderá obter ou instalar um, você poderá compartilhar seu repositório publicando o mesmo usanto SFTP.

Caso não tenha idéia do que é SFTP, pule para a próxima sessão para aprender como publicar seu repositório usando o Launchpad, um serviço para publicar repositórios Bazaar está disponível par cada usuário do Ubuntu.

Seu SFTP está disponível? então vamos assumir que você gostaria de publicar seu repositório no seu SFTP tal que o resultado seja www.example.com/myproject:

$ bzr push --create-prefix sftp://your.name@example.com/~/public_html/myproject
2 revision(s) pushed.

Bazaar vai criar um diretório para seu projeto no servidor remoto e empurrar seu repositório para dentro do diretório. Agora ficou fácil para qualquer pessoa criar sua própria cópia de myproject hospedado no SFTP, basta digitar:

$ bzr branch http://www.example.com/myproject

NOTA para usar Bazar associado a um servidor SFTP, você precisa instalar paramiko e pyCrypto na sua máquina. Veja http://bazaar-vcs.org/InstallationFaq para mais detalhes.

Publicando seu repositório usando o Launchpad

Launchpad é um conjunto on-line de ferramentas para criação e hospedagem de projetos de sfotware livre. Você pode usá-lo para traduzir software, reportar e corrigir bugs, e muito mais. Vamos ensiná-lo como submeter seu repositório no Launchpad, para isso precisamos que você tenha uma conta no serviço. Se você não tem uma conta ainda, siga o procedimento para criação de uma conta nova e registro uma chave SSH (shell seguro) na sua nova conta do Launchpad.

Substitua o nome de usuário dom.quixote com a sua conta do Launchpad e digite:

$ bzr push bzr+ssh://dom.quixote@bazaar.launchpad.net/~dom.quixote/+junk/myproject

NOTA incluir +junk no comando quer dizer que seu repositório não pertence a nenhum projeto, ou seja, não está associado à algum projeto em particular no Launchpad.

Agora qualquer pessoa pode criar uma cópia do seu repositório digitando:

$ bzr branch http://bazaar.launchpad.net/~dom.quixote/+junk/myproject

Você também pode ver informações sobre seu projeto, incluíndo histórico de revisões, visitando a página https://code.launchpad.net/people/+me/+junk/myproject.

Criando sua própria cópia de outro repositório

Para trabalhar com código mantido por outra pessoas, basta fazer sua própria cópia do projeto mantido por terceiros. Vamos ver um exemplo real: Projeto Bazaar's GTK interface:

$ bzr branch http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk bzr-gtk.quixote
Branched 292 revision(s).

Bazaar vai fazer o download de todos os arquivos e também baixar completamente o histórico de revisões da árvore (trunk) principal do projeto bzr-gtk, criando a cópia local chamada bzr-gtk.quixote.

Agora você tem sua cópia local do bzr-gtk e pode fazer mudanças tendo ou não uma conexão com a internet. Você pode compartilhar sua versão local sempre que quiser publicando em seu servidor SFTP ou no Launchpad. Se o time do bzr-gtk quiser usar sua melhorias ao código, Bazaar vai tornar fácil para a tarefa de fazer merge da sua versão de volta para a versão mantida pelo time.

Atualizando seu projeto a partir do repositório oficial

Enquanto você trabalha localmente na sua versão do código, outras pessoas também estão mantendo versões que derivam do mesmo repositório do qual a sua versão do código derivou, e eventualmente podem submeter mudanças ao repositório principal.

Para que sua versão local esteja atualizada em relação ao repositório principal, e por sua vez dos outros membros do projeto, você deverá fazer merge entre o repositório principal e o seu repositório:

$ bzr merge
Using saved location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
All changes applied successfully.

Em seguida veja quais as mudanças que o merge provocou na sua versão checando as diferenças:

$ bzr diff

Se você aceita as mudanças, você pode comitar elas na sua versão:

$ bzr commit -m "Merge from main branch"
Committed revision 295.

Atualizando a versão principal a partir da sua versão

Depois de você ter trabalhado na sua versão local do bzr-gtk, você precisa enviar suas mudanças locais de volta para a versão principal. A maneira fácil de fazer isso é enviando de volta usando o a diretiva de comando merge.

A diretiva merge is a machine-readable request to perform a particular merge. It usually contains a patch preview of the merge and either contains the necessary revisions, or provides a branch where they can be found.

Replacing mycode.patch, create your merge directive:

$ bzr send -o mycode.patch
Using saved location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk

You can now email the merge directive to the bzr-gtk project who, if they choose, can use it merge your work back into the parent branch.

Aprendendo mais

Você pode encontrar mais sobre Bazzar visitando o Guia do Usuário da ferramenta no link Bazaar User Guide. Outro bom tutorial pode ser lido em beyondclick blog.

Para saber mais sobre Bazaar na linha de comando de um terminal, use:

$ bzr help

Para aprender mais sobre alguma diretiva (comandos) de linha de comando do Bazaar, use:

$ bzr help nome_da_diretiva

Para saber sobre o tópico ou diretiva foo, faça:

$ bzr help foo

Créditos

Autor: Bazaar Doc Team

Data: 29/02/08

Local: Bzr-Mini-tutorial

Wikifier: CarlosCosta

Data: 16/04/08

Mantenedor: CarlosCosta

Time de Documentação do Ubuntu Brasil

Baazarem5min (last edited 2011-09-19 23:22:12 by localhost)