Skip to content

WinSCP und die automatische Synchronisierung

Manche Hilfsmittel sind nicht nur höchst praktisch, sondern auch ganz einfach - wenn man sie denn einmal gefunden oder kennengelernt hat.

Ich arbeite in der Regel auf meinem Desktoprechner wie auf dem Laptop unter Windows; so bearbeite ich auch Webseiten, Webapplikationen oder Scripts, die dann allerdings unter Linux laufen müssen. Ich habe bisher den Aufwand einer kompletten Testumgebung unter Windows gescheut; sicherlich könnte ich, wenn ich wollte, Apache und PHP dort installieren, wahrscheinlich auch MySQL, aber spätestens bei Shell- oder Perl-Scripts wird’s dann schwierig, weil sich manche Operationen, die unter einem Unix durchaus elegant sind, unter Windows so nicht ohne weiteres umsetzen lassen.

Daher übertrage ich während der Arbeit regelmäßig die geänderten Dateien per SCP/SFTP auf einen lokalen oder externen Server und teste sie dort; dieser zusätzliche Arbeitsschritt ist kaum ein Problem. Jedenfalls nicht, so lange man an nur einer Datei arbeitet. Besteht ein Projekt aber, wie so oft, aus einer Vielzahl von untereinander abhängigen Dateien (dem Script, Modulen und Konfigurationsdateien, oder einem Template, Funktionen und CSS-Styles), die zudem jeweils in ihren eigenen Verzeichnissen liegen, ist es recht aufwendig, mal diese, mal jene Datei hochzuladen und vor allem dabei keine zu vergessen. Oft schon habe ich mich darüber geärgert, aber erst kürzlich festgestellt, dass ich mich gar nicht zu ärgern brauche.

“Entferntes Verzeichnis aktuell halten” heißt die wunderbar praktische Funktion.

Der von mir verwendete Client WinSCP bietet nämlich genau für meinen Workflow eine wunderbare Unterstützungsfunktion: er kann nicht nur Verzeichnisse vergleichen oder synchronisieren oder Verzeichniswechsel im lokalen Dateisystem auf dem externen Dateisystem des Servers parallel nachvollziehen - nein, WinSCP kann vor allem ein lokales Verzeichnis dauerhaft überwachen und jede neue oder geänderte Datei sofort hochladen und - auf Wunsch - auch jede lokal gelöschte Datei sofort auf dem Server löschen. Dabei können zudem bestimmte Dateien per vordefinierter Maske vom Abgleich ausgeschlossen werden - bspw. das Verzeichnis .git oder alle Sicherungsdateien *.bak.

Und schon ist ein lästiger Zwischenschritt eliminiert: jede lokal geänderte Datei kann sofort auf dem Server getestet werden. Wunderbar!