Subversion によるバージョン管理

For Subversion 1.2

(book compiled from リビジョン 1996)

Ben Collins-Sussman

Brian W. Fitzpatrick

C. Michael Pilato

Translator: Tez Kamihira

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.

2006/05/10 00:45:53


目次

まえがき
序文
対象者
この本の読み方
この本での約束ごと
印刷上の規約
アイコン
この本の構成
この本はフリーです
謝辞
Ben Collins-Sussmanより
Brian W. Fitzpatrickより
C. Michael Pilatoより
1. 導入
Subversionって何?
Subversionの歴史
Subversionの機能
Subversion の構成
Subversionのインストール
Subversionの構成要素
クイックスタート
2. 基本概念
リポジトリ
バージョン管理モデル
ファイル共有の問題
ロック・修正・ロック解除の解法
コピー・修正・マージの解法
実行中のSubversion
作業コピー
リビジョン
作業コピーはどのようにリポジトリを追いかけるか
混合リビジョン状態の作業コピー
更新とコミットは別の処理です
混合リビジョンは正常な状態です
混合リビジョンは役にたつものです
混合リビジョンには制約があります
まとめ
3. 同伴ツアー
おたすけを!
インポート
リビジョン: 番号、キーワード、そして、時刻、おやおや・・・
リビジョン番号
リビジョンキーワード
リビジョン日付
最初のチェックアウト
基本的な作業サイクル
作業コピーの更新
作業コピーに変更を加えること
自分の変更点の調査
svn status
svn diff
svn revert
衝突の解消(他の人の変更点のマージ)
衝突を手でマージすること
作業ファイルの上にファイルをコピーすること
Punting: svn revertの利用
変更点のコミット
履歴の確認
svn log
svn diff
ローカルの変更内容の確認
作業コピーとリポジトリの比較
リポジトリとリポジトリの比較
svn cat
svn list
履歴機能について、最後に
その他の役に立つコマンド
svn cleanup
svn import
まとめ
4. ブランチとマージ
ブランチとは?
ブランチの利用
ブランチの作成
自分用のブランチでの作業
ブランチの背後にある鍵となる考え方
ブランチをまたいで変更をコピーすること
特定の変更点のコピー
マージの基本的な考え方
マージの一番うまいやり方
手でマージする方法
マージ内容の確認
マージの衝突
系統(Ancestry)を考慮することと無視すること
典型的な利用方法
ブランチ全体を別の場所にマージすること
変更の取り消し
削除されたアイテムの復活
ブランチの作り方
リリースブランチ
(特定機能の)開発用ブランチ
作業コピーの切り替え
タグ
簡単なタグの作成
複雑なタグの作成
ブランチの管理
リポジトリのレイアウト
データの寿命
まとめ
5. リポジトリの管理
リポジトリの基礎
トランザクションとリビジョンの理解
バージョン化されない属性
リポジトリの保存形式
Berkeley DB
FSFS
リポジトリの作成と設定
フックスクリプト
Berkeley DB の設定
リポジトリの保守
管理者用ツールキット
svnlook
svnadmin
svndumpfilter
Berkeley DB ユーティリティー
リポジトリのお掃除
ディスク領域の管理
リポジトリの復旧
リポジトリの移行
リポジトリのバックアップ
プロジェクトの追加
リポジトリレイアウトの選択
レイアウトの作成と、初期データのインポート
まとめ
6. サーバの設定
概観
ネットワークモデル
要求と応答
クライアント証明のキャッシュ
svnserve, 専用サーバ
サーバの起動
組み込みの認証と認可
ユーザファイルと認証範囲の作成
アクセス制御の設定
SSH 認証と認可
SSH 設定の技法
初期設定
起動コマンドの制御
httpd, Apache HTTP サーバ
必須要件
基本的な Apache の設定
認証オプション
基本 HTTP 認証
SSL 証明書の管理
認可のオプション
全面的なアクセス制御
ディレクトリごとのアクセス制御
パス名にもとづいたチェックの禁止
おまけ
リポジトリ閲覧
その他の機能
複数リポジトリアクセス方法のサポート
7. より進んだ話題
実行時設定領域
設定領域のレイアウト
設定と、Windowsのレジストリ
設定オプション
servers
config
属性
なぜ属性なんてものが?
属性の操作
特殊な属性
svn:executable
svn:mime-type
svn:ignore
svn:keywords
svn:eol-style
svn:externals
svn:special
svn:needs-lock
属性の自動設定
ロック
ロックの作成
ロック状況の調査
ロックの解除と横取り(steal)
ロックのコミュニケーション
ペグ・リビジョンと操作対象リビジョン
外部定義
ベンダーブランチ
一般的な、ベンダーブランチを管理する方法
svn_load_dirs.pl
ローカライゼーション
ロケールの理解
Subversion でのロケール
外部差分ツールの利用
外部 diff
外部 diff3
Subversion リポジトリの URL
8. 開発者の情報
階層化されたライブラリ設計
リポジトリ層
リポジトリアクセス層
RA-DAV (HTTP/DAVを使ったリポジトリアクセス)
RA-SVN (固有のプロトコルによるリポジトリアクセス)
RA-Local (リポジトリへの直接のアクセス)
Your RA Library Here
クライアント層
APIの利用
Apache Portable Runtime ライブラリ
URL と Path の要求
C と C++以外の言語の利用
作業コピー管理領域の内部
Entries ファイル
修正元コピーと属性ファイル
WebDAV
メモリプールを使ったプログラミング
Subversionへの貢献
コミュニティへの参加
ソースコードの取得
コミュニティのやり方に精通すること
コードの変更とテスト
変更点の提供
9. Subversion リファレンス
Subversion コマンドラインクライアント: svn
svn のスイッチ
svn サブコマンド
svn add
svn blame
svn cat
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 mkdir
svn move
svn propdel
svn propedit
svn propget
svn proplist
svn propset
svn resolved
svn revert
svn status
svn switch
svn unlock
svn update
svnadmin
svnadminスイッチ
svnadmin サブコマンド
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 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
svnserve
svnserve スイッチ
svnversion
svnversion
mod_dav_svn
mod_dav_svn 設定ディレクティブ
A. CVSユーザのためのSubversion
リビジョン番号の意味が変わります
ディレクトリのバージョン
切断状態での豊富な操作
状態と更新の区別
ブランチとタグ
メタデータの属性
衝突の解消
バイナリファイルと変換
バージョン管理されたモジュール
認証
CVS から Subversion へのリポジトリ変換
B. WebDAV と、自動バージョン化
WebDAV の基本的な概念
単純な WebDAV
DeltaV 拡張
Subversion と DeltaV
自動バージョン化
クライアントの協調動作
スタンドアロン WebDAV アプリケーション
Microsoft Office, Dreamweaver, Photoshop
Cadaver, DAV Explorer
ファイルエクスプローラの WebDAV 拡張
Microsoft Web Folders
Nautilus, Konqueror
WebDAV ファイルシステムの実装
WebDrive, NetDrive
Mac OS X
Linux davfs2
C. サードパーティー製ツール
D. Copyright

図の一覧

1.1. Subversion の構成
2.1. 典型的なクライアント/サーバシステム
2.2. 避けなくてはならない問題
2.3. ロック・修正・ロック解除の解法
2.4. コピー・修正・マージの解法
2.5. コピー・修正・マージの解法(続き)
2.6. リポジトリのファイルシステム
2.7. リポジトリ
4.1. 開発のブランチ
4.2. リポジトリレイアウトの開始
4.3. 新しいコピーのあるリポジトリ
4.4. あるファイルの履歴のブランチ化
8.1. 二次元の中のファイルとディレクトリ
8.2. バージョン化した時刻—第三の次元!

表の一覧

2.1. リポジトリにアクセスするためのURL
5.1. Repository 保存形式の比較
6.1. ネットワークサーバの比較
8.1. Subversionライブラリの一覧
B.1. よく利用される WebDAV クライアント

例の一覧

5.1. txn-info.sh (未解決トランザクションの表示)
6.1. 匿名アクセスの設定例。
6.2. 認証つきアクセスの設定例。
6.3. 認証つき/匿名の両方でアクセスする場合の設定例。
6.4. Disabling path checks altogether
7.1. レジストリエントリ(.reg) ファイルの例
7.2. diffwrap.sh
7.3. diffwrap.bat
7.4. diff3wrap.sh
7.5. diff3wrap.bat
8.1. リポジトリ層の利用
8.2. Pythonを使ったリポジトリ層
8.3. A Python Status Crawler
8.4. 典型的な.svn/entries ファイル
8.5. 効率的なプールの利用