Subversion によるバージョン管理

For Subversion 1.5

(コンパイル元: rエクスポートされたものです)

Ben Collins-Sussman

Brian W. Fitzpatrick

C. Michael Pilato

上平

翻訳 (2005-2006) 

倉澤

翻訳 (2007-2008) 

This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

(TBA)


目次

まえがき
序文
対象読者
本書の読み方
本書での規約
本書の構成
本書はフリー
謝辞
Ben Collins-Sussman より
Brian W. Fitzpatrick より
C. Michael Pilato より
Subversion とは?
Subversion は妥当なツール?
Subversion の歴史
Subversion のアーキテクチャ
Subversion のコンポーネント
Subversion の新機能
1. 基本コンセプト
リポジトリ
バージョン管理モデル
ファイル共有の問題
ロック・変更・ロック解除法
コピー・変更・マージ法
Subversion の動作
Subversion リポジトリの URL
作業コピー
リビジョン
作業コピーはどのようにリポジトリを追跡するか
混合リビジョン状態の作業コピー
更新とコミットは別の処理
混合リビジョンは正常な状態です
混合リビジョンは便利です
混合リビジョンには制約があります
まとめ
2. 基本的な使い方
ヘルプ!
リポジトリへのデータ移行
svn import
推奨するリポジトリレイアウト
最初のチェックアウト
パスワードキャッシュの無効化
別のユーザとして認証
基本的な作業サイクル
作業コピーの更新
作業コピーの変更
行った変更の確認
行った変更の概要確認
ローカルにある変更点の詳細確認
行った変更の取り消し
競合の解消 (他の人の変更点のマージ)
インタラクティブな競合差分の表示
インタラクティブな競合差分の解決
競合解決の延期
手で競合をマージ
新しく取得したリビジョンにより自分の変更を破棄
やーめた (svn revert の利用)
変更点のコミット
履歴の確認
変更履歴の一覧生成
更新履歴の詳細確認
ローカルの変更内容の確認
作業コピーとリポジトリの比較
リポジトリリビジョンの比較
リポジトリの閲覧
svn cat
svn list
過去のリポジトリスナップショットの取得
たまには掃除も必要
作業コピーの処理
割り込みからの復帰
まとめ
3. より進んだ話題
リビジョン指定子
リビジョンキーワード
リビジョン日付
属性
なぜ属性なのですか?
属性の操作
属性と Subversion のワークフロー
属性の自動設定
ファイルの可搬性
ファイルの内容タイプ
ファイルの実行権
行末文字コード
バージョン管理下にない項目の無視
キーワード置換
疎ディレクトリ
ロック
ロックの作成
ロック状況の調査
ロックの破壊と横取り(steal)
ロックのコミュニケーション
外部定義
ペグ・リビジョンと操作対象リビジョン
変更リスト
変更リストの作成・修正
操作フィルタとしての変更リスト
変更リストの制限
ネットワークモデル
要求と応答
クライアント証明のキャッシュ
まとめ
4. ブランチとマージ
ブランチとは?
ブランチの利用
ブランチの作成
自分用のブランチでの作業
ブランチの背後にある鍵となる概念
基本的なマージ
チェンジセット
ブランチを同期したままに
Mergeinfo とプレビュー
変更の取り消し
削除した項目の復活
高度なマージ
サクランボ狩り
マージ構文: 全面公開
mergeinfo のないマージ
More on Merge Conflicts
変更のブロック
Merge-Sensitive Logs and Annotations
系統 (Ancestry) を考慮することと無視すること
マージと移動
Blocking Merge-Unaware Clients
マージ追跡の最後に
ブランチの横断
タグ
簡単なタグの作成
複雑なタグの作成
ブランチの管理
リポジトリのレイアウト
データの寿命
よくあるブランチのパターン
リリースブランチ
機能ブランチ
ベンダブランチ
一般的な、ベンダーブランチを管理する方法
svn_load_dirs.pl
まとめ
5. リポジトリの管理
Subversion のリポジトリ: 定義
リポジトリ提供戦略
リポジトリ構成の計画
リポジトリをどこにどのように格納するかの決定
データ保存形式の選択
Berkeley DB
FSFS
リポジトリの作成と設定
リポジトリの作成
リポジトリフックの実装
Berkeley DB の設定
リポジトリの保守
管理者用ツールキット
svnadmin
svnlook
svndumpfilter
svnsync
fsfs-reshard.py
Berkeley DB ユーティリティ
コミットログメッセージの正確性
ディスク領域の管理
Subversion はどのようにディスク消費を抑えるか
死んだトランザクションの削除
利用していないBerkeley DB ログの削除
Berkeley DB の復旧
リポジトリデータを別の場所へ移動
リポジトリ履歴のフィルタリング
リポジトリの複製
リポジトリのバックアップ
リポジトリ UUID の管理
リポジトリの移動と削除
まとめ
6. サーバの設定
概要
サーバ形態の選択
svnserve サーバ
SSH 経由の svnserve
Apache HTTP サーバ
提案
svnserve (カスタムサーバ)
サーバの起動
デーモンとしての svnserve
inetd 経由の svnserve
トンネル経由の svnserve
Windows サービスとしての svnserve
内蔵認証認可機構
ユーザファイルと認証範囲の作成
アクセス制御の設定
SASL 付き svnserve の使い方
SASL による認証
SASL 暗号化
SSH のトンネリング
SSH 設定の技法
初期設定
起動コマンドの制御
httpd (Apache HTTP サーバ)
必須要件
基本的な Apache の設定
認証オプション
HTTP 認証の設定
SSL 証明書の管理
認可のオプション
Blanket access control
ディレクトリごとのアクセス制御
パスベースチェックの無効化
おまけ
リポジトリの閲覧
Apache のログ
書き込み透過プロキシ
その他のApacheの機能
パスベース認証
複数リポジトリアクセス方法のサポート
7. Subversion 体験のカスタマイズ
実行時設定領域
設定領域のレイアウト
設定と、Windowsのレジストリ
設定オプション
servers
config
地域化
ロケールの理解
Subversion でのロケールの利用
外部エディタの利用
外部差分マージツールの利用
外部 diff
外部 diff3
まとめ
8. Subversion の組み込み
階層化ライブラリ設計
リポジトリ層
リポジトリアクセス層
クライアント層
作業コピー管理領域の内部
Entries ファイル
修正元コピーと属性ファイル
APIの利用
Apache Portable Runtime ライブラリ
URL と Path の要求
C や C++ 以外の言語の利用
コードサンプル
まとめ
9. Subversion 完全リファレンス
Subversion コマンドラインクライアント: svn
svn のオプション
svn のサブコマンド
svn add
svn blame
svn cat
svn changelist
svn checkout
svn cleanup
svn commit
svn copy
svn delete
svn diff
svn export
svn help
svn import
svn info
svn list
svn lock
svn log
svn merge
svn mergeinfo
svn mkdir
svn move
svn propdel
svn propedit
svn propget
svn proplist
svn propset
svn resolve
svn resolved
svn revert
svn status
svn switch
svn unlock
svn update
svnadmin
svnadmin のオプション
svnadmin のサブコマンド
svnadmin crashtest
svnadmin create
svnadmin deltify
svnadmin dump
svnadmin help
svnadmin hotcopy
svnadmin list-dblogs
svnadmin list-unused-dblogs
svnadmin load
svnadmin lslocks
svnadmin lstxns
svnadmin recover
svnadmin rmlocks
svnadmin rmtxns
svnadmin setlog
svnadmin setrevprop
svnadmin setuuid
svnadmin upgrade
svnadmin verify
svnlook
svnlook のオプション
svnlook のサブコマンド
svnlook author
svnlook cat
svnlook changed
svnlook date
svnlook diff
svnlook dirs-changed
svnlook help
svnlook history
svnlook info
svnlook lock
svnlook log
svnlook propget
svnlook proplist
svnlook tree
svnlook uuid
svnlook youngest
svnsync
svnsync のオプション
svnsync のサブコマンド
svnsync copy-revprops
svnsync help
svnsync initialize
svnsync synchronize
svnserve
svnserve のオプション
svndumpfilter
svndumpfilter のオプション
svndumpfilter のサブコマンド
svndumpfilter exclude
svndumpfilter include
svndumpfilter help
svnversion
svnversion
mod_dav_svn
mod_dav_svn 設定ディレクティブ
mod_authz_svn
mod_authz_svn 設定ディレクティブ
Subversion の属性
バージョン管理下の属性
バージョン管理外の属性
リポジトリのフック
start-commit
pre-commit
post-commit
pre-revprop-change
post-revprop-change
pre-lock
post-lock
pre-unlock
post-unlock
A. Subversion クイックスタートガイド
Subversion のインストール
高速チュートリアル
B. CVS ユーザのための Subversion
リビジョン番号の意味が変わります
ディレクトリのバージョン
切断状態での豊富な操作
状態と更新の区別
状態
更新
ブランチとタグ
メタデータ属性
競合の解消
バイナリファイルと変換
バージョン管理下のモジュール
認証
CVS から Subversion へのリポジトリ変換
C. WebDAV と自動バージョン管理機能
WebDAV とは?
自動バージョン管理機能
クライアント互換性
スタンドアロン WebDAV アプリケーション
Microsoft Office, Dreamweaver, Photoshop
cadaver, DAV Explorer
ファイルエクスプローラの WebDAV 拡張
Microsoft Web フォルダ
Nautilus, Konqueror
WebDAV ファイルシステム実装
WebDrive, NetDrive
Mac OS X
Linux davfs2
D. Copyright
索引

図目次

1. Subversion のアーキテクチャ
1.1. 典型的なクライアント/サーバシステム
1.2. 避けなくてはならない問題
1.3. ロック・変更・ロック解除法
1.4. コピー・変更・マージ法
1.5. コピー・変更・マージ法(続き)
1.6. リポジトリのファイルシステム
1.7. リポジトリ
4.1. 開発のブランチ
4.2. リポジトリレイアウトの開始
4.3. 新しいコピーのあるリポジトリ
4.4. あるファイルの履歴のブランチ化
8.1. 二次元の中のファイルとディレクトリ
8.2. バージョン管理時刻—三次元目!

表目次

1.1. リポジトリにアクセスする URL
4.1. ブランチやマージのコマンド
5.1. リポジトリデータ保存形式の比較
6.1. Subversion サーバオプションの比較
C.1. よく利用される WebDAV クライアント

例目次

5.1. txn-info.sh (未解決トランザクションの表示)
5.2. ミラーリポジトリの pre-revprop-change フックスクリプト
5.3. ミラーリポジトリの start-commit フックスクリプト
6.1. 匿名アクセスの設定例
6.2. 認証アクセスの設定例
6.3. 認証・匿名の両方でアクセスする場合の設定例
6.4. Disabling path checks altogether
7.1. レジストリエントリ(.reg) ファイルの例
7.2. diffwrap.py
7.3. diffwrap.bat
7.4. diff3wrap.py
7.5. diff3wrap.bat
8.1. リポジトリ層の利用
8.2. Python を使ったリポジトリレイヤ
8.3. Python ステータスクローラ