web-dev-qa-db-ja.com

RedmineとGitの統合

私はsvnとTracからgitとRedmineへの移行を検討しています。私は誰もがこれについて何を経験しているのだろうと思っています。 gitはRedmineとどれだけうまく統合できますか?

私はsvnからgitに変更するという決断をかなり固めています-分散した作業であり、頻繁にブランチとマージを行う必要があるため、gitの生活はかなり楽になります。しかし、このためには複数のプロジェクトに物事を分割する必要があるかもしれません。私が読んでいたものから、gitと複数のプロジェクトはTracとスムーズに統合できません。それとは別に、gitの調査でRedmineが注目を集め、いくつかの機能が非常に便利に見えました。

ただし、gitやRedmineのユーザーエクスペリエンスは(検索スキルが不足しているなどの理由で)望むほど多くはないので、意見や例を聞きたいと思っています。

35
user336307

昨年 Gitorious とRedmineを使用したシステムを構築しました。 gitをRedmineに直接統合できますが、問題はありませんが、リポジトリを制御し、イベントを追跡するためのツールと同様にGitoriousをご覧になることを強くお勧めします。リポジトリなどへのアクセスを制御するためにも使用できます。

GitoriousとRedmineの統合は非常に簡単です。 Gitoriousの道を切り開くスクリプトを書きました。 Gitoriousを使用するとハッシュ化されたファイルシステムに保存されるため、これらのリポジトリをRedmineにリンクするのは少し複雑になります。私のスクリプトは、これらのリポジトリへのリンクをはるかに読みやすい形式で作成するため、それらをRedmineにリンクするのは本当に簡単で、プロジェクトを作成するときに一度だけ必要です。スクリプトは here にあります。

Redmineはgit out-of-boxをサポートしているため、基本的には統合についてあまり心配する必要はありません。もちろん、「プロダクション」リポジトリがあるサーバー(Redmineにリンクするもの、自動テストを実行するものなど)でgitサービスを実行する必要がありますが、これもGitoriousで解決されます。

私は実際にこの問題に関する学士論文を書きました。 GitoriousとRedmineの両方が多く開発されたため、すでに少し時代遅れになっていますが、読みたい場合は利用可能にすることができます。論文は何をする必要があるかを説明し(問題のいくつかは2つのツールによって既に解決されています)、ユーザーがリポジトリに変更をプッシュしてテスターのrepreproリポジトリに入れるときにパッケージを自動的に構築する継続的な統合環境も含まれていますなどは、ウェブブラウザで簡単にダウンロードできます。

Redmineには昨年いくつかの問題がありました。特にサブプロジェクトの欠如は少し面倒でしたが、バージョン0.9では修正されました。また、プラグインは実稼働で使用する前に十分にテストする必要があります。一部はうまく混合せず、一部はまったく動作しません(おそらくRedmineバージョンとプラグインバージョンの衝突)。全体として、Redmineは非常にうまく機能し、ニーズに合わせて簡単に拡張できるはずです。 Gitoriousのサポートは素晴らしいです。Redmineの方が少し散発的です(フランス語とか?)が、どちらのツールもユーザーベースが十分にあり、安全に賭けられるはずです。

Gitは、特にアジャイルチームにとって非常に優れたバージョン管理ツールです。ある程度の学習が必要であり、開発者がそれを最大限に活用するための使用方法に関するガイドを作成する必要がありますが、一度学習すれば、非常に生産的です。通常の作業プロセスを示すだけの独自のコードを作成しました。分岐、マージなどについて説明する必要があります。たとえば、個人リポジトリのmasterブランチで作業することは、あまり良い考えではありません。常にブランチを作成してそこで作業します。他のリポジトリからmasterブランチに変更をプルすると、この方法でマージを処理するのが簡単になります。意図しないものを誤ってプッシュすることはありません。

28
Makis

ニースの2つのプラットフォームの柔軟性により、非常に優れています

統合セットアップ

  • redmineはgitにこれらの機能を提供しないため、gitoliteまたはgerritを使用して管理しやすいように、公式のgitリポジトリ(マスター)を別の場所にセットアップします。
  • 単純なcronジョブを実行して、マスターgitリポジトリを読み取り専用モードとしてgitリポジトリをredmineに同期します

両方の統合使用

  • git commitの問題との関係を自動的に確認します
  • git commitで問題を自動的に制御します

私のブログをご覧ください ALM –要件から実装およびデプロイまで および ALM – gitとのredmine統合、よくやった

とにかく、私は統合に満足しています。

マルチgitリポジトリの限定サポート

私が気づいたことの1つは、マルチgitリポジトリをサポートできないことです。機能を参照してください http://www.redmine.org/issues/779

また、Gitリポジトリを初めてセットアップするときは変更できません。これに注意してください

11
Larry Cai

こんにちは、私はしばらく前にこのためのガイドを書きました。このガイドは、クリーンなgitとクリーンなredmineをインストールします。他の余分なソフトウェアは必要ありません。 http gitを使用してredmine内でアカウントを処理することもできます。

こちらで見つけることができます: http://codersopinion.com/blog/install-redmine-with-automated-git-on-centos-redhat/

しばらく前にこのガイドを書いたので、バージョンは一致しないかもしれませんが、現在のバージョンでも動作するはずです。

6
RJD22

RedmineとGitoriousを適切に統合する方法を探しているとき、私はこのスレッドに出くわしました。私たちはこれをなんとか達成し、今では長期(または中期)の経験を積んでいるので、共有したいと思いました。

Cronjobsとは異なるアプローチを採用しました。それは、私たちにとって少し柔軟性に欠けていたからです。また、ブログ投稿でRedmineとGitoriousのインストール部分に関する他のチュートリアルも参照しています。

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

現在、このシステムを約5か月使用しており、非常に満足しています。唯一の「問題」は、Redmineで新しいプロジェクトを作成するたびに、プロジェクトをリポジトリに接続できるように、何らかのターミナルコマンドを実行する必要があることです。プロジェクトをまとめて作成しているわけではないので、これは私たちにとって適切なアプローチです。

これがお役に立てば幸いです!

0
Florian

考慮したいもう1つのことは、アクセス制御です。 redmineを介して異なるプロジェクトへのコミットアクセスを制御できるようにしたい場合、これは役に立ちます。

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

RedmineアカウントとGitoriousをどのようにリンクするかはわかりませんが、それも可能です。

0
Lee Ballard

私はgit + redmineのセットアップに満足しています(そしてリポジトリ管理にgitoliteを使用しています)。以下にいくつかのpython両方のツールの使用を活用するために使用するフックを示します。

前文:rest.botユーザーの設定

フック操作は、rest.botユーザーとして認証されて実行されます。
Redmine管理コンソールに移動し、このrest.botユーザーを作成します。
ロールと権限ページで、レストボット課題の表示および課題のみの編集のみのグループ。
Workflowページで、このロールの承認済みステータスの移行を設定することを忘れないでください。
rest.botユーザーをロールを持つプロジェクトに追加しますRest bot割り当てられました。

クライアントcommit-msgフック:発行番号を発行してタイトルを発行

https://Gist.github.com/KraYmer/4443858<git dir>/share/git-core/templates/hooksクライアントマシン上

このフックを使用すると、単に問題番号を入力し、問題の件名を追加して自動的に展開することにより、gitコミットメッセージでRedmineの問題を参照できます。

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

サーバーpost-receiveフック:git commitメッセージを解析して問題のステータスを変更

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'
...

フックは、コミットが完了するとすぐに変更を取得し、変更がWebサイトにリアルタイムで反映されるようにします。

0
kraymer