INT 21h

Select language

Чистим SVN репозиторий от старых проектов

№ 6154 В разделе Sysadmin от April 8th, 2014,
В подшивках: ,

Часть вторая. Заскриптованная.

Создание дампа (или дампов, если у вас нашлись “битые” ревизии) завершено. Все они оказались во директории /mnt/disk_3tb/tmp/orig/

Теперь зайдите в вашу временную директорию (у меня /mnt/disk_3tb/tmp/) и создайте там скрипт filter.sh:

#!/bin/bash

DUMPS_PATH="./orig"
FILTERED_PATH="./filtered"
NEW_REPO="./mynewrepo"

#get project list
projects="`cat ./projects`"

#get dump list and extract commits
dump_list=`ls -w1 $DUMPS_PATH/*.dump`

for dump in $dump_list
do
    nice -10 svndumpfilter include $projects < $dump > $FILTERED_PATH/filtered_`basename $dump`
    nice -10 svnadmin load $NEW_REPO < $FILTERED_PATH/filtered_`basename $dump`
    sleep 1
done

Следующий шаг это создание файла projects рядом со скриптом внутри которого будут описаны нужные для переноса в новый репозиторий ветки (или наоборот исключаемые, если в скрипте include заменить на exclude). Ветки должны быть написаны в одну строку через пробел.

Например, так:
/Android /sites /client_projects /documents

Теперь можно сделать скрипт исполняемым и запустить:
]# chmod +x ./filter.sh
]# ./filter.sh

Скрипт переберет все дампы внутри orig, отфильтрует из всей этой кучи нужные ветки, хранящиеся в файле projects и тут же закоммитит их в новый чистенький репозиторий mynewrepo.

Удачи 🙂

Эта запись разделена на части:

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Облачная платформа
Яндекс.Метрика

Fortune cookie: oral sex, n.: The taste of things to come.