BzrSync é um utilitário para ajudar um desenvolvedor usando Bazaar em várias máquinas. Ele mantém automaticamente repositórios selecionados e ramos sincronizados através das máquinas. Si Bazar é utilizado para a sincronização (com "puxar bzr"), assegurando a consistência em todos os momentos.
Instalação
Para instalar a última versão estável do BzrSync, usando pip:
pip instalar bzrsync
ou usando setuptools:
easy_install bzrsync
Caso contrário, se nem PIP nem setuptools estão disponíveis, é possível fazer o download do pacote fonte, extraí-lo e executar os comandos setup.py habituais (por exemplo, de PyPI.):
python setup.py install
Uso
Vamos supor que você trabalha em três estações de trabalho diferentes, e seus nomes de host são alfa, beta e gama. Você deseja manter seus repositórios Bazaar e ramos sincronizados entre todos os três nós usando BzrSync. BzrSync é feito para ser usado com repositórios compartilhados, por isso, se você não está usando estes, você deve re-organizar as suas filiais para usar repositórios compartilhados. É mais fácil manter todos os repositórios dentro do mesmo diretório. No nosso exemplo, nossos repositórios irá residir em ~ / bzr e seus nomes vão acabar em ".bzr". Em cada repositório compartilhado, no nível superior deve haver um diretório para cada nó. No nosso caso, alfa, beta e gama. Por exemplo, vamos imaginar que temos um repositório chamado "projecto-foo.bzr". Estamos trabalhando em alfa, e criaram um tronco e um recurso de uma filial. Nós vamos ter:
~ / Bzr / project-foo.bzr /
~ / Bzr / project-foo.bzr / alpha
~ / Bzr / project-foo.bzr / alpha / trunk
~ / Bzr / project-foo.bzr / alpha / feature-1
~ / Bzr / project-foo.bzr / beta
~ / Bzr / project-foo.bzr / gama
Vamos supor que temos também um repositório local.bzr nós não queremos para sincronizar, em qualquer direção.
BzrSync precisa de um arquivo de configuração YAML, por padrão ~ / .bazaar / bzrsync.yaml, listando os repositórios e os ramos nós. Neste exemplo, o seu conteúdo irá ser:
# nós remotos
# (Um host pode ser especificado com uma porta opcional como HOST: PORT)
hosts:
- Alfa
- Beta
- Gama
# Onde repositórios especificados com um caminho / padrão relativo estão localizados
root: ~ / bzr
# * Todos os repositórios *
repositórios: "* .bzr"
# repositórios específicos de excluir do 'repositórios'
excluem:
- Local.bzr
# repositórios para exportar para nós remotos
exportação: "* .bzr"
# repositórios específicos excluídos da exportação
export_exclude:
- Local.bzr
# repositórios a sincronizar do controle remoto
sync: "* .bzr"
# repositórios específicos excluídos da sincronização
sync_exclude:
- Local.bzr
Podemos usar exatamente esse mesmo arquivo de configuração em todos os três nós.
BzrSync não vai criar os repositórios compartilhados para você, então antes de prosseguir, fazê-lo agora em todos os nós, lembrando-se de criar também os subdiretórios do nó.
Em seguida, inicie o daemon BzrSync em todos os nós:
alpha $ bzrsync servir
beta $ bzrsync servir
gamma $ bzrsync servir
Agora sincronização projeto-foo.bzr de alfa para beta vamos:
& Nbsp; beta $ bzrsync sync ~ / bzr / project-foo.bzr
Isso vai puxar a beta todos os ramos do ~ / bzr / project-foo.bzr / alpha / em alfa, e todos os ramos de ~ / bzr / project-foo.bzr / gama / na gama. No nosso caso, apenas alfa tem filiais agora, então, na prática, nós vamos chegar a ramos alpha / tronco e alfa / feature-1 a partir de alfa para beta, mantendo-os como alfa / trunk e alfa / feature-1.
Se você quer trabalhar em beta, agora ramificar dos galhos recém-sincronizado com os seus homólogos dentro do beta / subdiretório:
beta $ bzr branch ~ / bzr / project-foo.bzr / alpha / feature-1 ~ / bzr / project-foo.bzr / beta / feature-1
beta $ bzr co ~ / bzr / project-foo.bzr / beta / feature-1 foo-feature-1
beta $ cd foo-feature-1
...
Hack hack corte
...
$ cometer beta
Agora em versão beta, teremos:
~ / Bzr / project-foo.bzr /
~ / Bzr / project-foo.bzr / alpha
~ / Bzr / project-foo.bzr / alpha / trunk
~ / Bzr / project-foo.bzr / alpha / feature-1
~ / Bzr / project-foo.bzr / beta
~ / Bzr / project-foo.bzr / beta / feature-1
~ / Bzr / project-foo.bzr / gama
Quando você terminar de trabalhar em beta, você pode sincronizar a partir de alfa:
& Nbsp; alpha $ bzrsync sync ~ / bzr / project-foo.bzr
e isso vai criar beta / feature-1 em alfa também, que você pode puxar para alpha / característica-1 se não divergiram, ou fundi-lo de outra forma, e começar a trabalhar a partir de alfa novamente.
Por favor, veja o exemplo bzrsync.yaml arquivo para um exemplo mais completo, que inclui também conjuntos ramo
Recursos :.
- qualquer número de máquinas são suportadas
- consistência é garantida em todos os momentos
Requisitos :
- Python
Comentários não encontrado