Ich nehme häufig kleine Änderungen an ziemlich großen Textdateien über FTP ( CSS-Dateien für die Webentwicklung ) vor. Da meine Internetverbindung sehr langsam ist, ist dies ein sehr schmerzhafter Prozess.
Selbst wenn ich nur ein Zeichen der Datei ändere, muss ich noch einige Zeit warten, bis die gesamte Datei erneut auf den Server hochgeladen wird.
Gibt es eine Möglichkeit, remote gehostete Dateien auf meinem lokalen Computer zu bearbeiten und beim Speichern der Datei nur die Teile der Datei hochzuladen, die sich geändert haben ?
Bearbeiten: Ich glaube, ich war mir im Moment nicht sicher, wie ich meinen FTP-Client verwende. Grundsätzlich öffne ich eine Remote-Datei über SFTP mit WinSCP. WinSCP speichert es in einem tmp-Ordner, startet Sublime Text und ich beginne mit der Bearbeitung. Wenn ich auf Speichern drücke, lädt WinSCP die Datei automatisch neu hoch. Ich speichere die Datei nie dauerhaft auf meinem Computer - alles wird über den temporären Ordner von WinSCP erledigt. Aus diesem Grund suche ich nach einer Lösung, die auf diese Art von "Hit and Run" verwendet werden kann.
Vorherige Diskussion
Ich habe diese Frage zuvor auf ServerFault gepostet, wo die Verwendung von etwas wie git vorgeschlagen wurde, jedoch wie ich erklärte:
Mit git oder einem ähnlichen Versionierungstool müsste ich jedes Mal ein Commit durchführen, wenn ich die Datei speichere, oder? Selbst wenn dies automatisch erfolgen könnte (dh wenn ich ein Makro hätte, mit dem Strg-S in Sublime Text gespeichert und gleichzeitig ein Git-Push ausgeführt wird), könnte ich 50 bis 100 winzige Änderungen an einer CSS-Datei pro Stunde vornehmen. Sicherlich würde ich mit einem Spam-Protokoll enden? Außerdem ist die Git-Lösung unflexibel, da sie davon abhängt, welche Datei ich gerade bearbeite, um Teil eines Git-Repos zu sein.
Die einzige Lösung, an die ich bisher denken kann, ist eine Art gehackter Prozess mit rsync, aber selbst dann ist es sehr umständlich:
- Ich lade die benötigten Dateien auf meinen Computer herunter (über FTP / rsync / was auch immer).
- Ich öffne eine Datei in (z. B.) Sublime Text und beginne Änderungen vorzunehmen.
- Ein Hintergrundprozess überwacht den Ordner auf Dateiänderungen. Wenn ich eine Datei speichere, löst dieser Prozess sofort einen rsync-Vorgang von meinem Computer auf den Server aus und überträgt die geänderten Teile der Datei.
Ich muss jedoch die Remote-Datei- oder Verzeichnispfade manuell einrichten oder angeben, da das lokale rsync-Skript sonst nicht weiß, wo die Dateien rsynciert werden sollen, sodass diese Methode immer noch ziemlich unflexibel ist. Mit dieser Methode kann ich nicht sofort zu einer zufälligen Datei navigieren, sie öffnen und speichern, wie es ein FTP-Client tut.
Bei dieser Methode gibt es auch kein sichtbares Feedback wie einen Upload-Fortschrittsbalken.
Antworten:
Vim verfügt über ein integriertes Plugin namens netrw, mit dem Vim Remote-Dateien bearbeiten kann. Rsync ist eines der Protokolle, die es verwenden kann:
Wenn Sie SSH-Zugriff auf den Remotecomputer haben und Vim darauf installiert ist, ist es natürlich möglicherweise einfacher, Vim nur remote zu verwenden. Nano, Emacs und andere Editoren mit Befehlszeilenschnittstellen sind in diesem Fall ebenfalls Optionen. Je nachdem, wie schlecht Ihre Verbindung ist, ist dies möglicherweise keine angenehme Option.
Das alles sagte,
Ohne ein zuverlässiges Rollback-System, wie es Git bieten kann, betteln Sie und Ihr Unternehmen nur um Qual, wenn Sie die unvermeidlichen Fehler machen, die möglicherweise unbemerkt bleiben, bis Sie genau vergessen haben, was Sie getan haben.
quelle
Beyond Compare ist ein Diff-Tool, mit dem Ordner und Dateien verglichen und zusammengeführt werden können. FTP-Server werden ebenfalls unterstützt und können wie ein lokaler Ordner behandelt werden. Es ist urheberrechtlich geschützt. Eine lebenslange Lizenz für eine Installation kostet 30 USD für die Standard Edition (mit FTP) oder 60 USD für die Professional Edition (mit SFTP). Es läuft unter Windows, Mac OS und Linux. Persönlich entwickle ich meine Website auf meinem Heimcomputer und lade die Änderungen auf meinen Webserver hoch, wenn ich zufrieden bin. Ich gehe die Änderungen mit Beyond Compare von Hand durch, aber dies kann auch automatisiert werden. Sie können es versuchen und feststellen, ob nur vollständige Dateien oder Änderungsblöcke hochgeladen werden. Ich bin mir darüber nicht sicher.
quelle