Это перекрестный пост от stackoverflow, потому что я считаю, что здесь я могу получить более квалифицированную аудиторию.
Ситуация
У меня есть довольно большой репозиторий Subversion, который я пытаюсь эффективно создать. Размер репозитория составляет около 6 ГБ и продолжает расти. Некоторые большие коммиты имеют размер от 500 до 1 ГБ.
Я пытаюсь сделать резервную копию этого репозитория за пределами сайта через Интернет-ссылку.
Объясняя размер этого
Кому интересно, вся производственная среда для различных сайтов (файлы конфигурации, EXE, файлы данных) хранится в этом едином репозитории, чтобы мы могли откатиться к существующей рабочей версии и отслеживать изменения в производственной настройке. Код хранится в другом репозитории.
Как
Вот что я на самом деле делаю:
Эта проблема
Во-первых, я должен сказать, что это работает, хотя у него все еще есть основная проблема.
Проблема заключается в том, что я ожидал, что каждый раз, когда процесс будет запускаться, только новый файлы / данные ревизий будут скопированы ([repos] / db / revs / 0 / ...), что потребует только полосы пропускания и времени, когда будет сделана большая фиксация. Однако вместо этого:
Как будто файлы в [repos] / db / revs / 0 / ... меняются каждый раз, когда я делаю горячую копию.
Вопросы
Это ожидаемое поведение от "svnadmin hotcopy", когда [repos] / db / revs / 0 / ... меняются с одной горячей копии на другую?
Любые предложения или варианты, которые я мог бы использовать, чтобы сделать эту горячую копию rsync дружественный или скажи rsyncable?
Я не совсем уверен, что использование svnadmin dump во всем репозитории приведет к файл "rsyncable".
Файлы в db/revs/
не меняются, но их временные метки меняются. --size-only
может быть ответом.
Когда вы шифруете / сжимаете репозиторий, любое небольшое изменение базовых данных (репозитория) распространяется по зашифрованному / сжатому файлу (файлам). Таким образом, изменение одного байта может распространяться на весь набор зашифрованных / сжатых данных. Итак, с точки зрения rsync, все изменилось.