Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

SVN на Debian 7

Linux, Настройка сервера, Разное Add comments

Работаю частенько над разными проектами, в том числе и написанием модификаций к некоторым движкам и решил, что пришло время использовать систему контроля версий. Своей простотой в настройке и пользовании попал SVN. Помимо простоты о нем еще и куча материалов в сети. Да, хотел один период поставить себе GIT, но потом понял, что это лишнее в моем случае, так как с репами работаю только я.

Краткое описание:
1. Система — Debian 7
2. Папка с сайтом — /home/www/site.com/
3. Папка с репозитарием — /home/svn/site.com/
4. Временная папка с проектом и удаленными лишними файлами — /home/svn/repo/

Имеется сервер с Debian 7, поэтому логичным будет установить svn с репозитария:

# aptitude install subversion

Создадим группу svn и добавим в нее юзера веб-сервера:

# addgroup svn
# addgroup nginx svn

Приступаем к созданию репозитария:

# mkdir /home/svn
# svnadmin create /home/svn/site.com

Репозитарий создался, пора его настроить, чтобы у гостей не было доступа:

# nano /home/svn/site.com/conf/svnserve.conf

Раскомментируем:

anon-access = none
auth-access = write
password-db = passwd

Создадим «учетки», тоесть допишем логины и пароли для Вас и напарников:

# nano /home/svn/site.com/conf/passwd

Дописываем пользователей в формате:

username = password

Теперь пора добавить хук(hook). Хук ы SVN — это описание скрипт, который запускается при определенном событии в системе контроля версий. После создания репозитария у нас в папке репы должна быть папка hooks, в которой можно найти шаблоны на разные события. Название хука — это какое-то событие к которому можно дописать скрипт (сам хук).
Так как рабочие проекты лежат в другой папке, мне понадобится хук для обновления проекта после создания коммита. Такой хук есть — post-commit. В черновиках в каждом хуке есть описание к нему, поэтому не буду его копировать зря, выложу только пример кода:

REPOS="$1"
REV="$2"

cd /home/www/site.com/ && /usr/bin/svn  update
chmod -R 777 \
        /home/www/site.com/sitemap/ \
        /home/www/site.com/tmp/

Задача этого хука обновить папку с сайтом и рекурсивно выставить на папки sitemap и tmp права доступа 777. Дописать можно много чего, главное, чтобы фантазии хватило.

Запустим сервер как демон:

# svnserve -d -r /home/svn/site.com

Создадим локальную копию:

# cd /home/www/
# svn co file:///home/svn/site.com/

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

# cp /home/www/site.com /home/svn/repo

Теперь в папке /home/svn/repo должны лежать файлы с вашего проекта. Удалите тут все файлы, за которыми вы не будете наблюдать через svn.

Импортируем в репозитарий:

# svn import -m "Первый коммит" /home/svn/repo/ file:///home/svn/site.com

Если всё прошло хорошо, то удаляем временную папку:

# rm -R /home/svn/repo

В целях безопасности, перекроем доступ к файлам svn через браузер:
nginx

location ~ /.svn/ {
	deny all;
}

apache

Order allow,deny
Deny from all
Satisfy All

Теперь можно пробовать что-то закоммитить.
Удачи! 🙂


21 октября, 2013  
Tags: debian, svn, svnserve, дебиан, свн

Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2013 Gemini_13's Blog
G13.org.ua