Verwendung von Bazaar Version Control System (VCS) auf Debian Etch

Version 1.0
Author: Falko Timme


Bazaar ist ein verteiltes Version Control System (VCS), das unter GPL verfügbar ist; Es ist ähnlich wie Subversion (svn). Bazaar wird von Canonical, Ltd. protegiert, von der Firma, die die Ubuntu Linux Distribution entwickelt. Daher ist das Ubuntu Projekt der prominenteste Bentuzer von Bazaar. Diese Anleitung erklärt, wie man Bazaar auf einem Debian Etch System einrichtet und anwendet und wie man einen SFTP-/HTTP Server einrichtet, der Deine Bazaar Paketdatenbank hostet.

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

In dieser Anleitung werde ich die beiden Debian Etch Systeme verwenden:
  • IP Adresse 192.168.0.100: der Arbeitsplatz, auf dem Bazaar installiert und Software entwickelt wird (die von Bazaar gemanagt wird); ich werde die Bezeichnung workstation in dieser Anleitung verwenden, wenn ich mich darauf beziehe;
  • IP Adresse 192.168.0.101: der Server, der die Bazaar Paketdatenbank beherbergt und der SFTP und HTTP Dienste anbietet; ich werde die Bezeichnung server dafür verwenden. Ich verwende hier lighttpd als Web Server, Du kannst aber auch jeden anderen Web Server verwenden (z.B. Apache).
Auf beiden Systemen verwende ich den Benutzernamen falko.

Die meisten Beispiele zur Anwendung von Bazaar stammen von dieser Anleitung: http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html, weiterhin erklärt diese Anleitung jedoch auch, wie man SFTP und lighttpd auf dem server und Bazaar auf der workstation installiert, um es für nicht erfahrene Linux Benutzer angenehmer zu gestalten.

2 Installation Von SFTP Und Lighttpd Auf Dem Server

server:

(Alle Schritte in diesem Kapitel müssen als Root Benutzer ausgeführt werden!)

Lass uns SFTP und lighttpd auf dem Server installieren:

apt-get install ssh openssh-server lighttpd

Als Nächstes erstellen wir ein Benutzerkonto - falko in diesem Fall - das die /usr/lib/sftp-server Kommandozeile anstatt der /bin/bash oder jeder anderen Kommandozeile verwendet:

useradd -m -s /usr/lib/sftp-server falko

Damit erstellen wir den Benutzer falko mit dem Home Verzeichnis /home/falko.

Weise falko ein Passwort zu:

passwd falko

Veranlasse dann, dass /usr/lib/sftp-server eine valide Login Shell wird, indem Du es /etc/shells hinzufügst:

echo '/usr/lib/sftp-server' >> /etc/shells

Nun erstelle ich das Verzeichnis /home/falko/public_html was lighttpds Dokumenten-Root sein und unsere Bazaar Paketdatenbank beinhalten wird:

mkdir /home/falko/public_html
chown falko:falko /home/falko/public_html

Um lighttpd mitzuteilen, dass sich der Dokumenten-Root zu /home/falko/public_html geändert hat, öffne /etc/lighttpd/lighttpd.conf und bearbeite die server.document-root Zeile:

vi /etc/lighttpd/lighttpd.conf


[...]
server.document-root = "/home/falko/public_html" [...]
Starte lighttpd danach neu:

/etc/init.d/lighttpd restart


3 Installation Von Bazaar Auf Dem Arbeitsplatz

workstation:

Lass folgenden Befehl als Rootanwender laufen:

apt-get install bzr python-paramiko

Falls Du noch kein normales Benutzerkonto auf Deinem Arbeitsplatz hast, erstelle jetzt eines:

useradd -m -s /bin/bash falko

passwd falko

4 Verwendung Von Bazaar

workstation:

Melde Dich als normaler Benutzer an, oder wenn Du als Root Benutzer angemeldet bist, lass dies laufen

su falko

um normaler Benutzer zu werden (in diesem Fall falko).

Gehe dann zu Deinem Home Verzeichnis:

cd ~

Die folgenden Beispiele stammen mehr oder weniger von http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html.

Teile Bazaar zunächst mit, wer Du bist:

bzr whoami "Falko Timme <ft@example.com>"

Überprüfe, ob Bazaar Deine Daten richtig gespeichert hat:

bzr whoami


falko@server1:~$ bzr whoami
Falko Timme <ft@example.com>
falko@server1:~$

Lass uns nun ein Test-Verzeichnis mit einigen Test-Dateien erstellen:

mkdir myproject
cd myproject
mkdir subdirectory
touch test1.txt test2.txt test3.txt subdirectory/test4.txt

Das myproject Verzeichnis ist der Bezugsordner für unser Software Projekt, das wir mit Bazaar verwalten möchten. Es ist wichtig, dass Du alle brz Befehle in diesem Verzeichnis laufen lässt! Wenn Du nicht sicher bist, in welchem Verzeichnis Du Dich befindest, lass Folgendes laufen

pwd

Bazaar muss sich selbst im Projekt Verzeichnis initialisieren:

bzr init

Damit erstellst Du versteckte Dateien, die Bazaar benötigt, um Dein Projekt zu verwalten. Du kannst den versteckten Ordner .bzr im myproject Verzeichnis sehen, wenn Du dies laufen lässt

ls -la


falko@server1:~/myproject$ ls -la
total 16
drwxr-xr-x 4 falko falko 4096 2007-12-19 16:14 .
drwxr-xr-x 4 falko falko 4096 2007-12-19 16:13 ..
drwxr-xr-x 6 falko falko 4096 2007-12-19 16:14 .bzr
drwxr-xr-x 2 falko falko 4096 2007-12-19 16:13 subdirectory
-rw-r--r-- 1 falko falko 0 2007-12-19 16:13 test1.txt
-rw-r--r-- 1 falko falko 0 2007-12-19 16:13 test2.txt
-rw-r--r-- 1 falko falko 0 2007-12-19 16:13 test3.txt
falko@server1:~/myproject$

Lass nun dies laufen

bzr add

um eine Versionshistorie für alle Dateien/Verzeichnisse im myproject Ordner zu erstellen. Die Ausgabe lautet wie folgt:

falko@server1:~/myproject$ bzr add
added subdirectory
added test1.txt
added test2.txt
added test3.txt
added subdirectory/test4.txt
falko@server1:~/myproject$

Füge als Nächstes die Dateien/Verzeichnisse Deinem Zweig hinzu (mit einem kurzen Kommentar, damit Du weißt, worum es geht):

bzr commit -m "Initial import"

Die Ausgabe sieht wie folgt aus:

falko@server1:~/myproject$ bzr commit -m "Initial import"
added subdirectory
added subdirectory/test4.txt
added test1.txt
added test2.txt
added test3.txt
Committed revision 1.
falko@server1:~/myproject$

Lass uns nun die (noch leere) Datei test1.txt bearbeiten:

vi test1.txt


some text...
Lass Folgendes laufen

bzr diff

und Bazaar zeigt Dir die Änderungen an:

falko@server1:~/myproject$ bzr diff
=== modified file 'test1.txt'
--- test1.txt 2007-12-19 15:19:42 +0000
+++ test1.txt 2007-12-19 15:20:39 +0000
@@ -0,0 +1,1 @@
+some text...

falko@server1:~/myproject$

Um die Änderungen zu übertragen (wieder mit einem Kommentar), lass dies laufen

bzr commit -m "Added first line of text"


falko@server1:~/myproject$ bzr commit -m "Added first line of text"
modified test1.txt
Committed revision 2.
falko@server1:~/myproject$

Der Befehl

bzr log

zeigt Dir eine Zusammenfassung der Vorgänge an:

falko@server1:~/myproject$ bzr log
------------------------------------------------------------
revno: 2
committer: Falko Timme <ft@example.com>
branch nick: myproject
timestamp: Wed 2007-12-19 16:22:52 +0100
message:
Added first line of text
------------------------------------------------------------
revno: 1
committer: Falko Timme <ft@example.com>
branch nick: myproject
timestamp: Wed 2007-12-19 16:19:42 +0100
message:
Initial import
falko@server1:~/myproject$

Lass uns nun das Projekt auf Unserem Server veröffentlichen (unter Verwendung von SFTP):

bzr push --create-prefix sftp://falko@192.168.0.101/~/public_html/myproject


falko@server1:~/myproject$ bzr push --create-prefix sftp://falko@192.168.0.101/~/public_html/myproject
The authenticity of host '192.168.0.101 (192.168.0.101)' can't be established.
RSA key fingerprint is 68:fc:30:ab:b1:e0:8d:6b:46:0b:08:cf:a6:34:b3:a1.
Are you sure you want to continue connecting (yes/no)? <-- yes
Warning: Permanently added '192.168.0.101' (RSA) to the list of known hosts.
falko@192.168.0.101's password: <-- enter the user's password
2 revision(s) pushed.
falko@server1:~/myproject$

Nachdem Du das Projekt veröffentlicht hast, kannst Du Deine Arbeitskopie löschen (wenn Du magst - Du kannst sie auch so lassen wie sie ist):

cd ~
rm -fr myproject/

0 Kommentar(e)

Zum Posten von Kommentaren bitte