BzrSync è un programma di utilità per aiutare uno sviluppatore che utilizza Bazaar su più macchine. Mantiene automaticamente i repository selezionati e rami sincronizzati attraverso le macchine. Bazaar stesso viene utilizzato per la sincronizzazione (con "bzr pull"), garantendo la coerenza in ogni momento.
Installazione
Per installare l'ultima versione stabile di BzrSync, utilizzando pip:
pip installare bzrsync
o utilizzando setuptools:
easy_install bzrsync
In caso contrario, se né pip né setuptools sono disponibili, è possibile scaricare il pacchetto sorgente, estrarlo ed eseguire i soliti comandi setup.py (ad esempio da PyPI.):
python setup.py install
Utilizzo
Supponiamo si lavora da tre stazioni di lavoro diverse, ei loro nomi di host sono alfa, beta e gamma. Si desidera mantenere i repository Bazaar e rami sincronizzati tra tutti e tre i nodi mediante BzrSync. BzrSync è pensato per essere utilizzato con i repository condiviso, quindi se non si utilizza questi, si dovrebbe ri-organizzare i rami di utilizzare repository comuni. E 'più facile per tenere tutti i repository all'interno della stessa directory. Nel nostro esempio nostri repository risiederà in ~ / bzr ed i loro nomi finiranno in ".bzr". In ogni repository condiviso, al livello superiore dovrebbe esserci una directory per ogni nodo. Nel nostro caso alfa, beta e gamma. Ad esempio, supponiamo di immaginare abbiamo un repository chiamato "progetto-foo.bzr". Stiamo lavorando su alpha, e hanno creato un tronco e un ramo di caratteristica-1. Avremo:
~ / Bzr / progetto-foo.bzr /
~ / Bzr / progetto-foo.bzr / alpha
~ / Bzr / progetto-foo.bzr / alpha / trunk
~ / Bzr / progetto-foo.bzr / alpha / funzione-1
~ / Bzr / progetto-foo.bzr / beta
~ / Bzr / progetto-foo.bzr / gamma
Supponiamo di avere anche un deposito local.bzr non vogliamo sincronizzare, in entrambe le direzioni.
BzrSync ha bisogno di un file di configurazione YAML, di default ~ / .bazaar / bzrsync.yaml, elencando i repository e nei rami noi. In questo esempio il contenuto sarà:
# nodi remoti
# (Un host può essere specificato con una porta opzionale come HOST: PORTA)
padroni di casa:
- Alpha
- Beta
- Gamma
# Dove si trovano depositi di cui con un parente percorso / modello
root: ~ / bzr
# * Tutti i repository *
repository: "* .bzr"
# repository specifici da escludere dal 'repository'
escludere:
- Local.bzr
repository # di esportare a nodi remoti
export: "* .bzr"
repository specifici # esclusi dalla esportazione
export_exclude:
- Local.bzr
repository # da sincronizzare dalla telecomandi
sync: "* .bzr"
repository specifici # esclusi dalla sincronizzazione
sync_exclude:
- Local.bzr
Possiamo usare esattamente lo stesso file di configurazione su tutti e tre i nodi.
BzrSync non creerà i repository comune per voi, quindi prima di procedere, farlo ora in poi tutti i nodi, ricordandosi di creare anche le sottodirectory nodo.
Quindi lanciare il demone BzrSync su tutti i nodi:
alpha $ bzrsync servire
beta $ bzrsync servire
gamma $ bzrsync servire
Ora diamo sync progetto-foo.bzr da alpha a beta:
& Nbsp; beta $ bzrsync sync ~ / bzr / progetto-foo.bzr
Ciò tirerà a beta tutti i rami da ~ / bzr / progetto-foo.bzr / alpha / su alpha, e tutti i rami di ~ / bzr / progetto-foo.bzr / gamma / a gamma. Nel nostro caso, solo alfa ha filiali in questo momento, quindi, in pratica, ci arriveremo rami alpha / trunk e alfa / funzione-1 da alpha a beta, tenerli come alpha / trunk e alfa / funzione-1.
Se si desidera lavorare in beta, ora diramano dai rami appena sincronizzato alle loro controparti all'interno della beta / sottodirectory:
beta ramo $ bzr ~ / bzr / progetto-foo.bzr / alpha / funzione-1 ~ / bzr / progetto-foo.bzr / beta / funzione-1
beta $ bzr co ~ / bzr / progetto-foo.bzr / beta / funzione-1 foo-feature-1
beta $ cd foo-feature-1
...
Hack mod
...
beta $ commettono
Ora in versione beta avremo:
~ / Bzr / progetto-foo.bzr /
~ / Bzr / progetto-foo.bzr / alpha
~ / Bzr / progetto-foo.bzr / alpha / trunk
~ / Bzr / progetto-foo.bzr / alpha / funzione-1
~ / Bzr / progetto-foo.bzr / beta
~ / Bzr / progetto-foo.bzr / beta / funzione-1
~ / Bzr / progetto-foo.bzr / gamma
Quando avete finito di lavorare su beta, è possibile sincronizzare da alfa:
& Nbsp; alpha $ bzrsync sync ~ / bzr / progetto-foo.bzr
e questo creerà beta / funzione-1 alfa troppo, che si può tirare su alpha / funzione-1, se non a divergere, o unire altrimenti, e iniziare a lavorare da alpha di nuovo.
Si prega di vedere l'esempio bzrsync.yaml file per un esempio più completo, che comprende anche gli insiemi filiali
Caratteristiche .
- qualsiasi numero di macchine sono supportati
- coerenza è garantita in ogni momento
Requisiti
- Python
I commenti non trovato