sou's blog

落ち着いた華やかさがあり、上品に明るく陽気なさまを表す。

SVNリポジトリの使用方法について

Subversionの各リポジトリ(trunk、tags、branches)の運用方法について記載します。

次期バージョンの開発を行なう場合

次期バージョンの開発(新規機能追加や既存機能改修など)を行なう場合は trunk にて作業を行ないます。
その為、trunkは常に最も新しい状態(開発版)となっています。(不具合がある可能性も高い)

開発を終えたバージョンをリリースしたい

trunkでの開発を終えたバージョンをリリースする場合、 branchesにバージョン番号のディレクトリを作成 し、枝分かれさせます。
リリース作業はbranchesに作成したリポジトリで作業を行ないます。

(例)
sample_appシステムの場合、「sample_app/branches/2.1」といった具合

リリース後、不具合が発生したので対応したい

リリース後の不具合対応はbranchesで管理している該当のバージョンのリポジトリに対して修正を行ないます。
その為、 branchesでの修正内容は状況に応じてtrunkにマージ する必要があります。
(次期バージョンでは前のバージョンの不具合修正を反映させなくても良いなどのケースではマージする必要はないが、原則は常にbranchesの修正内容はマージすること。)

安定版として保存しておきたい

リリース後branchesでの不具合が収束し、安定版として保存しておきたい場合はbranchesからtagsへコピーします。
大幅な改修などメジャーバージョン番号が変わるような改修が入った場合、不測の事態に備えていつでも元に戻れるように前のバージョンを保存しておく必要があります。

(例)
大幅な業務変更のため、メジャーバージョン番号を1.Xから2.Xに変更する。
その際、1.Xの最終安定版のバージョンである1.9をtagsへスナップショットとして保存しておく。
万が一、2.X系リリース後に大きな不具合が発生し、1.X系に差し戻す場合はtagsで保存しておいた1.X系の最終安定版の1.9に置き換える。
sample_appシステムの場合、「sample_app/tags/1.0」といった具合。