BzrSync е програма, за да помогне на разработчиците при използване Bazaar на няколко машини. Тя автоматично запазва избрани хранилища и клонове синхронизирани през машините. Самата Bazaar се използва за синхронизиране (с "BZR дърпане"), осигуряване на съгласуваност на всички времена.
<Силен> Инсталиране
За да инсталирате последната стабилна версия на BzrSync, използвайки пипс:
PIP инсталирате bzrsync
или използване setuptools:
easy_install bzrsync
В противен случай, ако нито семки, нито setuptools са на разположение, че е възможно да изтеглите пакета с изходния код, извлечете го и тичам обичайните setup.py команди (например от PyPI.):
питон setup.py инсталиране
<Силен> Usage
Нека да предположим, че работят от три различни работни станции, както и техните имена на хостове са алфа, бета и гама. Вие искате да запазите вашите Базар хранилища и клонове синхронизирани между трите възли, използващи BzrSync. BzrSync е предназначен да се използва с общи хранилища, така че ако не използвате тези, можете да реорганизирате клоновете си да използват споделени хранилища. По-лесно е да се запазят всички хранилищата вътре в същата директория. В нашия пример нашите хранилища ще пребивават в ~ / BZR и имената им ще завършват с ".bzr". Във всяка споделена хранилище, най-високо ниво трябва да има директория за всеки възел. В нашия случай на алфа, бета и гама. Например, нека си представим, че имаме хранилище на име "Проект-foo.bzr". Ние работим върху алфа, и са създали багажника и клон черта-1. Ние ще трябва:
~ / BZR / проект-foo.bzr /
~ / BZR / проект-foo.bzr / алфа
~ / BZR / проект-foo.bzr / алфа / багажника
~ / BZR / проект-foo.bzr / алфа / черта-1
~ / BZR / проект-foo.bzr / бета
~ / BZR / проект-foo.bzr / у
Да предположим, ние също имаме local.bzr хранилище ние не искаме да синхронизирате, и в двете посоки.
BzrSync нуждае от конфигурационния файл YAML, по подразбиране ~ / .bazaar / bzrsync.yaml, листинг хранилищата и ние клоните. В този пример съдържанието ще бъдат:
# отдалечени възли
# (Хост може да бъде определен с допълнителен порт като домакин: PORT)
Силите:
- Алфа
- Бета
- Гама-
#, Където се намират хранилища, определени с относителен път / модел
корен: ~ / BZR
# * Всички * хранилища
хранилища: "* .bzr"
# специфични транзакции да се изключат от "хранилища"
изключват:
- Local.bzr
# хранилища да изнасят за отдалечени възли
износ: "* .bzr"
# специфични транзакции, изключени от износ
export_exclude:
- Local.bzr
# хранилища за синхронизиране от дистанционни управления
синхронизация: "* .bzr"
# специфични транзакции, изключени от синхронизирането
sync_exclude:
- Local.bzr
Ние можем да използваме точно този същия конфигурационен файл и на трите възли.
BzrSync няма да се създадат общи хранилища за вас, така че преди да продължите, направете го сега на всички възли, спомняйки си за да създадете също поддиректории на възел.
След стартиране на демона BzrSync на всички възли:
алфа $ bzrsync служи
бета $ bzrsync служи
гама $ bzrsync служи
Сега нека синхрон проект-foo.bzr от алфа към бета:
& Nbsp; бета $ bzrsync синхронизация ~ / BZR / проект-foo.bzr
Това ще дръпне към бета всички клонове от ~ / BZR / проект-foo.bzr / алфа / на алфа, и всички клонове от ~ / BZR / проект-foo.bzr / гама / на гама. В нашия случай, само алфа има клонове в момента, така че на практика ние ще се заемем с клонове алфа / багажника и алфа / черта-1 от алфа към бета, и ги оставете като алфа / багажника и алфа / черта-1.
Ако искате да работите върху бета, сега клона, от новоприетите синхронизирани клони към колегите им във вътрешността на бета / поддиректорията:
бета $ BZR клон ~ / BZR / проект-foo.bzr / алфа / черта-1 ~ / BZR / проект-foo.bzr / бета / черта-1
бета $ BZR ко ~ / BZR / проект-foo.bzr / бета / черта-1 Foo-черта-1
бета $ CD Foo-черта-1
...
хак хак хак
...
бета $ ангажират
Сега на бета ще имаме:
~ / BZR / проект-foo.bzr /
~ / BZR / проект-foo.bzr / алфа
~ / BZR / проект-foo.bzr / алфа / багажника
~ / BZR / проект-foo.bzr / алфа / черта-1
~ / BZR / проект-foo.bzr / бета
~ / BZR / проект-foo.bzr / бета / черта-1
~ / BZR / проект-foo.bzr / у
Когато приключите работа по бета, можете да синхронизирате от алфа:
& Nbsp; алфа $ bzrsync синхронизация ~ / BZR / проект-foo.bzr
и това ще създаде бета / черта-1 на алфа също, което можете да дръпнете върху алфа / черта-1, ако не се отклонява, или да го слее друго, и да започне работа от алфа отново.
Моля, вижте примера bzrsync.yaml файл за по-пълен, например, който включва и браншови комплекти
<силни> Характеристики :.
- всеки брой машини се поддържат
- консистенция е гарантирана по всяко време
<силни> Изисквания
- Python
Коментари не е намерена