ブランチ・タグ関連の運用について
DVCS(分散VCS)が花盛りな昨今、分散でないSVNの運用について考えています。
どのように作るか
マージについては場合による...かな?...のでパス。
- 1.0.0リリース前
- trunkのみ
* リポジトリ * TheProject + trunk + .project + tags + branches * ワークスペース * TheProject [trunk] + .project
- 1.0.0リリース直後
- trunkの1.0.0としてリリースしたリビジョンからタグ"tags/1.0.0"を生成
* リポジトリ * TheProject + trunk + .project + tags + 1.0.0 + .project + branches * ワークスペース * TheProject [trunk] + .project
- 1.0.0メンテナンスブランチ開始
- タグ"tags/1.0.0"からブランチ"branches/1.0.x"を生成(1.0.1,1.0.2,...)
- trunkとリンクしているプロジェクトは次のバージョン(1.1.0)用
- "branches/1.0.x"を"TheProject-1.0.x"としてチェックアウト
* リポジトリ * TheProject + trunk + .project + tags + 1.0.0 + .project + branches + 1.0.x + .project * ワークスペース * TheProject [trunk] ->1.1.0を開発中 + .project TheProject-1.0.x [branches/1.0.x] + .project
イメージはこんな感じでしょうか。
↓ tags/1.0.0 → branches/1.0.x (1.0.1 → 1.0.2 → ... → endless) ↓ tags/1.1.0 → branches/1.1.x (1.1.1 → 1.1.2 → ... → endless) ↓ trunk
タグをREADONLYにする
タグは実質ブランチと同じで更新ができてしまいますので、タグを読取専用にします。方法は下記ページ参照。