Управление версиями в Subversion Для Subversion 3 (в редакции 2345) Бен Коллинз-Сассман



бет1/34
Дата04.03.2016
өлшемі2.13 Mb.
#40691
түріРеферат
  1   2   3   4   5   6   7   8   9   ...   34
Управление версиями в Subversion

Для Subversion 1.3 (в редакции 2345)

Бен Коллинз-Сассман

Брайан У. Фитцпатрик

К. Майкл Пилато

Copyright © 2002, 2003, 2004, 2005, 2006 Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato

Этот труд выпущен на условиях Creative Commons Attribution License. С текстом данной лицензии можно ознакомиться в интернете по адресу http://creativecommons.org/licenses/by/2.0/, или получить его по почте, отправив заявку по адресу Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Содержание


Предисловие 13

Об этой книге 15

Для кого написана эта книга? 16

Как читать эту книгу? 16

Соглашения, принятые в книге 17



Типографские соглашения 17

Пиктограммы 17

Замечание 17

Подсказка 17

Внимание 17

Структура книги 18

Эта книга распространяется свободно 19

Благодарности 19



From Ben Collins-Sussman 20

From Brian W. Fitzpatrick 20

From C. Michael Pilato 20

Глава 1. Введение 21

Что такое Subversion? 21

История Subversion 22

Возможности Subversion 22

Архитектура Subversion 24

Установка Subversion 25

Компоненты Subversion 26

Быстрый старт 27



Замечание 27

Глава 2. Основные понятия 29

Хранилище 29

Модели версионирования 30

Проблема разделения файлов 30

Модель Блокирование-Изменение-Разблокирование 31

Модель Копирование-Изменение-Слияние 32

Subversion в действии 34



Рабочие копии 34

Правки 36

Как рабочие копии отслеживают хранилище 38

Смешивание правок в рабочих копиях 38

Обновления и фиксации отделены друг от друга 39

Смешивание правок — это нормально 39

Смешивание правок — это полезно 39

Смешивание правок имеет ограничения 40

Подводя итоги 40



Глава 3. Экскурсия по Subversion 40

Читайте справку! 41

Импорт 41

Правки: Номера, Ключевые слова и Даты, Oh My! 41



Номера правок 41

Ключевые слова правок 42

Замечание 42

Замечание 42

Даты правок 43

Создание рабочей копии 44



Замечание 45

Простейший рабочий цикл 46



Обновление рабочей копии 46

Внесение изменений в рабочую копию 47

Внимание 48

Анализ изменений 49

svn status 49

svn diff 52

svn revert 53



Замечание 53

Решение конфликтов (при объединении с чужими изменениями) 54

Объединение конфликтов вручную 55

Копирование файла поверх вашего рабочего файла 57

Использование svn revert 57



Фиксация изменений 57

Подсказка 57

Анализ истории 58



svn log 59

svn diff 60

Анализ локальных изменений 60

Сравнение рабочей копии с хранилищем 60

Сравнение хранилища с хранилищем 61



svn cat 61

svn list 62

Заключительное слово о истории 62

Другие полезные команды 62



svn cleanup 62

svn import 63

Подводя итоги 63



Глава 4. Ветвление и слияние 64

Что такое ветка? 64

Использование веток 65

Создание ветки 66

Работа с веткой 68

Ключевые идеи, стоящие за ветками 70

Копирование изменений между ветками 70



Копирование отдельных изменений 71

Ключевые понятия, стоящие за слиянием 73

Как правильнее всего использовать слияние 74

Ручной контроль слияния 74

Предварительные просмотр при объединении 74

Конфликты при объединении 75

Учитывать или игнорировать происхождение 76

Типовые примеры использования 77



Полное объединение двух веток 77

Подсказка 77

Отмена изменений 79

Восстановление удаленных элементов 80

Типовые приемы при использовании веток 81

Ветки релизов 81

Функциональные ветки 82

Переключение рабочей копии 83

Метки 85

Создание простой метки 85

Создание комплексной метки 86

Поддержка веток 86



Структура хранилища 86

Продолжительность жизни информации 87

Подводя итоги 88

Глава 5. Администрирование хранилища 88

Repository Basics 89



Understanding Transactions and Revisions 89

Unversioned Properties 90

Repository Data Stores 90

Berkeley DB 91

FSFS 92

Repository Creation and Configuration 92



Внимание 93

Hook Scripts 94

Подсказка 94

Внимание 96

Berkeley DB Configuration 97

Repository Maintenance 97



An Administrator's Toolkit 97

svnlook 98

svnadmin 100

svndumpfilter 102



Внимание 103

Berkeley DB Utilities 105



Repository Cleanup 105

Внимание 106

Managing Disk Space 107

Замечание 108

Repository Recovery 108

Migrating a Repository 109

Repository Backup 112

Adding Projects 113



Choosing a Repository Layout 114

Creating the Layout, and Importing Initial Data 115

Summary 116



Глава 6. Настройка сервера 116

Обзор 117

Сетевая модель 118

Запросы и отклики 118

Кеширование клиентской идентификационной информации 119

svnserve, a custom server 120



Invoking the Server 121

Built-in authentication and authorization 122

Create a 'users' file and realm 122

Set access controls 123

SSH authentication and authorization 124

SSH configuration tricks 125

Initial setup 125

Controlling the invoked command 125

httpd, the Apache HTTP server 126



Prerequisites 127

Basic Apache Configuration 127

Authentication Options 129

Basic HTTP Authentication 129

SSL Certificate Management 130

Authorization Options 131

Blanket Access Control 132

Per-Directory Access Control 132

Disabling Path-based Checks 136



Extra Goodies 136

Repository Browsing 136

Other Features 137

Supporting Multiple Repository Access Methods 138



Глава 7. Профессиональное использование Subversion 139

Параметры времени выполнения 140



Структура области конфигурации 141

Конфигурация и реестр Windows 141

Параметры конфигурации 143

Servers 143

Config 144

Свойства 146



Зачем нужны свойства? 147

Использование свойств 148

Специальные свойства 151

svn:executable 151

svn:mime-type 151

svn:ignore 152

svn:keywords 153

svn:eol-style 155

svn:externals 156

svn:special 156

svn:needs-lock 157

Automatic Property Setting 157

Locking 157



Creating locks 158

Discovering locks 160

Breaking and stealing locks 161

Lock Communication 163

Peg and Operative Revisions 164

Externals Definitions 166

Подсказка 167

Vendor branches 168



General Vendor Branch Management Procedure 169

svn_load_dirs.pl 170

Localization 171



Understanding locales 171

Subversion's use of locales 172

Using External Differencing Tools 173



Замечание 174

External diff 174

External diff3 175

Subversion Repository URLs 175



Глава 8. Информация для разработчиков 177

Layered Library Design 178



Repository Layer 179

Предисловие

Об этой книге

Для кого написана эта книга?

Как читать эту книгу?

Соглашения, принятые в книге

Типографские соглашения

Пиктограммы

Структура книги

Эта книга распространяется свободно

Благодарности

From Ben Collins-Sussman

From Brian W. Fitzpatrick

From C. Michael Pilato

1. Введение

Что такое Subversion?

История Subversion

Возможности Subversion

Архитектура Subversion

Установка Subversion

Компоненты Subversion

Быстрый старт

2. Основные понятия

Хранилище

Модели версионирования

Проблема разделения файлов

Модель Блокирование-Изменение-Разблокирование

Модель Копирование-Изменение-Слияние

Subversion в действии

Рабочие копии

Правки

Как рабочие копии отслеживают хранилище

Смешивание правок в рабочих копиях

Обновления и фиксации отделены друг от друга

Смешивание правок — это нормально

Смешивание правок — это полезно

Смешивание правок имеет ограничения

Подводя итоги

3. Экскурсия по Subversion

Читайте справку!

Импорт

Правки: Номера, Ключевые слова и Даты, Oh My!

Номера правок

Ключевые слова правок

Даты правок

Создание рабочей копии

Простейший рабочий цикл

Обновление рабочей копии

Внесение изменений в рабочую копию

Анализ изменений

svn status

svn diff

svn revert

Решение конфликтов (при объединении с чужими изменениями)

Объединение конфликтов вручную

Копирование файла поверх вашего рабочего файла

Использование svn revert

Фиксация изменений

Анализ истории

svn log

svn diff

Анализ локальных изменений

Сравнение рабочей копии с хранилищем

Сравнение хранилища с хранилищем

svn cat

svn list

Заключительное слово о истории

Другие полезные команды

svn cleanup

svn import

Подводя итоги

4. Ветвление и слияние

Что такое ветка?

Использование веток

Создание ветки

Работа с веткой

Ключевые идеи, стоящие за ветками

Копирование изменений между ветками

Копирование отдельных изменений

Ключевые понятия, стоящие за слиянием

Как правильнее всего использовать слияние

Ручной контроль слияния

Предварительные просмотр при объединении

Конфликты при объединении

Учитывать или игнорировать происхождение

Типовые примеры использования

Полное объединение двух веток

Отмена изменений

Восстановление удаленных элементов

Типовые приемы при использовании веток

Ветки релизов

Функциональные ветки

Переключение рабочей копии

Метки

Создание простой метки

Создание комплексной метки

Поддержка веток

Структура хранилища

Продолжительность жизни информации

Подводя итоги

5. Администрирование хранилища

Repository Basics

Understanding Transactions and Revisions

Unversioned Properties

Repository Data Stores

Berkeley DB

FSFS

Repository Creation and Configuration

Hook Scripts

Berkeley DB Configuration

Repository Maintenance

An Administrator's Toolkit

svnlook

svnadmin

svndumpfilter

Berkeley DB Utilities

Repository Cleanup

Managing Disk Space

Repository Recovery

Migrating a Repository

Repository Backup

Adding Projects

Choosing a Repository Layout

Creating the Layout, and Importing Initial Data

Summary

6. Настройка сервера

Обзор

Сетевая модель

Запросы и отклики

Кеширование клиентской идентификационной информации

svnserve, a custom server

Invoking the Server

Built-in authentication and authorization

Create a 'users' file and realm

Set access controls

SSH authentication and authorization

SSH configuration tricks

Initial setup

Controlling the invoked command

httpd, the Apache HTTP server

Prerequisites

Basic Apache Configuration

Authentication Options

Basic HTTP Authentication

SSL Certificate Management

Authorization Options

Blanket Access Control

Per-Directory Access Control

Disabling Path-based Checks

Extra Goodies

Repository Browsing

Other Features

Supporting Multiple Repository Access Methods

7. Профессиональное использование Subversion

Параметры времени выполнения

Структура области конфигурации

Конфигурация и реестр Windows

Параметры конфигурации

Servers

Config

Свойства

Зачем нужны свойства?

Использование свойств

Специальные свойства

svn:executable

svn:mime-type

svn:ignore

svn:keywords

svn:eol-style

svn:externals

svn:special

svn:needs-lock

Automatic Property Setting

Locking

Creating locks

Discovering locks

Breaking and stealing locks

Lock Communication

Peg and Operative Revisions

Externals Definitions

Vendor branches

General Vendor Branch Management Procedure

svn_load_dirs.pl

Localization

Understanding locales

Subversion's use of locales

Using External Differencing Tools

External diff

External diff3

Subversion Repository URLs

8. Информация для разработчиков

Layered Library Design

Repository Layer

Repository Access Layer

RA-DAV (Repository Access Using HTTP/DAV)

RA-SVN (Custom Protocol Repository Access)

RA-Local (Direct Repository Access)

Your RA Library Here

Client Layer

Using the APIs

The Apache Portable Runtime Library

URL and Path Requirements

Using Languages Other than C and C++

Inside the Working Copy Administration Area

The Entries File

Pristine Copies and Property Files

WebDAV

Programming with Memory Pools

Contributing to Subversion

Join the Community

Get the Source Code

Become Familiar with Community Policies

Make and Test Your Changes

Donate Your Changes

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 Switches

svnadmin Subcommands

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 Switches

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 Switches

svnversion

svnversion

mod_dav_svn

mod_dav_svn Configuration Directives

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 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 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

svnversion

mod_dav_svn Configuration Directives

A. Subversion для пользователей CVS

Revision Numbers Are Different Now

Directory Versions

More Disconnected Operations

Distinction Between Status and Update

Status

Update

Branches and Tags

Metadata Properties

Conflict Resolution

Binary Files and Translation

Versioned Modules

Authentication

Converting a Repository from CVS to Subversion

B. WebDAV и автоматическое управление версиями

Basic WebDAV Concepts

Original WebDAV

DeltaV Extensions

Subversion and DeltaV

Autoversioning

Client Interoperability

Standalone WebDAV applications

Microsoft Office, Dreamweaver, Photoshop

Cadaver, DAV Explorer

File-explorer WebDAV extensions

Microsoft Web Folders

Nautilus, Konqueror

WebDAV filesystem implementation

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. Files and directories in two dimensions

8.2. Versioning time—the third dimension!

Список таблиц

2.1. URL для доступа к хранилищу.

5.1. Repository Data Store Comparison

6.1. Сравнение серверов

8.1. A Brief Inventory of the Subversion Libraries

B.1. Common WebDAV Clients



Список примеров

5.1. txn-info.sh (Reporting Outstanding Transactions)

6.1. A sample configuration for anonymous access.

6.2. A sample configuration for authenticated access.

6.3. A sample configuration for mixed authenticated/anonymous access.

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. Using the Repository Layer

8.2. Using the Repository Layer with Python

8.3. A Python Status Crawler

8.4. Contents of a Typical .svn/entries File

8.5. Effective Pool Usage




Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   ...   34




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет