Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 6154 В разделе
Sysadmin
от April 8th, 2014,
В подшивках: Linux, SVN
Часть вторая. Заскриптованная.
Создание дампа (или дампов, если у вас нашлись “битые” ревизии) завершено. Все они оказались во директории /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.
Удачи 🙂
Эта запись разделена на части:
- Часть 1
- Часть 2
Fortune cookie: oral sex, n.: The taste of things to come.
Leave a Reply