9

Я часто делаю небольшие изменения в довольно больших текстовых файлах через FTP (CSS-файлы для веб-разработки), и, поскольку мое интернет-соединение ужасно медленное, это очень болезненный процесс.

Даже если я изменю только один символ файла, мне все равно придется сидеть и ждать в течение значительного времени, пока весь файл повторно загружается на сервер.

Можно ли каким-то образом редактировать удаленно размещенные файлы на локальном компьютере, и при сохранении файла загружать только те части файла, которые изменились?

Изменить: я думаю, что я неясно, как я использую свой FTP-клиент в данный момент. По сути, я открываю удаленный файл через SFTP, используя WinSCP. WinSCP сохраняет его в папку tmp, запускает Sublime Text и я начинаю его редактировать. Когда я нажимаю "Сохранить", WinSCP автоматически перезагружает файл. Я никогда не сохраняю файл постоянно на моем компьютере - все делается через временную папку WinSCP. Вот почему я ищу решение, которое можно было бы использовать таким способом типа "беги и беги".


Предыдущее обсуждение

Ранее я писал этот вопрос на ServerFault, где предлагалось использовать что-то вроде git, однако, как я объяснил:

С помощью git или аналогичного инструмента управления версиями мне придется делать коммит каждый раз, когда я сохраняю файл, верно? Даже если бы это можно было сделать автоматически (т. Е. Если бы у меня был макрос, который сделал Ctrl-S в файле сохранения Sublime Text и одновременно выполнил команду git push), я мог бы сделать 50–100 крошечных правок файла CSS в час; наверняка я бы в итоге получил спам-коммит? Кроме того, решение git негибко, поскольку оно основывается на том, какой файл я редактирую, являясь частью git-репозитория.

Единственное решение, о котором я могу подумать, это какой-то взломанный процесс, использующий rsync, но даже тогда он очень сложный:

  1. Я загружаю необходимые файлы на свой компьютер (через FTP/rsync/ что угодно).
  2. Я открываю файл в (например) Возвышенный текст и начать вносить изменения.
  3. Фоновый процесс отслеживает изменения файлов в папке. Когда я сохраняю файл, этот процесс немедленно запускает операцию rsync с моего компьютера на сервер, передавая измененные части файла.

Однако мне нужно было бы вручную настроить или указать пути к удаленным файлам или каталогам, иначе локальный скрипт rsync не будет знать, где rsync файлы, поэтому этот метод все еще довольно негибкий. Этот метод не позволил бы мне мгновенно перейти к случайному файлу, открыть его и сохранить как FTP-клиент.

Там также нет видимой обратной связи, как индикатор загрузки с этим методом.

2 ответа2

7

Vim имеет встроенный плагин под названием netrw, который позволяет Vim редактировать удаленные файлы. Rsync - это один из протоколов, которые он может использовать:

:e rsync://user@hostname:port/path
:w rsync://user@hostname:port/path

Конечно, если у вас есть SSH-доступ к удаленной машине, и на ней установлен Vim, может быть проще просто использовать Vim удаленно. Nano, Emacs и другие редакторы с интерфейсами командной строки также являются опциями в этом случае. Однако, в зависимости от того, насколько плохое ваше соединение, это может быть не очень приятным вариантом.


Это все сказано,

внесение сотен крошечных изменений в файлы, которые размещены удаленно и которые должны редактироваться "вживую" и "на месте"

без надежной системы отката, такой как то, что может предоставить git, вы и ваша организация просто умоляетесь об агонии, когда вы делаете неизбежные ошибки, которые вполне могут остаться незамеченными, пока вы точно не забудете, что сделали.

1

Beyond Compare - это инструмент сравнения, который может сравнивать и объединять папки и файлы; FTP-серверы также поддерживаются и могут обрабатываться как локальные папки. Это проприетарное право, пожизненная лицензия на одну установку стоит 30 долларов США за стандартную версию (с FTP) или 60 долларов США за профессиональную версию (с SFTP). Он работает на Windows, Mac OS и Linux. Лично я разрабатываю свой веб-сайт на своем домашнем компьютере и загружаю изменения на свой веб-сервер, когда я счастлив. Я проверяю изменения вручную с Beyond Compare, но это тоже можно автоматизировать. Вы можете попробовать и посмотреть, загружает ли он только полные файлы или куски изменений; Я не уверен в этом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .