Интеграция системы управления проектами Redmine 3.4.3 с системой контроля версий Subversion 1.8.10 на Debian 8 Jessie
Инструкция как развернуть Redmine 3.4.3, Subversion (с поддержкой WebDAV) на Debian 8 Jessie. На основе этих инструкций будет рассмотрена интеграция Redmine с SVN.
Redmine может отображать содержимое SVN хранилища, вести логирование изменений в хранилище, управление правами доступа к хранилищу на основе своих учетных записей и их подписок к проектам, автоматически создавать SVN хранилища для новых проектов, считывать с текстов информацию с коммитов в SVN проектах.
JTVCc3RleHRib3glMjBpZCUzRCVFMiU4MCU5OWluZm8lRTIlODAlOTklNUQlRDAlOUYlRDElODAlRDAlQjglRDAlQjIlRDAlQjUlRDAlQjQlRDAlQjUlRDAlQkQlRDAlQkQlRDAlQjAlRDElOEYlMjAlRDAlQkQlRDAlQjglRDAlQjYlRDAlQjUlMjAlRDAlQjglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkElRDElODYlRDAlQjglRDElOEYlMjAlRDAlQkUlRDElODElRDAlQkQlRDAlQkUlRDAlQjIlRDElOEIlRDAlQjIlRDAlQjAlRDAlQjUlRDElODIlRDElODElRDElOEYlMjAlRDAlQkQlRDAlQjAlMjAlRDElODIlRDAlQkUlRDAlQkMlMjAlRDElODclRDElODIlRDAlQkUlMjAlRDAlQjglRDElODElRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDElODMlRDAlQjUlRDElODIlRDElODElRDElOEYlMjAlRDElODElRDAlQjglRDElODElRDElODIlRDAlQjUlRDAlQkMlRDAlQjAlMjBEZWJpYW4lMjA4JTIwSmVzc2llJTIwJUQwJUI4JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQxJThCJTIwUmVkbWluZSUyMDMuNC4zJTIwJUQwJUI4JUMyJUEwU3VidmVyc2lvbiUyMDEuOC4xMCUyMCUyQiUyMFdlYkRBVi4lQzIlQTAlNUIlMkZzdGV4dGJveCU1RA==
JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQxJThCJUQwJUI1JTIwJUQwJUI3JUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgxJUQwJUI4JUQwJUJDJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTNB
sudo apt-get install libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libdigest-sha-perl -y
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUIwJUQwJUIyJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQwJUI3JUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUIyJTIwU1ZOJTIwJUQwJUJGJUQwJUJFJTIwJUQxJTgzJUQxJTg3JUQxJTkxJUQxJTgyJUQwJUJEJUQxJThCJUQwJUJDJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQxJThGJUQwJUJDJTIwUmVkbWluZSUyQyUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMSU4MSVEMCVCOCVEMCVCQyVEMCVCMiVEMCVCRSVEMCVCQiVEMCVCOCVEMSU4NyVEMCVCNSVEMSU4MSVEMCVCQSVEMSU4MyVEMSU4RSUyMCVEMSU4MSVEMSU4MSVEMSU4QiVEMCVCQiVEMCVCQSVEMSU4MyUyMCVEMCVCRCVEMCVCMCUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMCVCOCVEMCVCRiVEMSU4MiUyMFJlZG1pbmUucG0lM0E=
sudo ln -s /opt/redmine/extra/svn/Redmine.pm /usr/lib/x86_64-linux-gnu/perl5/5.20/Apache/Redmine.pm
JUQwJUEwJUQwJUI1JUQwJUI0JUQwJUIwJUQwJUJBJUQxJTgyJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJUMyJUEwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUJFJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJDJUQwJUJFJUQwJUI0JUQxJTgzJUQwJUJCJUQxJThGJTIwKGRhdl9zdm4pJTIwJTJGZXRjJTJGYXBhY2hlMiUyRm1vZHMtYXZhaWxhYmxlJTJGZGF2X3N2bi5jb25mJTIwKCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCMiVEMCVCRSVEMCVCNCVEMCVCOCVEMCVCQyUyMCVEMCVCQSUyMCVEMCVCMiVEMCVCOCVEMCVCNCVEMSU4MyklM0E=
PerlLoadModule Apache::Redmine <Location /svn> DAV svn SVNParentPath "/var/svn" SVNPathAuthz off Order deny,allow Deny from all Satisfy any AuthType Basic AuthName redmine AuthUserFile /dev/null PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler # Доступ только чтение <Limit GET PROPFIND OPTIONS REPORT> Require valid-user Allow from localhost Satisfy any </Limit> # Доступ на запись <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> # Подключение к базе данных MySQL RedmineDSN "DBI:mysql:database=redmine;host=localhost" RedmineDbUser "redmine" RedmineDbPass "password" </Location> # Для доступа Redmine к хранилищам SVN без авторизации <Location /svn-private> DAV svn SVNParentPath "/var/svn" Order deny,allow Deny from all Satisfy any # Доступ только чтение <Limit GET PROPFIND OPTIONS REPORT> Allow from redmine_server_ip </Limit> </Location>
JUQwJTlEJUQwJUIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUIwJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJTIwJUQwJUJBJTIwJUQxJTgwJUQwJUI1JUQwJUJGJUQwJUJFJUQwJUI3JUQwJUI4JUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQxJThGJUQwJUJDJTIwKFNWTiklMjAlRDAlQjQlRDAlQkIlRDElOEYlMjBIVFRQLSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyMCh3d3ctZGF0YSklMkMlMjAlRDAlQjQlRDAlQkUlRDAlQjElRDAlQjAlRDAlQjIlRDAlQkIlRDElOEYlRDAlQjUlRDAlQkMlQzIlQTAlRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEYlMjAoJUQwJUJFJUQxJTgyJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI4JTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUJCJUQxJTgxJUQxJThGJTIwUnVieSklMjAlRDAlQjglMjAlRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEYlMjAoJUQwJUJFJUQxJTgyJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI4JTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQwJUIwJUQwJUI1JUQxJTgyJTIwU1ZOKSUyMCVEMCVCMiUyMCVEMCVCMyVEMSU4MCVEMSU4MyVEMCVCRiVEMCVCRiVEMSU4MyUyMEhUVFAtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwJTIwKHd3dy1kYXRhKSUzQQ==
sudo chown -R www-data:www-data -R /var/svn sudo adduser jakonda www-data sudo adduser subversion www-data
JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJTgzJTIwYXBhY2hlJTNB
sudo service apache2 restart
Выполним настройку Redmine. Переходим в Администрирование — Настройки — Хранилища. Отмечаем помеченные на скриншоте графы, а так же нажимаем Сгенерировать ключ (он необходим для автоматического создания SVN хранилищ), нажимаем Сохранить.
Команда для создания SVN хранилища для проектов Redmine:
/opt/redmine/extra/svn/reposman.rb --redmine 192.168.1.2 --key=ZGnsYLjWdspJqmH0Ppem --svn-dir /var/svn --owner redmine --group www-data --url http://192.168.1.2/svn-private/ --verbose
JTVCc3RleHRib3glMjBpZCUzRCVFMiU4MCU5OWluZm8lRTIlODAlOTklNUQlMEElRDAlOUUlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDAlQjUlMjAlRDAlQjAlRDElODAlRDAlQjMlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQkUlRDAlQjIlMjAlRDElODElRDAlQkElRDElODAlRDAlQjglRDAlQkYlRDElODIlRDAlQjAlM0E=
JUUyJTgwJTk0a2V5JTIwJUUyJTgwJTk0JTIwQVBJJTIwJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUMyJUEwKCVEMSU4MSVEMCVCMyVEMCVCNSVEMCVCRCVEMCVCNSVEMSU4MCVEMCVCOCVEMSU4MCVEMCVCRSVEMCVCMiVEMCVCMCVEMCVCRCVEMSU4QiVEMCVCOSUyMCVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyUyMCVEMCVCMiUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOSVEMCVCQSVEMCVCMCVEMSU4NSUyMFJlZG1pbmUpJTBBJUUyJTgwJTk0cmVkbWluZSUyMCVFMiU4MCU5NCUyMCVEMSU4NSVEMCVCRSVEMSU4MSVEMSU4MiUyMFJlZG1pbmUuJTBBJUUyJTgwJTk0c3ZuLWRpciUyMCVFMiU4MCU5NCUyMCVEMCVCRiVEMSU4MyVEMSU4MiVEMSU4QyUyMCVEMCVCQSUyMFNWTiUyMCVEMSU4NSVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCQiVEMCVCOCVEMSU4OSVEMSU4My4lMEElRTIlODAlOTRvd25lciUyMCVFMiU4MCU5NCUyMCVEMCVCMiVEMCVCQiVEMCVCMCVEMCVCNCVEMCVCNSVEMCVCQiVEMCVCNSVEMSU4NiUyMCVEMSU4NSVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCQiVEMCVCOCVEMSU4OSVEMCVCMCVDMiVBMCglRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDElOEIlRDAlQjIlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEMlMjAlRDAlQkUlRDElODIlMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDAlQjElRDElOEIlRDAlQkIlMjAlRDElODMlRDElODElRDElODIlRDAlQjAlRDAlQkQlRDAlQkUlRDAlQjIlRDAlQkIlRDAlQjUlRDAlQkQlMjBSZWRtaW5lKS4lMEElRTIlODAlOTRncm91cCUyMCVFMiU4MCU5NCUyMCVEMCVCMyVEMSU4MCVEMSU4MyVEMCVCRiVEMCVCRiVEMCVCMCUyMCVEMCVCMiVEMCVCQiVEMCVCMCVEMCVCNCVEMCVCNSVEMCVCQiVEMSU4QyVEMSU4NiVEMCVCNSVEMCVCMiUyMCVEMSU4NSVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCQiVEMCVCOCVEMSU4OSVEMCVCMCVDMiVBMCglRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDElOEIlRDAlQjIlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDAlQjMlRDElODAlRDElODMlRDAlQkYlRDAlQkYlRDElODMlMjB3ZWItJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwJTIwd3d3LWRhdGEpLiUwQSVFMiU4MCU5NHVybCUyMCVFMiU4MCU5NCUyMFVSTC0lRDElODElRDElODElRDElOEIlRDAlQkIlRDAlQkElRDAlQjAlMjAlRDAlQkElMjBTVk4lMjAlRDElODUlRDElODAlRDAlQjAlRDAlQkQlRDAlQjglRDAlQkIlRDAlQjglRDElODklRDElODMlMjAoJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJEJUQwJUIwJTIwc3ZuLXByaXZhdGUlMkMlMjAlRDAlQjQlRDAlQkIlRDElOEYlQzIlQTAlRDAlQjQlRDAlQkUlRDElODElRDElODIlRDElODMlRDAlQkYlRDAlQjAlMjAlRDAlQkElMjAlRDElODUlRDElODAlRDAlQjAlRDAlQkQlRDAlQjglRDAlQkIlRDAlQjglRDElODklRDAlQjAlRDAlQkMlMjAlRDAlQjElRDAlQjUlRDAlQjclMjAlRDAlQjAlRDAlQjIlRDElODIlRDAlQkUlRDElODAlRDAlQjglRDAlQjclRDAlQjAlRDElODYlRDAlQjglRDAlQjgpLiUwQSU1QiUyRnN0ZXh0Ym94JTVE
JUQwJTlGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQxJTgwJTIwJUQwJUIyJUQxJThCJUQwJUIyJUQwJUJFJUQwJUI0JUQwJUIwJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJThCJTNB
querying Redmine for active projects with repository module enabled... retrieved 1 projects processing project test-project-jakonda (Test project jakonda) repository /var/svn/test-project-jakonda created repository /var/svn/test-project-jakonda registered in Redmine with url http://192.168.1.2/svn-private/test-project-jakonda
Настройка интеграции Redmine и SVN завершена. Теперь можно создавать проекты в Redmine, назначить участников в них и выполнять команду создания SVN хранилищ для них. После создания хранилищ, доступ будет к ним осуществятся по учетными записям Redmine и по назначенным участникам на тот или иной проект.
Понравилась или оказалась полезной статья, поблагодари автора
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
А можно прикрутить SVN если иcпользуешь HTTPS вместо HTTP ???
Не пробовал, но думаю можно.