チケット駆動開発に分散バージョン管理を組み合わせるアイデア
チケット駆動開発に分散バージョン管理を組み合わせるアイデアについてラフなメモ書き。
【元ネタ】
TiDDとgit-flowを合わせた開発手法について | Technology-Gym
gitとRedmineと連携させるgitサブコマンド: git-ticket - みずぴー日記
Git-Redmine: GitのコミットとRedmineを連携する。チケット駆動開発にも。 (ゆめ技:ゆめみスタッフブログ)
PullRequestは分散バージョン管理の利点を生かしたパッチ取り込み: プログラマの思索
git-flow による構成管理とRedmineの関係: プログラマの思索
Mercurialによるチケット駆動開発は強力だ!: プログラマの思索
Mercurial以前と以後のチケット駆動開発: プログラマの思索
RedmineのVer1.4からマルチSCMリポジトリ機能が実装されたことによって、trunkとトピックブランチなどの派生ブランチも一つのプロジェクトに含めることができる。
すると、トピックブランチ上で修正したパッチをtrunkへマージしてもらう時に、GitHubのPull requestと同様の機能をRedmine上でも事実上実現できる。
すなわち、trunkからトピックブランチを派生する場合は、folkするチケットを作ればその作業履歴が残るし、トピックブランチをPullする場合は、どのリビジョンのソースをとり込んだのかをコミットログのチケット番号に書いておけば、チケットにコミット履歴が残る。
特に、@haru_iidaさんが作られたCodeReview Pluginには、チケットの属性にリビジョンがあるので、folkやpullする場合にCodeReviewプラグインを使ってもいいかもしれない。
そうすれば、チケットのリビジョンにコミット履歴が残るようになり、後から検索しやすくなる。
Redmineのリポジトリ参照画面では、GitやMercurialのような分散バージョン管理の場合、git log --graphやhg log --graphのような色つきブランチが表示されるので、どのようの派生してマージされたのかが分かりやすい。
以前の僕は、Redmineのバージョンが古くて機能が限られていたため、Redmineの複数プロジェクト機能を並行開発に適用して、ブランチ単位にプロジェクトを割り当てるように運用していた。
この手法は、確かに製品単位のタスク管理には有効だが、トピックブランチのようにブランチの生存期間がとても短い場合はあまり向かない。
つまり、ブランチの生存期間と製品の生存期間が対応している場合は、複数プロジェクト機能を使ってプロジェクトを分割した方がいいが、分散バージョン管理のように実験的なブランチをどんどん作る場合にはあまり向かない。
だから、一つのプロジェクトで、派生したブランチは全てまとめる方がチケット駆動開発に向いているかもしれない。
git-flowのように、各種ブランチを目的を持って作り、最後はmaster(trunk)へマージして育てていく開発スタイルには、チケット駆動開発を組み合わせればより強力になるだろうと思っている。
| 固定リンク
「Redmine」カテゴリの記事
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- 第22回 Redmine大阪の感想 #RedmineOsaka(2025.09.21)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
「ソフトウェア工学」カテゴリの記事
- 自動車業界におけるA-SPICE・機能安全・サイバーセキュリティの規格に対応したプロセス改善とは何か?(2026.02.15)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「構成管理・Git」カテゴリの記事
- PLMツールとは部品表の構成管理ツールでありGitHubである(2026.03.08)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
「チケット駆動開発」カテゴリの記事
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)


コメント