Подтвердить что ты не робот

Интеграция Redmine & Git

Я рассматриваю переход из svn и Trac в git и Redmine. Мне просто интересно, что это за опыт. Насколько хорошо git интегрируется с Redmine?

Я довольно уверен в своем решении перейти от svn к git - нашей распределенной работе и частому ветвлению и объединению значительно облегчит жизнь с помощью git. Но для этого нам, возможно, понадобится разделить вещи на несколько проектов. Из того, что я читал, git и несколько проектов не слишком плавно интегрируются с Trac. Что касается, в моих исследованиях в git, Redmine также привлек мое внимание, и некоторые из функций выглядят очень полезными.

Однако я не нашел столько впечатлений от пользователя git и Redmine, что и я хотел (возможно, из-за отсутствия навыков поиска...), и поэтому хотел бы услышать ваши мнения и примеры.

4b9b3361

Ответ 1

В прошлом году я построил систему, которая использовала Gitorious и Redmine. Вы можете интегрировать git напрямую с Redmine, без проблем, но я бы настоятельно предложил вам взглянуть на Gitorious, а также на инструмент для управления вашими репозиториями и следить за их событиями. Он также может использоваться для управления доступом к репозиториям и т.д.

Интеграция Gitorious и Redmine довольно проста. Я написал script, который дешифрует пути Gitorious. Они сохраняются в файловой системе, хэшированной при использовании Gitorious, поэтому связывание этих репозиториев с Redmine было бы немного сложным в противном случае. Мой script делает ссылки на эти репозитории в гораздо более читаемом формате, поэтому привязка их к Redmine очень проста и требуется только один раз при создании проекта. Здесь вы можете найти script .

В принципе вам не нужно много беспокоиться об интеграции, так как Redmine поддерживает git из коробки - вроде. Конечно, вам нужно иметь службу git, запущенную на сервере, где находятся "производственные" репозитории (те, которые вы связываете с Redmine, выполняете автоматические тесты и т.д.), Но это также решено с помощью Gitorious.

Я действительно написал свой тезис о бакалавриате по этому вопросу. Он уже немного устарел, поскольку и Gitorious, и Redmine развили много, но я мог бы сделать его доступным, если вы хотите его прочитать. В тезисе объясняется, что необходимо сделать (некоторые из проблем уже решены двумя инструментами), а также включает непрерывную среду интеграции, которая автоматически создает пакеты, когда пользователи нажимают изменения в репозитории и помещают их в репрессивный репозиторий, где тестеры и т.д., могут легко загрузить их с помощью веб-браузера.

У Redmine были некоторые проблемы в прошлом году, особенно отсутствие подпроектов было немного раздражающим, но это было исправлено в версии 0.9. Также плагины должны быть проверены задолго до использования в производстве, некоторые просто не смешиваются хорошо, а некоторые вообще не работают (возможно, столкновение версии Redmine и версии плагина). В общем, Redmine работает очень хорошо и должен быть легко расширяемым для ваших нужд. Поддержка Gitorious превосходна, для Redmine немного более спорадическая (чертовски французская?), Но оба инструмента имеют достаточно большие базы пользователей, чтобы они были безопасными ставками.

Git - очень хороший инструмент управления версиями, особенно для гибких команд. Это требует некоторого обучения, и вы должны написать руководство о том, как использовать его для своих разработчиков, чтобы максимально использовать его, но как только вы его узнаете, он чрезвычайно продуктивен. Мы написали наш собственный, который только утверждает нормальный рабочий процесс. Ветвление, слияние и т.д. Должны быть объяснены, например, работа над вашим личным хранилищем главного хранилища не такая хорошая идея. Всегда создавайте ветку и работайте там. Когда вы переносите изменения в основную ветку из какого-либо другого репозитория, проще справляться с этим слиянием - и вы не будете случайно нажимать то, что вы не хотели.

Ответ 2

это отличное соответствие из-за гибкости в этих приятных двух платформах.

Настройка интеграции

  • установить официальное хранилище git (master) в другом месте с помощью гитолита или gerrit для легкого администрирования, поскольку redmine не предоставляет эти функции для git
  • запустить простую задачу cron для синхронизации master git repo to redmine git repo как режим readonly

Использование интеграции как

  • автоматически увидит связь с проблемами с git commit
  • автоматически управляет проблемой с помощью git commit

Пожалуйста, взгляните на мои блоги ALM - от требования к внедрению и развертыванию и ALM - интеграция redmine с git, хорошо сделанная

В любом случае я доволен интеграцией.

ограниченная поддержка нескольких хранилищ git

Одна вещь, которую я заметил, не может поддерживать многопользовательские хранилища git, см. функцию http://www.redmine.org/issues/779

Также, когда вы впервые устанавливаете репозиторий git, его нельзя изменить, помните об этом

Ответ 3

Здравствуйте, я написал путеводитель для этого некоторое время назад. Руководство устанавливает чистый git и чистый красный. Никакого другого дополнительного программного обеспечения не требуется. Он даже позволяет обрабатывать учетные записи в redmine, хотя http git.

Вы можете найти его здесь: http://codersopinion.com/blog/install-redmine-with-automated-git-on-centos-redhat/

Поскольку я написал это руководство некоторое время назад, версии могут не совпадать, но он все равно должен работать с текущими версиями.

Ответ 4

Я наткнулся на эту тему, когда искал, как правильно интегрировать Redmine с Gitorious. Поскольку нам удалось достичь этого, и теперь у нас есть несколько длинных (или средних) терминов, я думал, что поделюсь им.

Мы использовали другой подход, чем cronjobs, поскольку для нас это было слишком сложно. Мы также ссылаемся на другие уроки для части установки Redmine и Gitorious в нашем сообщении в блоге:

http://codepool.at/blog/archives/12

Мы используем эту систему уже около 5 месяцев и очень довольны ею. Единственная проблема заключается в том, что каждый раз, когда вы создаете новый проект в Redmine, вам нужно запустить некоторую команду терминала, чтобы вы могли подключить проект к репозиторию. Поскольку мы не создаем проекты в массовом порядке, это правильный подход для нас.

Надеюсь, это поможет!

Ответ 5

Еще одна вещь, которую вы, возможно, захотите рассмотреть, - это контроль доступа. Если вы хотите контролировать доступ к фиксации доступа к различным проектам через redmine, тогда это будет полезно.

http://wiki.bitnami.org/Applications/BitNami_Redmine_Stack#How_to_configure_Redmine_for_advanced_integration_with_Git

Не уверен, как бы вы связали учетные записи redmine с Gitorious, но это также возможно.

Ответ 6

Я доволен моей установкой git + redmine (и использую gitolite для администрирования репозиториев), вот некоторые крючки python, которые я использую для использования обоих инструментов:

Преамбула: настройка пользователя rest.bot

Операции с крючками будут выполняться, будучи аутентифицированными как пользователь rest.bot.
Перейдите в консоль администрирования Redmine и создайте этого пользователя rest.bot.
На странице "Роли и разрешения" создайте группу "Бот-бот" с проблемами "Просмотр" и "Редактировать проблемы" как только разрешения.
Не забудьте настроить параметры разрешенных состояний для этой роли на странице Workflow.
Добавьте пользователя rest.bot в свои проекты с назначенной ролью.

Ключ фиксации клиента-msg: номер выпуска для выпуска заголовка

https://gist.github.com/KraYmer/4443858 для редактирования и копирования в <git dir>/share/git-core/templates/hooks на клиентской машине

Этот крючок позволяет ссылаться на проблему Redmine в сообщении git commit, просто набрав номер своей проблемы и автоматически увеличив ее, добавив тему проблемы.

'working on ref #1234' => 'working on ref #1234:Eliminate dangling pointers'

Крюк после отправки: изменение состояния проблем путем разбора git фиксации сообщений

https://gist.github.com/KraYmer/5292077 для редактирования и копирования в каталоге .gitolite/common/hooks на сервере

Ссылка на проблемы в сообщениях фиксации - это функция, поставляемая с Redmine по умолчанию, но ограничивается просто ссылкой (статус не изменен) или закрытие проблемы.
Этот крючок нацелен на расширение набора признанных ключевых слов для изменения статуса проблем, связанных с фиксацией:

$ git push
...
remote: [post-receive] Parsing 1 commits for branch 'develop'
remote: [post-receive] Setting issue #1608 status to 'totest'
...

Крюк позаботится об извлечении изменений, как только будет совершена фиксация, чтобы изменения отражались в реальном времени на веб-сайте.