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

svn branch terminology