Wenn ich an einer Webseite arbeite mache ich üblicherweise kleine Änderungen, lade die Dateien hoch und teste was ich gemacht habe. Das hat sich so bewährt. Der Nachteil an dieser Vorgehensweise ist allerdings, dass ich immer wieder die frisch geänderten Dateien von meinem Computer aus in den www-root meines heimischen Servers übertragen muss. Und nur die geänderten Dateien, nicht alles.
Aptanas “Smartsync”
Eigentlich die perfekte Lösung: Ein Klick, und alles im www-root wird auf den neuesten Stand gebracht. Dummerweise klappt das nicht ganz so einfach. Meistens lädt es nahezu alle Dateien neu hoch, auch die, die eigentlich noch aktuell sind. Das führt zu nervenden Wartezeiten. Ein Ticket im Aptana Support ist bereits erstellt.
Ich will Aptana nicht schlecht reden, im Gegenteil. Aptana ist hervorragend, es hat eine sehr gute Unterstützung für PHP (per Plugin, lass dich davon nicht abschrecken!), HTML, JavaScript, CSS und viele mehr. Sogar eine iPhone Testumgebung wird (ebenfalls per Plugin) angeboten. Sieh am besten selbst auf http://www.aptana.com vorbei, kann ich nur empfehlen.
Subversion
Ich hab irgendwo im Internet schon ein Mal davon gelesen, dass man ein Versionskontrollsystem wie Subversion gut dazu benutzen kann, direkt durch ein Update-Befehl die neusten Dateien aus dem Repository in den www-root zu laden. So ein System berücksichtigt dabei automatisch, ob die Dateien überhaupt geändert wurden und entscheidet dementsprechend ob ein Upload einer Datei vorgenommen werden soll oder nicht. Da ich sowieso schon immer so ein System bei mir installieren wollte, habe ich die Gelegenheit genutzt und es einfach getan.
Das Problem und dessen Lösung
Nach der Installation eines SVN Servers konnte es losgehen (ich benutze CollabNet Subversion). Zuerst müssen zwei Batchfiles angelegt werden, eins auf dem Arbeitscomputer, eins auf dem Server. Das erste sorgt für das Commit ins Repository, das zweite für ein SVN-update vom Repo in den www-root (Nähere Informationen zur Installation und Benutzung von SVN entnimmst du am besten dem SVN Book).
Nun müsste man erst das Commit-Script auf dem einen, und dann das Update-Script auf dem anderen Computer ausführen. Und hier ist das Problem: Das ist mir schlicht weg zu umständlich. Der Haken ist, dass das Update-Script auf dem Server ausgeführt werden muss, und nicht über eine Freigabe auf meinem Computer. Jedesmal mit einer Remote Software auf den Server zugreifen um das Script aufzuführen macht es nicht besser.
Theoretisch besteht die Lösung aus einem DOS Befehl, der ein Skript ferngesteuert auf einem anderen Computer ausführt. So einen Befehl habe ich in DOS selbst leider nicht gefunden. Also habe ich mir das Internet zur Hilfe gerufen. Gefunden habe ich PsTools, genauer gesagt “psexec“, was sich unter diesen Tools befindet.
Dieses Tool macht genau das was ich brauche. Es führt ein Batchfile ferngesteuert auf einem anderen Computer aus. In meinem Fall wäre dies das Update-Script auf meinem heimischen Server.
Unter Verwendung dieses Tools war es mir nun möglich, das “Megaupdatebatchscript” zu schreiben, mit dessen Hilfe sich durch einen Klick der www-root aktualisiert. Das Megaupdatebatchscript enthält also nun einmal den Commit Befehl (ich benutze hier TortoiseSVN, um bei jedem Commit auch komfortabel einen Kommentar zu den Änderungen schreiben zu können) und einen Aufruf von “psexec”, welcher für die Ausführung des sich auf dem Server befindlichem Batchfiles mit dem SVN-update Befehl sorgt.
Das sieht bei mir dann so aus:
TortoiseProc.exe /command:commit /path:”C:/aptana_workspaces/patrick/patrickburke.de/” /closeonend:1
psexec -u “volker racho” -p “” \\volker c:\megaupdatebatchscript.cmd
Nähere Informationen zur ersten Zeile gibt es in den Docs von TortoiseSVN. Wie man psexec benutzt ist auf der Projekt Seite erklärt.
Die Geschwindigkeit
Schneller geworden ist es aber unterm Strich doch nicht. Ich habe nämlich vergessen zu berücksichtigen, dass psexec schließlich auch eine Verbindung zum Server braucht, was irgendwie ziemlich lange dauert.
Aber hey, jetzt hab ich ein Versionskontrollsystem installiert.
kein Kommentare bis jetzt