[PR]テレビ番組表
今夜の番組チェック

トップページ >> 開発に参加したい方へ >> Subversion Repositoryの使用にあたって >> 運用検討メモ

ソース管理 Commit手順検討メモ

Subversionによるソース管理上方法に関して,基本をパッチベースとするかリポジトリベースとするか迷ったので,両者を比較して最適な方法について考える.

パッチベースの場合

大まかな流れ

パッチ提供→パッチのままレビュー→問題があればパッチを更新→問題がなくなったらTrunkへCommit

Pros & Cons

利点

問題点

リポジトリベースの場合1 (その都度専用ブランチ)

パッチ提供→リポジトリへ登録(専用ブランチ)→レビュー→問題があれば再度→問題がなくなったらTrunkへMerge

Pros & Cons

利点

問題点

リポジトリベースの場合2 (trunk)

パッチ提供→リポジトリへ登録(trunk)→レビュー→問題があれば修正→問題がなくなったらリリース

Pros & Cons

利点

問題点

リポジトリベースの場合3 (trunk + stableブランチ)

trunkへCommitする点は上と同じだが,リリース用のstableブランチを用意して,リリースはそこから行う.メジャーリリース版は機能追加を最小限にとどめてバグフィックスのみとする場合の一般的なスタイル.

パッチ提供→リポジトリへ登録(trunk)→レビュー→問題があれば修正→問題がなくなったら変更をstableブランチへマージ→stableブランチからリリース

Pros & Cons

基本的には前項の性質に加えて,

利点

問題点

問題発生による緊急対応がそんなに頻繁に起こる物ではないので,問題が起こってからパッチ用ブランチを作る方がstableブランチを常に持つよりも作業負荷が低く済む.

実際には...(過去の事例)

衝突時に単純なマージで解決できないケース

軽微な変更と思っていてもポインタの扱いや関数の誤解によって大きな問題を引き起こすことがある.