ufozone.de
  • Startseite
  • Autor
  • Suche
  • Kontakt
  • Impressum
XING Profil Twitter Facebook

Technik Tipps und Tricks für Subversion

Geschrieben von Markus in Administration & Coding am 12.05.2009 um 17:17 Uhr.
Subversion ist mittlerweile kaum noch aus meiner Programmier-Arbeit wegzudenken. Es erleichert mir das Arbeiten an Internetprojekten einfach ungemein. Diesen Kompfort - gerade was das Übertragen auf den Server angeht - möchte ich nicht mehr vermissen müssen. Ich weiß gar nicht, wie ich dieJahre vorher eigentlich effektiv ohne SVN arbeiten konnte.

Jeder, der mit SVN arbeitet, kennt das über 300 seitige Buch. Ich weiß nicht, seit wann es das auch auf Deutsch gibt, aber so richtig Lust hatte ich noch nie, das Buch zu befragen, wenn ich Probleme oder Fragen zum Funktionsumfang hatte. Da geht es sicher nicht nur mir so.

An dieser Stelle möchte ich deshalb einfach mal ein paar Tipps zur unbeschwerten Benutzung von Subversion los werden.


1. Backup vom Repository
Jeder Client hat sozusagen ein Backup vom aktuellen Repository, nichtsdestotrotz ist es sinnvoll, wenn man ab und zu alle Revisionen nocheinmal extern speichert, um im Notfall nicht nur mit der aktuellen Arbeitsumgebung da zu stehen.

Als cron habe ich deswegen folgenden Befehl angelegt:
Zitat:
svnadmin dump /var/svn/tofour.net > /nfs/office/tofournet.dump

Wie man sieht, wird ein dump vom kompletten Repository erstellt und direkt über NFS auf den Büroserver geschoben. Ein Backup auf dem gleichen Server ist natürlich Schwachsinn, ich bevorzuge die Variante der räumlich voneinander getrennten Server.

Wenn es mal sein muss, kann man das Backup mit folgendem Befehl wieder in ein frisches Repository laden:
Zitat:
svnadmin load /var/svn/tofour.net < /nfs/office/tofournet.dump

Wie man zuvor ein neues Repository anlegt, habe ich in einem älterem Beitrag erklärt.

2. Eigenschaften von Dateien
Subversion bringt die sogenannten SVN Properties für Dateien und Verzeichnisse mit. Zwei dieser Eigenschaften nutze ich ziemlich oft.

2.1 svn:keywords
Die Keywords werden von SVN nach jedem Commit selbstständig angepasst. Ich benutze standardmäßig Date, Author und Rev. In meinem Code sieht das wie folgt aus:

php:
1:
2:
3:
4:
5:
6:
7:
<?php
// ************************************************************************************//
// * $Date: 2009-05-12 14:27:18 +0200 (Di, 12 Mai 2009) $
// * $Author: markus $
// * $Rev: 5333 $
// ************************************************************************************//
?>

Diese drei Zeilen zeigen das Datum der letzten Änderung, den Namen des letzten Editor und die Revision, in der die Datei das letzte Mal gespeichert wurde. So hat man immer einen schnellen Überblick, ohne in der History schauen zu müssen.

Um die Keywords zu aktivieren ist folgender Befehl nötig:
Zitat:
svn propset svn:keywords " Date Author Rev " datei.php

Das Keyword Id fasst alle oben aufgeführten zusammen:
php:
1:
2:
3:
4:
5:
<?php
// ************************************************************************************//
// * $Id: datei.php 5333 2009-05-12 14:27:18 +0200 markus $
// ************************************************************************************//
?>

Natürlich muss die jeweilige Zeile schon in die Datei eingefügt werden. Subversion ersetzt nach dem Commit die Zeichenfolge $Keyword $ dann entsprechend.

2.1 svn:ignore
Gerade beim Arbeiten an Internetseiten tauchen Verzeichnisse und Dateien auf, die man nicht unbedingt im Repository haben muss, die aber doch irgendwie dazu gehören. Bei mir sind das in der Regel Cache-Verzeichnisse für Templates und Sprachdateien und eine dynamisch generierte Datei mit Variablen, die die Seite betreffen.

Diese Verzeichnisse und Dateien bekommen im Webroot Schreibrechte und würden beim nächsten Update nur Fehler verursachen.

Um dem vorzubeugen setze ich folgenden Befehl ein:
Zitat:
svn propset svn:ignore "cache" .

Nach dem Commit gibts keine Probleme mehr.

3. Die fiesen .svn-Verzeichnisse
Jeder kennt sie. Nichtsahnend kopiert man ein Verzeichnis. Der Kopiervorgang dauert schon verdächtig länger als erwartet, und plötzlich bekommt man gesagt, dass dieses Verzeichnis bereits unter Versionskontrolle steht. Wer ist Schuld? Die versteckten .svn-Verzeichnisse.

Folgender Befehl löscht die Verzeichnisse, was ja auch Platz spart, wenn man sie nicht unbedingt braucht:
Zitat:
find ./dir -type d -name ".svn" -print0 | xargs -0 rm -rdf

Vorbeugend kann man auch gleich "svn export" nutzen, was der passende Pendant zum Checkout ist.
Diesen Beitrag bookmarken:
  • Facebook
  • Twitter
  • myspace
  • Digg
  • Delicious
  • Google
  • Yahoo
  • Blogger
  • Stumbleupon
  • Tumblr
  • Allgemeines
  • Administration & Coding
  • Marketing & Management
  • Büro & Firma
  • Unterhaltung & Spaß

Durchsuche ufozone.de…

Copyright © 2008 - 2012 ufozone.de
Zum Anfang der Seite springen Nach oben