Слив SVN на сервер

seva2

Партнер PHPClub.ru
Слив SVN на сервер

Есть ли какая то веб морда для SVN чтобы поставить на сервер и програмисты сами запускали слив на сервер из нужной директории SVN нужной ревизии.

Не у всех есть доступ к SSH.

Как Вы организовываете сливы?
 

440hz

php.ru
ручками под неусыпным контролем обоими частями мозга тем, кто отвечает за слив. ибо слить могут все, что душе угодно и крайнего найти будет трудно
 

seva2

Партнер PHPClub.ru
Странно что еще ничего толкового не придумали User friendly(
 

confguru

ExAdmin
Команда форума
Почему не придумали.
Пишешь скриптик который делает svn up нужным номером ревизии :)
 

zerkms

TDD infected
Команда форума
Странно что еще ничего толкового не придумали User friendly(
Это говорит человек, который ставит непонятные задачи, жутко ограничив при этом людей в инструментах.

Хочется чтобы всё было удобно и "правильно" - дай людям нормальный SSH. А то заставил их программировать в рукавичках, а в итоге "не придумали User friendly"
 

dimagolov

Новичок
не понял, а mod_dav к апачу вас чем не устраивает? замечательно по http/https можно работать с репозитарием. правда, засада, nginx, как я понял, такого не умеет, приходится ради этого апач держать.

кого не устраивает стандартный интерфейс mod_dav (веб-морда), есть тулза viewvc, там ревизии можно смотреть красиво, правда, я в свое время так и не смог себе ее прикрутить, были траблы с правами, быстро обломался.
 

dima-u

Новичок
поставьте на apache через nginx прокси, если надо через nginx - будет работать =)

При чем тут ssh не очень понятно.
Слив через любой свн клиент.

mod_dav вполне подойдет, с ним любой свн клиент может работать (встроенный в zend или в eclipse или tortoise svn) и права можно настроить кому на какой проект кому читать кому писать.
 

fixxxer

К.О.
Партнер клуба
Если критично не давать ssh (хотя и при его наличии схема та же, просто инициатор деплоя - не сервер), я бы сделал так.

svn up на веб сайте - нехорошо, ибо неатомарно (некоторое время будет присутсвовать неконсистентный код); класть веб сервер на время обновления мы вряд ли хотим (если хотим - то это все не нужно конечно :)).

Структура (префиксы на усмотрение, пусть будет /var/www/site.ru):

/var/www/site.ru/
/var/www/site.ru/234
/var/www/site.ru/236
/var/www/site.ru/255
/var/www/site.ru/current -> симлинк на последнюю /var/www/site.ru/255

Конфиги веб сервера при этом указывают в current.

Скрипт (скажем, вебморда с кнопкой deploy):
1) смотрим текущий номер ревизии - пусть он равен 260
2) делаем svn export в /var/www/site.ru/260
3) меняем симлинк current -> 260
4) делаем apachectl reload (или там php-fpm reload, что там стоит).

При этом храним последние N (например 3) предыдущие, чтобы на случай, если обнаружилось, что после выкатки ничего не работает, можно было срочно откатиться назад (в той же морде выбор из списка предыдущих ревизий и кнопочка "откатиться" - меняет симлинк и релоадит).

Есть хитрый момент. Если с целью оптимизации производительности в акселераторе отключено отслеживание изменений файлов (apc.stat = 0 например), то надо не симлинк делать, а менять путь в конфиге (иначе в кэше акселератора останется старье).
 

crocodile2u

http://vbolshov.org.ru
fixxxer
Уже давно использую очень похожую схему, зарекомендовала себя отлично.
 
Сверху