RusRedmineRepositories » History » Version 1

Denis Savitskiy, 2011-07-08 13:55

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