Checkout Subversion последние изменения для загрузки на FTP - PullRequest
0 голосов
/ 06 марта 2012

Если я внесу небольшие изменения, скажем, в пять разных файлов, и передам их в Subversion, как я смогу извлечь именно эти файлы в исходной структуре папок для последующей загрузки и перезаписи на FTP-сервере?

Если я пытаюсь проверить HEAD без рекурсии, я просто получаю index.php и некоторые другие файлы, которые не имеют ничего общего с последними изменениями.


Прикрепленное решение: Я сделал небольшой сценарий - не очень элегантно, но он работает ...

#!/bin/bash
URL='http://svn ...';
TARGET='./ftp';

read -p "Please enter start revision: " VERSION1
read -p "Please enter ending revision: " VERSION2
read -p "Remove old? [yes] " remove

# getting changes
svn diff $URL --summarize -r$VERSION1:$VERSION2 > changes

# checkout complete revision
svn checkout  $URL -r HEAD

# remove previous
if [ $remove = 'yes'] ; then
if [ -d $TARGET ] ; then
    rm -r $TARGET   
else
    mkdir $TARGET   
fi
fi

for entry in `cat changes`; do
    e=${entry#*$URL/}
    item=$TARGET'/'$e;
    DIR=${item%/*} 

    # create directory
    if [ -d $DIR ] ; then
        echo '';
    else
        mkdir -p $DIR
    fi

    cp './trunk/'$e $DIR
    echo $e
done

echo "Done ..."
read any

Проверяет весь ствол и извлекает файлы, которые были изменены в указанном диапазоне ревизий.

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

В корне существующая рабочая копия

svn diff --summarize -rN:M

и работа со вторым столбцом

0 голосов
/ 06 марта 2012

Если у вас есть полный контроль над вашим сервером, вы можете svn checkout указать конкретный путь репо на целевом сервере, а затем запустить svn update, чтобы получить последние файлы по мере необходимости.

...