Intern nutzt die cloudControl Plattform Bazaar als Versionskontrollsystem. Eines unserer Grundprinzipien ist es, dass die cloudControl Plattform sich den Entwicklern anpassen muss und nicht umgekehrt. Deshalb setzen wir soweit wie möglich darauf, dass die Entwickler die Wahl haben.
Bazaar ist ein verteiltes Versionskontrollsystem, vergleichbar mit Git oder Mercurial und bietet für uns den großen Vorteil, dass es erstens auf allen drei Plattformen (Windows, Mac OS X und Linux) verfügbar ist und ausserdem eine große Anzahl an Plugins mitbringt. Hierunter fallen auch Plugins, die es ermöglichen nahtlos Versionen von CVS, SVN, Git und auch Mercurial (hg) in Bazaar Repositories zu übernehmen. Genau dieser Punkt erlaubt es, dass jeder Entwickler frei entscheiden kann, welches Versionskontrollsystem er verwenden möchte und dann lediglich für das Übertragen der Versionen ins cloudControl Versionskontrollsystem bzr nutzen muss.
Details zum Status der einzelnen Plugins ist den jeweiligen Projektseiten zu entnehmen.
Hol Dir das Cheat Sheet. Alle 'cctrlapp' und 'cctrluser' Befehle zusammengefasst auf einer DIN A4 Seite.
Der einfachste Weg ist es auch lokal Bazaar zu verwenden. Bevor man den Quelltext mit dem Konsolenclient in die entsprechende Branch pushen kann, muss eine lokale Branch angelegt werden. Dies funktioniert wie folgt:
Man geht auf dem Kommandozeilen Client in das entsprechende Verzeichnis, initialisiert die Branch, fügt die Daten hinzu und committet das Ganze. Die Befehle dafür lauten
$ bzr init
$ bzr add
$ bzr commit -m "comment"
Nachdem die lokale Branch erstellt wurde, kann der Quelltext auf die Plattform übertragen werden.
$ cctrlapp app_name/dep_name push
'cctrlapp push' ist im Grunde genommen lediglich eine Eingabehilfe und kümmert sich darum, dass je nach Applikation automatisch das richtige Repository angesprochen wird. Der Zugriff auf die Repositories ist verschlüsselt. Zur Authentifizierung werden dabei SSH Schlüssel eingesetzt. Die Einrichtung wird im Tutorial erklärt.
Genauso ist es aber auch möglich, Bazaar direkt zu nutzen. Auf diese Weise kann man die Stärken von Bazaar im Bezug auf die flexiblen Workflows voll ausschöpfen.
Dazu muss man die URl des Repositories kennen. Diese setzt sich aus verschiedenen Teilen zusammen:
| bzr+ssh:// | app_name | @ | app_name | . | cloudcontrolled.com | /repository |
| Protokoll | SFTP User | @ | Host Name | . | Domain | Verzeichnis |
Für die 'hellocc' Applikation würde die Repository URl deshalb 'sftp://hellocc@hellocc.cloudcontrolled.com/repository' lauten. Über diese URl ist das Repository jeder Applikation erreichbar und kann damit ganz normal wie jedes andere Bzr Repository genutzt werden.
Um den Quellcode in eine lokale Branch zu übertragen gibt es mehrere Möglichkeiten. Wenn der Quellecode zum ersten Mal von der Plattform auf das lokale System übertragen werden soll, kann man diesen branchen:
$ bzr branch bzr+ssh://app_name@app_name.cloudcontrolled.com/repository app_name
Damit wird der Quelltext der laufenden Version in den Zielordner übertragen.
Falls die Änderungen der lokalen Version mit denen der Liveversion zusammengeführt werden sollen, kann man diese mergen:
$ bzr merge bzr+ssh://app_name@app_name.cloudcontrolled.com/repository
Bazaar bietet noch viele weitere nützliche Befehle, die im Bazaar Tutorial erklärt werden.
Um mehr über Bazaar auf der Kommandozeile zu lernen:
$ bzr help
Um mehr über die einzelnen Bazaar Befehle zu lernen:
$ bzr help commands