Как организовать синхронизацию очень разных данных?

Что хочется:

Иметь автоматическую\полуавтоматическую синхронизацию файлов со следующими характеристиками:
  • Синхронизация как автоматическая (через интернет) так и вручную (через флешку) \ полуавтоматически (через локалку).
  • Копия части данных хранится в интернет сторадже ( бесплатное, хотя бы 3 гига), полная копия хранится на флешке (16 гигов).
  • Синхронизируемые каталоги могут находится в произвольном месте (кроме вложенности друг в друга).
  • Хорошая работа с каталогами содержащими проекты под SVN и Mercurial.
  • 3-4 машины с разными возможностями синхронизации — машина с анлим интернетом, с дорогим интернетом (т.е. через флешку большие объемы предпочтительней), ноутбук который оказывается в одной сети с первой. В некоторых случаях — не все папки нужны на каждой машине.
  • Достаточно только под Win
  • Было бы идеально если можно было бы синхронизировать историю SVN и Hg
  • Если где-то что-то ломается или неправильно обновляется — можно сделать откат с рабочей\бэкапной флешки, сказав принудительно — «при сравнении такого каталога — файлы на флешке приоритетнее.»


Что есть сейчас:

Синхронизация через 2 утилиты: LiveMesh и SyncToy


LiveMesh умеет — синхронизация через интернет хранилище (5 гигов) и через локалку\wifi (нет ограничений). Все более-менее автоматически.

Что делает плохо — конфликты убираются в корзину, вариаций не дается. Плохо отрабатывает по SVN (ломает репозиторий), HG +SVN даже страшно пробовать. Синхронизация только целиком, не диффы, т.е. траффик жрет сильно.


SyncToy: Ручная дрезина — все каталоги задаем руками, синхронизация запускается руками.

Что делает плохо — не самый продуманный алгоритм удаления — перед удалением каталога — удалит в индивидуальном порядке каждый файл в нем. Фильтры на игнор настраиваются по индивидуальному абсолютному пути и нет маски. Ломает SVN. Очень много файлов вызывают ступор или краш ( видимо или течет память или неоптимальное использование — забивается все)


Пробовал дропбокс — мало места в инете (бесплатного), хранилище только в одном каталоге (MyDropbox), не умеет по сети (из вкусностей — история как SVN).

Рассматривал вопрос c RSync, не понравилось что надо много всего писать вручную.


Есть сильные сомнения что все это будет хорошо работать с SVN\Hg при таком тупом синхронизировании.

Немного изучал вопрос mercurial<->Svn — консолька вместо автоматического гуя пока не устраивает и слишком много ручной работы для написания батчей ( может я не в курсе и уже есть нормальные решения ?).

Собственно вопрос:

Может кто посоветует полную или частичную замену данной схемы. или хотя бы нормальную работающую схему с синхронизацией snv\hg, без обилия ручной работы.

Готов даже делать отдельную синхронизацию файлов (тут SyncToy работает вполне нормально) и синхронизацию проектов (commit в 2 разные системы, копия в инете (bitbucket) на флешке) разнести.
  • Вопрос задан
  • 3758 просмотров
Пригласить эксперта
Ответы на вопрос 3
1) для файлов я бы использовал rsync
2) для mercurial — сам mercurial. он работает и с svn-репозиториями через расширение hgsubversion (входит в состав, но не подключено по умолчанию
Ответ написан
@rPman
Слишком сумбурно описана задача, но что то похожее я давно пытаюсь реализовать в полном объеме для себя.
1. Если есть возможность четкого выделения централизованного хранилища, доступного всегда (точнее перед и сразу же после любых изменений на любых 'узлах'/местах/компьютеров), например флешка или сервер в сети, то достаточно использовать rsync или приложения на его основе (например rdiffbackup) — это наиболее эффективное по трафику средство синхронизации каталогов.
Так же можно воспользоваться более дубовыми средствами типа tar --incremental или diff/patch, если речь идет только о создании оффлайн патчей.
2. если четкого хранилища нет то готовых средств я не нашел, но почти всегда в частном случае задачу можно свести к первому варианту.

Вообще то что то монструозное и крутое я потихоньку разрабатываю в свободное время, возможно это будет комплекс средств сразу для нескольких платформ (pc/mobile), по крайней мере я устал ждать этого от dropbox и аналогов.
Ответ написан
@aleks_raiden
Dropbox умеет по локалке, есть даже такая опция в настройках. И стоит достаточно дешево.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы