Я начал использовать svn еще во время работы в Windows и соответственно использовал его как клиент ЧерепахаSVN .
В то время я был очень взволнован новой функцией, описанной в статье.
Умный экспорт из SVN с использованием TortoiseSVN .
Буквально недавно я сделал то, на что давно не было времени — установил Linux на свой рабочий компьютер.
И вот незадача, подобного функционала я не нашел ни в одном из опробованных мною графических клиентов.
Мало.
Прочитав svn --help, я не нашел опции, дающей такой результат. Это позор.
Учитывая, что департамент уже научился делать такой экспорт для плавного обновления проектов.
В общем, не буду медлить: я написал bash-скрипт, который сравнивает и экспортирует различия между двумя ревизиями.
Код
#!/bin/bash if [ $# -lt 2 ] ; then echo "usage: start_revision end_revision [project_name]" exit 0 fi dir_prefix='!UPDATES/' svn_repo='svn://<svn_host>:<svn_port>' if [[ $3 != '' ]] then project=$svn_repo'/'$3'/' fi revision_start=$1 revision_end=$2 files=`svn diff --summarize -r $revision_start:$revision_end $project | awk '{print \$2}'` echo "svn diff --summarize -r $revision_start:$revision_end $project | awk '{print \$2}'" declare -a filelist i=0 for file in $files; do dir='' filelist[$i]=`echo $file | sed -e 's/\//\n/g'` j=0 declare -a items for item in ${filelist[$i]}; do items[$j]=$item j=`echo $j+1 | bc` done #create dirs j=0 cur_dir='' els_count=`echo ${#items[@]}-1 | bc` for ditem in ${items[@]}; do if [[ $j = $els_count ]] #if lat element - it's filename then #store filename file_name=$ditem break fi cur_dir=$cur_dir$ditem'/' j=`echo $j+1 | bc` done dir=${dir_prefix}`date +%Y-%m-%d`'/'${revision_end}'/'$cur_dir mkdir -p $dir #export files in created dirs svn export -r $revision_end $project$file ./$dir$file_name i=`echo $i+1 | bc` done
Настройки
Зарегистрируйте хост, на котором расположен svn-сервер.
Применение
- Введите каталог с рабочей копией
- Или введите произвольный каталог
Используй это.
"=" Теги: #svn #subversion #linux #bash #частичный экспорт #сравнение ревизий #diff #Управление проектами
-
Как Сделать Photoshop Конвейером Контента
19 Oct, 24 -
Плагин Illumination Для Firebug
19 Oct, 24 -
И Снова Зип-Квест
19 Oct, 24 -
Новый Музыкальный Портал... )
19 Oct, 24