?

Log in

No account? Create an account
Previous Entry Поделиться Next Entry
Export SVN to FTP
devpreview
Написал простенький shell-скрипт для экспорта PHP-сорцев на FTP. Использовал для этого SVN и LFTP. LFTP - это консольный FTP-клиент для UNIX, что такое SVN, думаю, объяснять не надо.
В итоге получилось следующее:

#!/bin/sh
echo "Export files to sam-izdat.com. Press Enter..."
read var
svn export file:///home/www/sam-izdat/repository/sam-izdat/ /tmp/samizdat

cd /tmp/samizdat
rm -rf ./Zend
echo "Conntect to FTP..."
lftp __LOGIN__:__PASSWORD__@sam-izdat.com <<EOF
mirror -R ./ ./
chmod -R 0777 ./mails
ls -al
quit
EOF

cd /
rm -rf /tmp/samizdat
echo "Done."

Что бы каждый раз не выгружать Zend Engine, который у меня находится в директории Zend, я решил не удалять его из репазитария, а просто удалять из временной директории, которую я использую для экспорта из SVN. Для директории mails требуются права 0777, которые с успехом устанавливаются с помощью chmod.
Внимание!!! Все существующие на ftp файлы затираются!

В заключении хотел бы сказать, что LFTP мне очень понравилась - рекомендую.
Метки: , ,

  • 1
слу
такое дело - сам вот ищю что нить похожее
может ты знаешь как сделать что бы не переливать каждый раз экспортом все скрипты
а выбрать только изменения с последней (ну или любой другой) указанно ревизии ?

В теории есть svn log - можно попробовать написать скрипт, который бы автоматом выбирал файлы для экспорта.
Но нужно не забывать не только выгружать новые/изменённые файлы, но и удалять файлы, которых нет в текущей ревизии.

P.S. Вообще этот пост "пережиток прошлого". Сейчас я на продакшн сервер экспортом выгружаю бранч в директорию, например, www.1267 и ставлю линк с www на www.1267. Если что-то пошло не так, то всегда можно одной командой откатиться на www.1266

Да, ну и самое главное - нужно знать какая ревизия была выгружена на сервер до этого, иначе как понять какие файлы заменять? А если фалы на сервере кто-то "подправил руками"? Короче говоря, ИМХО, куда правильнее выгружать весь бранч.

А вот я наткнулся и на пример на хабре (экспорт через svn log):
http://habrahabr.ru/blogs/development_tools/60220/

И почитайте там комменты ;)

  • 1