パッチベースのワークフロー
オープンソースではパッチベースのワークフローがあるという記事をメモ。
【元ネタ】
gitster's journal - 入門Gitの目次はというと
2009-10-11 - 未来のいつか/hyoshiokの日記
gitster's journal - 入門Gitの目次はというとで、下記の文章が目を引いた。
第十章ではじめて、オープンソースの世界で多用されるパッチ・べースのワークフローを登場させた。
会社で仕事に使うだけ、というユーザには馴染みのないワークフローと考え方だと思うので、パッチ・べースのワークフローを使わない向きは飛ばして貰っても、本の他の部分を読むのには全く問題がない。
そのかわり、ボクがこれまでLinus君と一緒に仕事をしてきて学んだ、オープンソースコミュニティで生きてゆく際のコツ、といったものを「オープンな開発プロセス」という一節としてこの章に加えることにした。
ボクの経験が、少しでもオープンソースに関わる人たちに役に立ってくれると良いな、という考えからだ。
入門Gitは今予約中で読んでいないので、以下想像した事をメモする。
#間違っていたら後で直す。
上記の言うパッチベースのワークフローは下記の意味だろう。
オープンソースコミュニティできちんと管理されているシステムのソースコードは、必ずコミッタが厳重に管理している。
ユーザが機能追加やバグ修正したソースを反映させたい時、パッチを作ってコミッタに送る。
コミッタはそのパッチをレビューして、フィードバックし、OKならコミットする。
このワークフローは実は、ReviewBoardやRietveldなどのコードレビューシステムと同じだ。
つまり、パッチベースのワークフローの目的は、コードレビューによる品質チェック、開発者同士の暗黙知の共有を指すと思われる。
普通のSIでは、上記のようなワークフローを持ったコードレビューは持っていないのではないか?
実は、オープンソースの方がはるかに高品質な開発プロセスを持っているのではないか?
また、パッチベースのワークフローをGitやMercuiralのような分散バージョン管理が補完している特徴も見逃せない。
マスタリポジトリはコミッタしか変更できないが、開発者は自分の好きな場所でリポジトリをコピーできてハックできる。しかも、マスタリポジトリから即座に最新ソースをマージして、常に最新バージョンにできる。
この分散バージョン管理におけるトピックブランチの仕組みが、パッチベースのワークフローを簡単にさせているのだろう。
GitもTortoiseGitがかなり機能改善されたので、TortoiseHgと比較しながら使ってみたい。
| 固定リンク
「ソフトウェア」カテゴリの記事
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
「ソフトウェア工学」カテゴリの記事
- Redmineのブロッキング機能で工程単位Redmine運用とトレーサビリティを解決するアイデア(2026.09.21)
- 第23回Redmine大阪の感想~AIの暴走はチケット駆動で制御する!AI時代に人間が担うべき真の役割は何なのか? #redmineosaka(2026.09.06)
- AI時代のソフトウェア開発者とはアーキテクトの役割として再定義される(2026.08.30)
- AI時代の「コードと人間の関係」を問い直す—デブサミ関西2026で考えた、アーキテクチャの未来とコミュニティの価値 #devsumi(2026.08.22)
- 人の成果物は品質基準に不足しすぎるが、AIの成果物は品質基準を超過しすぎる(2026.08.16)
「廃止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)


コメント