Ищете инструмент для автоматической двусторонней синхронизации SFTP с локальной папкой


9

Я использую OS X для разработки и хочу помещать изменения в dev-сервер на каждом every + S.
Когда я проверяю другую ветку, я хочу, чтобы локальная папка обновлялась соответствующим образом.

Поэтому я решил, что мне нужно решение для автоматической двусторонней синхронизации .

Мой редактор на выбор - Sublime Text (это круто, вы обязательно должны это проверить).
Я начал свой квест с плагина Sublime Text SFTP от Will Bond, но нашел его нестабильным и медленным.

Затем я атаковал проблему с Panic Transmit .
Это потрясающе красиво. Однако это мне тоже не помогло.

Transmit предлагает два варианта:

  • двусторонняя синхронизация между локальной и удаленной папками;
  • смонтировать SFTP в файловую систему.

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

Монтирование SFTP великолепно - к сожалению, у него есть серьезные недостатки: поиск файлов предсказуемо медленен, и, похоже, нет способа сообщить Transmit, что файлы изменились на сервере . Вам нужно размонтировать и снова смонтировать, чтобы увидеть удаленные изменения. Это делает ветки невозможными для работы.

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

Вот что я нашел до сих пор. Я не уверен, что кто-то из них может наблюдать за изменениями в удаленной папке.

  • написание некоторого AppleScript для синхронизации Передача в обе стороны каждые десять секунд;
  • использование rsyncи действия с папками ;
  • используя rsyncиFSEvent ;
  • использование DoubleDown (с открытым исходным кодом);
  • покупка FolderWatch (коммерческая);
  • делать что-то еще.

Обратите внимание, что я ищу решение, которое работает из коробки . Мне не нужен инструмент, который не может обрабатывать новые / измененные / удаленные файлы или папки без возни с его исходным кодом.


Почему бы просто не использовать хорошую IDE, которая поможет вам в этом?
Турбьерн Равн Андерсен

Ответы:


5

Старый вопрос, но вот мой ответ:

Я использую инструмент Unix под названием Unison . Это инструмент командной строки, который позволяет выполнять двустороннюю синхронизацию.

Преимущество в том, что он легко настраивается: игнорировать определенные имена файлов, каталоги, синхронизировать несколько папок, какая сторона выигрывает в конфликте, и многое другое.

Плохо то, что вам не нужно бояться командной строки, а на сервере и клиенте должен быть установлен Unison; Обе установки должны быть одной и той же версии и построены с одинаковой версией OCAML.

Но я использовал его несколько раз в час каждый рабочий день в течение прошлого года, и это было потрясающе - это действительно быстро, очень легко выстрелить из командной строки.


1

Рассматривали ли вы использовать что-то вроде Git? Размещение файлов на GitHub или настройка собственного git-сервера.

Это должно помочь: /programming/455698/best-visual-client-for-git-on-mac-os-x


1
Я использую Git, однако у меня на ноутбуке нет работающей среды, поэтому, чтобы протестировать каждое маленькое изменение, я должен сделать коммит и нажать. Это делает историю коммитов бессмысленной и несколько утомительной, хотя это именно то, что я делаю сейчас, с ST2 и Github для Mac, что делает этот опыт немного более увлекательным и менее болезненным.
Дан

1
Помочь ли что-нибудь из этого? stackoverflow.com/questions/2275010/… или stackoverflow.com/questions/5054174/…
afragen

Я обязательно посмотрю на эти вопросы, спасибо огромное.
Дан

0

Следующий AppleScript позволяет синхронизировать удаленную папку с локальной папкой с помощью Transmit

https://github.com/lmullen/AppleScript---Transmit---sync-local-directory-to-FTP-directory

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


^ Github страница возвращает 404
F01

0

Очень старый вопрос, но, возможно, поможет мой собственный ответ. Я также использовал SublimeText (я думаю, что он все еще где-то есть), потому что мне нравится, как он так быстро открывает файлы - особенно на старых Mac. Тем не менее, для более серьезной работы, лучше IDE будет лучше соответствовать вашим требованиям.

Так как вы можете приобрести новое / другое программное обеспечение, попробуйте Panic's Coda. Вам уже понравился Transmit, который также является продуктом Panic. Coda находится между SublimeText и такими сложными средами IDE, как, например, Eclipse, и может выполнять практически все, что вы хотите - синхронизировать папки между локальным компьютером и удаленным сервером, публиковать и синхронизировать по требованию и, кроме того, сохранять локальные данные также синхронизируются с GitHub, Google Code или любой другой популярной системой управления версиями, основанной на Git или SVN.

Раньше Coda немного страдала от производительности (а именно от цветопередачи кода при быстрой прокрутке), но текущие версии были полностью обновлены и работают почти так же быстро, как SublimeText. Он также основан на плагинах - плагин проверки PHP / JavaScript / HTML является обязательным, поскольку внутренние функции проверки кода Coda не являются звездными в сравнении. И в наши дни вы можете использовать настройки вашего сервера Transmit в Coda и наоборот, а также на любом устройстве iOS, которым вы можете владеть, через их умные приложения, которые синхронизируют настройки между собой.

Это звучит почти как пропаганда паники ... Я бы не упомянул Coda, если бы ты не упомянул Transmit!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.