Я не буду розповідати всі переваги таких систем як Subversion, але лише скажу, що це дозволить вам завжди бачити і контролювати процес розробки і в потрібний момент повернутися до якого-небудь ділянці коду.
Багатьом Subversion не подобається за рахунок її централізованої структури і, часом, виникають дивним ситуацій. Але можу вас запевнити, що багато проблем з'являються або через самих розробників, або через використання різних версій цього програмного забезпечення. Тому в цій статті я хотів би розповісти, як встановити та налаштувати останню версію сервера Subversion.
Subversion дуже добре прив'язується до веб-сервера Apache і працює через протокол HTTP. Це дозволяє без особливих труднощів впровадити контроль версій в існуючий сервер.
установка Subversion
Перше, що ми зробимо - це перевіримо, яка актуальна версія програми є в репозиторії.
Якщо у вас в репозиторії версія 1.6, то наступний крок можна пропустити. Якщо ж, наприклад, версія 1.5 або 1.4, то виконаємо деякі додаткові кроки.
Додамо репозиторій RPMforge for CentOS 5. Завантажуємо rpm пакет для вашої версії системи. i386 для 32 бітних систем або x86_64 для 64 бітних систем. Завантажити можна через звичайний wget.
Додамо ключ DAG's GPG
І встановимо пакет
Далі відкриємо файл «/etc/yum.repos.d/rpmforge.repo» і змінимо всюди в ньому параметр «enabled = 1» на «enabled = 0». Це необхідно, що б пакети за замовчуванням не ставилися з цього сховища.
Тепер ще раз пошукаємо пакет Subversion в новому репозиторії.
Якщо і в цьому репозиторії не знайшлося потрібного пакету, то спробуйте використовувати репозиторій rpmforge-extras. У ньому обов'язкове повинна бути остання версія.
Тепер перейдемо безпосередньо до установки клієнта і необхідних доповнень для Apache.
Особливих проблем при установці не повинно виникнути. Тепер перевіримо версію.
Налаштування Apache для роботи з репозиторіями Subversion
Встановимо необхідний модуль для роботи з Subversion. Він називається mod_dav_svn. Його також можна взяти зі сховищ rpmforge або rpmforge-extras. Все залежить від того, яку версія Subversion ви поставили.
Після цього перевіряємо файл «/etc/httpd/conf.d/subversion.conf» в ньому повинні бути прописані такі рядки
Тепер перезапускаємо Apache
Зроблю невеличкий відступ. На віртуальній машині, на якій я все тестую, для написання статей у мене завантажені всі модулі Apache. На продакшен сервері у мене відключено більшість модулів. Тому не забувайте. що для Subversion необхідно не тільки 2 модуля описані вище, але і деякі інші, наприклад, як «auth_basic_module», «authn_file_module», «authz_host_module», «dav_module», «dav_fs_module».
Про всяк випадок нижче приведу мій список обов'язково завантажувальних модулів.
У своїй практиці я намагаюся виносити репозиторії SVN на окремий віртуальний хост. Тому конфігурація доступу до сховища у мене прописується в настройках вірутальних хоста. Мені так зручніше. Ви ж можете налаштувати доступ до сховища в файлі «/etc/httpd/conf.d/subversion.conf». Там є готовий приклад. Я ж викладу мій приклад конфігурації.
Тут параметр «AuthUserFile /etc/httpd/svn-users.conf» відповідає за список користувачів, а параметр «AuthzSVNAccessFile /etc/httpd/svn-acl.conf» дає доступ різним користувачам до різних репозиторіїв, а також права на читання або запис . Вам необхідно буде створити ці файли. Параметр «SVNParentPath / var / www / svn /» вказує, де будуть знаходиться ваші репозиторії.
Створимо два нових користувача «test1» і «test2».
Створення SVN репозиторію
Тепер створимо директорію, де будуть знаходиться наші репозиторії (це ми зазначили вище в конфігурації).
Далі створимо 2 сховища.
І дамо права на директорію apache, і перезапустити веб-сервер.
Налаштування доступу до репозиторіїв SVN
Тепер дамо користувачеві «test1» доступ тільки до першого сховища на читання і запис. А користувачеві «test2» до другого сховища, а до першого сховища тільки доступ на читання. Відкриємо файл «/etc/httpd/svn-acl.conf» і внесемо такі правки.
Структура доступу, як ви зрозуміли, мають такий вигляд
Так само ви можете створювати групи користувачів, щоб не перераховувати всіх користувачів, хто має доступ до сховища.
Робота з репозиторіями
Для тестування наших сховищ скористаємося додатком TortoiseSVN (для Windows). Зробимо SVN Checkout, що б синхронізувати репозіорій.
Тепер створимо перший наш файл і додамо його в репозиторій.
Перший файл був створений для прикладу, що все успішно працює. Для реальних проектів раджу вивчити стуктуру сховищ для SVN і завжди користуватися директоріями trunk, branches і tags.
Додаткова, довідкова інформація
Можливо також вам буде цікаво:
- Установка Nginx на CentOS 5
- Встановлюємо Apache 2, PHP 5.3 і MySQL 5.1 на ...
- Встановлюємо тимчасову зону і час в Linux, CentOS