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

  • Автор темы Автор темы seva2
  • Дата начала Дата начала

seva2

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

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

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

Как Вы организовываете сливы?
 
ручками под неусыпным контролем обоими частями мозга тем, кто отвечает за слив. ибо слить могут все, что душе угодно и крайнего найти будет трудно
 
Странно что еще ничего толкового не придумали User friendly(
 
Почему не придумали.
Пишешь скриптик который делает svn up нужным номером ревизии :-)
 
Странно что еще ничего толкового не придумали User friendly(
Это говорит человек, который ставит непонятные задачи, жутко ограничив при этом людей в инструментах.

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

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

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

mod_dav вполне подойдет, с ним любой свн клиент может работать (встроенный в zend или в eclipse или tortoise svn) и права можно настроить кому на какой проект кому читать кому писать.
 
Если критично не давать 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 например), то надо не симлинк делать, а менять путь в конфиге (иначе в кэше акселератора останется старье).
 
fixxxer
Уже давно использую очень похожую схему, зарекомендовала себя отлично.
 
Сверху