Назад | Перейти на главную страницу

управление версиями файлов в ubuntu (например, версии в mac os)

Я немного не понимаю, где искать по этому поводу, поэтому я спрашиваю, может быть что-то очевидное, и я просто не нажимаю правильные ключевые слова Google.

Вот что я пытаюсь сделать: у меня есть несколько пользователей, которые обращаются к файлам в каталоге (и его подкаталогах) и изменяют их через веб-приложение. Он может переходить от редактирования к загрузке поверх них и т. Д. На случай, если кто-то совершит ошибку, я хотел бы реализовать некоторый контроль версий, где пользователи могли бы в конечном итоге откатить изменения, если это необходимо (немного по строкам Версий на Mac)

Мы говорим о видео, в основном изображениях, но также о zip, pdf, тексте, словах и т. Д. На сервере Ubuntu 12.04

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

Если бы я был готов пожертвовать требуемым пространством, я, вероятно, мог бы использовать rdiff-backup, но, учитывая, что в некоторых случаях мы говорим о терабитах, я не очень склонен использовать эту опцию (хотя это все еще возможно)

Есть ли какие-либо инструменты контроля версий файловой системы, готовые к производству? Могут ли они быть ограничены одним директором? Есть ли инструмент, который может отслеживать изменения в каталоге и прозрачно записывать их как diff? то есть: изменение файла не изменяет файл, а генерирует различие, все это прозрачно, как если бы файл был изменен .. И т.д.

Заранее благодарим за понимание. Есть ли там какие-нибудь инструменты

Другой вариант - настроить репозиторий 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

Лучшим вариантом в этом случае будут снимки, предлагаемые ZFS или btrfs. Однако надежного порта ZFS на Linux нет (пока), а btrfs недостаточно стабилен для производственного использования (IMHO).