Змінюй хід війни! Допомагай ЗСУ!

Проблемма с настройкой SVN

  • Автор теми Автор теми igritsay
  • Дата створення Дата створення

igritsay

Привіт!
Статус: Офлайн
Реєстрація: 19.06.2009
Повідом.: 2
Проблемма с настройкой SVN

Давно занимаюсь web-разработками и последнее время стал подумывать над созданием собственного web-сервера на базе FreeBSD. Что хотелось бы в нем видеть:

1) Apache
2) MySQL
3) PHP
4) SVN

С первыми тремя пунктами всё понятно и документировано во многих справочниках. А вот с последним возникла трудность. Дело в том что хотелось бы использовать SVN не просто в качестве файло-хранилища проэктов, а иметь возможность изменять рабочий сайт при помощи SVN.

Например mysite.url - собственно сайт,

но в то же время должна быть возможность с помощью SVN клиента залить обновлённые файлы по адресу mysite.url (или mysite.url/svn... url не обязательно должен быт тем же), которые станут доступными по адресу mysite.url из браузера.

Похожий функционал выполняет модуль апача mod dav svn. Если в конфиг апача добавить следующие строчки
Код:
<Location /svn>
DAV svn
SVNParentPath /deta/svn
</Location>

то к проектам можно получить доступ из браузера и свн-клиента по адресу mysite.url/svn/project. Однако это не совсем то что требуется. Нужно чтоб проэкт отображался в корне сайта и не в виде листинга файлов а как обычно это делается в апаче - подгребались индексы, и т.д.

Возможно ли такое?

Единственное что получилось - экспорт проэкта из репозитория в корневой каталог сайта. Но нужно чтобы не требовалось дополнительно манипуляций непосредственно в SSH. Над проэктом могут работать несколько человек и у них должна быть возможность обновлять и просматривать сайт не имея при этом доступа к SSH.
 
Единственное что получилось - экспорт проэкта из репозитория в корневой каталог сайта. Но нужно чтобы не требовалось дополнительно манипуляций непосредственно в SSH. Над проэктом могут работать несколько человек и у них должна быть возможность обновлять и просматривать сайт не имея при этом доступа к SSH.

post-commit hooks вам в помощь

Вопрос Проблемма с настройкой SVN
Давно занимаюсь web-разработками и последнее время стал подумывать над созданием собственного web-сервера на базе FreeBSD. Что хотелось бы в нем видеть:

1) Apache
2) MySQL
3) PHP
4) SVN

С первыми тремя пунктами всё понятно и документировано во многих справочниках. А вот с последним возникла трудность. Дело в том что хотелось бы использовать SVN не просто в качестве файло-хранилища проэктов, а иметь возможность изменять рабочий сайт при помощи SVN.

Например mysite.url - собственно сайт,

но в то же время должна быть возможность с помощью SVN клиента залить обновлённые файлы по адресу mysite.url (или mysite.url/svn... url не обязательно должен быт тем же), которые станут доступными по адресу mysite.url из браузера.

Похожий функционал выполняет модуль апача mod dav svn. Если в конфиг апача добавить следующие строчки
Код:

<Location /svn>
DAV svn
SVNParentPath /deta/svn
</Location>

то к проектам можно получить доступ из браузера и свн-клиента по адресу mysite.url/svn/project. Однако это не совсем то что требуется. Нужно чтоб проэкт отображался в корне сайта и не в виде листинга файлов а как обычно это делается в апаче - подгребались индексы, и т.д.

хмм я чет не понял - ну сделайте виртуалхост с индексами и тд
запретите к примеру скачивание .svn
и ходите на этот виртуалхост

листинг файлов - из-за location svn в апаче
 
Чесна говоря у гугла есть халявный SVN, либо гдето купить хостинг свн, а так для локалки поднимать если небольшой тим или один человек имхо не нужное дело.
 
<флейм>
свн ****о, меркуриал рулит!
</флейм>
 
post-commit hooks вам в помощь

Спасибо! Это то что мне было нужно!
Хоть сам и давно пользуюсь svn, но своего сервера раньше ставить, тем более конфигурировать не доводилось...
Сделал проэкт в репозитории под сайт, затем сделал чекаут его в рут сервера, а в post-commit хуке прописал апдейт этой папки при каждом коммите в проэкт репозитория, чтоб он обновлялся в рут-папке вебсервера.

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

Вы меня не правильно поняли. У меня статический внешний IP, дома организована локальная сеть через роутер, без дела валяется старый камп и нужен свой сервер для своих разработок. Эксперементировать с конфигурацией сервера хостер никакой не даст, а тот который даст попросит за это приличную сумму. Плюс в дальнейшем планирую расширить команду разработчиков, и так уж сложилось, к svn я уже хорошо привык и им доволен :)
 
Эксперементировать с конфигурацией сервера хостер никакой не даст, а тот который даст попросит за это приличную сумму.

Сервера выделенные от $30 в месяц, подключенные к 100 мбит каналу/5тб, не так уж и много стоят:)
там можете делать что хотите
 
svn export еще никто не отменял!
 
Настройка SVN сервера.
1. Устанавливаем VisualSVN-Server-2.1.1.msi
2. Расспаковываем в C:\Program Files (x86)\VisualSVN Server\ архив VisualSVN-Server-Trac-2.1.1.21699, так чтобы получилась папка trac в каталоге VisualSVN Server
3. Создаем на диске C папку с названием Trac. Получится (C:\Trac)
4. Создаем в папке Trac папку MyProject (Ну или имя вашего проекта). Получится (C:\Trac\MyProject)
5. Кидаем в папку C:\Program Files (x86)\VisualSVN Server\ фаил sqlite3.exe
6. Создаем в Repositories запустив Visual SVN Server Manager. Название Repositories, должно быть такое же как название папки в папке Trac (MyProject).
7. Теперь в командной строке выполним команду "C:\Program Files (x86)\VisualSVN Server\trac\trac-admin.bat" C:\Trac\MyProject initenv После того как выполните комманду, выскочит надпись Project Name [My Project]> вводим имя то что было создано в Repositories - MyProgect жмем Enter. Потом выскочит - Database connection string [sqllite:db/trac.db] Жмем просто Enter на клавиатуре и все. Потом выскочит Repository type [svn]> Вводим путь к нашей Repositories, в нашем случае C:\repositories\myproject Далее выскочит - Path to repository [/path/to/repos]> Просто жмем Enter и все. Начнется проверка и установка. Ждем до конца завершения. Потом выходим из коммандной строки.
8. Создаем учетные записи пользователей в Visual SVN Server Manager и ставим на них права записи/чтения.
Настройка и подключение Timeline Trac к вашему SVN серверу.
1. Открываем С:\Trac\MyProject\conf там будет trac.ini фаил. Открываем его. Ищем две строчки. Первая: repository_dir = Вторая: repository_type = C:\repositories\myproject
2. Теперь берем из второй строчки концовку строки C:\repositories\myproject и вставляем в первую. У нас получится repository_dir = C:\repositories\myproject а во второй просто repository_type = Теперь во вторую дописываем слово svn, получится во второй строчки так: repository_type = svn В итоге у нас получились 2 строки с параметрами repository_dir = C:\repositories\myproject и repository_type = svn. Сохраняем фаил trac.ini.
3. Делаем рестарт Virtual SVN Server через Службы. Кто не знает как это делать, то просто перезапустите компьютер.
4. Теперь заходим C:\Program Files (x86)\VisualSVN Server\conf\ и открываем фаил httpd-custom.conf. В нем вставляем такие строчки:

LoadModule python_module "trac/python/mod_python_so.pyd"
LoadModule authz_user_module bin/mod_authz_user.so
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir C:\Trac
PythonOption TracUriRoot /trac

AuthName "Trac"
AuthType Basic
AuthBasicProvider file
AuthUserFile "C:/Repositories/htpasswd"

Require valid-user
</Location>

5. Теперь нам надо добавить переменную PYTHONHOME с значением C:\Program Files (x86)\VisualSVN Server\Trac\python Это делается в Переменных Средах, Системные переменные.

Все готово. Наслаждайтесь ;)

Мануал лично мой Состовлял лично я. Даже с подключением таймлайна к svn.
 
Мы когда девелопили, писали маленький скриптик svn export, его дёргаешь - и всё экспортировалось на вебсервер.

Сейчас подумываю о SaaS решении для разработчиков в рамках своего хостинг проекта. Типа LAMP + Xdegug + Trac + SVN + кучу предустановленных фреймёрков разные версих с возможностью переключаться между версиями на лету :)
Спрос есть? Или все настраивают подобные на коленках в домашний условиях?

Очень сомневаюсь что будет нужен этот сервис, одиночки поднимают всё что нужно локально, большие и серьезные команды берут выделенный сервер и всё что нужно собирают на нём. Мидлам же хватает и
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
Думаю и для одиночек, и для серьезных команд все упирается во время разворачивания всего этого зоопарка.

А xp-dev.com как раз то, что у меня в планах. Ведь тем же xp-dev.com пользуются и все довольны.

Ну велосипеды изобретать тоже не стоит. Я немного разовью идею, вот если написать сервис который бы разворачивал со всем вышеописанным ещё и платформу для "Continuous Integration" под выбранный язык и фреймворк, это другое дело, такого ещё нет и пользовалось бы спросом. Одиночкам и мидлам оно не особо впилось, а вот большие и серьезные пользуются, они кстати и самые платежеспособные.

С красивым дашбордом, где можно двумя кликами развернуть, подключить тесты, добавить новых членов команды, установить права, время сборки и бла бла бла.

Это уже не велосипед, что скажете?
 
Для снижения нагрузки на сервер сайта рекомендуют использовать не apche с движком php, а связку nginx + php-fpm + eaccelerator + memcache
 
Для снижения нагрузки на сервер сайта рекомендуют использовать не apche с движком php, а связку nginx + php-fpm + eaccelerator + memcache

Не может быть :D Ну теперь интернет будет в два раза быстрей скачиваться!
 
Не знаю про пхп но для джавы помоему самое простое какойнить СВН сервак и Континиум от Апача в связке с мавеном творит чудеса. Включая различные сборки автодеплой на тесторвый сервак и т.д.

Один раз настроил и забыл.

Не знаю про пхп но для джавы помоему самое простое какойнить СВН сервак и Континиум от Апача в связке с мавеном творит чудеса. Включая различные сборки автодеплой на тесторвый сервак и т.д.

Один раз настроил и забыл.

Очень сомневаюсь что будет нужен этот сервис, одиночки поднимают всё что нужно локально, большие и серьезные команды берут выделенный сервер и всё что нужно собирают на нём. Мидлам же хватает и ...

Ага и потом находиш точный клон своего стартапа в инете уже запущеный и владелец Сунь Хунь Лунь из Пекина:)
 
Назад
Зверху Знизу