# Bazaar
## Introdução

Bazaar é um sistema de controle de versões descentralizado, serve para seguir o processo de evolução de código de software ou informação semelhante. A filosofia de concepção deste programa é dar o máximo de liberdade ao utilizador para fazer as alterações que forem necessárias.
O Bazaar está escrito em Python e está licenciado segundo a licença de software livre GNU General Public License|GPL, sendo a sua versão atual a 2.3.4.

## História

O projeto Bazaar era inicialmente um projeto piloto de features que seriam posteriormente integradas a um antigo sistema de controle de versão chamado Baz. No entanto, este projeto foi abandonado devido ao fato de muitos dos principais desenvolvedores do projeto Baz terem migrarado para o Bazaar. Então, em janeiro de 2005, estabeleceu-se o site público oficial e uma lista de discussão do projeto, e logo em seguida, foi feito o primeiro pré-lançamento da ferramenta, 0.0.1 em Março daquele mesmo ano.
A versão 1.0 do Bazaar foi lançada em Dezembro de 2007. Em fevereiro de 2008 ele se tornou um projeto GNU. Em meados de 2012 alguns membros do grupo Canonical foram designados a outras tarefas e assim a atividade do projeto diminuiu consideravelmente. Em março de 2013 uma discussão no projeto GNU Emacs quetionava se o Bazaar ainda recebia atualiações e se não seria melhor migrar para uma outra ferramenta de controle de versão, o que acabou acontecendo em 2014 com a migração do GNU Emacs para o git. Da mesma forma o projeto Bugzilla aposentou o Bazaar em prol do git no mesmo ano, afirmando que o Bazaar dava a impressão de que estava quase "morto", com apenas 2 ou 3 commits a cada mês, o tempo para consertar bugs no Bazaar era longo.

## Comunidade

Atualmente o principal forge dedicado ao Bazaar é o Launchpad criado pela Canonical para incentivar a utilização distribuída do sistema de controle de versões, portanto a grande maioria da comunidade do Bazaar se concentra e mantem projetos nesse forge.

## Instalação

O Bazaar está disponível para a maioria das distribuições GNU/Linux incluindo Ubuntu, Debian, Red Hat e Gentoo e também para Windows.

### Instalação GNU/Linux
#### Ubuntu e derivados

Adicione a URL desejada para o arquivo /etc/apt/sources.list
| URL | Versão |
| https://launchpad.net/~bzr/+archive/ppa | stable |
| https://launchpad.net/~bzr/+archive/beta | beta |
| https://launchpad.net/~bzr/+archive/daily | daily |
Logo em seguida, digite no terminal:

#### ArchLinux
### Instalação Windows

Download e instale o standalone, o pacote já vem com interfaces gráficas.

### Servidor

O servidor de Bazaar pode ser um simples sistema de arquivos remoto através dos protocolos HTTP, FTP, SFTP and HTTP-WebDAV. Ou rodar um servidor dedicado através do comando:

## Comandos Básicos

* Configurar usuário
Para configurar o usuário basta executar o seguinte comando substituindo o nome e o e-mail onde necessário:
* Inicializar repositório
Um repositório é inicializado através do comando:
Onde "exemplo" representa o nome do repositório. Com o repositório criado agora basta criar a branch principal, trunk e navegar para ela:
* Adicionar arquivos
Para adicionar um arquivo chamado exemplo1.txt basta executar o seguinte comando:
* Submeter mudanças
Com os arquivos adicionados, para submeter as mudanças e definir uma mensagem para as mesmas, utiliza-se o comando:
* Ver histórico de mudanças
Para verificar o histórico de modificações basta apenas executar o comando:
* Copiar branch
Para fazer uma cópia de uma branch localizada em um diretório Ex: /home/mary/cool-repo/cool-trunk
Podendo substituir a primeira branch com uma branch remota.
* Atualizar branch local
Para atualizar uma branch com a sua branch de referência utilize o comando
Para atualizar uma branch com outra branch utilize o comando

## Bazaar GUI

o Bazaar possui uma poderosa interface gráfica, desenvolvida tanto para experts quanto para iniciantes. Compatível com Linux, Windows e Mac, os usuários não precisam se prender a uma linha de comandos.

## Vantagens e Desvantagens

A maior vantagem deste sistema é a flexibilidade de modos de clonagem, podendo trabalhar tanto com checkouts (como o SVN e CVS) ou com branchs (como o Git) e possui também integração através de plugins. A comunidade Bazaar também afirma que este sistema de controle de versão tem uma curva de aprendizado bem menor comparado a outros como Git, Mercurial e SVN.
Uma das desvantagens é o desempenho que, comparado ao sistema Git, é bastante inferior em praticamente todas as operações e também utiliza mais espaço em disco para um repositório. Além disso a comunidade e a quantidade de forges que suportam este sistema de controle de versões é bem pequena, se comparado a outros sistemas.

## Plugins

O Bazaar foi construído sob uma arquitetura de plugins, o que possibilita uma extensão e adição de funcionalidades como integração com git, cvs e outras ferramentas. A lista de plugins disponíveis pode ser consultada em: http://wiki.bazaar.canonical.com/BzrPlugins