Subversionリポジトリにおけるブランチ、タグ、トランクの意味
2024-09-19
Subversionリポジトリでは、ファイルやディレクトリのバージョン管理を行うために、"ブランチ"、"タグ"、"トランク"という概念が使われます。
トランク (trunk)
- メイン開発ラインを表します。
- 新しい機能の開発やバグ修正は通常トランクで行われます。
- 最新の、最も安定したコードがここにあります。
ブランチ (branch)
- 開発ラインの分岐を表します。
- 特定の機能やバグ修正のためにトランクから分岐されます。
- ブランチで開発された変更は、テストや検証が完了した後、トランクにマージされます。
タグ (tag)
- 特定の時点でのコードのスナップショットを表します。
- リリースや重要なマイルストーンを記録するために使用されます。
- タグは変更されないため、過去のコードの状態をいつでも参照できます。
例:
- トランク: メイン開発ラインで新しい機能を開発中。
- ブランチ: 特定の機能を実装するためにトランクから分岐された開発ライン。
- タグ: リリース1.0のコードのスナップショット。
svnコマンドでの使い方:
- ブランチを作成:
svn copy trunk new_branch
- タグを作成:
svn copy trunk tags/release_1.0
- ブランチをマージ:
svn merge -r HEAD new_branch trunk
Subversionリポジトリの基礎知識と例
Subversionは、ファイルやディレクトリのバージョン管理システムです。リポジトリと呼ばれる中央のサーバーにファイルやディレクトリを保存し、変更履歴を追跡することができます。
ブランチ、タグ、トランクの例
新しい機能の開発
- ブランチ: 新しい機能を開発するためにトランクから分岐を作成します。
- コード:
svn copy trunk new_feature_branch
バグ修正
- トランク: バグが発見された場合、トランクで修正します。
- ブランチ: 緊急の修正が必要な場合、トランクから分岐を作成して修正します。
リリース
- タグ: リリースの時点でのコードのスナップショットを作成します。
ブランチのマージ
- マージ: ブランチで開発された変更をトランクにマージします。
- コード:
svn merge -r HEAD new_feature_branch trunk
Subversionコマンドの例
- リポジトリの作成:
svnadmin create my_repository
- リポジトリへのチェックアウト:
svn checkout svn://your_server/my_repository my_working_copy
- ファイルの追加:
svn add new_file.txt
- ファイルのコミット:
svn commit -m "Added new file"
- ファイルの更新:
svn update
代替手法
Subversionの代替として、以下のようなバージョン管理システムが使用されることがあります。
Git
- 分散型バージョン管理システムであり、ローカルリポジトリを持つため、オフラインでの作業が可能です。
- ブランチの作成やマージが非常に高速で、柔軟なワークフローが可能です。
- コマンド例:
git branch new_feature git checkout new_feature git merge main
Mercurial
- 分散型バージョン管理システムであり、Gitと同様の機能を提供します。
- よりシンプルなインターフェースと軽量な設計が特徴です。
- コマンド例:
hg branch new_feature hg update new_feature hg merge default
Perforce
- 集中型バージョン管理システムであり、Subversionと同様の概念を使用します。
- 大規模なプロジェクトやチームでの使用に適しています。
- コマンド例:
p4 branch new_feature p4 sync new_feature p4 integrate default new_feature
Subversionの利点と欠点
- 利点:
- シンプルなインターフェースと使いやすさ
- 多くのツールやプラグインがサポートされている
- 長年にわたって使用されている信頼性の高いシステム
- 欠点:
- 中央サーバーへの依存性があり、オフラインでの作業が制限される
- ブランチの作成やマージが比較的遅い
svn branch terminology