Как синхронизировать репозиторий через облачные хранилища (Google Drive, Dropbox, etc)?
Один разработчик использует несколько машин. Переходя от одной к другой нужно иметь актуальный рабочий каталог проекта. Проект содержится в репозитории (hg, но актуально для любой vcs). Коммитить в удаленный репозиторий чтобы просто перейти на другую машину неудобно. Хочется просто сесть и продолжить работу.
Кажется, что можно просто положить проект в любой облачный диск (Google drive, dropbox, etc) и проблема решена. Но я слышал что в таком сценарии hg начинает глючить из-за влияния неконтролируемой им синхронизации служебных файлов репозитория. Коллега использует этот сценарий и иногда репозиторий зависает с непонятными ошибками.
Можно исключить из синхронизации через облако саму папку с репозитарием .hg и синхронизировать только рабочий каталог. Но есть проблема:
* делаем несколько новых коммитов, публикуем в "главный" репозиторий
* делаем еще изменения в рабочем каталоге,
* переходим на другую машину
* рабочий каталог репозитория уже обновлен - все изменения присутствуют
* стягиваем новые коммиты из "главного" репозитория
Как теперь объяснить репозиторию, что в рабочем каталоге уже актуальная версия на "вот этот коммит" + еще какие-то незафиксированные изменения???
Если просто сделать update, то потеряем незафиксированные изменения.
Возможно я не знаю банальной команды hg.
Возможно нужно как-то правильно "готовить" hg в связке с облачной синхронизацией.
Поделитесь пожалуйста своим решением проблемы.
Nikolay Petyukh, запушить - не проблема, но я не хочу в репозитории коммиты вида "еще некоторые изменения".
Коммит должен содержать атомарный и осмысленный набор изменений. Т.е. я делаю коммиты когда готов к этому, а не когда мне вдруг приспичило это сделать.
Учитывая, что при каждом коммите папку с БД репозитория знатно переколбашивает, вы рискуете тратить десятки минут на синхронизацию средствами облачных дисков, в то время как отправка диффов при синхронизации с репой займет секунды.