Управление версиями файлов в 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
Другие вопросы по тегам