RSS Feed
Jun 4

Ordnerstruktur eines SVN-Repositories richtig aufsetzen

Veröffentlich am Samstag, 4. Jun 2011 in Webserver

In meinem letzten Artikel Subversion mit WebDAV auf einem Ubuntu Server installieren habe ich euch ja gezeigt, wie man den Server für die Subversion Repositories aufsetzt. Nun geht es aber darum, wie man die Ordnerstruktur eines Projekts gestalten sollte. Wenn man hier von Anfang an auf ein paar Grundlegende Best-Practices achtet, dann erleichtert es einem später enorm die Arbeit mit dem Repository.

Die Grundlegenge Ordnerstruktur

Es gibt keine fest vorgegebene Struktur für ein Repository. Es hat sich aber eine Struktur herausgebildet, die von den meisten Projekten, die Subversion einsetzen benutzt wird. Diese wird auch in der SVN-Referenz (deutsche Übersetzung) beschrieben. Dazu werden im Hauptverzeichnis folgende drei Ordner erstellt:

/
	trunk/
	branches/
	tags/

Solltet ihr mehrere Projekte in einem Repository verwalten, dann macht es Sinn für jeder eine solche Ordnerstruktur anzulegen:

/
	projekt1/
		trunk/
		branches/
		tags/
	projekt2/
		trunk/
		branches/
		tags/

Neues Repository mit dieser Ordnerstruktur erzeugen

Am besten erzeugen wir also gleich zu Beginn eines neuen Projekts eine solche Struktur. Gehen wir einfach mal von einem einfachen Repository mit nur einem Projekt aus. Ich möchte euch kurz die notwendigen Befehle aufzeigen um ein Repository für nur ein Projekt mit einer solchen Ordnerstruktur zu erzeugen.

Zuerst einmal erstellen wir in einem beliebigen Ordner ein neues Repository um dieses anschließend verwenden zu können:

svnadmin create /var/svn/public/myproject

Um nun die notwendigen Verzeichnisse zu erzeugen gibt es zwei Möglichkeiten:

  1. Auschecken des Repositories, erzeugen der Ordner und commit der Ordnerstruktur
  2. Direktes erzeugen der Ordner im Repository

Die erste Variante bietet sich an, wenn man gleich mehrere Projekte mit der Ordnerstruktur erzeugen möchte. Ich zeige euch hier kurz, welche Befehle dabei in Unix-Systemen notwendig wären:

cd ~
mkdir project
cd project/
svn checkout http://kau-boys.de/svn/myproject
cd myproject/
mkdir trunk tags branches

Jetzt müssen wir die Ordner zum Hinzufügen in das Repository markieren mit dem Befehl svn add:

svn add trunk tags branches

A         trunk
A         tags
A         branches

Jetzt können wir diese Ordnerstruktur in das Repository commiten:

svn commit -m "Import der initialen Ordnerstruktur"

Adding         branches
Adding         tags
Adding         trunk

Committed revision 1.

Die andere Möglichkeit ist wesentlich einfacher und erfordert nur einen einzigen Befehl. Dieser erzeugt die Ordnerstruktur direkt im Repository. Auch hier wäre es möglich die Ordner gleich für mehrere Projekte anzulegen (was ihr am besten mit mehreren Befehlen macht):

svn mkdir -m "Import der initialen Ordnerstruktur" \
	file:///var/svn/myproject/trunk \
	file:///var/svn/myproject/tags \
	file:///var/svn/myproject/branches

Committed revision 1.

Wie ihr seht ist diese Variante sehr viel einfacher. Gerade für den Administrator eines Repositories ist er praktischer. Man könnte den z.B. den gesamten Prozess zur Erzeugung eines Repositories und der Ordnerstruktur in einem Skript zusammenfassen, dass alle notwendigen Befehle automatisch hintereinander ausführt.

Das richtige Verzeichnis auschecken

Ganz wichtig ist es nun aber, dass ihr auch das richtige Verzeichnis benutzt um euer Projekt zu starten. Solltet ihr die Ordnerstruktur wie in der ersten Variante erzeugt haben, wechselt in eure Working Copy und benutzt dort den Befehl svn switch um auf das trunk Verzeichnis zu wechseln:

cd ~/myproject
svn switch http://kau-boys.de/svn/myproject/trunk

D    trunk
D    branches
D    tags

Wie ihr sehen könnt, wurden die Ordner gelöscht, da ihr euch nun “im Ordner trunk” befindet. In diesem könnt ihr nun eure Dateien des Projekts commiten.

Wenn ihr die Ordnerstruktur wie in Variante 2 erzeugt habt, dann müsst ihr lediglich das richtige Verzeichnis auschecken. Gebt also direkt den trunk Ordner bei auschecken an:

cd ~
svn checkout http://kau-boys.de/svn/myproject/trunk myproject

Checked out revision 1.

Damit der Ordner aber dabei nicht trunk heißt geben wir beim checkout Befehl gleich den Namen des Ordners an, den unser Projekt nachher haben soll, also in diesem Fall myproject.

Fazit

Ihr habt nun also gesehen, wie man eine gute Ordnerstruktur für Subversion-Projekte anlegt. Falls ihr euch aber fragt, wieso das so wichtig ist, dann seht euch mal Kapitel 4 der SVN-Referenz (deutsche Übersetzung) an. Ich mal bei einem Projekt zwar einen Ordner trunk erzeugt aber diesen als Root-Verzeichnis meines Repositories benutzt. Als ich dann (ca. 10000 Commits später) dann doch mal branches einsetzen wollte, bekam ich natürlich Probleme, da ich dann erst die Unterverzeichnisse erzeugt habe und alle anderen Order und Dateien per svn move in den Ordner trunk verschieben musste. Dabei bleibt zwar die History aller Dateien erhalten, aber jeder Benutzer musste den Pfad zum Repository aktualisieren und dann in den neuen trunk Ordner wechseln.

Wenn ihr euch also schon immer zu Beginn eines neuen Projekts die Ordner erzeugt spart ihr euch nachher viel Arbeit. Selbst wenn ihr denkt, niemals so komplex zu werden, dann seht mal in der SVN-Referenz unter dem Stichpunkt Feature-Release nach. So etwas könnte auch euch mal passieren. Also spart nicht an dem einen Befehl und den drei Ordnern :)

Mai 22

Subversion mit WebDAV auf einem Ubuntu Server installieren

Veröffentlich am Sonntag, 22. Mai 2011 in Webserver

Heute ist Tag 1 mit meinem neuen Server und natürlich ist noch nicht alles wieder so, wie es vorher war. Für einige kleine Projekte benötige ich ein SVN-Repository und da ich einen eigenen Server habe lohnt es sich ja auch diesen dafür zu verwenden. Da einige Projekte eventuell auch für die Allgemeinheit verfügbar sein sollen, möchte ich diesmal gleich den Zugriff per DAV ermöglichen, damit nicht immer ein Benutzer angelegt oder ein zentrales Passwort veröffentlicht werden muss. Da die letze Einrichtung auch bei mir schon wieder etwas her ist habe ich bei How-To Geek den Artikel Install Subversion with Web Access on Ubuntu gefunden. Hier nun meine Zusammenfassung zum Umsetzen auf einem Server mit Ubuntu 10.04 LTS (sollte aber auch auf anderen Linux Distributionen ähnlich funktionieren, abgesehen von den Speicherpfaden und der Art der Installation).

Installieren von Subversion

(weiterlesen …)

Feb 26

Einen Catch-All E-Mail Account in Plesk einrichten

Veröffentlich am Samstag, 26. Feb 2011 in Webserver

Wie ich schon in verschiedenen anderer Artikel erwähnt habe, läuft dieser Blog auf einem Server mit Plesk. Für meine Domain kann ich zurzeit bei meinem Hoster nur eine einzige E-Mail-Adresse angeben. Da ich aber auch andere Adressen verwenden wollte habe ich mir die E-Mail Funktion von Plesk zunutze gemacht.

Da ich alle E-Mail-Adressen meiner Domain ohnehin auf eine einzige Adresse umleiten lassen möchte, habe ich noch einer Möglichkeit in Plesk gesucht und schließlich auch gefunden. Man kann recht einfach einen sogenannten Catch-All E-Mail-Account einrichten. Die Einstellung ist allerdings etwas versteckt.

(weiterlesen …)

Jun 4

AWStats und Webalizer für Plesk aktivieren

Veröffentlich am Freitag, 4. Jun 2010 in Webserver

Ich nutze auf dem Server, auf dem dieser Blog läuft Plesk. Ich konnte dort bereits vieles aktivieren, aber eine Sache, die einfach nicht funktionieren wollte, war AWStats oder Webalizer. Dabei war es mir eigentlich egal, welchen der beiden Statistiken läuft, ich wollte es einfach nur mal zum Laufen bekommen, selbst wenn es nur allgemeine Daten zum Traffic und den Benutzern beinhaltet.

Statistiken in Plesk aktivieren

Das Ganze in Plesk zu aktivieren ist eigentlich kein allzu großes Problem. Unter “Domain -> Hosting -> Setup” kann man das jeweilige Statistik-Toll recht einfach aktivieren:

AWStats oder Webalizer Webstatistiken aktivieren

(weiterlesen …)

Mär 26

Website oder Blog mit der mod_deflate Komprimierung beschleunigen

Veröffentlich am Freitag, 26. Mär 2010 in Webserver

Ich wollte schon lange eine Komprimierung aller Dateien auf meinem Server aktivieren, aber alle Versuche die Komprimierung über das Apache Module mod_deflate oder mod_gzip zu aktivieren liefen ins Leere. Ich fand ständig super aufwändige Anleitungen, wie ich mir das selbst kompilieren und dann mit vielen Anpassungen unter Apache zum Laufen bekomme. Ich bin aber immer davor zurückgeschreckt es auch umzusetzen, da ich kein ausgewiesener Linux und Apache Profi bin.

An meinem Geburtstag habe ich dann durch Zufall auf der Suche nach einem anderen Problem gesucht habe unter anderem auf der Website debianroot.de eine super einfache Anleitung gefunden, wie man DEFLATE einfach aktivieren kann.

(weiterlesen …)

Feb 26

Programme als Administrator in eingeschränktem Profil starten

Veröffentlich am Freitag, 26. Feb 2010 in Software

Ich bin ja eher ein Webentwickler als ein Administrator, aber ab und zu bleibt es einem nicht erspart sich auch um die Rechner der anderen Kollegen zu kümmern. Ein sehr häufig auftretendes Problem ist dabei das Installieren von Programmen oder Updates. Da in unserem Büronetzwerk natürlich nicht jeder Benutzer ein Hauptbenutzer und schon gar kein Administrator ist, muss man dort als Admin tätig werden.

Zu Beginn meiner Admintätigkeit habe ich oftmals den Benutzer abmelden müssen aus Unwissenheit darüber, wie man unter einem eingeschränkten Profil ein Programm als Admin starten kann. Mittlerweile habe ich aber gelernt, dass man über die Kombination “Rechte Maustaste -> Ausführen als…” sehr einfach eine Installation als Admin ausführen kann.

(weiterlesen …)

Feb 11

Anzahl der Backups im Plesk Backup-Manager begrenzen

Veröffentlich am Donnerstag, 11. Feb 2010 in Webserver

In meinem Artikel Plesk Backup-Manager auf 1&1 Linux Root Server einrichten habe ich bereits beschrieben was zu tun ist, um das Backup auf einem Server mit Plesk einzurichten. Beim Einsatz dieser Konfiguration bin ich allerdings sehr schnell auf ein folgenschweres Problem gestoßen.

Da ein Backup der Domain mittlerweile eine Größe von über 20GB hat reichen die 250GB des 1&1 Backup FTP-Servers nur für 10 Backups. Sobald dieser Speicherplatz verbraucht ist, werden die Daten auf dem Webserver abgelegt. Das fatale dabei ist, dass dadurch der gesamte Speicherplatz des Servers langsam aber sich aufgebraucht wird. Wenn der Speicherplatz belegt ist führt es im schlimmsten Fall dazu, dass MySQL keine temporären Tabellen mehr erzeugen kann und euer Server ist somit nicht mehr in der Lage die Anfragen zu bearbeiten. Also im Klartext: Euer Server funktioniert im schlimmsten Fall nicht mehr.

(weiterlesen …)

Feb 1

Internet Explorer 6 unter Windows 7 nutzen mit dem Windows XP Mode

Veröffentlich am Montag, 1. Feb 2010 in Software, Webentwicklung

Wer sich von euch jetzt fragen sollte “Wieso sollte ich den IE6 unter Windows 7 nutzen?” dem würde ich gerne “Willst du nicht!” antworten. Aber diejenigen unter uns, die Webseiten entwickeln und auch mit dem IE6 eine Website testen müssen, wird dieser Artikel wohl helfen.

Unter Windows kann ja bekanntermaßen immer nur eine Version des Internet Explorers installiert sein. Da der IE8 auch einen Kompatibilitätsmodus für den IE7 besitzt hat man so schon mal zwei Fliegen mit einer Klappe geschlagen. Aber wie soll man unter Windows 7 einen IE6 installieren. Zum Glück gibt es hier eine sehr einfache und sehr benutzerfreundliche Methode. Zum Testen des Chrome Frame für meinem letzen Artikel habe ich noch eine virtuelle Maschine mit Windows XP unter Suns VirtualBox verwendet. Es geht aber sehr viel einfacher und erfordert keine Zeitaufwändige Installation eines XP-Systems, für das man auch noch eine Lizenz benötigt. Wer also keine mehr rumliegen hat und nicht unbedingt eine XP-VM benötigt, kann sich trotzdem den IE6 für Win7 holen.

(weiterlesen …)

Dez 28

Kostenlose Alternative zum Cisco VPN Client unter Windows 7 x64 (64 bit)

Veröffentlich am Montag, 28. Dez 2009 in Software

Bei der Installation meines Win7 Systems auf meinem ThinkPad stieß ich auf das Problem, das wohl viele Umsteiger von Windows in einer 32bit Version haben. Für die Zugriff auf die Netzwerke in der Universität und im Büro bin ich auf eine Cisco VPN Verbindung angewiesen. Leider gibt es von Cisco keinen 64bit VPN Client für Windows 7 in der x64 Version. Lediglich für Windows XP ist hierfür ein Client verfügbar.

Ich habe also einige Foren durchsucht und bin dabei auf verschiedene Lösungswege gestoßen. Manche haben den Cisco AnyConnect VPN Client empfohlen, der allerdings zu dieser Zeit keine PCF Profildateien unterstütze. Da ich aber von der Universität auch nicht auf Unterstützung von AnyConnect warten konnte musste eine andere Lösung her.

(weiterlesen …)

Nov 23

Plesk Cronjob für ein PHP-Skript mit Parametern einrichten

Veröffentlich am Montag, 23. Nov 2009 in Webserver

Bei vielen Webhosting Paketen gibt es die Möglichkeit einen Cronjob einzurichten. Leider musste ich nach dem Umstieg von einem 1&1 Managed Homepage Server auf einen 1&1 Linux Root Server feststellen, dass diese Option im Control Center nicht mehr verfügbar war. Auch meine Suche nach dem “Crontab” in Plesk war erst einmal erfolglos, da die Funktion an der beschriebenen Stelle nicht zu finden war. Durch Zufall habe ich sie dann doch gefunden.

Plesk Hauptmenü - Server

(weiterlesen …)

Impressum