Project

General

Profile

RusRedmineRepositories » History » Version 1

Denis Savitskiy, 2011-07-08 13:55

1 1 Denis Savitskiy
h1. Настройка репозиториев
2
3
{{>toc}}
4
5
h2. Общая информация
6
7
Redmine поддерживает интеграцию с различными системами контроля версий "из коробки":
8
9
|*SCM*|*Поддерживаемые версии*|*Комментарии*|
10
|"Subversion":http://subversion.tigris.org/|1.3 & 1.4 & 1.5 & 1.6|Необходима 1.3 или выше. Не поддерживает Ruby Bindings для Subversion|
11
|"CVS":http://www.nongnu.org/cvs/|1.12.12|Необходима 1.12, не работает с CVSNT|
12
|"Mercurial":http://www.selenic.com/mercurial/|0.9.3| |
13
|"Bazaar":http://bazaar-vcs.org/|1.0.0.candidate.1 & 2.0.4| |
14
|"Darcs":http://darcs.net/|1.0.7||
15
|"Git":http://git-scm.com|1.5.4.2||
16
17
+Замечание 1+ : соответствующие пакеты *должны* быть установлены на *той же машине, что и Redmine*.
18
19
К примеру, если вы хотите получить доступ к репозиториям Subversion в Redmine, вы должны установить пакет subversion на машине с Redmine.
20
21
+Замечание 2+ : соответствующие пакеты должны быть доступны Redmine :
22
23
2 случая :
24
* они доступны напрямую, в переменной окружения @PATH@:
25
** если имя команды нестандартное, вы можете переопределить его в Redmine [[RedmineInstall#SCM-settings|configuration file]]
26
* вы можете определить полный путь к пакетам в Redmine [[RedmineInstall#SCM-settings|configuration file]] 
27
28
Наконец, удостоверьтесь в том, что выбрали необходимую SCM в @Administration->Settings->Repositories->Enabled SCM@
29
30
h2. Добавление существующего репозитория к проекту
31
32
В настройках проекта убедитесь, что модуль 'Репозиторий' включен и откройте вкладку 'Репозиторий'.
33
Выберите SCM, соответствующую вашему репозиторию и введите адрес или URL репозитория.
34
35
*Важно*: Когда вы впервый раз открываете вкладку 'Хранилище', Redmine получает описание всех существующих в репозитории фиксаций (коммитов) и сохраняет их в базе данных.
36
Это происходит один раз для каждого репозитория, но может занять длительное время и вызвать time-out, если в вашем репозитории большое количество фиксаций (коммитов).
37
38
Для того, чтобы этого избежать, сделайте это offline.
39
После добавления репозитория проекту, выполните следующую команду:
40
<pre>
41
$ ruby script/runner "Repository.fetch_changesets" -e production
42
</pre>
43
44
Все фиксации (коммиты) будут извлечены в базу данных Redmine.
45
46
Начиная с версии 0.9.x, вы также можете перейти по URL с помощью ключа WS и @fetch_changesets@ выполнится:
47
48
<pre>
49
http://redmine.example.com/sys/fetch_changesets?key=<ключ WS> (=> в бд извлекутся фиксации всех активных проектов)
50
http://redmine.example.com/sys/fetch_changesets?key=<ключ WS>&id=foo (=> в бд извлекутся только фиксации проекта foo)
51
</pre>
52
53
Не забудьте аутентификацию по ключу @WS@, как описано в [[Rest_api#Authentication|Rest_api#Authentication]].
54
55
См. пример в [[HowTo_setup_automatic_refresh_of_repositories_in_Redmine_on_commit]].
56
57
h3. Subversion репозиторий
58
59
Поддерживаются все стандартные протоколы ( @http:@, @svn:@, @file:@ ...), просто укажите URL репозитория.
60
61
Например:
62
<pre>
63
http://имя_машины/путь/к/репозиторию
64
</pre>
65
66
Укажите имя пользователя и пароль, если репозиторий требует авторизации.
67
68
Примечание: если вы хотите получать доступ к репозиторию, используя @svn+ssh://@, необходимо настроить svn+ssh в не-интерактивный режим.
69
Для этого необходимо настроить public/private пару ключей для ssh аутентификации.
70
71
h2. Установка соответствий login <-> Пользователь в Репозитории
72
73
Для корректного оторбажения имён в Хранилище, в Redmine есть возможность установки соответствий между login'ом и пользователя репозитория и пользователем Redmine. 
74
75
Перейдите в @Проект->Настройки->Хранилище->Пользователи@. 
76
Вы увидите таблицу с двумя столбцами. Левый содержит login пользователя Хранилища, правый - выбор соответствующего ему участника проекта.
77
78
Выберите и обновите пользователя Redmine, связанного с найденным именем в журнале хранилища.
79
Пользователи с одинаковыми именами или email в Redmine и хранилище связываются автоматически.