Архив категории: vcs

git linux

Компактное хранение исходного кода

kernel-zip-src

При реализации проекта DistTest возникла необходимость собирать ядро linux из разных версий исходников. И первым решением было загружать готовые архивы исходников с kernel.org для каждой отдельной версии. Но вскоре стало понятно, что данный подход требует значительного дискового пространства: 0.5-1ГБ на каждую версию, которых в данный момент порядка 1000. А также данные подход позволяет собирать только именованные версии, но не версии соответствующие отдельным коммитам.

Для решения проблемы дискового пространства можно хранить несколько базовых версий и приводить их к необходимому виду с помощью патчей, но это приводит к значительному объёму I/O со случайным доступом, что выполняется медленно на HDD и приводит к износу SSD. Тот факт, что исходники необходимой версии требуются лишь временно, подсказывает использовать tmpfs. Но есть более эффективный подход в плане использования оперативной памяти — хранить в tmpfs только отличающиеся от уже имеющихся файлов, что позволяет сделать aufs.

Читать далее »

backup programming svn vcs

Резервное копирование удалённого SVN репозитория

Создадим локальный репозиторий с именем «my_local_repo».

Разрешим делать с локальным репозиторием что угодно. В директории

Инициализируем локальную копию. Возможно придётся ввести логин и пароль.

запускаем в интерактивном режиме для ввода логина и пароля и их сохранения, а также первой загрузки данных из удалённого репозитория.

Напишем скрипт для cron’а.
backup_svn_script.sh:

Он будет создавать файлы вида «svn_2012_09_07_01_34_01.tar.gz» в вашей директории с бэкапами.

Для добавления скрипта в крон, нужно запустить:

и, например для сохранения бэкапа в 4:00 каждый день, добавить следующую строчку:

Этот метод очень неэффективный в отношении дискового пространства, но очень простой и быстро реализуемый. Подойдёт для минимальной защиты от сбоев основного svn сервера.

Источники:
using svnsync
installing subversion server in ubuntu