Управление версиями файлов в Ubuntu (например, версии в Mac OS)
Я немного растерялся относительно того, где искать это, поэтому я спрашиваю, может быть что-то очевидное, и я просто не подбираю правильные ключевые слова Google.
Вот что я пытаюсь сделать: у меня есть несколько пользователей, которые обращаются к файлам в каталоге (и его подкаталогах) и изменяют его через веб-приложение. Он может перейти от редактирования к загрузке поверх них и т. Д.... В случае, если кто-то допустит ошибку, я хотел бы реализовать некоторый контроль версий, где пользователи могут в конечном итоге откатывать изменения, если это будет необходимо (немного по аналогии с версиями на Mac).
Мы говорим о видео, изображениях в основном, но также о zip, pdf, тексте, словах и т. Д. На сервере Ubuntu 12.04
Я хотел бы найти мои лучшие варианты за исключением необходимости разработки функциональности в веб-приложении (это было бы абсолютным последним средством). Я знаю, что мне придется добавить некоторую функциональность в приложение, чтобы соединить какой-либо инструмент, который я смогу найти, и это нормально.
Если бы я был готов пожертвовать требуемым пространством, я мог бы, вероятно, использовать rdiff-backup, но, учитывая, что в некоторых случаях мы говорим о терабитах, я не очень склонен использовать эту опцию (хотя это все еще возможно)
Существуют ли инструменты контроля версий файловой системы, готовые к работе? Могут ли они быть ограничены одним режиссером? Есть ли инструмент, который может отслеживать изменения в директории и записывать их как diff в прозрачной манере? то есть: изменение файла не изменяет файл, но генерирует diff, все это прозрачно так, как если бы файл был изменен.. И т.д.
Заранее спасибо за понимание. Есть ли там инструменты
2 ответа
Лучшим вариантом в этом случае будут снимки, предлагаемые ZFS или btrfs. Тем не менее, пока нет твердого порта ZFS для Linux, и btrfs недостаточно стабилен для производственного использования (IMHO).
Другой вариант - настроить хранилище Subversion (SVN) и изучить использование FSVS ( http://fsvs.tigris.org/). Я использую его для контроля версий всех наших серверов Linux, хотя мы говорим об этом, чтобы игнорировать множество каталогов, которые действительно бесполезны для контроля версий (таких как /tmp, /proc, /sys, /var/run и т. Д.),
В качестве примера, мы используем его для мониторинга нашего каталога загрузок FTP и регулярно помещаем любые изменения в SVN.
#!/bin/sh
# Only executes FSVS if FSVS reports outstanding changes
FSVS_CONF=~/.fsvs-conf
FSVS_WAA=~/.fsvs-waa
export FSVS_CONF FSVS_WAA
cd /var/ftp
FCOUNT=`/usr/local/bin/fsvs | grep -v 'dir.*\.$' | wc -l`
if [ $FCOUNT -gt 0 ] ; then
/usr/local/bin/fsvs ci -m "Automatic FSVS snapshot"
else
echo "Nothing changed"
fi