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:

  1. Alle .svn Ordner von Hand löschen
  2. 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:

svn export https://svn.origo.ethz.ch/ataraxis/ ataraxisExport

Verfügt man bereits über eine lokale Arbeitskopie (mit allen .svn Verzeichnissen), kann man auch diese als Quelle nutzen:

svn export ataraxis ataraxisOhneSvnOrdner

 
Fazit
Mit dem simplen Befehl svn export kann man ohne grossen Aufwand die lästigen .svn Verzeichnisse vor der Veröffentlichung entfernen.

2 Gedanken zu „svn export – oder wie man die .svn Verzeichnisse los wird“

  1. Natürlich ist svn export unter Umständen ein nützliches Tool. Wenn ich jedoch eine Website oder etwas anderes für das deployment fertig machen möchte, nutze ich doch eher ein build script. Dort kann ich dann als OutDir einfach ein Verzeichnis angeben welches nicht unter Versionskontrolle liegt.

    1. Ein Build Script ist auch eine gute Möglichkeit. Allerdings glaube ich das dies für viele Subversion Benutzer ein zu grosser Aufwand ist.

Kommentare sind geschlossen.