Mac OSX SFTP в режиме реального времени File Sync или альтернативный процесс разработки
Примерно год назад я купил MacBook Air для разработки iPhone, но он быстро заменил ноутбук Lenovo в качестве моей портативной машины для разработки. Форм-фактор и клавиатура великолепны - для путешествий нет ничего подобного. Другим важным плюсом является наличие полного набора утилит командной строки.
Единственное, что я действительно пропустил в своей среде Windows, - это WinSCP, утилита SFTP, которая позволяет синхронизировать каталоги в реальном времени ' ING. Обычно я запускаю Eclipse/WinSCP и могу работать с локальными файлами и проверять изменения на удаленном сервере разработки в режиме реального времени. Это огромное преимущество, особенно при работе в нескольких разных каталогах одновременно.
Я не смог найти программное обеспечение Mac, которое это выполнило. Я слышал различные решения, предлагаемые с помощью Automator, Folder Actions или API событий файловой системы, но на самом деле я не видел примеры кода, который работает.
Мои требования:
- Рабочие файлы на локальной машине (поэтому я могу легко работать без Интернета, MacFuse - это не то, что я ищу, который монтирует удаленный каталог/файловую систему локально)
- Должен поддерживать SSH/SFTP
- Мониторинг локальной файловой системы для обнаружения изменений и автоматической загрузки файлов в режиме реального времени
- Я не хочу, чтобы локальный веб-сервер/db заменил удаленную среду разработчиков.
С другой стороны, я очень удивлен, что на Mac ничего похожего не существует. Как другие разработчики справляются с этой проблемой? Я не против изменения моей парадигмы процесса разработки, если есть альтернативный процесс, который принимает те же или меньше усилий.
Ответы
Ответ 1
Предполагая, что у вас есть root-доступ к удаленному серверу, попробуйте Unison. Он имеет значительное преимущество перед rsync в том, что это не односторонний.
Я установил его на свой mac с помощью homebrew $ brew install unison
и на моем сервере с помощью apt-get, но вы можете прочитайте документы в режиме linode, чтобы найти инструкции для вашей системы.
Затем я настроил папку для синхронизации:
$ unison -batch {local dir} ssh://{remote.host}/{remote.dir}
Поскольку вы упоминаете ssh, я предполагаю, что ваши открытые ключи уже настроены.
Если бы я хотел, чтобы он пытался синхронизировать каждый раз при сохранении, я бы написать plist для запуска. Документ старый, но информация действительна и тщательно.
Если у вас нет доступа к удаленному компьютеру, и поэтому Unison не является опцией, rsync предварительно установлен на вашем Mac. Здесь учебник по настройке автоматических резервных копий с помощью rsync.
Это программное обеспечение, которое я не знаю и никогда не пробовал, говорит, что он делает то, что вы ищете, не устанавливая на пульте дистанционного управления (хотя там ускорение, если вы делаете).
Ответ 2
Я использую dklab_realsync, и он отлично работает.
Единственная проблема, с которой я выполняю первоначальную синхронизацию, а также удаление моего файла с сервера, если они не находятся в моей папке, или я удаляю их из своей папки. Это проблема, потому что мы работаем в команде, кто-то может что-то сделать на сервере. Я не хочу общаться друг с другом.
Используя WinSCP, я мог бы отключить первоначальную синхронизацию и снять отметку с удаления.
Если у кого-то есть лучшее и более близкое приложение с WinSCP, это будет здорово, но мне не удалось найти его через год.
Ответ 3
DropSync должен делать то, что вам нужно. Он автоматически и поддерживает rsync через SSH.
Ответ 4
Другой альтернативой является создание сайта в netbeans. Вы можете настроить автоматическую синхронизацию локальных изменений с сервером при сохранении файла.
Вы все еще можете использовать свою любимую среду IDE. Просто позвольте neatbeans работать в фоновом режиме - он будет по-прежнему автоматически синхронизировать файлы, когда они будут сохранены.
Ответ 5
Я бы сказал, что действия с папками - это путь. Я бы запустил script, который проверяет mtime файлов в каталоге в определенное время, а если он изменился со времени последней проверки, загрузите содержимое каталога. Менее элегантным решением было бы запустить задание cron, которое делает то же самое - проверить mtime файлов в каталоге и загрузить все, что недавно изменилось. Я бы, вероятно, использовал это в сочетании с функцией TextMate "Сохранить файлы при фокусе потерянной" - таким образом, вы будете делать прерывистые сохранения и загрузки во время работы.
Ответ 6
для Mac, похожего на WinScp, можно сделать с помощью Yummy FTP Watcher p >
NetBeans IDE доступна как для Mac, так и для окон, а версия 8.0.2 имеет прекрасную функцию загрузки на сохранение, которая также обновляет сервер в файле, добавляя и удаляя из среды IDE и извне. Если вы гибки в выборе IDE, я бы рекомендовал NetBeans как лучший вариант для решения этой проблемы.
Ответ 7
FileZilla может почти сделать это, он даже отслеживает изменения в режиме реального времени.
Но он выдает диалоговое окно каждый раз, когда он хочет загрузить, и это заманивает меня и многих других. Проголосуйте, чтобы сделать этот диалог необязательным, в этом запросе функции 7791.
Ответ 8
cyberduck, популярный клиент sftp (и более) с открытым исходным кодом выполняет синхронизацию. Но я бы рекомендовал вам использовать правильный контроль версий, например git.