Автоматическое управление версиями WebDAV в Git или Hg или любой современной VCS

Недавно я узнал о функции автоматического обновления SVN для WebDAV. Хотя я понимаю, что это не замена для правильного управления версиями, а сообщения, документирующие смены изменений, я считаю надежной заменой Dropbox (минус приятные графические интерфейсы и веб-страницы). Однако, поскольку коммиты в авто-версировании часты, я бы предположил, что Git или Hg лучше подходят для этого, просто из-за их более компактных баз данных (хотя мне интересно, может ли распределенная природа вещей сделать автоматизацию уродливой для разрешения конфликтов).

Является ли это функцией, которая была реализована с помощью Git или Hg, насколько известно?

Ответы

Ответ 1

Для решения этой проблемы существует один из вариантов:

WsgiDAV - это сервер WebDAV на python, который предлагает множество бэкэндов включая DVCS mercurial, а также некоторые другие модные магазины (couchdb, mongodb, MySQL, App Engine). Обратите внимание на текущую версию: "Это не производственный код".

Похоже, что другое управление версиями, чем SVN WebDAV, автовверсия, позволяя вам совершать изменения, состоящие из нескольких обновлений одновременно (перетаскивая их из "edit" в "выпущенные" папки и так, в то время как autoversioning SVN + WebDAV создает слишком много коммитов, создавая версию для изменения. Таким образом, она не совсем полностью автоматизирована, но не требует доступа к командной строке и является IMO превосходной моделью.

Размышление об этом в более общем плане... Я не рекомендую полностью автоматическую фиксацию WebDAV + SVN. Как вы говорите, "коммиты в авто-версировании часты". Но они настолько часты и обычно бессмысленны.

Мое собственное решение - запустить на моем сервере хранилище git или mercurial, и с регулярным интервалом использовать cron-job для изменения версии. Уродливый, но функциональный, и не требует специальной настройки сервера/специальных модулей apache и т.д. Еще лучше, я могу получить доступ к указанному репозиторию через WebDAV, или SFTP, или к файлу windows/apple или локальному зеркалу DVCS, в зависимости от моих потребностей, и все они работают без проблем.

Git, например, имеет неплохую проверку перемещения файлов, поэтому это уменьшает необходимость в доступе к WebDAV как таковому. Если вы перемещаете каталог в SVN-контроле без прохождения уровня доступа, который переводит его в команду svn mv, тогда может произойти ужасное повреждение. AFAICT, главное преимущество WebDAV + SVN заключается в том, что он не позволяет вам нарушать вашу собственную проверку таким образом.

С другой стороны, "компактные базы данных" git или меркуриальные - не настоящая причина предпочитать их в SVN в этом случае. Однако, если вы хотите иметь дело с реальными конфликтами синхронизации, я бы порекомендовал любой из них по подрывной деятельности для их превосходного разрешения конфликтов и общего более низкого уровня суеты/гибкости.

Ответ 2

Похоже, что еще никто не писал autoversioning для других VCS, чем SVN. Поскольку поддержка WebDAV/DeltaV реализована на сервере SVN, невозможно просто переключить VCS на другой, чем SVN.

Доступ к Plain WebDAV возможен почти во всех DVCS'ах, но они позволяют получать доступ только к репозиторию для клиентов WebDAV и выполнять операции для собственного клиента DVCS, но не autoversioning.

Некоторые ссылки, чтобы узнать больше о:

Ответ 3

Если вы хотите совершить каждое сделанное вами изменение, вы также можете использовать приведенное ниже решение, наблюдая за используемыми папками, используя inotifywait:

Создание git auto-comit

Этот, похоже, работает с любым версированием, которое вы можете использовать.