Subversion によるバージョン管理

Ben Collins-Sussman [FAMILY Given]

Brian W. Fitzpatrick [FAMILY Given]

C. Michael Pilato [FAMILY Given]

Translator: [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)


目次

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