FastNetMon

Wednesday 20 October 2010

Как выгрузить всю Linux систему (/) в систему контроля версий?

Сабж. Какую VCS (систему контроля версий) использовать, чтобы вгрузить в нее мегабайт 200-400? Тип контента - иерархия папок Линукс системы, полная. Разумеется, также нужно, чтобы в каждой папке не было подпапки .svn, ибо подпапок тыщи и вычищать будет сложно.

Итого, требование можно сформулировать как:
VCS with permissions, owners and blank folders tracking

Как вариант Гугл сразу подсказывает:
etckeeper - store /etc in git, mercurial, or bzr

Bazaar
Вот Bazaar сами разработчики не рекомендуют:
That said, bzr is primarily a source code control system, not a media archive system. So it is not a priority to support enormous (hundred-megabyte) binaries or multi-gigabyte trees. There are other tools better suited to that.

Также Bazaar не умеет трекить пермишшены и овнеров:
Versions of Bazaar of 0.1 and later support the tracking of the executable bit. Other permission bits are not currently tracked.

Источник: http://wiki.bazaar.canonical.com/FAQ#Are binary files handled?

Subversion
Subversion также не подходит, так как заспамливает все папки своими .svn.

Mercurial
Далее Mercurial имеет вполне крупные примеры используемых репо: http://mercurial.selenic.com/wiki/RepoSamples

Но имеет неприятную фичу, он не умеет хранить пустые папки: пруфлинк

Общее
Вот список VCS, которые умеют хранить просто пустые папки: http://stackoverflow.com/questions/1080174/scm-vcs-tracking-directories

Заключение
Похоже, то, что я хочу реализовать не получится через VCS ну никак. Разве что подключать Puppet и делать все изменения через него, тогда ничего не потеряется точно :) И он как раз ругается (точнее показывает диффы конфигов), как только замечает, какие файлы изменились.

3 comments :

  1. проблема ли пустые папки? ведь в них можно положить файл если сильно надо. И кстати svn теперь с 1.7 содержит лишь одну папку в корне.

    ReplyDelete
  2. http://mercurial.selenic.com/wiki/RepoSamples - битая ссылка
    уберите "]"

    ReplyDelete

Note: only a member of this blog may post a comment.