Если я внесу небольшие изменения, скажем, в пять разных файлов, и передам их в 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
Проверяет весь ствол и извлекает файлы, которые были изменены в указанном диапазоне ревизий.