# Bazaar 2.7
## Introdução

Bazaar é um sistema de controle de versão que contribui com o controle de histórico de projeto de software ao longo do tempo. Se caracteriza entre as ferramentas de controle de versão da geração de sistemas de controle de versão distribuídos . Permite que se colabore facilmente com os outros desenvolvedores uma vez que mescla seu trabalho. Se você é um único desenvolvedor, uma equipe co-localizada ou uma comunidade de desenvolvedores espalhados por todo o mundo, Bazaar escala e se adapta para atender às suas necessidades. Parte do Projeto GNU, Bazaar é um software livre patrocinado pela Canonical disponível para Mac OS-X, Microsoft Windows e GNU/Linux, porém é possível instalá-lo em quaisquer sistemas operacionais que contenham alguma versão do Python suportável.
Tornou-se popular devido a sua facilidade de uso, flexibilidade e configuração simples. Além de ser útil para desenvolvedores de software, esta ferramenta pode ser utilizada por equipes que desejam trabalhar colaborativamente em arquivos e documentos.

## Comandos

Os comandos desta ferramenta se encontram descritos no Quick Reference Card (Figura 1) disponibilizado pela Canonical.bzr

### Comandos básicos:

* $ bzr init - torna este diretório em um ramo versionado;
* $ bzr branch - faz uma cópia de outro ramo;
* $ bzr add - versiona arquivos ou diretórios;
* $ bzr ignore - ignora um arquivo ou padrão;
* $ bzr mv - move ou renomeia um arquivo versionado;
* $ bzr status - sumariza as alterações na cópia de trabalho;
* $ bzr diff - mostra diffs detalhados;
* $ bzr merge - puxa alterações de outro ramo;
* $ bzr commit - salva algumas ou todas as alterações;
* $ bzr send - envia as alterações por email;
* $ bzr log - mostra o histórico de alterações;
* $ bzr check - valida o armazenamento;
* $ bzr help init - mais ajuda em, por exemplo, comando init;
* $ bzr help commands - lista todos os comandos;
* $ bzr help topics - lista todos os tópicos de ajuda.

### Comandos Avançados

* $ bzr merge --pull -
Possibilita o pull quando possível e caso contrário é realizado o merge.
* $ bzr branch bzr+ssh://server.example.com/srv/bzr/trunk
Cria um cópia da branch trunk remota para nova branch local de mesmo nome (trunk).
* $ bzr merge bzr+ssh://server.example.com/srv/bzr/projeto/branch_a
Realiza o merge da branch atual com a branch_a.

## Instalação - Utilizando pip

Se possuir direitos de administrador faça:
Se não possuir direitos de administrador faça:

## Instalação - Debian
### Requisitos

Para a versão estável (intitulada jessie) são requeridos ao menos 100.0 kB de memória livre no disco.

### Passo-a-passo
##### Opção 1

* Faça o download da versão atual no link: https://packages.debian.org/jessie/all/bzr/download;
* Acesse a pasta que contém o pacote baixado;
* No terminal faça:
* dpkg -i filename.deb

##### Opção 2

* No terminal faça:sudo apt-get install bzr

## Instalação Windows
### Requisitos

Para a versão beta standalone mais recente, são necessários ao menos 50.1 MB livres no disco.

### Passo-a-passo

* Acesse o site de Downloads do Bazaar para Windows.
* Selecione a versão standalone desejada e o download se iniciará.
* Clique no executável baixado para iniciar o instalador.
* Clique em Next para prosseguir para a tela de informações sobre a licença, após lê-la clique em Next novamente.
* Selecione o local de instalação, e clique em Next.
* Selecione os componentes que você deseja instalar e clique em Next.
* Selecione a localização dos atalhos e clique em Next.
* Selecione as tarefas adicionais desejadas, recomenda-se criar um atalho na Área de Trabalho.
* Verifique as configurações, e se estiverem corretas clique em Install.
* Pronto, agora é só clicar duas vezes no ícone da Área de Trabalho que o Bazaar abrirá.

## Instalação em Mac
### Requisitos e passo-a-passo

Cada plataforma possui instruções e material específicos conforme a tabela abaixo.
| Plataforma | Instruções | Versão |
| Snow Leopard (10.6 - Python 2.6) | http://wiki.bazaar.canonical.com/MacOSXBundle/SnowLeopard | 2.6.0 |
| Leopard (10.5 - Python 2.5) | http://wiki.bazaar.canonical.com/MacOSXBundle | 2.3.3 |
| Tiger (10.4) - Python 2.6 | http://wiki.bazaar.canonical.com/MacOSXBundle/Tiger | 2.0.0 |
| Tiger (10.4) - Python 2.5 | http://wiki.bazaar.canonical.com/MacOSXBundle/Tiger | 2.0.0 |

## Utilizando Bazaar em projetos Git

É possível usar URLs Git normais ou caminhos, quando o plugin bzr-git está instalado.
Para criar um clone local do projeto gnom-specimen, faça:
Para dar push para o Github utilize "git" como seu username. Por exemplo:

## Plugins
### qbzr

QBzr é um front-end GUI multi-plataforma para Bazaar, baseado em Qt toolkit.
Os comandos para utilizá-lo consiste em, uma vez no terminal, adicionar a letra q ao comando desejado.
Exemplo:
Gerará tela semelhante à abaixo:
bzr-explorer
Aplicação desktop que provê uma interface simples para o Bazaar.

### Plugins de integração com outras ferramentas de controle de versão
## Projetos que utilizam Bazaar

Os projetos de destaque que usam Bazaar para controle de versão são:
* GNU
* Linux Foundation
* MySQL
* Bugzila
* GNU Mailman
* Debian
* MariaDB
* Drizzle
* KiCad
* Ubuntu
* Armagetron Advanced
* Inkscape
* Squid
* Stellarium
* BigDFT
* Beautiful Soup
* Midori

## Bazaar vs Git

O próprio Bazaar tem uma página na qual lista suas vantagens em relação ao Git, abaixo seguem algumas delas:
Vantagens
   Suporte para o Windows
   Uma das vantagens do Bazaar é que ele oferece suporte nativo para Windows, que funciona como um programa normal desse SO, e tem um instalador de fácil utilização. Este suporte oferece uma interface gráfica que facilita a execução dos comandos para quem não gosta de usar o terminal. Essa vantagem não é tão relevante, visto que atualmente existem aplicações que oferecem esse suporte para o Git, a principal diferença é a facilidade na instalação, a familiaridade com os programas do Windows, e o suporte completo, por ser nativo.
   Suporte direto para mais fluxos de trabalho
   No Bazaar há suporte para vários tipos de fluxos de trabalho, por exemplo, em um fluxo de trabalho centralizado, como o SVN, no Git você teria que fazer duas ações: um commit local e depois um push para o host remoto, já no Bazaar você pode commitar diretamente para o servidor central. Além disso, o Bazaar também suporta o checkout do SVN, por exemplo.
   Arquitetura para plugins
   O Bazaar possui uma boa arquitetura interna, e uma rica API pública para integração com outras ferramentas, entretanto, o Git também tem trabalhado numa API pública e com o passar do tempo essa vantagem irá perder a relevância.
   Outras vantagens
   Similaridade nos nomes dos comandos com os comandos de controladores de versão mais antigos como Subversion.
   Versiona diretórios vazios.
   Branches são diretórios.
Desvantagens
   O Bazaar é mais lento que o Git.
   O Git é mais eficente no armazenamento.
   A validação de conteúdo criptográfica do Git faz com que seja quase impossível atacar um repositório Git, pois o mesmo usa SHAs para a identificação das revisões, enquanto o Bazaar usa UUIDs.