svn export – oder wie man die .svn Verzeichnisse los wird
Wer mit Subversion arbeitet wir sich sicher schon gefragt haben wie man die .svn Verzeichnisse aus allen Unterordner loswerden kann. Dies ist vor allem bei Webseiten ein Thema, wo die ganze Seite mit all ihren Unterverzeichnissen möglichst 1:1 auf den Webserver soll.
In der Regel werden die meisten Leute eine dieser beiden Ansätze verfolgen:
- Alle .svn Ordner von Hand löschen
- Die .svn Ordner drin lassen und hoffen das es niemand bemerkt
Der erste Ansatz ist aufwendig und wird innert kürzester Zeit für den zweiten Ansatz fallen gelassen. Das sollte man aber nicht tun.
Wieso .svn Verzeichnisse nicht ins Web gehören
In den .svn Ordnern liegen sehr viele Daten die man nicht unbedingt über einen Webserver der Öffentlichkeit freigeben möchte. Subversion legt intern eine Kopie aller unter Versionsverwaltung stehenden Dateien an und legt diese im .svn Ordner ab. Kennt man sich ein bisschen mit der Ablagestruktur aus kann man recht einfach den Quellcode einer PHP oder ASP.Net Seite kommen. Vom abkupfern der Funktionalität zum stehlen DB-Passworts ist es dann oft nur ein kleiner Schritt. Die Metadaten von Subversion müssen also auf eine einfache Art entfernt werden.
svn export
Subversion hat für diese Aufgabe den Befehl export. Dieser funktioniert fast wie checkout, räumt aber all die .svn Verzeichnisse weg. Die so erhaltene Kopie beinhaltet nichts mehr was auf Subversion schliessen lässt – ein commit der Änderungen ist damit aber auch nicht mehr möglich!
So kann man den export Befehl aufrufen:
Verfügt man bereits über eine lokale Arbeitskopie (mit allen .svn Verzeichnissen), kann man auch diese als Quelle nutzen:
Fazit
Mit dem simplen Befehl svn export kann man ohne grossen Aufwand die lästigen .svn Verzeichnisse vor der Veröffentlichung entfernen.