BzrSync est un utilitaire pour aider un développeur utilisant bazar sur plusieurs machines. Il maintient automatiquement sélectionnés dépôts et branches synchronisés à travers les machines. Bazaar est lui-même utilisé pour la synchronisation (avec "pull bzr"), assurant la cohérence à tout moment.
Installation
Pour installer la dernière version stable de BzrSync, en utilisant pip:
pip installer bzrsync
ou en utilisant setuptools:
easy_install bzrsync
Sinon, si ni les pépins ni setuptools sont disponibles, il est possible de télécharger le paquet source, extraire et exécuter les commandes setup.py habituels (par exemple de PyPI.):
python setup.py install
Utilisation
Supposons que vous travaillez à partir de trois postes de travail différents, et leurs noms d'hôtes sont alpha, bêta et gamma. Vous voulez garder vos dépôts Bazar et branches synchronisées entre tous les trois noeuds en utilisant BzrSync. BzrSync est destiné à être utilisé avec des référentiels partagés, donc si vous ne l'utilisez ceux-ci, vous devez réorganiser vos branches à utiliser des référentiels partagés. Il est plus facile de garder tous les dépôts à l'intérieur du même répertoire. Dans notre exemple, nos référentiels résideront dans ~ / bzr et leurs noms seront terminera en ".bzr". Dans chaque référentiel partagé, au plus haut niveau il devrait y avoir un répertoire pour chaque noeud. Dans notre cas, alpha, bêta et gamma. Par exemple, imaginons que nous avons un référentiel nommé «projet-foo.bzr". Nous travaillons sur l'alpha, et nous avons créé un tronc et une branche fonction-1. Nous avons:
~ / Bzr / projet-foo.bzr /
~ / Bzr / projet-foo.bzr / alpha
~ / Bzr / projet-foo.bzr / alpha / trunk
~ / Bzr / projet-foo.bzr / alpha / option-1
~ / Bzr / projet-foo.bzr / beta
~ / Bzr / projet-foo.bzr / gamma
Supposons que nous avons aussi un référentiel de local.bzr nous ne voulons pas de synchroniser, dans les deux sens.
BzrSync a besoin d'un fichier de configuration YAML, par défaut ~ / .bazaar / bzrsync.yaml, énumérant les référentiels et les branches nous. Dans cet exemple, son contenu sera:
# nœuds distants
# (Un hôte peut être spécifié avec un port optionnel comme HÔTE: PORT)
hôtes:
- Alpha
- Beta
- Gamma
# Où se trouvent référentiels spécifiés avec un chemin / motif par rapport
root: ~ / bzr
# * Tous * les dépôts
référentiels: "* .bzr"
# référentiels spécifiques à exclure de «référentiels»
exclure:
- Local.bzr
# référentiels d'exporter vers des noeuds distants
l'exportation: "* .bzr"
référentiels spécifiques # exclus de l'exportation
export_exclude:
- Local.bzr
# dépôts à synchroniser à partir de télécommandes
sync: "* .bzr"
référentiels spécifiques # exclus de synchronisation
sync_exclude:
- Local.bzr
Nous pouvons utiliser exactement le même fichier de configuration sur les trois nœuds.
BzrSync ne créera pas les référentiels partagés pour vous, alors avant de procéder, le faire maintenant sur tous les nœuds, se souvenant aussi de créer les sous-répertoires de noeuds.
Puis lancez le démon BzrSync sur tous les nœuds:
alpha $ bzrsync servir
beta $ bzrsync servir
gamma $ bzrsync servir
Maintenant, nous allons synchronisation projet foo.bzr de l'alpha à la bêta:
& Nbsp; beta $ bzrsync synchronisation ~ / bzr / projet-foo.bzr
Cela tirera à la bêta toutes les branches de ~ / bzr / projet-foo.bzr / alpha / sur l'alpha, et toutes les branches de ~ / bzr / projet-foo.bzr / gamma / sur gamma. Dans notre cas, seulement alpha possède des succursales en ce moment, dans la pratique, nous aurons l'branches alpha / tronc et alpha / option-1 de l'alpha à la bêta, les garder comme alpha / tronc et alpha / option-1.
Si vous souhaitez travailler sur la bêta, maintenant la Direction générale des branches nouvellement synchronisés à leurs homologues à l'intérieur du / répertoire beta:
beta $ bzr branche ~ / bzr / projet-foo.bzr / alpha / option-1 ~ / bzr / projet-foo.bzr / beta / option-1
beta $ bzr co ~ / bzr / projet-foo.bzr / beta / option 1-foo-feature-1
beta $ cd foo-feature-1
...
Hack hack bidouille
...
$ bêta commettent
Maintenant sur la bêta, nous aurons:
~ / Bzr / projet-foo.bzr /
~ / Bzr / projet-foo.bzr / alpha
~ / Bzr / projet-foo.bzr / alpha / trunk
~ / Bzr / projet-foo.bzr / alpha / option-1
~ / Bzr / projet-foo.bzr / beta
~ / Bzr / projet-foo.bzr / beta / option-1
~ / Bzr / projet-foo.bzr / gamma
Lorsque vous avez fini de travailler sur la bêta, vous pouvez synchroniser à partir d'alpha:
& Nbsp; alpha $ bzrsync synchronisation ~ / bzr / projet-foo.bzr
et cela va créer beta / option-1 sur l'alpha trop, que vous pouvez tirer sur alpha / option-1 si pas divergé, ou de fusionner autrement, et commencer à travailler à partir d'alpha à nouveau.
S'il vous plaît voir l'exemple bzrsync.yaml fichier pour un exemple plus complet, qui comprend également des ensembles branche
Caractéristiques :.
- tout nombre de machines sont pris en charge
- cohérence est garantie à tout moment
Exigences :
- Python
Commentaires non trouvées