LAINpedia

Subversion

出典: LAINpedia

目次

概要

Subversionはファイルをバージョン管理するツール. CVSの後継として開発された. 主な用途

  • プログラムソースのバージョン管理→履歴が残れば大幅な改造も怖くない!
  • ソースに限らずテキストやPPT,Excelファイルなどなんでも管理→ファイル管理データベース

インストール

ローカルにリポジトリを作って管理する場合は簡単.インストーラでインストールするだけ.

外部からアクセスする方法にはsvn,svn+ssh,http,httpsなどがある. httpでの設定に関してはBlogを参照(MacもWindowsも大して変わらない)

使用方法

基本はコマンドによる操作だがWindowsにはTortoiseSVNという便利なExplorer拡張があるのでそれを使用する

全体的な流れ

準備

  1. リポジトリを作る
  2. ファイルをインポートする
  3. ファイルをチェックアウトする

基本

  1. ワーキングコピー(WC)をアップデートして最新版にする
  2. ファイルを編集する
  3. 編集結果をコミットする
  4. 衝突が起きなければOK.起きた場合はマージ作業

応用

  • ファイルの追加,ディレクトリの移動
  • 衝突が起きたときのマージ方法
  • brancheの作り方,tagの付け方
  • リポジトリの切り替え


解説

準備編

リポジトリを作る
  1. リポジトリを置きたい場所にディレクトリを作成
  2. ディレクトリ右クリック→TortoiseSVN→ここにリポジトリを作成→FSFSを選択
ファイルをインポートする
  1. インポートしたいディレクトリを右クリック→TortoiseSVN→インポート
  2. リポジトリのURLに先ほど作成したリポジトリのパスを設定→OK
  3. オリジナルのファイルは不要なのでリネームするなり削除するなり(同じディレクトリにチェックアウトしないならそのままでもOK)
ファイルをチェックアウトする
  1. チェックアウトしたいディレクトリに移動しチェックアウトしたファイルを保存するディレクトリを作成する
  2. 作成したディレクトリを右クリック→SVNチェックアウト
  3. リポジトリのURLに先ほどのリポジトリを設定→OK
  4. ディレクトリに緑のチェックマークが表示される(SVNで管理されている印)


基本編

ワーキングコピー(WC)をアップデートして最新版にする
  • WCのディレクトリを右クリック→SVN更新
  • 衝突があった場合は修正(後述)
ファイルを編集する

普通にエディタなどで編集 編集したファイルの緑のチェックマークが赤の!に変わる

編集結果をコミットする
  1. 編集したファイルが入っているディレクトリを右クリック→SVNコミット
  2. "変更されたファイル"の部分に変更したファイルがあることを確認する
  3. ログメッセージを入力する→OK


応用編

ファイルの追加,削除,ディレクトリの移動
  • プロジェクトに新たにファイルを追加したい場合
    追加したいファイルを右クリック→TortoiseSVN→追加
  • ファイルを削除したい場合
    削除したいファイルを右クリック→TortoiseSVN→削除
  • ファイルを別のディレクトリに移動したい場合
    移動したいファイルを移動先ディレクトリへ右ドラッグ→SVNバージョン管理ファイルをここに移動する
衝突が起きたときのマージ方法
  1. コミットしようとするとまず更新しろといわれるのでSVN更新
  2. エラーメッセージが表示されて赤の!マークが黄色の警告標識に変わる
  3. 衝突を起こしているファイルと同じディレクトリにfilename.txt.mine,filename.txt.rNEWREV,filename.txt.OLDREVという名前のファイルができている
  4. NEWREVのファイルがリポジトリ内の最新状態なので自分が編集した最新のファイルとNEWREVを比較し手動でマージ作業を行う
  5. 右クリック→問題の解消→OKで自動生成されたファイルを削除する
  6. コミットする
brancheの作り方,tagの付け方

brancheとtagは内部的にはどちらもチープコピーという一種のコピー処理のため作業手順は変わらない それぞれの用途は次のとおり

  • branche
    バージョンごとに平行して開発したい場合などに使用
  • tag
    特定のリビジョンに名前を付けて保存したい場合などに使用

作業手順は次のようになる

  1. 分岐したいディレクトリを右クリック→TortoiseSVN→分岐/タグ
  2. 先URLにbrancheのディレクトリを指定(通常branches以下にversion0.2などのディレクトリを作る)
  3. 続けてbrancheで作業する場合は作業コピーを新しい分岐/タグに切り替えるのチェックをオンにする
  4. OK
リポジトリの切り替え

標準的なリポジトリ構造を採用している場合WCにはtrunk/project_nameをチェックアウトする 前述のbrancheなどで作業する場合はWCをbranches/version0.2/project_nameなどに切り替える必要がある

  • 手順
    プロジェクトディレクトリを右クリック→TortoiseSVN→切り替え→先URLをbranches/version0.2/project_nameなどに設定しOK
個人用ツール