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:
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.
rsync
und Ordneraktionen ;rsync
undFSEvent
;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.
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
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.
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.
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.
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.
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 .
Thorbjørn Ravn Andersen
Glückliches Gesicht
Secure Shellfish
auf iOS?