Subversion によるバージョン管理

For Subversion 1.4

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

Collins-Sussman Ben [FAMILY Given]

Fitzpatrick Brian W. [FAMILY Given]

Pilato C. Michael [FAMILY Given]

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)


目次

Foreword
対象読者
本書の読み方
本書での約束ごと
印刷上の規約
アイコン
本書の構成
この本はフリーです
謝辞
Ben Collins-Sussman より
Brian W. Fitzpatrick より
C. Michael Pilato より
Subversion とは?
Subversion の歴史
Subversion の機能
Subversion の構成
Subversion のコンポーネント
1. 基本コンセプト
リポジトリ
バージョン管理モデル
ファイル共有の問題
ロック・修正・ロック解除の解法
コピー・修正・マージの解法
Subversion の動作
Subversion リポジトリの URL
作業コピー
リビジョン
作業コピーはどのようにリポジトリを追いかけるか
混合リビジョン状態の作業コピー
更新とコミットは別の処理です
混合リビジョンは正常な状態です
混合リビジョンは役にたつものです
混合リビジョンには制約があります
まとめ
2. 基本的な使い方
ヘルプ!
リポジトリへのデータ移行
svn import
推奨するリポジトリレイアウト
最初のチェックアウト
パスワードキャッシュの無効化
別のユーザとしての認証
基本的な作業サイクル
作業コピーの更新
作業コピーに変更を加えること
自分の変更点の確認
自分がした変更の概要確認
Examine the details of your local modifications
変更の取り消し
競合の解消 (他の人の変更点のマージ)
競合を手でマージ
作業ファイルの上にファイルをコピーすること
Punting: svn revertの利用
変更点のコミット
履歴の確認
変更履歴の一覧生成
更新履歴の詳細の確認
ローカルの変更内容の確認
作業コピーとリポジトリの比較
リポジトリとリポジトリの比較
リポジトリの閲覧
svn cat
svn list
過去のリポジトリスナップショットの取得
Sometimes You Just Need to Clean Up
まとめ
3. より進んだ話題
リビジョン指定子
リビジョンキーワード
リビジョン日付
属性
なぜ属性なんてものが?
属性の操作
属性と Subversion のワークフロー
属性の自動設定
ファイルの可搬性
ファイルの内容タイプ
ファイルの実行権
行末文字コード
無視されるバージョン管理下にないアイテム
キーワード置換
ロック
ロックの作成
ロック状況の調査
ロックの解除と横取り(steal)
ロックのコミュニケーション
外部定義
ペグ・リビジョンと操作対象リビジョン
ネットワークモデル
要求と応答
クライアント証明のキャッシュ
4. ブランチとマージ
ブランチとは?
ブランチの利用
ブランチの作成
自分用のブランチでの作業
ブランチの背後にある鍵となる考え方
ブランチをまたいで変更をコピーすること
特定の変更点のコピー
マージの基本的な考え方
マージの一番うまいやり方
手でマージする方法
マージ内容の確認
マージの競合
系統(Ancestry)を考慮することと無視すること
マージと移動
典型的な利用方法
ブランチ全体を別の場所にマージすること
変更の取り消し
削除されたアイテムの復活
ブランチの作り方
リリースブランチ
(特定機能の)開発用ブランチ
ブランチの横断
タグ
簡単なタグの作成
複雑なタグの作成
ブランチの管理
リポジトリのレイアウト
データの寿命
ベンダーブランチ
一般的な、ベンダーブランチを管理する方法
svn_load_dirs.pl
まとめ
5. リポジトリの管理
The Subversion Repository, Defined
リポジトリ提供の戦略
リポジトリ構成の計画
リポジトリをどこにどのように格納するかの決定
リポジトリ保存形式の選択
Berkeley DB
FSFS
Creating and Configuring Your Repository
リポジトリの作成
リポジトリフックの実装
Berkeley DB の設定
リポジトリの保守
管理者用ツールキット
svnadmin
svnlook
svndumpfilter
svnsync
Berkeley DB ユーティリティー
コミットログメッセージの正確性
ディスク領域の管理
Subversion はどのようにディスク消費を抑えるか
死んだトランザクションの削除
Purging unused Berkeley DB logfiles
Berkeley DB の復旧
リポジトリデータを別の場所へ移動
リポジトリ履歴のフィルタリング
リポジトリの複製
リポジトリのバックアップ
まとめ
6. サーバの設定
概要
サーバ設定の選択
svnserve サーバ
svnserve over SSH
Apache HTTP サーバ
推奨
svnserve (専用サーバ)
サーバの起動
デーモンとしての svnserve
inetd 経由の svnserve
トンネル経由の svnserve
Windows サービスとしての svnserve
組み込みの認証と認可
ユーザファイルと認証範囲の作成
アクセス制御の設定
SSH のトンネリング
SSH 設定の技法
初期設定
起動コマンドの制御
httpd (Apache HTTP サーバ)
必須要件
基本的な Apache の設定
認証オプション
基本 HTTP 認証
SSL 証明書の管理
認可のオプション
全面的なアクセス制御
ディレクトリごとのアクセス制御
パス名にもとづいたチェックの禁止
おまけ
リポジトリ閲覧
Apache のログ
その他の機能
パスベース認証
複数リポジトリアクセス方法のサポート
7. Customizing Your Subversion Experience
実行時設定領域
設定領域のレイアウト
設定と、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 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
svnsync
svnsync のオプション
svnsync のサブコマンド
svnsync copy-revprops
svnsync initialize
svnsync synchronize
svnserve
svnserve のオプション
svnversion
svnversion
mod_dav_svn
mod_dav_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 Webfolders
Nautilus, Konqueror
WebDAV ファイルシステムの実装
WebDrive, NetDrive
Mac OS X
Linux davfs2
D. サードパーティー製ツール
E. 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
5.1. Repository 保存形式の比較
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.sh
7.3. diffwrap.bat
7.4. diff3wrap.sh
7.5. diff3wrap.bat
8.1. リポジトリ層の利用
8.2. Pythonを使ったリポジトリ層
8.3. A Python Status Crawler