BzrSync er et verktøy for å hjelpe en utbygger å bruke Bazaar på flere maskiner. Det holder automatisk valgt repositories og grener synkronisert på tvers av maskinene. Basar seg selv benyttes til synkroniseringen (med "BZR pull"), noe som sikrer konsistens til alle tider.
Installasjon
For å installere den siste stabile versjonen av BzrSync, ved hjelp av pip:
PIP installere bzrsync
eller bruke setuptools:
easy_install bzrsync
Ellers, hvis verken pip eller setuptools er tilgjengelig, er det mulig å laste ned kilde pakke, pakke den ut og kjøre de vanlige setup.py kommandoer (for eksempel fra PyPI.):
python setup.py installere
Bruk
La oss anta at du jobber fra tre forskjellige arbeidsstasjoner, og deres vertsnavn er alfa, beta og gamma. Du ønsker å holde basar repositories og grener synkronisert mellom alle tre noder som bruker BzrSync. BzrSync er ment å brukes med felles repositories, så hvis du ikke bruker disse, bør du re-organisere grener å bruke delte repositories. Det er lettere å holde alle depotene inne i samme katalog. I vårt eksempel våre arkiver vil ligge i ~ / bzr og navnene deres vil ende i «.bzr". I hvert delte depotet, på øverste nivå bør det være en katalog for hver node. I vårt tilfelle alfa, beta og gamma. For eksempel, la oss forestille vi har et depot som heter "prosjekt-foo.bzr". Vi jobber med alpha, og har skapt en koffert og en funksjon-en gren. Vi vil ha:
~ / Bzr / prosjekt foo.bzr /
~ / Bzr / prosjekt foo.bzr / alpha
~ / Bzr / prosjekt foo.bzr / alfa / trunk
~ / Bzr / prosjekt foo.bzr / alpha / funksjon-en
~ / Bzr / prosjekt foo.bzr / beta
~ / Bzr / prosjekt foo.bzr / gamma
La oss anta at vi også har en local.bzr depot vi ikke ønsker å synkronisere, i begge retninger.
BzrSync trenger en YAML config-fil, som standard ~ / .bazaar / bzrsync.yaml, liste opp repositories og grenene vi. I dette eksempelet dens innhold vil være:
# eksterne noder
# (En vert kan angis med en valgfri port som HOST: PORT)
verter:
- Alpha
- Beta
- Gamma
# Der repositories angitt med en relativ bane / mønsteret er plassert
root: ~ / bzr
# * Alle * repositories
repositories: "* .bzr"
# spesifikke repositories å ekskludere fra 'repositories'
utelukke:
- Local.bzr
# repositories å eksportere til fjerntliggende noder
eksport: "* .bzr"
# spesifikke depoter ekskludert fra eksport
export_exclude:
- Local.bzr
# repositories å synkronisere fra fjernkontroller
sync: "* .bzr"
# spesifikke depoter ekskludert fra sync
sync_exclude:
- Local.bzr
Vi kan bruke akkurat den samme konfigurasjonsfil på alle tre noder.
BzrSync vil ikke skape de delte repositories for deg, så før du går videre, gjør det nå av alle nodene, huske å lage også nodekataloger.
Deretter starter BzrSync daemon på alle nodene:
alpha $ bzrsync tjene
beta $ bzrsync tjene
gamma $ bzrsync tjene
La oss nå sync prosjekt foo.bzr fra alpha til beta:
& Nbsp; beta $ bzrsync sync ~ / BZR / prosjekt foo.bzr
Dette vil trekke til beta alle grenene fra ~ / BZR / prosjekt foo.bzr / alpha / på alpha, og alle grener fra ~ / BZR / prosjekt foo.bzr / gamma / på gamma. I vårt tilfelle er det bare alfa grener akkurat nå, så i praksis vil vi få grener alfa / trunk og alfa / feature-1 fra alpha til beta, holde dem som alfa / trunk og alfa / funksjon-en.
Hvis du ønsker å jobbe på beta, nå gren fra den nylig synkroniserte grenene til sine kolleger inne i beta / underkatalog:
beta $ bzr gren ~ / BZR / prosjekt foo.bzr / alpha / feature-1 ~ / BZR / prosjekt foo.bzr / beta / funksjon-en
beta $ bzr co ~ / BZR / prosjekt foo.bzr / beta / funksjons en foo-feature-1
beta $ cd foo-feature-1
...
hack hack hack
...
beta $ forplikte
Nå på beta vil vi ha:
~ / Bzr / prosjekt foo.bzr /
~ / Bzr / prosjekt foo.bzr / alpha
~ / Bzr / prosjekt foo.bzr / alfa / trunk
~ / Bzr / prosjekt foo.bzr / alpha / funksjon-en
~ / Bzr / prosjekt foo.bzr / beta
~ / Bzr / prosjekt foo.bzr / beta / funksjon-en
~ / Bzr / prosjekt foo.bzr / gamma
Når du er ferdig med å jobbe på beta, kan du synkronisere fra alpha:
& Nbsp; alpha $ bzrsync sync ~ / BZR / prosjekt foo.bzr
og dette vil skape beta / feature-1 på alpha også, som du kan trekke ut alpha / funksjon-en hvis ikke avvek, eller flette det ellers, og begynne å jobbe fra alpha igjen.
Vennligst se eksempel bzrsync.yaml fil for en mer komplett eksempel, som også inkluderer sett avdelings
Egenskaper .
- noen antall maskiner støttes
- konsistens er garantert til enhver tid
Krav
- Python
Kommentarer ikke funnet