Обычно мы развертываем наши программные приложения на наших клиентах с помощью Subversion (обновление svn на клиентах; однонаправленное). В настоящее время у нас возникают проблемы с одним из наших клиентов из-за высокой задержки (скорость загрузки больших файлов — это хорошо), потому что они находятся в Китае, а наш сервер — в Канаде. Subversion просто завершается с ошибкой по истечении очень длительного периода времени.
В нашем приложении много маленьких файлов (.aspx, .config и т.д.) и несколько больших файлов (.dll, .jpg) общим размером около 100-200 МБ.
В настоящее время я рассматриваю возможность сделать следующее:
- Сделайте локальную проверку svn на сервере
- Заархивируйте результат
- FTP или rsync большой zip-файл на чужой машине
- Разархивировать файл во временную папку.
- Выполнение локальной rsync из этой временной папки в нашу обычную папку установки.
Есть ли лучшие решения?
- Настроить зеркало Subversion ближе к месту назначения? (Мне это понадобится всего на несколько часов в месяц, но может быть трудно найти)
- Используете другую систему контроля версий? (Лучше ли git для соединений с высокой задержкой)?
- Существуют ли способы упаковки исправлений Subversion (включая двоичные файлы) для повторного применения в месте назначения вместо отправки всех данных?
- Будет ли лучше использовать DropBox (который использует Amazon S3) для передачи файлов во временную папку?