Tools and Apps
-> VCS SVN und Co
-> Bazaar als Alternative zu Git
Bazaar als Alternative zu Git vom 25.01.2010 16:43 Uhr
Werbung
Bazaar ist ein dezentralisiertes Version Kontrollsystem (engl. decentralized Version control System) (dVCS). Dieses System wird dazu benutzt, dass mehrere Benutzer überschneidungsfrei an einem Projekt arbeiten können. Jede Änderung an dem Projekt führt dazu, dass das aktuelle Projekt eine neue Revisionsnummer bekommt. Man kann zu jedem Zeitpunkt in dem Projekt „Rückwärts“ gehen und zu einer älteren Version zurückkehren und mit dieser weiter arbeiten, da einmal erstellte Revisionen nicht verändert werden. Aber ich beginne vielleicht lieber weiter vorne ...
Am Anfang gab es nur mich und das Internet. Ich baute Seite um Seite und war glücklich. Aber es wurde immer schwerer Projekte allein zu erstellen und so wurde die Teamarbeit erfunden. Wenn man im Team programmiert, kreuzt man früher oder später immer den Weg eines anderen Programmierers. Das führt dann dazu, dass die Veränderungen des einen Programmierers vom nächsten überschrieben werden und Stunden der Arbeit verloren gehen.
Um dieses Problem zu beheben, wurde das „Check in Check out“ System erfunden. Hier nimmt sich ein Programmierer eine Datei und checkt sie aus. Diese Datei ist nun für alle anderen Programmierer sichtbar gesperrt und sie müssen mit dem Kollegen absprechen, wann er die Datei wieder frei gibt damit sie weiter arbeiten können. Das Problem schien behoben und alle freuten sich. Doch dann wurde der Chefprogrammierer krank und hatte vergessen seine Dateien einzuchecken. Nun waren die Dateien für die anderen nicht erreichbar, ausser, wenn sie sie mit „Gewalt“ an sich nehmen würden. Doch bei dieser Aktion würde alle Änderungen des Chefprogrammierers verloren gehen und wieder wären Stunden der Arbeit verloren.
Doch dann kam Subversion (SVN) und mit ihm auch VCS und dVCS und alle Probleme sollten sich in Luft auflösen. VCS Arbeit nach der Idee, dass jede Änderung so wichtig ist, dass das komplette Projekt in einen neuen Ordner kopiert wird und es so eine Version des Projekt vor der Änderung und eine Version nach der Änderung gibt. Auf diese Weise kann man immer wieder zu einem früheren Zeitpunkt des Projekts zurückspringen und von dort aus weiter machen. Das kommt immer dann zum Einsatz, wenn sich die Form des Projekts verändert und man die Scripte noch einmal neu strukturieren muss. Genauso kann es dazu kommen, wenn ein Projekt optimiert werden soll, es danach aber nicht mehr so funktioniert wie vorher und/oder sich ein Fehler (BUG) eingeschlichen hat. Dann springt man in der Version zurück und fängt von der stabilen Version von vorne an.
Bazaar ist eine Software die die Kommunikation mit dem Server über grafische Schnittstellen löst. Bazaar macht das gleiche, was auch andere Software wie zum Beispiel Git macht, aber es ist für die Bedürfnisse von Windows User optimiert und bietet diesen durch die grafische Oberfläche, eine einfach Möglichkeit zu arbeiten, ohne sich 100erte von Komandozeilenbefehle merken zu müssen. Wenn man nun eine Änderung an einem Projekt vornimmt und diese Version dann auf das Hauptprojekt übertragen möchte, erkennt Bazaar die Unterschiede zur aktuellen Version und ändert nur diese Stellen. Das bedeutet, dass nicht einfach die Datei überschrieben wird, was mit der Arbeit anderer Programmierer kollidieren könnte, sondern, dass die geänderten Zeilen angepasst werden.
So werden zum Beispiel die Zeilen 12-34 im Dokument config.php von Programmierer A geändert. Gleichzeitig ändert Programmierer B die Zeilen 165-174. Beide stellen ihre Änderungen online und Bazaar fügt den Code entsprechen in das vorhandene Projekt ein. Dieses Projekt wurde vorher wieder kopiert und mit eine neuen Revisionsnummer versehen, so dass der vorherige Zustand immer noch vorhanden ist.
Bazaar sorgt ausserdem dafür, dass beide Programmierer Kommentare zu ihrer Änderung angeben müssen. So weiss der nächste Programmierer, was an der Version geändert wurde und wer es geändert hat.
Zwei Programmierer arbeiten also an einer Datei und kommen sich nicht in die Quere. Beide (oder auch mehr) können in Ruhe arbeiten und die Arbeit wird schneller Fertig.
Am Anfang gab es nur mich und das Internet. Ich baute Seite um Seite und war glücklich. Aber es wurde immer schwerer Projekte allein zu erstellen und so wurde die Teamarbeit erfunden. Wenn man im Team programmiert, kreuzt man früher oder später immer den Weg eines anderen Programmierers. Das führt dann dazu, dass die Veränderungen des einen Programmierers vom nächsten überschrieben werden und Stunden der Arbeit verloren gehen.
Um dieses Problem zu beheben, wurde das „Check in Check out“ System erfunden. Hier nimmt sich ein Programmierer eine Datei und checkt sie aus. Diese Datei ist nun für alle anderen Programmierer sichtbar gesperrt und sie müssen mit dem Kollegen absprechen, wann er die Datei wieder frei gibt damit sie weiter arbeiten können. Das Problem schien behoben und alle freuten sich. Doch dann wurde der Chefprogrammierer krank und hatte vergessen seine Dateien einzuchecken. Nun waren die Dateien für die anderen nicht erreichbar, ausser, wenn sie sie mit „Gewalt“ an sich nehmen würden. Doch bei dieser Aktion würde alle Änderungen des Chefprogrammierers verloren gehen und wieder wären Stunden der Arbeit verloren.
Doch dann kam Subversion (SVN) und mit ihm auch VCS und dVCS und alle Probleme sollten sich in Luft auflösen. VCS Arbeit nach der Idee, dass jede Änderung so wichtig ist, dass das komplette Projekt in einen neuen Ordner kopiert wird und es so eine Version des Projekt vor der Änderung und eine Version nach der Änderung gibt. Auf diese Weise kann man immer wieder zu einem früheren Zeitpunkt des Projekts zurückspringen und von dort aus weiter machen. Das kommt immer dann zum Einsatz, wenn sich die Form des Projekts verändert und man die Scripte noch einmal neu strukturieren muss. Genauso kann es dazu kommen, wenn ein Projekt optimiert werden soll, es danach aber nicht mehr so funktioniert wie vorher und/oder sich ein Fehler (BUG) eingeschlichen hat. Dann springt man in der Version zurück und fängt von der stabilen Version von vorne an.
Zurück zu Bazaar.
Bazaar ist eine Software die die Kommunikation mit dem Server über grafische Schnittstellen löst. Bazaar macht das gleiche, was auch andere Software wie zum Beispiel Git macht, aber es ist für die Bedürfnisse von Windows User optimiert und bietet diesen durch die grafische Oberfläche, eine einfach Möglichkeit zu arbeiten, ohne sich 100erte von Komandozeilenbefehle merken zu müssen. Wenn man nun eine Änderung an einem Projekt vornimmt und diese Version dann auf das Hauptprojekt übertragen möchte, erkennt Bazaar die Unterschiede zur aktuellen Version und ändert nur diese Stellen. Das bedeutet, dass nicht einfach die Datei überschrieben wird, was mit der Arbeit anderer Programmierer kollidieren könnte, sondern, dass die geänderten Zeilen angepasst werden.
So werden zum Beispiel die Zeilen 12-34 im Dokument config.php von Programmierer A geändert. Gleichzeitig ändert Programmierer B die Zeilen 165-174. Beide stellen ihre Änderungen online und Bazaar fügt den Code entsprechen in das vorhandene Projekt ein. Dieses Projekt wurde vorher wieder kopiert und mit eine neuen Revisionsnummer versehen, so dass der vorherige Zustand immer noch vorhanden ist.
Bazaar sorgt ausserdem dafür, dass beide Programmierer Kommentare zu ihrer Änderung angeben müssen. So weiss der nächste Programmierer, was an der Version geändert wurde und wer es geändert hat.
Zwei Programmierer arbeiten also an einer Datei und kommen sich nicht in die Quere. Beide (oder auch mehr) können in Ruhe arbeiten und die Arbeit wird schneller Fertig.
Das Fazit zu Bazaar
Bazaar ist leicht zu erlernen und dank des Bazaar Explorers, kann man auch auf die Konsole verzichten. Bazaar ist für Windows optimiert und für Programmierer gemacht, die einfach arbeiten und nicht an komplizierten Konsolen mit Befehlen verzweifeln wollen.
Bazaar gibt es für Windows, Linus, Mac OSX und viele andere Systeme. Bazaar kann mit bestehenden Git Ripositories arbeiten.
Mehr Informationen zu Bazaar von Canonical.
Dein Kommentar zum Beitrag: