Bazaar jest jednym z systemów rozproszonej kontroli wersji, który można wykorzystać na przykład do zarządzania zmianami w serwisie internetowym, niezależnie od tego w jakiej technologii jest on wykonany.
Zakładam, że mamy gotowy już serwis na serwerze, który zrobiliśmy kiedyś bez kontroli wersji. Naszym celem jest wykonanie kopii na lokalnej maszynie (np. laptopie), a następnie testowanie zmian na kopii lokalnej i "ładowanie" tych zmian na serwer pod kontrolą systemu kontroli wersji. Niniejszy artykuł nie próbuje odpowiedzieć na pytanie "po co mi system kontroli wersji". Zakładam, że rozumiesz jego konieczność, a zastanawiasz się którego użyć i w jaki sposób. (Jeśli nie, to np. tutaj http://pl.wikipedia.org/wiki/System_kontroli_wersji jest definicja, a tutaj http://www.maciejaniserowicz.com/post/2008/06/02/Kontrola-wersji-w-5-min... jest króciutkie i jasne wprowadzenie po co to wszystko).
Zakładam też, że na serwerze jest dostępna linia poleceń i można tam instalować oprogramowanie. Jest też możliwy scenariusz o ograniczonej funkcjonalności bez instalacji bazaara na serwerze (np. wtedy, gdy nie jest ona możliwa). Sposób postępowania dla tego przypadku jest opisany tutaj: http://wiki.bazaar.canonical.com/BazaarUploadForWebDev.
Najpierw instalujemy bazaar. Instalacja jest oczywista i dobrze opisana zarówno dla linuksów jak windowsów np. tutaj: http://doc.bazaar.canonical.com/bzr.2.3/en/user-guide/installing_bazaar.....
Instalacji musimy dokonać zarówno na serwerze i jak i na lokalnej maszynie.
Zanim zrobimy cokolwiek po instalacji musimy się systemowi przedstawić:
bzr whoami
bzr init
bzr ignore "*.pyc" bzr ignore "*.jpg" bzr ignore "*.png" bzr ignore "*.gif"
bzr help ignore
bzr add
bzr branch <a href="https://launchpad.net/bzr-push-and-update" title="https://launchpad.net/bzr-push-and-update">https://launchpad.net/bzr-push-and-update</a> push_and_update
bzr branch sftp://username@naszserwer.com/srv/serwisy/przykladowy
bzr add README.txt bzr commit -m "dodano README"
Spróbujemy teraz przesłać zmiany na serwer.
Na maszynie lokalnej, w katalogu serwisu piszemy:
bzr push --create-prefix sftp://username@naszserwer.com/sciezka/do/serwisu
bzr update
Teraz zajmiemy się procesem odwrotnym. Zakładam, że z jakichś powodów kolejnych modyfikacji dokonujemy bezpośrednio na serwerze. Na przykład wyedytujmy za pomocą vim, czy innego edytora, nasz plik README.txt na serwerze i dopiszmy do niego nasze imię i nazwisko. Zapisujemy plik, wychodzimy z edytora. Na serwerze robimy
bzr commit -m "dopisane nazwisko"
Przechodzimy na naszą maszynę lokalną. Polecenie
bzr merge sftp://username@naszserwer.com/sciezka/do/serwisu