svn / git / mercurial в стиле dropbox: автоматическая фиксация при изменении и автоматическая проверка - PullRequest
8 голосов
/ 15 августа 2011

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

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

Спасибо!

Ответы [ 3 ]

5 голосов
/ 15 августа 2011

Это зависит от ваших «проектов».

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

Каждые 15 минут Flashbake просматривает любые файлы, которые вы просите проверить (у меня он просматривает все мои художественные произведения, мой список задач, мой файл полезных битов информации иполные электронные версии моих последних книг) и записывает любые изменения, сделанные со времени последней проверки, помечая их текущим часовым поясом на системных часах, погодой в этом часовом поясе, полученной из Google, и последними тремя заголовками с вашимипод ними в RSS-ленте вашего блога (я охарактеризовал это как «Где я, как там, и о чем я думаю?»).Он также записывает время работы вашего компьютера.Для будущей версии, я думаю, было бы забавно, если бы последние три песни были воспроизведены вашим музыкальным проигрывателем.( source )

Он основан на git для управления версиями и cron для автоматических обновлений (git достаточно компактен, чтобы сделать его доступным).Вы можете посмотреть на другой обзор .Код: здесь .

Если вы действительно, действительно хотите обнаружение изменения файла, а не фиксацию каждые X минут (иначе как параноик по поводу данных), вы можете захотеть что-то на основеinotify ( details - обратите внимание, что эти автоматические коммиты могут быстро сложиться!).

Еще один вариант (который не обязательно решает вопрос автоматической фиксации, поэтому вы можете захотетьсмешать) это посмотреть на запуск git через dropbox.Это уже обсуждалось здесь на SO .

1 голос
/ 15 августа 2011

Dropbox хранит несколько версий файлов в истории.Вряд ли это можно назвать «управлением версиями», но вы можете восстановить файлы в прошлом.

Если вы действительно не можете быть обеспокоены коммитом и слиянием, я бы сказал, просто жить с Dropbox, так какэто красиво и автоматически.

Вы можете настроить запланированное задание (для Windows) или задание Cron (для Linux), которое будет выполнять фиксацию / push каждые 5 минут.И тянуть / обновлять каждый раз при запуске компьютера.Но я вижу потенциальный кошмар, ожидающий, особенно при извлечении / обновлении, когда требуется ручное слияние.

Кроме того, я бы посоветовал использовать Mercurial, поскольку его гораздо легче изучать / обрабатывать, чем gitи более продвинутый, чем свн.Это снимет боль с системы контроля версий.

0 голосов
/ 20 декабря 2015

В итоге я использовал btsync для синхронизации баз моего кода между несколькими компьютерами.Это создает немедленную функцию автоматической синхронизации, которую я искал, и она полностью прозрачна для меня.(Это также решает проблемы с раздутыми автокоммитами, как упомянуто выше) Но совет: не пытайтесь синхронизировать репо на всех ваших компьютерах.Хотя это возможно, для меня это было ненужным, и лучше просто синхронизировать файлы и хранить репозиторий на одной машине, на которую вы можете удаленно выполнить фиксацию и при необходимости нажать.Таким образом, вы получаете управление версиями и автоматическую синхронизацию (или вынуждены совершать ежедневные коммиты, или беспокоиться о необходимости коммитов, когда вам нужно покинуть компьютер, или приходится иметь дело с любыми ошибками коммитов, которые появляются перед тем, как вы закрываете свой ноутбук, или большинствовсе должны полагаться на свою ошибочную память, чтобы помнить совершать ежедневно (большой для меня!)).

...