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.