Często wprowadzam niewielkie zmiany w dość dużych plikach tekstowych przez FTP ( pliki CSS do tworzenia stron internetowych ), a ponieważ moje połączenie internetowe jest strasznie wolne, jest to bardzo bolesny proces.
Nawet jeśli zmienię tylko jeden znak pliku, nadal muszę siedzieć i czekać przez dłuższy czas, aż cały plik zostanie ponownie przesłany na serwer.
Czy jest jakiś sposób na edycję plików hostowanych zdalnie na moim komputerze lokalnym, a kiedy zapisuję plik, przesyłam tylko te części pliku, które uległy zmianie ?
Edycja: Myślę, że w tej chwili nie jestem pewien, jak korzystam z mojego klienta FTP. Zasadniczo otwieram zdalny plik przez SFTP za pomocą WinSCP. WinSCP zapisuje go w folderze tmp, uruchamia Sublime Text i zaczynam go edytować. Kiedy nacisnę Zapisz, WinSCP automatycznie prześle plik ponownie. Tak naprawdę nigdy nie zapisuję pliku na stałe na komputerze - wszystko odbywa się za pośrednictwem folderu tymczasowego WinSCP. Właśnie dlatego szukam rozwiązania, które można zastosować w ten sposób typu „hit and run”.
Poprzednia dyskusja
Wcześniej opublikowałem to pytanie w usłudze ServerFault, gdzie sugerowano użycie czegoś takiego jak git, jednak jak wyjaśniłem:
Za pomocą git lub podobnego narzędzia do kontroli wersji musiałbym dokonać zatwierdzenia za każdym razem, gdy zapisuję plik, prawda? Nawet jeśli można to zrobić automatycznie (tj. Gdybym miał makro, które utworzyło Ctrl-S w pliku zapisu Sublime Text i jednocześnie wykonałem wypychanie git), mógłbym dokonać 50–100 drobnych edycji pliku CSS na godzinę; na pewno skończyłbym ze spamowanym dziennikiem zatwierdzeń? Również rozwiązanie git jest nieelastyczne, ponieważ opiera się na dowolnym pliku, który edytuję, będącym częścią repozytorium git.
Jedynym rozwiązaniem, jakie do tej pory wymyśliłem, jest jakiś hackowany proces przy użyciu rsync, ale nawet wtedy jest to bardzo kłopotliwe:
- Pobieram potrzebne pliki na komputer (przez FTP / rsync / cokolwiek).
- Otwieram plik w (np.) Sublime Text i rozpoczynam edycję.
- Proces w tle monitoruje folder pod kątem modyfikacji plików. Gdy zapisuję plik, proces ten natychmiast uruchamia operację rsync z mojego komputera na serwer, przenosząc zmienione części pliku.
Musiałbym jednak ręcznie skonfigurować lub określić zdalne ścieżki do plików lub katalogów, w przeciwnym razie lokalny skrypt rsync nie będzie wiedział, gdzie należy zsynchronizować pliki, więc ta metoda jest nadal mało elastyczna. Ta metoda nie pozwoliłaby mi od razu wyszukać losowego pliku, otworzyć go i zapisać tak, jak robi to klient FTP.
Przy tej metodzie nie ma również widocznych informacji zwrotnych, takich jak pasek postępu przesyłania.
Odpowiedzi:
Vim ma wbudowaną wtyczkę o nazwie netrw, która pozwala Vimowi edytować zdalne pliki. Rsync jest jednym z protokołów, których może używać:
Oczywiście, jeśli masz dostęp SSH do zdalnego komputera, a Vim jest na nim zainstalowany, prostsze może być użycie Vima zdalnie. Nano, Emacs i inne edytory z interfejsami wiersza poleceń są również opcjami w tym przypadku. W zależności od tego, jak złe jest twoje połączenie, może to nie być przyjemną opcją.
To wszystko powiedziało
bez niezawodnego systemu wycofywania, takiego jak git może zapewnić, ty i twoja organizacja po prostu błagacie o udrękę, kiedy popełniacie nieuniknione błędy, które mogą bardzo pozostać niezauważone, dopóki nie zapomnicie dokładnie tego, co zrobiliście.
źródło
Beyond Compare to narzędzie do porównywania i łączenia folderów i plików; Obsługiwane są również serwery FTP i mogą być obsługiwane jak folder lokalny. Jest zastrzeżony, dożywotnia licencja na jedną instalację kosztuje 30 USD dla wersji standardowej (z FTP) lub 60 USD dla wersji profesjonalnej (z SFTP). Działa w systemach Windows, Mac OS i Linux. Osobiście rozwijam swoją witrynę na komputerze domowym i przesyłam zmiany na mój serwer WWW, kiedy jestem szczęśliwy. Wprowadzam zmiany ręcznie za pomocą Beyond Compare, ale można to również zautomatyzować. Możesz spróbować i sprawdzić, czy przesyła tylko pełne pliki lub fragmenty zmian; Nie jestem tego pewny.
źródło