実用 Subversion 第2版

[cover photo]
TOPICS
Programming , Web , Linux
発行年月日
PRINT LENGTH
480
ISBN
978-4-87311-414-9
原書
Version Control with Subversion, Second Edition
FORMAT
PDF
Ebook
3,740円
Ebookを購入する

バージョン管理システム「Subversion」の開発者が執筆したSubversionの解説書。Subversion開発の中心的メンバーである3人の著者が技術的な面はもちろんSubversionの実装に関連した内容やそのバックグラウンドをわかりやすく正確に解説します。単にわかりやすいだけではなく章構成も秀逸で「ユーザの役割」によってどこを読めばよいかが一目瞭然のまさに「使えるチュートリアル+コマンドリファレンス」です。日本語版では巻末付録として、ファイル名に日本語を用いる環境においての注意点、Subversion導入方法、その他の便利なツールやプラグインについて加筆しました。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表 - 2009年9月掲載(2刷で修正予定)

■P.vii 図1
  • 【誤】
    誤った図
  • 【正】
    正しい図

目次

監訳者まえがき
序文
まえがき
1章 Subversionが実現するバージョン管理の設計思想
    1.1 リポジトリ
    1.2 バージョン管理モデル
        1.2.1 ファイル共有で生じる問題
        1.2.2 ロック・修正・アンロック法による解決
        1.2.3 コピー・修正・マージ法による解決
    1.3 Subversionの使用例
        1.3.1 SubversionリポジトリのURL
        1.3.2 作業コピー
        1.3.3 リビジョン
        1.3.4 作業コピーがリポジトリを追跡する方法
        1.3.5 リビジョンの混在する作業コピー
    1.4 まとめ
2章 基本的な使い方
    2.1 ヘルプ!
    2.2 リポジトリにデータを格納する
        2.2.1 svn import
        2.2.2 推奨されるリポジトリのレイアウト
    2.3 初めてのチェックアウト
        2.3.1 パスワードのキャッシュを無効化
        2.3.2 別のユーザとして認証
    2.4 基本的な作業サイクル
        2.4.1 作業コピーのアップデート
        2.4.2 ユーザの作業コピーを変更する
        2.4.3 変更の確認
        2.4.4 作業上の変更を元に戻す
        2.4.5 競合の解決(他ユーザの変更のマージ)
        2.4.6 変更をコミットする
    2.5 履歴の確認
        2.5.1 変更履歴のリストを生成する
        2.5.2 変更履歴の詳細を確認する
        2.5.3 リポジトリを閲覧する
        2.5.4 古いリポジトリのスナップショットを取得する
    2.6 整理整頓が必要なときもある
        2.6.1 作業コピーを処分する
        2.6.2 中断からの復元
    2.7 まとめ
3章 上級者向けトピック
    3.1 リビジョンの特定
        3.1.1 リビジョンキーワード
        3.1.2 リビジョン日時
    3.2 属性
        3.2.1 なぜ属性なのか
        3.2.2 属性の操作
        3.2.3 属性とSubversionのワークフロー
        3.2.4 属性の自動設定
    3.3 ファイルのポータビリティ
        3.3.1 ファイル形式
        3.3.2 ファイルの実行可能性
        3.3.3 改行文字
    3.4 バージョン管理されていない項目の無視
    3.5 キーワードの置換
    3.6 スパースディレクトリ
    3.7 ロック
        3.7.1 ロックの作成
        3.7.2 ロックの状態を調べる
        3.7.3 ロック破りとロックの横取り
        3.7.4 ロックによるコミュニケーション
    3.8 外部定義
    3.9 ペグと操作リビジョン
    3.10 変更リスト
        3.10.1 変更リストの作成と変更
        3.10.2 操作フィルタとしての変更リスト
        3.10.3 変更リストの制限
    3.11 ネットワークモデル
        3.11.1 要求と応答
        3.11.2 クライアントの認証情報のキャッシュ
    3.12 まとめ
4章 ブランチとマージ
    4.1 ブランチとは何か
    4.2 ブランチの使用
        4.2.1 ブランチの作成
        4.2.2 ブランチ上の作業
        4.2.3 ブランチの基本概念
    4.3 基本的なマージ
        4.3.1 変更セット
        4.3.2 ブランチの同期を保つ
        4.3.3 マージ情報とプレビュー
        4.3.4 変更を元に戻す
        4.3.5 削除された項目の復活
    4.4 複雑なマージ
        4.4.1 青田刈り
        4.4.2 マージ構文:完全公開
        4.4.3 マージ情報のないマージ
        4.4.4 マージの競合に関する追加情報
        4.4.5 変更を阻止する
        4.4.6 マージに敏感なログと注釈
        4.4.7 系統への配慮と無視
        4.4.8 マージと移動
        4.4.9 マージを認識しないクライアントをブロックする
        4.4.10 マージ追跡のまとめ
    4.5 ブランチの横断
    4.6 タグ
        4.6.1 簡単なタグの作成
        4.6.2 複雑なタグの作成
    4.7 ブランチの管理
        4.7.1 リポジトリのレイアウト
        4.7.2 データの寿命
    4.8 共通するブランチパターン
        4.8.1 リリースブランチ
        4.8.2 機能ブランチ
    4.9 ベンダーブランチ
        4.9.1 一般的なベンダーブランチ管理の手順
        4.9.2 svn_load_dirs.pl
    4.10 まとめ
5章 リポジトリ管理
    5.1 Subversionリポジトリの定義
    5.2 リポジトリを構築するための戦略
        5.2.1 リポジトリ構成を考える
        5.2.2 リポジトリを置く場所とその方法
        5.2.3 データストアを選択する
    5.3 リポジトリの作成と設定
        5.3.1 リポジトリの作成
        5.3.2 リポジトリフックの実装
        5.3.3 Berkeley DBの設定
    5.4 リポジトリの保守
        5.4.1 管理者の道具箱
        5.4.2 ログメッセージへの修正をコミットする
        5.4.3 ディスクスペースの管理
        5.4.4 Berkeley DBの復旧
        5.4.5 リポジトリのデータを別の場所に移行する
        5.4.6 リポジトリの履歴にフィルタをかける
        5.4.7 リポジトリの複製
        5.4.8 リポジトリのバックアップ
        5.4.9 リポジトリUUIDの管理
    5.5 リポジトリの移動と削除
    5.6 まとめ
6章 サーバ設定
    6.1 概要
    6.2 サーバ構成の選択
        6.2.1 svnserveサーバ
        6.2.2 SSHトンネルを通したsvnserve
        6.2.3 Apache HTTPサーバ
        6.2.4 推奨されるサーバ構成
    6.3 独自プロトコルによるサーバ:svnserve
        6.3.1 サーバの起動
        6.3.2 組み込まれている認証と許可
        6.3.3 SASLとsvnserveを使う
        6.3.4 SSHを使ったトンネリング
        6.3.5 SSH設定の小技
    6.4 httpd(Apache HTTP Server)
        6.4.1 前提条件
        6.4.2 Apacheの基本的な設定
        6.4.3 認証のオプション
        6.4.4 許可のオプション
        6.4.5 ちょっといいおまけ
    6.5 パスごとの許可
    6.6 複数リポジトリへのアクセスのサポート
7章 Subversionのカスタマイズ
    7.1 実行時の設定エリア
        7.1.1 設定エリアの配置
        7.1.2 設定とWindowsレジストリの関係
        7.1.3 オプションの設定
    7.2 ローカライズ
        7.2.1 ロケールを理解する
        7.2.2 Subversionでのロケール利用
    7.3 外部エディタの利用
    7.4 外部差分取得ツールおよびマージツールの使用
        7.4.1 外部のdiffコマンドを使う
        7.4.2 外部のdiff3コマンドを使う
    7.5 まとめ
8章 Subversionの組み込み
    8.1 階層化されたライブラリ設計
        8.1.1 リポジトリ層
        8.1.2 リポジトリアクセス層
        8.1.3 クライアント層
    8.2 作業コピー管理領域の内部
        8.2.1 項目ファイル
        8.2.2 未編集コピーと属性ファイル
    8.3 APIの使用
        8.3.1 Apache Portable Runtimeライブラリ
        8.3.2 URLとパスの要件
        8.3.3 CとC++以外の言語の使用
        8.3.4 サンプルコード
    8.4 まとめ
9章 Subversion完全リファレンス
    9.1 svn−Subversionのコマンドラインクライアント
        9.1.1 svnのオプション
        9.1.2 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
    9.2 svnadmin
        9.2.1 svnadminのオプション
        9.2.2 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
    9.3 svnlook
        9.3.1 svnlookのオプション
        9.3.2 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
    9.4 svnsync
        9.4.1 svnsyncのオプション
        9.4.2 svnsyncのサブコマンド
            svnsync copy-revprops
            svnsync help
            svnsync initialize
            svnsync synchronize
    9.5 svnserve
        9.5.1 svnserveのオプション
    9.6 svndumpfilter
        9.6.1 svndumpfilterのオプション
        9.6.2 svndumpfilterのサブコマンド
            svndumpfilter exclude
            svndumpfilter include
            svndumpfilter help
    9.7 svnversion
        9.7.1 svnversionのオプション
        9.7.2 svnversionの使用例
    9.8 mod_dav_svn
        9.8.1 ディレクティブ
        9.8.2 高レベルのロギング
    9.9 mod_authz_svn
        9.9.1 ディレクティブ
    9.10 Subversionの属性
        9.10.1 バージョン管理される属性
        9.10.2 バージョン管理されない属性
    9.11 リポジトリフック
            start-commit
            pre-commit
            post-commit
            pre-revprop-change
            post-revprop-change
            pre-lock
            post-lock
            pre-unlock
            post-unlock
付録A Subversionクイックスタートガイド
    A.1 Subversionのインストール
    A.2 駆け足のチュートリアル
付録B CVSユーザのための速習Subversion
    B.1 リビジョン番号の違い
    B.2 ディレクトリのバージョン
    B.3 より多くのオフライン操作
    B.4 statusとupdateの区別
        B.4.1 status
        B.4.2 update
    B.5 ブランチとタグ
    B.6 メタデータ属性
    B.7 競合の解決
    B.8 バイナリファイルと変換
    B.9 バージョン管理されたモジュール
    B.10 認証
    B.11 CVSからSubversionへのリポジトリの変換
付録C WebDAVと自動バージョン管理
    C.1 WebDAVとは
    C.2 自動バージョン管理
    C.3 クライアントの相互運用性
        C.3.1 スタンドアロンWebDAVアプリケーション
        C.3.2 ファイルエクスプローラのWebDAV拡張
        C.3.3 WebDAVファイルシステム実装
付録D Copyright
    Creative Commons Legal Code
    Attribution
付録E 日本語版特別付録
    E.1 Subversionをもっと便利に使うためのツール
        E.1.1 Subversive−Eclipseと組み合わせるプラグイン
        E.1.2 AnkhSVN−Visual Studioと組み合わせるツール
        E.1.3 TortoiseSVN−Windows の Explorerに、Subversionリポジトリへのアクセス機能を
              追加する
        E.1.4 Trac−リポジトリ管理ツールと組み合わせ、課題管理を行えるようにする
              Webアプリケーション
        E.1.5 Trac Lightning−SubversionとTracを組み合わせ、手軽にプロジェクト管理を行えるように
              する統合アプリケーション
    E.2 Subversionシステムの導入方法
        E.2.1 なぜ本記事が必要なのか
    E.3 言語セットなどへの注意−Subversionは、言語だけでなくツールも注意
        E.3.1 可能な限りクライアント側のOSやツールの統一を:
              同じ文字コードを同じように取り扱うものであれば、問題は生じないが、
              検証をお忘れなく
        E.3.2 やむをえない場合でも、必要なOSやツールは最小限に絞る
索引