Auf der Suche nach einem Tool zum automatischen bidirektionalen Synchronisieren von SFTP mit dem lokalen Ordner

Ich verwende OS X für die Entwicklung und möchte Änderungen bei jedem ⌘+S auf den Entwicklungsserver übertragen.
Wenn ich einen anderen Zweig auschecke, möchte ich, dass der lokale Ordner entsprechend aktualisiert wird.

Also dachte ich, ich brauche eine automatische Zwei-Wege-Synchronisationslösung .

Mein bevorzugter Editor ist Sublime Text (was großartig ist, Sie sollten es sich unbedingt ansehen).
Ich begann meine Suche mit dem Sublime Text SFTP-Plugin von Will Bond , fand es aber instabil und langsam.

Dann habe ich das Problem mit Panic Transmit angegangen .
Es ist atemberaubend schön. Allerdings hat es mir auch nicht geholfen.

Transmit bietet zwei Optionen:

  • bidirektionale Synchronisierung zwischen lokalem und entferntem Ordner;
  • Mounten Sie SFTP im Dateisystem.

Leider ist die Zwei-Wege-Synchronisierung manuell und muss durch Drücken einer Taste aufgerufen werden.
(Ich könnte das wahrscheinlich umgehen, indem ich ein cleveres AppleScript schreibe – aber ich weiß es nicht.)

SFTP-Mounting ist großartig – leider hat es große Nachteile: Die Dateisuche ist erwartungsgemäß langsam und es scheint keine Möglichkeit zu geben, Transmit mitzuteilen, dass sich Dateien auf dem Server geändert haben . Sie müssen die Bereitstellung aufheben und erneut bereitstellen, um die Remote-Änderungen anzuzeigen. Dies macht es unmöglich, mit Zweigen zu arbeiten.

Ich bin jetzt wirklich verwirrt und habe keine Lust, ein paar Stunden mit einer falschen Lösung zu verschwenden. Ich bin offen für Vorschläge für ein Tool zur Verbesserung meines Workflows.

Hier ist, was ich bisher gefunden habe. Ich bin mir nicht sicher, ob einer von ihnen den Remote-Ordner tatsächlich auf Änderungen überwachen kann.

Beachten Sie, dass ich nach einer Lösung suche, die sofort einsatzbereit ist . Ich möchte kein Tool, das keine neuen/geänderten/gelöschten Dateien oder Ordner verarbeiten kann, ohne mit seinem Quellcode herumzuspielen.

Warum nicht einfach eine gute IDE verwenden, die Ihnen dabei helfen kann?
Secure Shellfishauf iOS?

Antworten (5)

Alte Frage, aber hier meine Antwort:

Ich verwende ein Unix-Tool namens Unison . Dies ist ein Befehlszeilentool, das eine bidirektionale Synchronisierung ermöglicht.

Das Gute ist, dass es in hohem Maße konfigurierbar ist: Ignorieren Sie bestimmte Dateinamen, Verzeichnisse, synchronisieren Sie mehrere Ordner, welche Seite in einem Konflikt gewinnt, viele andere Dinge.

Das Schlimme ist, dass Sie keine Angst vor der Befehlszeile haben müssen und sowohl auf dem Server als auch auf dem Client Unison installiert sein muss; beide Installationen müssen die gleiche Version sein und mit der gleichen Version von OCAML erstellt werden.

Aber ich habe es im letzten Jahr jeden Arbeitstag mehrmals pro Stunde benutzt und es war großartig – es ist wirklich schnell, es ist wirklich einfach, es von der Befehlszeile aus zu starten.

Haben Sie darüber nachgedacht, etwas wie Git zu verwenden? Hosten Sie die Dateien auf GitHub oder richten Sie Ihren eigenen Git-Server ein.

Dies sollte helfen: https://stackoverflow.com/questions/455698/best-visual-client-for-git-on-mac-os-x

Ich benutze Git, habe aber keine laufende Umgebung auf meinem Laptop, also muss ich, um jede kleinste Änderung zu testen, ein Commit und Push machen. Dies macht den Commit-Verlauf bedeutungslos und ist etwas mühsam, obwohl ich genau das jetzt tue, wobei ST2 & Github für Mac die Erfahrung etwas lustiger und weniger schmerzhaft machen.
Ich werde auf jeden Fall einen Blick auf diese Fragen werfen, vielen Dank.

Mit dem folgenden AppleScript können Sie einen Remote-Ordner mit einem lokalen Ordner mit Transmit synchronisieren

https://github.com/lmullen/AppleScript---Transmit---sync-local-directory-to-FTP-directory

Leider scheint es standardmäßig den Remote-Ordner mit dem lokalen zu synchronisieren, und ich möchte das Gegenteil: aktualisierte Dateien vom Server auf meinen Computer herunterladen.

^ Github-Seite gibt 404 zurück

Eine sehr alte Frage, aber vielleicht hilft meine eigene Antwort. Ich habe auch SublimeText verwendet (ich glaube, ich habe es noch irgendwo), weil ich die Art und Weise mag, wie es Dateien so schnell öffnet – besonders auf älteren Macs. Für ernsthaftere Arbeiten würde eine bessere IDE jedoch definitiv besser zu Ihren Anforderungen passen.

Da es Ihnen nichts ausmacht, neue/andere Software zu erwerben, probieren Sie Panic's Coda aus. Sie mochten bereits Transmit, das auch ein Produkt von Panic ist. Coda befindet sich zwischen SublimeText und hochentwickelten IDEs wie beispielsweise Eclipse und kann so ziemlich alles tun, was Sie möchten – Ordner zwischen Ihrem lokalen Computer und dem Remote-Server synchron halten, bei Bedarf veröffentlichen und synchronisieren und zusätzlich Ihre behalten Lokale Daten werden auch mit GitHub, Google Code oder jedem anderen gängigen Versionsverwaltungssystem auf Basis von Git oder SVN synchronisiert.

Coda litt in der Vergangenheit etwas unter der Leistung (nämlich beim Rendern von Code in Farbe beim schnellen Scrollen), aber aktuelle Versionen wurden komplett überarbeitet und sind fast so schnell wie SublimeText. Es ist auch Plugin-basiert – das PHP/JavaScript/HTML-Validierungs-Plugin ist ein Muss, da die internen Code-Validierungsfunktionen von Coda im Vergleich nicht herausragend sind. Und heutzutage können Sie Ihre Transmit-Servereinstellungen auf Coda und umgekehrt sowie auf jedem iOS-Gerät, das Sie besitzen, über ihre cleveren Apps verwenden, die die Einstellungen untereinander synchronisieren.

Das klingt fast wie Propaganda für Panic ... Ich hätte Coda nicht erwähnt, wenn Sie Transmit nicht erwähnt hätten!

Eine weitere Option ist Mountain Duck . Es funktioniert definitiv out of the box. Ich habe nach einem Dienstprogramm gesucht, das das tut, was Sie meiner Meinung nach suchen. Ich habe einen Remote-Webserver, auf dem sshd und der Webanwendungsserver ausgeführt werden. Ich verwende Sublime Text auch, um die Komponenten der Webanwendung zu bearbeiten, die sich auf diesem Server befinden. Ich habe Transmit genau wie Sie verwendet und bin auf dasselbe Problem gestoßen: Ich musste es manuell ausführen, um die Synchronisierung durchzuführen. Es war nicht einfach zu automatisieren. So habe ich dieses Setup mit Mountain Duck:

Erstens habe ich ein "Lesezeichen" in Mountain Ducks Jargon. Dies entspricht ungefähr den gleichen Informationen, die man in die Konfiguration von Transmit einträgt, um sich mit dem entfernten Server zu verbinden.

Lesezeichenkonfiguration

Sie navigieren dann zum Menü von Mountain Duck, suchen den neuen Lesezeicheneintrag und wählen im Untermenü „Verbinden“. Das in der Konfiguration angegebene Remote-Verzeichnis wird dann als auswerfbarer Finder-Speicherort geöffnet.

Finder-Standort

Ich kann dann alle Elemente in diesem Ordner, die ich bearbeiten möchte, in Sublime Text ziehen und die gewünschten Änderungen vornehmen. Wenn ich auf Speichern drücke, werden die Änderungen automatisch mit dem gemounteten Verzeichnis auf dem Remote-Server synchronisiert.

Entferntes Dokument in erhabenem Text

Dies hat bisher meine Anforderungen zum Synchronisieren der Dateien erfüllt. Der Entwicklungsserver, den ich verwende, Django, kann erkennen, dass sich eine Datei geändert hat, wenn ich sie speichere, und sie wird dann synchronisiert. Der Server startet dann automatisch neu und ich kann die aktualisierte Änderung sofort in meinem Browser sehen.

Einzelheiten darüber, was diese Symbole im neuen Finder-Fenster in Bezug auf den Synchronisierungsstatus bedeuten, finden Sie in der Dokumentation .

Ihre Antwort könnte durch zusätzliche unterstützende Informationen verbessert werden. Bitte bearbeiten Sie , um weitere Details wie Zitate oder Dokumentation hinzuzufügen, damit andere bestätigen können, dass Ihre Antwort richtig ist. Weitere Informationen zum Verfassen guter Antworten finden Sie in der Hilfe .
Fertig und danke für den Kommentar.