BzrSync ist ein Dienstprogramm, um einen Entwickler mit Bazaar auf mehreren Maschinen zu helfen. Es hält automatisch ausgewählt Repositories und Niederlassungen in den Maschinen synchronisiert. Bazaar selbst wird für die Synchronisation (mit "bzr pull") verwendet, die Kohärenz zu allen Zeiten.
Installation
So installieren Sie die neueste stabile Version von BzrSync mit pip:
pip bzrsync installieren
oder unter Verwendung von Setuptools:
easy_install bzrsync
Wenn jedoch weder von pip noch Setuptools zur Verfügung stehen, ist es möglich, das Quellpaket herunterladen, entpacken Sie es und führen Sie die üblichen setup.py Befehle (zB von PyPI.):
python setup.py install
Verwendung
Angenommen, Sie arbeiten aus drei verschiedenen Arbeitsstationen und deren Hostnamen sind alpha, beta und gamma. Sie möchten Ihre Bazaar Repositories und Zweigen zwischen allen drei Knoten mit BzrSync synchronisieren. BzrSync soll mit gemeinsamen Repositorys verwendet werden, so dass, wenn Sie nicht verwenden diese, sollten Sie neu zu organisieren Sie Ihre Zweige geteilt Repositories verwenden. Es ist einfacher, alle Repositorys im gleichen Verzeichnis zu halten. In unserem Beispiel unsere Repositories werden in ~ / bzr wohnen und ihre Namen werden in ".bzr" zu beenden. In jedem gemeinsamen Repository, auf der obersten Ebene sollte es ein Verzeichnis für jeden Knoten sein. In unserem Fall alpha, beta und gamma. Zum Beispiel lassen Sie uns vorstellen, wir haben ein Repository mit dem Namen "Projekt-foo.bzr". Wir arbeiten an alpha arbeiten, und haben einen Koffer und ein Feature-1 Zweig erstellt. Wir müssen:
~ / Bzr / projekt foo.bzr /
~ / Bzr / projekt foo.bzr / alpha
~ / Bzr / projekt foo.bzr / alpha / trunk
~ / Bzr / projekt foo.bzr / alpha / Feature-1
~ / Bzr / projekt foo.bzr / beta
~ / Bzr / projekt foo.bzr / gamma
Nehmen wir an, wir haben auch eine local.bzr Repository wir nicht wollen, um zu synchronisieren, in beide Richtungen.
BzrSync braucht eine YAML Konfigurationsdatei, standardmäßig ~ / .bazaar / bzrsync.yaml, in dem die Repositories und die Zweige wir. In diesem Beispiel wird sein Inhalt wird sein:
# Remote-Knoten
# (Ein Host kann mit einem optionalen Port als HOST angegeben werden: PORT)
Gastgeber:
- Alpha
- Beta
- Gamma
# Wo Repositories mit einem relativen Pfad / pattern angegebenen befinden
root: ~ / bzr
# * Alle * Repositories
Repositorys: "* .bzr"
# Spezifischen Repositories von 'Repositorys auszuschließen
auszuschließen:
- Local.bzr
# Repositories auf Remote-Knoten exportieren
Export: "* .bzr"
# Spezifischen Repositories von Export ausgeschlossen
export_exclude:
- Local.bzr
# Repositories von Fernbedienungen synchronisieren
Sync: "* .bzr"
# Spezifischen Repositories von Sync ausgeschlossen
sync_exclude:
- Local.bzr
Wir können genau dieselbe Konfigurationsdatei auf allen drei Knoten zu verwenden.
BzrSync werden die freigegebenen Repositorys erstellen für Sie, also, bevor Sie fortfahren, tun Sie dies jetzt auf allen Knoten, daran zu denken, auch die Knotenverzeichnisse erstellen.
Dann starten Sie das BzrSync Daemon auf allen Knoten:
alpha $ bzrsync dienen
beta $ bzrsync dienen
gamma $ bzrsync dienen
Lassen Sie uns jetzt sync projektgebundene foo.bzr von alpha zu beta:
& Nbsp; beta $ bzrsync sync ~ / bzr / projekt foo.bzr
Dies wird zu beta von ~ / bzr / projekt foo.bzr / alpha ziehen alle Zweige / auf alpha, und alle Zweige aus ~ / bzr / projekt foo.bzr / gamma / gamma auf. In unserem Fall hat nur alpha Zweige gerade jetzt, so in der Praxis werden wir den Niederlassungen alpha / trunk und alpha / Feature-1 von alpha zu beta bekommen, halten sie als alpha / trunk und alpha / Feature-1.
Wenn Sie auf beta arbeiten möchten, jetzt verzweigen aus den neu synchronisiert Zweige mit ihren Gegenstücken in der beta / Unterverzeichnis:
beta $ bzr branch ~ / bzr / projekt foo.bzr / alpha / Feature-1 ~ / bzr / projekt foo.bzr / beta / Feature-1
beta $ bzr co ~ / bzr / projekt foo.bzr / beta / Feature-1 foo-Feature-1
beta $ cd foo-Feature-1
...
hack hack hack
...
beta $ verpflichten
Jetzt auf beta müssen wir:
~ / Bzr / projekt foo.bzr /
~ / Bzr / projekt foo.bzr / alpha
~ / Bzr / projekt foo.bzr / alpha / trunk
~ / Bzr / projekt foo.bzr / alpha / Feature-1
~ / Bzr / projekt foo.bzr / beta
~ / Bzr / projekt foo.bzr / beta / Feature-1
~ / Bzr / projekt foo.bzr / gamma
Wenn Sie fertig gearbeitet haben beta, die Sie von alpha synchronisieren können:
& Nbsp; alpha $ bzrsync sync ~ / bzr / projekt foo.bzr
und dies wird beta / Feature-1 zu schaffen auf alpha, die Sie auf alpha / ziehen können feature-1, wenn nicht auseinander, oder führen Sie sie andernfalls und die Arbeit von alpha erneut.
Bitte beachten Sie die Beispiel bzrsync.yaml Datei für einen vollständigeres Beispiel, das auch Zweig-Sets enthält
Eigenschaften .
- jede Anzahl der Maschinen werden unterstützt
- Konsistenz jederzeit gewährleistet
Anforderungen :
- Python
Kommentare nicht gefunden