[svnbook commit] r2648 - trunk/src/ru/book
dmitriy
noreply at red-bean.com
Sun Feb 4 10:11:16 CST 2007
Author: dmitriy
Date: Sun Feb 4 10:11:16 2007
New Revision: 2648
Modified:
trunk/src/ru/book/app-quickstart.xml (contents, props changed)
trunk/src/ru/book/app-svn-for-cvs-users.xml (contents, props changed)
trunk/src/ru/book/app-third-party-tools.xml (contents, props changed)
trunk/src/ru/book/app-webdav.xml (contents, props changed)
trunk/src/ru/book/book.xml (contents, props changed)
trunk/src/ru/book/ch-advanced-topics.xml (contents, props changed)
trunk/src/ru/book/ch-basic-usage.xml (contents, props changed)
trunk/src/ru/book/ch-branching-and-merging.xml (contents, props changed)
trunk/src/ru/book/ch-customizing-svn.xml (contents, props changed)
trunk/src/ru/book/ch-developer-info.xml (contents, props changed)
trunk/src/ru/book/ch-fundamental-concepts.xml (contents, props changed)
trunk/src/ru/book/ch-preface.xml (contents, props changed)
trunk/src/ru/book/ch-reference.xml (contents, props changed)
trunk/src/ru/book/ch-repository-admin.xml (contents, props changed)
trunk/src/ru/book/ch-server-configuration.xml (contents, props changed)
trunk/src/ru/book/copyright.xml (contents, props changed)
trunk/src/ru/book/foreword.xml (contents, props changed)
trunk/src/ru/book/styles.css (contents, props changed)
Log:
Book Russian. Merge with changes from r2573,r2574,r2576 of the src/en/book. More detail in log for r2573,r2574,r2576.
Modified: trunk/src/ru/book/app-quickstart.xml
==============================================================================
--- trunk/src/ru/book/app-quickstart.xml (original)
+++ trunk/src/ru/book/app-quickstart.xml Sun Feb 4 10:11:16 2007
@@ -1,52 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<appendix id="svn.intro">
- <!-- @ENGLISH {{{
- <title>Subversion Quick-Start Guide</title>
- @ENGLISH }}} -->
- <title>Быстрый старт в Subversion</title>
<appendixinfo>
<othername id="svn.intro.architecture.dia-1.prepositional-case"
role="title-variant">рисунке 1.1, «Архитектура
Subversion»</othername>
</appendixinfo>
+ <!-- @ENGLISH {{{
+ <title>Subversion Quick-Start Guide</title>
+ @ENGLISH }}} -->
+ <title>Быстрый старт в Subversion</title>
<!-- See also svn.preface.organization -->
- <simplesect>
-
- <!-- @ENGLISH {{{
- <para>Some people have trouble absorbing a new technology by
- reading the sort of <quote>top down</quote> approach provided by
- this book. This section is a very short introduction to
- Subversion, and is designed to give <quote>bottom up</quote>
- learners a fighting chance. If you prefer to learn by
- experimentation, the following demonstration will get you up and
- running. Along the way, we give links to the relevant chapters
- of this book.</para>
- @ENGLISH }}} -->
- <para>Некоторые испытывают трудности поглощения новой технологии
- читая приближение <quote>с верху вниз</quote>, предлагаемое этой
- книгой. Этот раздел представляет собой очень короткое введение в
- Subversion и предназначен для того, что бы помочь изучающим
- <quote>снизу вверх</quote>. Если вы из тех, кто предпочитает
- учиться на экспериментах то последующая демонстрация поможет
- вам начать. По ходу дела мы давали ссылки на соответствующие
- главы книги.
- </para>
-
- <!-- @ENGLISH {{{
- <para>If you're new to the entire concept of version control or to
- the <quote>copy-modify-merge</quote> model used by both CVS and
- Subversion, then you should read <xref linkend="svn.basic"/>
- before going any further.</para>
- @ENGLISH }}} -->
- <para>Если вы не совсем знакомы с концепциями контроля версий или
- моделью <quote>копирование-изменение-слияние</quote>, используемой
- как CVS так и Subversion, перед тем как идти дальше, вам нужно
- прочитать <xref linkend="svn.basic"/>.</para>
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>Some people have trouble absorbing a new technology by
+ reading the sort of <quote>top down</quote> approach provided by
+ this book. This appendix contains a very short introduction to
+ Subversion, and is designed to give <quote>bottom up</quote>
+ learners a fighting chance. If you prefer to learn by
+ experimentation, the following demonstration will get you up and
+ running. Along the way, we give links to the relevant chapters
+ of this book.</para>
+ @ENGLISH }}} -->
+ <para>Некоторые испытывают трудности поглощения новой технологии
+ читая приближение <quote>с верху вниз</quote>, предлагаемое этой
+ книгой. Этот раздел представляет собой очень короткое введение в
+ Subversion и предназначен для того, что бы помочь изучающим
+ <quote>снизу вверх</quote>. Если вы из тех, кто предпочитает
+ учиться на экспериментах то последующая демонстрация поможет
+ вам начать. По ходу дела мы давали ссылки на соответствующие
+ главы книги.
+ </para>
+ <!-- @ENGLISH {{{
+ <para>If you're new to the entire concept of version control or to
+ the <quote>copy-modify-merge</quote> model used by both CVS and
+ Subversion, then you should read <xref linkend="svn.basic"/>
+ before going any further.</para>
+ @ENGLISH }}} -->
+ <para>Если вы не совсем знакомы с концепциями контроля версий или
+ моделью <quote>копирование-изменение-слияние</quote>, используемой
+ как CVS так и Subversion, перед тем как идти дальше, вам нужно
+ прочитать <xref linkend="svn.basic"/>.</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -118,11 +114,8 @@
libraries). But optional portions of Subversion have many other
dependencies, such as Berkeley DB and possibly Apache httpd. If
you want to do a complete build, make sure you have all of the
- packages documented in the <filename>INSTALL</filename> file.
- If you plan to work on Subversion itself, you can use your
- client program to grab the latest, bleeding-edge source code.
- This is documented in <xref
- linkend="svn.developer.contrib.get-code"/>.</para>
+ packages documented in the <filename>INSTALL</filename>
+ file.</para>
@ENGLISH }}} -->
<para>В качестве альтернативного варианта вы можете построить Subversion
прямо из исходного кода. Закачайте с web-сайта Subversion последний
@@ -133,11 +126,42 @@
apr-util и neon). Однако некоторые опциональные части Subversion имеют
много других зависимостей, таких как Berkeley DB и возможно Apache httpd.
Если вы хотите выполнить полную сборку, убедитесь, что у вас есть все
- пакеты, указанные в файле <filename>INSTALL</filename>. Если вы хотите
- самостоятельно поработать над Subversion вы можете при помощи вашей
- клиентской программы вытащить самую последнюю версию исходного кода. Как
- это сделать описано в <xref linkend="svn.developer.contrib.get-code"/>.
- </para>
+ пакеты, указанные в файле <filename>INSTALL</filename>.</para>
+
+ <para>If you're one of those folks that likes to use bleeding-edge
+ software, you can also get the Subversion source code from the
+ Subversion repository in which it lives. Obviously, you'll need
+ to already have a Subversion client on hand to do this. But
+ once you do, you can checkout a working copy of the Subversion source
+ repository from <ulink url="http://svn.collab.net/repos/svn/trunk/"/>:
+ <footnote>
+ <para>Note that the URL checked out in the example above
+ ends not with <literal>svn</literal>, but with a
+ subdirectory thereof called <literal>trunk</literal>. See
+ our discussion of Subversion's branching and tagging model
+ for the reasoning behind this.</para>
+ </footnote></para>
+
+ <screen>
+$ svn checkout http://svn.collab.net/repos/svn/trunk subversion
+A subversion/HACKING
+A subversion/INSTALL
+A subversion/README
+A subversion/autogen.sh
+A subversion/build.conf
+…
+</screen>
+
+ <para>The above command will checkout the bleeding-edge, latest
+ version of the Subversion source code into a subdirectory
+ named <filename>subversion</filename> in your current working
+ directory. Obviously, you can adjust that last argument as
+ you see fit. Regardless of what you call the new working copy
+ directory, though, after this operation completes, you will
+ now have the Subversion source code. Of course, you will
+ still need to fetch a few helper libraries (apr, apr-util,
+ etc.)—see the <filename>INSTALL</filename> file in the
+ top level of the working copy for details.</para>
</sect1>
Modified: trunk/src/ru/book/app-svn-for-cvs-users.xml
==============================================================================
--- trunk/src/ru/book/app-svn-for-cvs-users.xml (original)
+++ trunk/src/ru/book/app-svn-for-cvs-users.xml Sun Feb 4 10:11:16 2007
@@ -7,22 +7,19 @@
<title>Subversion для пользователей CVS</title>
<!-- See also svn.preface.organization -->
- <simplesect>
+ <para>This appendix is a guide for CVS users new to Subversion.
+ It's essentially a list of differences between the two systems
+ as <quote>viewed from 10,000 feet</quote>. For each section, we
+ provide backreferences to relevant chapters when
+ possible.</para>
+
+ <para>Although the goal of Subversion is to take over the current
+ and future CVS user base, some new features and design changes
+ were required to fix certain <quote>broken</quote> behaviors
+ that CVS had. This means that, as a CVS user, you may need to
+ break habits—ones that you forgot were odd to begin
+ with.</para>
- <para>This appendix is a guide for CVS users new to Subversion.
- It's essentially a list of differences between the two systems
- as <quote>viewed from 10,000 feet</quote>. For each section, we
- provide backreferences to relevant chapters when
- possible.</para>
-
- <para>Although the goal of Subversion is to take over the current
- and future CVS user base, some new features and design changes
- were required to fix certain <quote>broken</quote> behaviors
- that CVS had. This means that, as a CVS user, you may need to
- break habits—ones that you forgot were odd to begin
- with.</para>
-
- </simplesect>
<!-- ================================================================= -->
<!-- ================================================================= -->
Modified: trunk/src/ru/book/app-third-party-tools.xml
==============================================================================
--- trunk/src/ru/book/app-third-party-tools.xml (original)
+++ trunk/src/ru/book/app-third-party-tools.xml Sun Feb 4 10:11:16 2007
@@ -6,19 +6,15 @@
<title>Инструменты от сторонних разработчиков</title>
<!-- See also svn.preface.organization -->
- <simplesect>
-
- <para>Subversion's modular design (covered in <xref
- linkend="svn.developer.layerlib"/>) and the availability of
- language bindings (as described in <xref
- linkend="svn.developer.usingapi.otherlangs"/>) make it a likely
- candidate for use as an extension or backend to other pieces of
- software. For a listing of many third-party tools that are using
- Subversion functionality under-the-hood, check out the Links page on the
- Subversion website (<ulink
- url="http://subversion.tigris.org/project_links.html"/>).</para>
-
- </simplesect>
+ <para>Subversion's modular design (covered in <xref
+ linkend="svn.developer.layerlib"/>) and the availability of
+ language bindings (as described in <xref
+ linkend="svn.developer.usingapi.otherlangs"/>) make it a likely
+ candidate for use as an extension or backend to other pieces of
+ software. For a listing of many third-party tools that are using
+ Subversion functionality under-the-hood, check out the Links page on the
+ Subversion website (<ulink
+ url="http://subversion.tigris.org/project_links.html"/>).</para>
</appendix>
Modified: trunk/src/ru/book/app-webdav.xml
==============================================================================
--- trunk/src/ru/book/app-webdav.xml (original)
+++ trunk/src/ru/book/app-webdav.xml Sun Feb 4 10:11:16 2007
@@ -6,21 +6,18 @@
<title>WebDAV и автоматическое управление версиями</title>
<!-- See also svn.preface.organization -->
- <simplesect>
+ <para>WebDAV is an extension to HTTP, and is growing more and more
+ popular as a standard for file-sharing. Today's operating systems
+ are becoming extremely Web-aware, and many now have built-in
+ support for mounting <quote>shares</quote> exported by WebDAV
+ servers.</para>
+
+ <para>If you use Apache/mod_dav_svn as your Subversion network
+ server, then to some extent, you are also running a WebDAV server.
+ This appendix gives some background on the nature of this
+ protocol, how Subversion uses it, and how well Subversion
+ interoperates with other software that is WebDAV-aware.</para>
- <para>WebDAV is an extension to HTTP, and is growing more and more
- popular as a standard for file-sharing. Today's operating
- systems are becoming extremely Web-aware, and many now have
- built-in support for mounting <quote>shares</quote> exported by
- WebDAV servers.</para>
-
- <para>If you use Apache/mod_dav_svn as your Subversion network
- server, then to some extent, you are also running a WebDAV
- server. This appendix gives some background on the nature of
- this protocol, how Subversion uses it, and how well Subversion
- interoperates with other software that is WebDAV-aware.</para>
-
- </simplesect>
<!-- ================================================================= -->
<!-- ================================================================= -->
Modified: trunk/src/ru/book/book.xml
==============================================================================
--- trunk/src/ru/book/book.xml (original)
+++ trunk/src/ru/book/book.xml Sun Feb 4 10:11:16 2007
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book SYSTEM "../../tools/dtd/dblite.dtd"
+<!DOCTYPE book SYSTEM "../../tools/dtd/docbook-4.4/docbookx.dtd"
[
<!ENTITY % vers SYSTEM "version.xml">
%vers;
@@ -30,18 +30,18 @@
@ENGLISH }}} -->
<title>Управление версиями в Subversion</title>
- <!-- Using revnumber would be more appropriate, but our stylesheets -->
- <!-- don't seem to render it. -->
- <!-- @ENGLISH {{{
- <subtitle>For Subversion 1.3</subtitle>
- @ENGLISH }}} -->
- <subtitle>Для Subversion 1.3</subtitle>
- <subtitle>(&svn.l10n_revision; &svn.version;)</subtitle>
-
<bookinfo>
- <edition>First</edition>
- <isbn>0-59600-448-6</isbn>
+ <!-- @ENGLISH {{{
+ <subtitle>For Subversion 1.3</subtitle>
+ @ENGLISH }}} -->
+
+ <!-- Using revnumber would be more appropriate, but our stylesheets -->
+ <!-- don't seem to render it. -->
+ <subtitle>(Compiled from &svn.l10n_revision;&svn.version;)</subtitle>
+
+ <edition>Second</edition>
+ <isbn>?-?????-???-?</isbn>
<authorgroup>
<author>
@@ -62,8 +62,8 @@
</authorgroup>
<editor>
- <firstname>Линда</firstname>
- <surname>Муй</surname>
+ <firstname>Tatiana</firstname>
+ <surname>Apandi</surname>
</editor>
<pagenums>Около 350 стр.</pagenums>
Modified: trunk/src/ru/book/ch-advanced-topics.xml
==============================================================================
--- trunk/src/ru/book/ch-advanced-topics.xml (original)
+++ trunk/src/ru/book/ch-advanced-topics.xml Sun Feb 4 10:11:16 2007
@@ -7,76 +7,83 @@
<title>Профессиональное использование Subversion</title>
<!-- See also svn.preface.organization -->
- <simplesect>
-
- <!-- @ENGLISH {{{
- <para>If you've been reading this book chapter by chapter, from
- start to finish, you should by now have acquired enough
- knowledge to use the Subversion client to perform the most
- common version control operations. You understand how to
- checkout a working copy from a Subversion repository. You are
- comfortable with submitting and receiving changes using the
- <command>svn commit</command> and <command>svn update</command>
- functions. You've probably even developed a reflex which causes
- you to run the <command>svn status</command> command almost
- unconsciously. For all intents and purposes, you are ready to
- use Subversion in a typical environment.</para>
-
- <para>But the Subversion feature set doesn't stop at <quote>common
- version control operations</quote>.</para>
- @ENGLISH }}} -->
- <para>Если эту книгу вы читали главу за главой, от начала до
- конца, то к настоящему моменту должны иметь достаточно знаний
- для использования Subversion клиента при выполнении типичных
- управлению версиями операций. Вы понимаете, как создавать
- рабочую копию. Знаете как используя команды <command>svn
- commit</command> и <command>svn update</command> отправлять и
- получать изменения. Возможно у вас уже даже выработался рефлекс
- бессознательного запуска <command>svn status</command>. Вы готовы
- применять Subversion в большинстве возможных типовых
- ситуаций.</para>
-
- <para>Однако предоставляемая Subversion функциональность не
- ограничивается <quote>типовыми операциями управления
- версиями</quote>.</para>
-
- <!-- @ENGLISH {{{
- <para>This chapter highlights some of Subversion's features that
- aren't quite so regularly used. In it, we will discuss
- Subversion's property (or <quote>metadata</quote>) support, and
- how to modify Subversion's default behaviors by tweaking its
- run-time configuration area. We will describe how you can use
- externals definitions to instruct Subversion to pull data from
- multiple repositories. We'll cover in detail some of the
- additional client- and server-side tools that are part of the
- Subversion distribution.</para>
-
- <para>Before reading this chapter, you should be familiar with the
- basic file and directory versioning capabilities of Subversion.
- If you haven't already read about those, or if you need a
- refresher, we recommend that you check out <xref
- linkend="svn.basic" /> and <xref linkend="svn.tour" />. Once
- you've mastered the basics and consumed this chapter, you'll be
- a Subversion power-user!
- </para>
- @ENGLISH }}} -->
- <para>Эта глава рассказывает о не часто используемых возможностях
- Subversion. В ней мы рассмотрим поддержку свойств (или
- <quote>метаданных</quote>) и способы изменения стандартного поведения
- Subversion изменяя ее параметры времени выполнения. Мы расскажем
- как используя внешние зависимости заставить Subversion получать
- информацию из нескольких хранилищ. Подробно рассмотрим клиентские и
- серверные инструменты, входящие в поставку Subversion.</para>
-
- <para>Перед чтением этой главы, необходимо хорошо представлять
- механизмы версионированния файлов и директорий в Subversion.
- Если вы еще этого не прочитали или просто хотите освежить в памяти
- эту информацию, рекомендуем просмотреть <xref linkend="svn.basic" />
- и <xref linkend="svn.tour" />. После того как вы овладеете
- основами и примами, рассмотренными в этой главе, вы станете продвинутым
- пользователем Subversion!</para>
-
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>If you've been reading this book chapter by chapter, from
+ start to finish, you should by now have acquired enough
+ knowledge to use the Subversion client to perform the most
+ common version control operations. You understand how to
+ checkout a working copy from a Subversion repository. You are
+ comfortable with submitting and receiving changes using the
+ <command>svn commit</command> and <command>svn update</command>
+ functions. You've probably even developed a reflex which causes
+ you to run the <command>svn status</command> command almost
+ unconsciously. For all intents and purposes, you are ready to
+ use Subversion in a typical environment.</para>
+
+ <para>But the Subversion feature set doesn't stop at <quote>common
+ version control operations</quote>.</para>
+
+ <para>This chapter highlights some of Subversion's features that
+ aren't quite so regularly used. In it, we will discuss
+ Subversion's property (or <quote>metadata</quote>) support, and
+ how to modify Subversion's default behaviors by tweaking its
+ run-time configuration area. We will describe how you can use
+ externals definitions to instruct Subversion to pull data from
+ multiple repositories. We'll cover in detail some of the
+ additional client- and server-side tools that are part of the
+ Subversion distribution.</para>
+ @ENGLISH }}} -->
+ <para>Если эту книгу вы читали главу за главой, от начала до
+ конца, то к настоящему моменту должны иметь достаточно знаний
+ для использования Subversion клиента при выполнении типичных
+ управлению версиями операций. Вы понимаете, как создавать
+ рабочую копию. Знаете как используя команды <command>svn
+ commit</command> и <command>svn update</command> отправлять и
+ получать изменения. Возможно у вас уже даже выработался рефлекс
+ бессознательного запуска <command>svn status</command>. Вы готовы
+ применять Subversion в большинстве возможных типовых
+ ситуаций.</para>
+
+ <para>Однако предоставляемая Subversion функциональность не
+ ограничивается <quote>типовыми операциями управления
+ версиями</quote>.</para>
+
+ <!-- @ENGLISH {{{
+ <para>This chapter highlights some of Subversion's features that
+ aren't quite so regularly used. In it, we will discuss
+ Subversion's property (or <quote>metadata</quote>) support, and
+ how to modify Subversion's default behaviors by tweaking its
+ run-time configuration area. We will describe how you can use
+ externals definitions to instruct Subversion to pull data from
+ multiple repositories. We'll cover in detail some of the
+ additional client- and server-side tools that are part of the
+ Subversion distribution.</para>
+
+ <para>Before reading this chapter, you should be familiar with the
+ basic file and directory versioning capabilities of Subversion.
+ If you haven't already read about those, or if you need a
+ refresher, we recommend that you check out <xref
+ linkend="svn.basic" /> and <xref linkend="svn.tour" />. Once
+ you've mastered the basics and consumed this chapter, you'll be
+ a Subversion power-user!
+ </para>
+
+ @ENGLISH }}} -->
+ <para>Эта глава рассказывает о не часто используемых возможностях
+ Subversion. В ней мы рассмотрим поддержку свойств (или
+ <quote>метаданных</quote>) и способы изменения стандартного поведения
+ Subversion изменяя ее параметры времени выполнения. Мы расскажем
+ как используя внешние зависимости заставить Subversion получать
+ информацию из нескольких хранилищ. Подробно рассмотрим клиентские и
+ серверные инструменты, входящие в поставку Subversion.</para>
+
+ <para>Перед чтением этой главы, необходимо хорошо представлять
+ механизмы версионированния файлов и директорий в Subversion.
+ Если вы еще этого не прочитали или просто хотите освежить в памяти
+ эту информацию, рекомендуем просмотреть <xref linkend="svn.basic" />
+ и <xref linkend="svn.tour" />. После того как вы овладеете
+ основами и примами, рассмотренными в этой главе, вы станете продвинутым
+ пользователем Subversion!</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -85,6 +92,11 @@
<!-- @ENGLISH {{{
<title>Properties</title>
+ <para>### TODO: This section needs love. It needs to not devolve
+ into a property-by-property reference keyed on property names,
+ but should instead remain high-level and functionally-keyed.
+ Let the Reference be the by-propname lookup. ###</para>
+
<para>We've already covered in detail how Subversion stores and
retrieves various versions of files and directories in its
repository. Whole chapters have been devoted to this most
Modified: trunk/src/ru/book/ch-basic-usage.xml
==============================================================================
--- trunk/src/ru/book/ch-basic-usage.xml (original)
+++ trunk/src/ru/book/ch-basic-usage.xml Sun Feb 4 10:11:16 2007
@@ -7,45 +7,41 @@
<title>Экскурсия по Subversion</title>
<!-- See also svn.preface.organization -->
- <simplesect>
-
- <!-- @ENGLISH {{{
- <para>Now we will go into the details of using Subversion. By the
- time you reach the end of this chapter, you will be able to
- perform almost all the tasks you need to use Subversion in a
- normal day's work. You'll start with an initial checkout of
- your code, and walk through making changes and examining those
- changes. You'll also see how to bring changes made by others
- into your working copy, examine them, and work through any
- conflicts that might arise.</para>
- @ENGLISH }}} -->
- <para>Теперь перейдем к более тесной работе с Subversion. К тому
- моменту, когда вы дойдёте до конца этой главы, вы сможете
- выполнить практически все задачи, возникающие при повседневном
- использовании Subversion. Вы начнете с
- первоначального создания рабочей копии вашего кода и пройдете
- через внесение изменений и проверку этих изменений. Вы познакомитесь
- с тем, как внедрить изменения, сделанные другими, в вашу рабочую копию
- и проверить их, а также сможете решить возможные конфликты.</para>
-
- <!-- @ENGLISH {{{
- <para>Note that this chapter is not meant to be an exhaustive list
- of all Subversion's commands—rather, it's a conversational
- introduction to the most common Subversion tasks you'll
- encounter. This chapter assumes that you've read and understood
- <xref linkend="svn.basic"/> and are familiar with the general
- model of Subversion. For a complete reference of all commands,
- see <xref linkend="svn.ref"/>.</para>
- @ENGLISH }}} -->
- <para>Обратите внимание на то, что эта глава не ставит цели быть
- всеобъемлющим списком всех команд Subversion — скорее это
- описательное введение в наиболее вероятные задачи, с которыми вы можете
- столкнуться. Эта глава предполагает, что вы прочитали и поняли <xref
- linkend="svn.basic"/> и хорошо разобрались с общей моделью Subversion.
- За подробным описанием всех команд обратитесь в <xref
- linkend="svn.ref"/>.</para>
-
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>Now we will go into the details of using Subversion. By the
+ time you reach the end of this chapter, you will be able to
+ perform almost all the tasks you need to use Subversion in a
+ normal day's work. You'll start with an initial checkout of
+ your code, and walk through making changes and examining those
+ changes. You'll also see how to bring changes made by others
+ into your working copy, examine them, and work through any
+ conflicts that might arise.</para>
+ @ENGLISH }}} -->
+ <para>Теперь перейдем к более тесной работе с Subversion. К тому
+ моменту, когда вы дойдёте до конца этой главы, вы сможете
+ выполнить практически все задачи, возникающие при повседневном
+ использовании Subversion. Вы начнете с
+ первоначального создания рабочей копии вашего кода и пройдете
+ через внесение изменений и проверку этих изменений. Вы познакомитесь
+ с тем, как внедрить изменения, сделанные другими, в вашу рабочую копию
+ и проверить их, а также сможете решить возможные конфликты.</para>
+
+ <!-- @ENGLISH {{{
+ <para>Note that this chapter is not meant to be an exhaustive list
+ of all Subversion's commands—rather, it's a conversational
+ introduction to the most common Subversion tasks you'll
+ encounter. This chapter assumes that you've read and understood
+ <xref linkend="svn.basic"/> and are familiar with the general
+ model of Subversion. For a complete reference of all commands,
+ see <xref linkend="svn.ref"/>.</para>
+ @ENGLISH }}} -->
+ <para>Обратите внимание на то, что эта глава не ставит цели быть
+ всеобъемлющим списком всех команд Subversion — скорее это
+ описательное введение в наиболее вероятные задачи, с которыми вы можете
+ столкнуться. Эта глава предполагает, что вы прочитали и поняли <xref
+ linkend="svn.basic"/> и хорошо разобрались с общей моделью Subversion.
+ За подробным описанием всех команд обратитесь в <xref
+ linkend="svn.ref"/>.</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -1394,6 +1390,68 @@
<!-- therefore, nothing has been clearly stated wrt the fact that the -->
<!-- repository may not be local. -->
+ <sidebar>
+ <!-- @ENGLISH {{{
+ <title>Look Ma! No Network!</title>
+ @ENGLISH }}} -->
+ <title>Look Ma! No Network!</title>
+
+ <!-- @ENGLISH {{{
+ <para>All three of these commands (<command>svn
+ status</command>, <command>svn diff</command>, and
+ <command>svn revert</command>) can be used without any
+ network access. This makes it easy to manage your
+ changes-in-progress when you are somewhere without a network
+ connection, such as travelling on an airplane, riding a
+ commuter train or hacking on the beach.</para>
+ @ENGLISH }}} -->
+ <para>Все эти три команды (<command>svn
+ status</command>, <command>svn diff</command> и
+ <command>svn revert</command>) могут использоваться
+ при полном отсутствии сетевого доступа. Это позволяет
+ легко управлять рабочими изменениями когда вы находитесь там
+ где нет сетевого соединения, например, находясь в самолете,
+ едучи в пригородном поезде или занимаясь хакерством на
+ пляже.</para>
+
+ <!-- @ENGLISH {{{
+ <para>Subversion does this by keeping private caches of
+ pristine versions of each versioned file inside of the
+ <filename>.svn</filename> administrative areas. This allows
+ Subversion to report—and revert—local
+ modifications to those files <emphasis>without network
+ access</emphasis>. This cache (called the
+ <quote>text-base</quote>) also allows Subversion to send the
+ user's local modifications during a commit to the server as
+ a compressed <firstterm>delta</firstterm> (or
+ <quote>difference</quote>) against the pristine version.
+ Having this cache is a tremendous benefit—even if you
+ have a fast net connection, it's much faster to send only a
+ file's changes rather than the whole file to the server. At
+ first glance, this might not seem that important, but
+ imagine the repercussions if you try to commit a one line
+ change to a 400MB file and have to send the whole file to
+ the server!</para>
+ @ENGLISH }}} -->
+ <para>Для этого Subversion использует отдельную для каждого
+ версионированного файла кэшированную в административной области
+ <filename>.svn</filename> первоначальную версию. Это позволяет
+ Subversion показывать — и отменять — локальные
+ изменения таких файлов <emphasis>без необходимости сетевого
+ доступа</emphasis>. Этот кеш (называемый <quote>текстовой
+ базой</quote>), кроме всего прочего, позволяет Subversion
+ при фиксации отправлять локальные пользовательские изменения
+ в виде сжатой <firstterm>дельты</firstterm> (или
+ <quote>различий</quote>) первоначальной версии. Наличие такого
+ кеша ужасно выгодно — даже если у вас высокоскоростное
+ соединение намного быстрее отправлять на сервер только изменения
+ файла вместо отправки целого файла. На первый взгляд это может
+ показаться не таким уж и важным, но представьте себе последствия,
+ если вы попытаетесь зафиксировать изменения в одной строчке для
+ файла размером 400MБ и отправите на сервер весь файл!</para>
+
+ </sidebar>
+
<!-- @ENGLISH {{{
<para>Subversion has been optimized to help you with this task,
and is able to do many things without communicating with the
@@ -2182,68 +2240,6 @@
</sect3>
- <sidebar>
- <!-- @ENGLISH {{{
- <title>Look Ma! No Network!</title>
- @ENGLISH }}} -->
- <title>Look Ma! No Network!</title>
-
- <!-- @ENGLISH {{{
- <para>All three of these commands (<command>svn
- status</command>, <command>svn diff</command>, and
- <command>svn revert</command>) can be used without any
- network access. This makes it easy to manage your
- changes-in-progress when you are somewhere without a network
- connection, such as travelling on an airplane, riding a
- commuter train or hacking on the beach.</para>
- @ENGLISH }}} -->
- <para>Все эти три команды (<command>svn
- status</command>, <command>svn diff</command> и
- <command>svn revert</command>) могут использоваться
- при полном отсутствии сетевого доступа. Это позволяет
- легко управлять рабочими изменениями когда вы находитесь там
- где нет сетевого соединения, например, находясь в самолете,
- едучи в пригородном поезде или занимаясь хакерством на
- пляже.</para>
-
- <!-- @ENGLISH {{{
- <para>Subversion does this by keeping private caches of
- pristine versions of each versioned file inside of the
- <filename>.svn</filename> administrative areas. This allows
- Subversion to report—and revert—local
- modifications to those files <emphasis>without network
- access</emphasis>. This cache (called the
- <quote>text-base</quote>) also allows Subversion to send the
- user's local modifications during a commit to the server as
- a compressed <firstterm>delta</firstterm> (or
- <quote>difference</quote>) against the pristine version.
- Having this cache is a tremendous benefit—even if you
- have a fast net connection, it's much faster to send only a
- file's changes rather than the whole file to the server. At
- first glance, this might not seem that important, but
- imagine the repercussions if you try to commit a one line
- change to a 400MB file and have to send the whole file to
- the server!</para>
- @ENGLISH }}} -->
- <para>Для этого Subversion использует отдельную для каждого
- версионированного файла кэшированную в административной области
- <filename>.svn</filename> первоначальную версию. Это позволяет
- Subversion показывать — и отменять — локальные
- изменения таких файлов <emphasis>без необходимости сетевого
- доступа</emphasis>. Этот кеш (называемый <quote>текстовой
- базой</quote>), кроме всего прочего, позволяет Subversion
- при фиксации отправлять локальные пользовательские изменения
- в виде сжатой <firstterm>дельты</firstterm> (или
- <quote>различий</quote>) первоначальной версии. Наличие такого
- кеша ужасно выгодно — даже если у вас высокоскоростное
- соединение намного быстрее отправлять на сервер только изменения
- файла вместо отправки целого файла. На первый взгляд это может
- показаться не таким уж и важным, но представьте себе последствия,
- если вы попытаетесь зафиксировать изменения в одной строчке для
- файла размером 400MБ и отправите на сервер весь файл!</para>
-
- </sidebar>
-
</sect2>
<!-- =============================================================== -->
@@ -2671,14 +2667,31 @@
</screen>
<!-- @ENGLISH {{{
- <para>Remember, if you ever get confused while editing the
- conflicted file, you can always consult the three files that
- Subversion creates for you in your working
- copy—including your file as it was before you updated.
- You can even use a third-party interactive merging tool to
- examine those three files.</para>
+ <para>Note that <command>svn resolved</command>, unlike most
+ of the other commands we deal with in this chapter, requires
+ an argument. In any case, you want to be careful and only
+ run <command>svn resolved</command> when you're certain that
+ you've fixed the conflict in your file—once the
+ temporary files are removed, Subversion will let you commit
+ the file even if it still contains conflict markers.</para>
+ @ENGLISH }}} -->
+ <para>Обратите внимание на то, что <command>svn resolved</command>,
+ в отличие от большинства команд с которыми мы имели дело в этой главе,
+ требует аргумент. В любом случае будьте осторожны и выполняйте
+ <command>svn resolved</command> тогда, когда убеждены, что исправили
+ конфликт в файле — после того как временные файлы будут удалены,
+ Subversion позволит вам зафиксировать файл даже если он все еще
+ содержит маркеры конфликта.</para>
+
+ <!-- @ENGLISH {{{
+ <para>If you ever get confused while editing the conflicted
+ file, you can always consult the three files that Subversion
+ creates for you in your working copy—including your
+ file as it was before you updated. You can even use a
+ third-party interactive merging tool to examine those three
+ files.</para>
@ENGLISH }}} -->
- <para>Помните, если вы станете в тупик при редактировании
+ <para>Если вы станете в тупик при редактировании
конфликтующего файла, вы всегда можете обратиться к трем
файлам, которые Subversion создает в рабочей копии —
включая ваш файл в том виде в каком он был до обновления.
@@ -2747,25 +2760,6 @@
</sect3>
- <!-- @ENGLISH {{{
- <para>Now you're ready to check in your changes. Note that
- <command>svn resolved</command>, unlike most of the other
- commands we've dealt with in this chapter, requires an
- argument. In any case, you want to be careful and only run
- <command>svn resolved</command> when you're certain that you've
- fixed the conflict in your file—once the temporary files
- are removed, Subversion will let you commit the file even if
- it still contains conflict markers.</para>
- @ENGLISH }}} -->
- <para>Теперь вы готовы к фиксации изменений. Обратите внимание на
- то, что <command>svn resolved</command>, в отличие от большинства
- команд с которыми мы имели дело в этой главе, требует аргумент.
- В любом случае будьте осторожны и выполняйте <command>svn
- resolved</command> тогда, когда убеждены, что исправили конфликт в
- файле — после того как временные файлы будут удалены, Subversion
- позволит вам зафиксировать файл даже если он все еще содержит маркеры
- конфликта.</para>
-
</sect2>
<!-- =============================================================== -->
Modified: trunk/src/ru/book/ch-branching-and-merging.xml
==============================================================================
--- trunk/src/ru/book/ch-branching-and-merging.xml (original)
+++ trunk/src/ru/book/ch-branching-and-merging.xml Sun Feb 4 10:11:16 2007
@@ -6,34 +6,30 @@
<title>Ветвление и слияние</title>
<!-- See also svn.preface.organization -->
- <simplesect>
-
- <!-- @ENGLISH {{{
- <para>Branching, tagging, and merging are concepts common to
- almost all version control systems. If you're not familiar with
- these ideas, we provide a good introduction in this chapter. If
- you are familiar, then hopefully you'll find it interesting to
- see how Subversion implements these ideas.</para>
-
- <para>Branching is a fundamental part of version control. If
- you're going to allow Subversion to manage your data, then this
- is a feature you'll eventually come to depend on. This chapter
- assumes that you're already familiar with Subversion's basic
- concepts (<xref linkend="svn.basic"/>).</para>
- @ENGLISH }}} -->
- <para>Ветвление, назначение меток и слияние понятия свойственные
- практически всем системам управления версиями. Если вы плохо
- знакомы с этими понятиями, то в этой главе мы предлагаем хорошее
- введение. Если эти понятия вам знакомы, тогда надеемся что вам будет
- интересно узнать как эти идеи реализует Subversion.</para>
-
- <para>Ветвление это фундаментальное понятие управления версиями.
- Если вы доверии Subversion управлять своей информацией, то эта
- функция от которой со временем вы будете зависеть. Эта глава
- предполагает, что вы уже знакомы с основными понятиями
- Subversion (<xref linkend="svn.basic"/>).</para>
-
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>Branching, tagging, and merging are concepts common to
+ almost all version control systems. If you're not familiar with
+ these ideas, we provide a good introduction in this chapter. If
+ you are familiar, then hopefully you'll find it interesting to
+ see how Subversion implements these ideas.</para>
+
+ <para>Branching is a fundamental part of version control. If
+ you're going to allow Subversion to manage your data, then this
+ is a feature you'll eventually come to depend on. This chapter
+ assumes that you're already familiar with Subversion's basic
+ concepts (<xref linkend="svn.basic"/>).</para>
+ @ENGLISH }}} -->
+ <para>Ветвление, назначение меток и слияние понятия свойственные
+ практически всем системам управления версиями. Если вы плохо
+ знакомы с этими понятиями, то в этой главе мы предлагаем хорошее
+ введение. Если эти понятия вам знакомы, тогда надеемся что вам будет
+ интересно узнать как эти идеи реализует Subversion.</para>
+
+ <para>Ветвление это фундаментальное понятие управления версиями.
+ Если вы доверии Subversion управлять своей информацией, то эта
+ функция от которой со временем вы будете зависеть. Эта глава
+ предполагает, что вы уже знакомы с основными понятиями
+ Subversion (<xref linkend="svn.basic"/>).</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -1505,76 +1501,6 @@
</sect3>
- <sidebar>
- <!-- @ENGLISH {{{
- <title>Subversion and Changesets</title>
-
- <para>Everyone seems to have a slightly different definition
- of <quote>changeset</quote>, or at least a different
- expectation of what it means for a version control system to
- have <quote>changeset features</quote>. For our purpose,
- let's say that a changeset is just a collection of changes
- with a unique name. The changes might include textual edits
- to file contents, modifications to tree structure, or tweaks
- to metadata. In more common speak, a changeset is just a
- patch with a name you can refer to.</para>
- @ENGLISH }}} -->
- <title>Subversion и наборы изменений</title>
-
- <para>У каждого найдется свое, немного отличающееся
- определение <quote>набора изменений</quote>, или во всяком
- случая того, что это должно означать применительно к системе
- управления версиями <quote>поддерживающей наборы
- изменений</quote>. Для нашего случая будем считать, что
- набор изменений это просто модификации объединенные под
- уникальным именем. Изменения могут заключаться в редактировании
- текста файлов, модификации структуры файлов или корректировке
- метаданных. Проще говоря, набор изменений это просто патч
- с заданным для него именем.</para>
-
- <!-- @ENGLISH {{{
- <para>In Subversion, a global revision number N names a tree
- in the repository: it's the way the repository looked after
- the Nth commit. It's also the name of an implicit
- changeset: if you compare tree N with tree N-1, you can
- derive the exact patch that was committed. For this reason,
- it's easy to think of <quote>revision N</quote> as not just
- a tree, but a changeset as well. If you use an issue
- tracker to manage bugs, you can use the revision numbers to
- refer to particular patches that fix bugs—for example,
- <quote>this issue was fixed by revision 9238.</quote>.
- Somebody can then run <command>svn log -r9238</command> to
- read about the exact changeset which fixed the bug, and run
- <command>svn diff -r9237:9238</command> to see the patch
- itself. And Subversion's <literal>merge</literal> command
- also uses revision numbers. You can merge specific changesets
- from one branch to another by naming them in the merge
- arguments: <command>svn merge -r9237:9238</command> would
- merge changeset #9238 into your working copy.</para>
- @ENGLISH }}} -->
- <para>В Subversion глобальный номер правки N относится к
- дереву в хранилище: так выглядит хранилище после
- фиксации N. Кроме того, это имя для неявного набора
- изменений: если сравнить дерево N с деревом N-1 вы получите
- полный патч того, что было зафиксировано. В этом смысле,
- о <quote>правке N</quote> можно думать не как о дереве
- файлов, а как о наборе изменений. Если вы пользуетесь
- системой отслеживания релизов для управления ошибками,
- вы можете использовать номера правок для того, что бы
- ссылаться на конкретные патчи, которые исправляют
- ошибку — например, <quote>этот релиз был исправлен
- правкой 9238.</quote>. После этого, для того, что бы прочитать
- о том наборе изменений, который исправляет ошибку можно выполнить
- <command>svn log -r9238</command>, а для того, что бы увидеть
- сам патч, выполнить <command>svn diff -r9237:9238</command>.
- В Subversion команда <literal>merge</literal> тоже использует
- номера правок. Можно объединить набор изменений из одной ветки
- в другую указав его в качестве аргумента:
- команда <command>svn merge -r9237:9238</command> внедрит
- набор изменений #9238 в вашу рабочую копию.</para>
-
- </sidebar>
-
<sect3 id="svn.branchmerge.copychanges.bestprac.merge">
<!-- @ENGLISH {{{
<title>Merge Conflicts</title>
@@ -2224,15 +2150,6 @@
change, we're asking <command>svn merge</command> to apply
changeset #303 to our working copy
<emphasis>backwards</emphasis>.</para>
-
- <para>Keep in mind that rolling back a change like this is just
- like any other <command>svn merge</command> operation, so you
- should use <command>svn status</command> and <command>svn
- diff</command> to confirm that your work is in the state you
- want it to be in, and then use <command>svn commit</command>
- to send the final version to the repository. After
- committing, this particular changeset is no longer reflected
- in the <literal>HEAD</literal> revision.</para>
@ENGLISH }}} -->
<para>Одним из взглядов на правку хранилища является представление
ее в виде сгруппированных изменений (некоторые системы управления
@@ -2244,6 +2161,87 @@
применить к рабочей копии набор изменений #303
<emphasis>в обратном направлении</emphasis>.</para>
+
+ <sidebar>
+ <!-- @ENGLISH {{{
+ <title>Subversion and Changesets</title>
+
+ <para>Everyone seems to have a slightly different definition
+ of <quote>changeset</quote>, or at least a different
+ expectation of what it means for a version control system to
+ have <quote>changeset features</quote>. For our purpose,
+ let's say that a changeset is just a collection of changes
+ with a unique name. The changes might include textual edits
+ to file contents, modifications to tree structure, or tweaks
+ to metadata. In more common speak, a changeset is just a
+ patch with a name you can refer to.</para>
+ @ENGLISH }}} -->
+ <title>Subversion и наборы изменений</title>
+
+ <para>У каждого найдется свое, немного отличающееся
+ определение <quote>набора изменений</quote>, или во всяком
+ случая того, что это должно означать применительно к системе
+ управления версиями <quote>поддерживающей наборы
+ изменений</quote>. Для нашего случая будем считать, что
+ набор изменений это просто модификации объединенные под
+ уникальным именем. Изменения могут заключаться в редактировании
+ текста файлов, модификации структуры файлов или корректировке
+ метаданных. Проще говоря, набор изменений это просто патч
+ с заданным для него именем.</para>
+
+ <!-- @ENGLISH {{{
+ <para>In Subversion, a global revision number N names a tree
+ in the repository: it's the way the repository looked after
+ the Nth commit. It's also the name of an implicit
+ changeset: if you compare tree N with tree N-1, you can
+ derive the exact patch that was committed. For this reason,
+ it's easy to think of <quote>revision N</quote> as not just
+ a tree, but a changeset as well. If you use an issue
+ tracker to manage bugs, you can use the revision numbers to
+ refer to particular patches that fix bugs—for example,
+ <quote>this issue was fixed by revision 9238.</quote>.
+ Somebody can then run <command>svn log -r9238</command> to
+ read about the exact changeset which fixed the bug, and run
+ <command>svn diff -r9237:9238</command> to see the patch
+ itself. And Subversion's <literal>merge</literal> command
+ also uses revision numbers. You can merge specific changesets
+ from one branch to another by naming them in the merge
+ arguments: <command>svn merge -r9237:9238</command> would
+ merge changeset #9238 into your working copy.</para>
+ @ENGLISH }}} -->
+ <para>В Subversion глобальный номер правки N относится к
+ дереву в хранилище: так выглядит хранилище после
+ фиксации N. Кроме того, это имя для неявного набора
+ изменений: если сравнить дерево N с деревом N-1 вы получите
+ полный патч того, что было зафиксировано. В этом смысле,
+ о <quote>правке N</quote> можно думать не как о дереве
+ файлов, а как о наборе изменений. Если вы пользуетесь
+ системой отслеживания релизов для управления ошибками,
+ вы можете использовать номера правок для того, что бы
+ ссылаться на конкретные патчи, которые исправляют
+ ошибку — например, <quote>этот релиз был исправлен
+ правкой 9238.</quote>. После этого, для того, что бы прочитать
+ о том наборе изменений, который исправляет ошибку можно выполнить
+ <command>svn log -r9238</command>, а для того, что бы увидеть
+ сам патч, выполнить <command>svn diff -r9237:9238</command>.
+ В Subversion команда <literal>merge</literal> тоже использует
+ номера правок. Можно объединить набор изменений из одной ветки
+ в другую указав его в качестве аргумента:
+ команда <command>svn merge -r9237:9238</command> внедрит
+ набор изменений #9238 в вашу рабочую копию.</para>
+
+ </sidebar>
+
+ <!-- @ENGLISH {{{
+ <para>Keep in mind that rolling back a change like this is just
+ like any other <command>svn merge</command> operation, so you
+ should use <command>svn status</command> and <command>svn
+ diff</command> to confirm that your work is in the state you
+ want it to be in, and then use <command>svn commit</command>
+ to send the final version to the repository. After
+ committing, this particular changeset is no longer reflected
+ in the <literal>HEAD</literal> revision.</para>
+ @ENGLISH }}} -->
<para>Обратите внимание, что откат изменений подобным образом
ничем не отличается от любых других операций, выполненных с
помощью <command>svn merge</command>, поэтому необходимо
Modified: trunk/src/ru/book/ch-customizing-svn.xml
==============================================================================
--- trunk/src/ru/book/ch-customizing-svn.xml (original)
+++ trunk/src/ru/book/ch-customizing-svn.xml Sun Feb 4 10:11:16 2007
@@ -7,11 +7,8 @@
<title>Профессиональное использование Subversion</title>
<!-- See also svn.preface.organization -->
- <simplesect>
+ <para>### TODO ###</para>
- <para>### TODO ###</para>
-
- </simplesect>
<sect1 id="svn.advanced.confarea">
<!-- @ENGLISH {{{
Modified: trunk/src/ru/book/ch-developer-info.xml
==============================================================================
--- trunk/src/ru/book/ch-developer-info.xml (original)
+++ trunk/src/ru/book/ch-developer-info.xml Sun Feb 4 10:11:16 2007
@@ -7,29 +7,26 @@
<title>Информация для разработчиков</title>
<!-- See also svn.preface.organization -->
- <simplesect>
- <para>Subversion is an open-source software project developed
- under an Apache-style software license. The project is
- financially backed by CollabNet, Inc., a California-based
- software development company. The community that has formed
- around the development of Subversion always welcomes new members
- who can donate their time and attention to the project.
- Volunteers are encouraged to assist in any way they can, whether
- that means finding and diagnosing bugs, refining existing source
- code, or fleshing out whole new features.</para>
-
- <para>This chapter is for those who wish to assist in the
- continued evolution of Subversion by actually getting their
- hands dirty with the source code. We will cover some of the
- software's more intimate details, the kind of technical
- nitty-gritty that those developing Subversion itself—or
- writing entirely new tools based on the Subversion
- libraries—should be aware of. If you don't foresee
- yourself participating with the software at such a level, feel
- free to skip this chapter with confidence that your experience
- as a Subversion user will not be affected.</para>
+ <para>Subversion has a modular design, implemented as a collection
+ of C libraries. Each library has a well-defined purpose and
+ interface, and those interfaces are available not only for
+ Subversion itself to use, but for any software that wishes to
+ embed or otherwise programmatically control Subversion. Most of
+ those interfaces are available not only in C, but also in
+ higher-level languages such as Python or Java.</para>
+
+ <para>This chapter is for those who wish to interact with
+ Subversion through its public Application Programming Interface
+ (API) or various language bindings. If you wish to write robust
+ wrapper scripts around Subversion functionality to simplify your
+ own life, are trying to develop more complex integrations
+ between Subversion and other pieces of software, or just have an
+ interest in Subversion's various library modules and what they
+ offer, this chapter is for you. If, however, you don't foresee
+ yourself participating with Subversion at such a level, feel
+ free to skip this chapter with the confidence that your
+ experience as a Subversion user will not be affected.</para>
- </simplesect>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -37,14 +34,13 @@
<sect1 id="svn.developer.layerlib">
<title>Layered Library Design</title>
- <para>Subversion has a modular design, implemented as a collection
- of C libraries. Each library has a well-defined purpose and
- interface, and most modules are said to exist in one of three
- main layers—the Repository Layer, the Repository Access
- (RA) Layer, or the Client Layer. We will examine these layers
- shortly, but first, see our brief inventory of Subversion's
- libraries in <xref linkend="svn.developer.layerlib.tbl-1"/>. For the sake
- of consistency, we will refer to the libraries by their
+ <para>Each of Subversion's core libraries can be said to exist in
+ one of three main layers—the Repository Layer, the
+ Repository Access (RA) Layer, or the Client Layer. We will
+ examine these layers shortly, but first, see our brief inventory
+ of Subversion's libraries in <xref
+ linkend="svn.developer.layerlib.tbl-1"/>. For the sake of
+ consistency, we will refer to the libraries by their
extensionless Unix library names (e.g.: libsvn_fs, libsvn_wc,
mod_dav_svn).</para>
@@ -887,9 +883,11 @@
pools to the API functions that need them. This means that
users of the Subversion API must also link against APR, must
call <function>apr_initialize()</function> to initialize the
- APR subsystem, and then must acquire a pool for use with
- Subversion API calls. See <xref linkend="svn.developer.pools"/>
- for more information.</para>
+ APR subsystem, and then must create and manage pools for use with
+ Subversion API calls, typically by using
+ <function>svn_pool_create()</function>,
+ <function>svn_pool_clear()</function>, and
+ <function>svn_pool_destroy()</function>.</para>
</sect2>
@@ -916,17 +914,14 @@
used by any program to do these conversions.</para>
<para>Also, Subversion APIs require all URL parameters to be
- properly URI-encoded. So, instead of passing <systemitem
- class="url">file:///home/username/My File.txt</systemitem> as
- the URL of a file named <literal>My File.txt</literal>, you
- need to pass <systemitem
- class="url">file:///home/username/My%20File.txt</systemitem>.
- Again, Subversion supplies helper functions that your
- application can
+ properly URI-encoded. So, instead of passing
+ <uri>file:///home/username/My File.txt</uri> as the URL of a
+ file named <literal>My File.txt</literal>, you need to pass
+ <uri>file:///home/username/My%20File.txt</uri>. Again,
+ Subversion supplies helper functions that your application can
use—<function>svn_path_uri_encode()</function> and
- <function>svn_path_uri_decode()</function>, for URI encoding and
- decoding, respectively.</para>
- </sect2>
+ <function>svn_path_uri_decode()</function>, for URI encoding
+ and decoding, respectively.</para> </sect2>
<!-- =============================================================== -->
<sect2 id="svn.developer.usingapi.otherlangs">
@@ -1429,396 +1424,6 @@
clients.</para>
</sect1>
- <!-- ================================================================= -->
- <!-- ================================================================= -->
- <!-- ================================================================= -->
- <sect1 id="svn.developer.pools">
- <title>Programming with Memory Pools</title>
-
- <para>Almost every developer who has used the C programming
- language has at some point sighed at the daunting task of
- managing memory usage. Allocating enough memory to use, keeping
- track of those allocations, freeing the memory when you no
- longer need it—these tasks can be quite complex. And of
- course, failure to do those things properly can result in a
- program that crashes itself, or worse, crashes the computer.
- Fortunately, the APR library that Subversion depends on for
- portability provides the <structname>apr_pool_t</structname>
- type, which represents a pool from which the application may
- allocate memory.</para>
-
- <para>A memory pool is an abstract representation of a chunk of
- memory allocated for use by a program. Rather than requesting
- memory directly from the OS using the standard
- <function>malloc()</function> and friends, programs that link
- against APR can simply request that a pool of memory be created
- (using the <function>apr_pool_create()</function> function).
- APR will allocate a moderately sized chunk of memory from the
- OS, and that memory will be instantly available for use by the
- program. Any time the program needs some of the pool memory, it
- uses one of the APR pool API functions, like
- <function>apr_palloc()</function>, which returns a generic
- memory location from the pool. The program can keep requesting
- bits and pieces of memory from the pool, and APR will keep
- granting the requests. Pools will automatically grow in size to
- accommodate programs that request more memory than the original
- pool contained, until of course there is no more memory
- available on the system.</para>
-
- <para>Now, if this were the end of the pool story, it would hardly
- have merited special attention. Fortunately, that's not the
- case. Pools can not only be created; they can also be cleared
- and destroyed, using <function>apr_pool_clear()</function> and
- <function>apr_pool_destroy()</function> respectively. This
- gives developers the flexibility to allocate several—or
- several thousand—things from the pool, and then clean up
- all of that memory with a single function call! Further, pools
- have hierarchy. You can make <quote>subpools</quote> of any
- previously created pool. When you clear a pool, all of its
- subpools are destroyed; if you destroy a pool, it and its
- subpools are destroyed.</para>
-
- <para>Before we go further, developers should be aware that they
- probably will not find many calls to the APR pool functions we
- just mentioned in the Subversion source code. APR pools offer
- some extensibility mechanisms, like the ability to have custom
- <quote>user data</quote> attached to the pool, and mechanisms
- for registering cleanup functions that get called when the pool
- is destroyed. Subversion makes use of these extensions in a
- somewhat non-trivial way. So, Subversion supplies (and most of
- its code uses) the wrapper functions
- <function>svn_pool_create()</function>,
- <function>svn_pool_clear()</function>, and
- <function>svn_pool_destroy()</function>.</para>
-
- <para>While pools are helpful for basic memory management, the
- pool construct really shines in looping and recursive scenarios.
- Since loops are often unbounded in their iterations, and
- recursions in their depth, memory consumption in these areas of
- the code can become unpredictable. Fortunately, using nested
- memory pools can be a great way to easily manage these
- potentially hairy situations. The following example
- demonstrates the basic use of nested pools in a situation that
- is fairly common—recursively crawling a directory tree,
- doing some task to each thing in the tree.</para>
-
- <example id="svn.developer.pools.ex-1">
- <title>Effective Pool Usage</title>
- <programlisting>
-/* Recursively crawl over DIRECTORY, adding the paths of all its file
- children to the FILES array, and doing some task to each path
- encountered. Use POOL for the all temporary allocations, and store
- the hash paths in the same pool as the hash itself is allocated in. */
-static apr_status_t
-crawl_dir (apr_array_header_t *files,
- const char *directory,
- apr_pool_t *pool)
-{
- apr_pool_t *hash_pool = files->pool; /* array pool */
- apr_pool_t *subpool = svn_pool_create (pool); /* iteration pool */
- apr_dir_t *dir;
- apr_finfo_t finfo;
- apr_status_t apr_err;
- apr_int32_t flags = APR_FINFO_TYPE | APR_FINFO_NAME;
-
- apr_err = apr_dir_open (&dir, directory, pool);
- if (apr_err)
- return apr_err;
-
- /* Loop over the directory entries, clearing the subpool at the top of
- each iteration. */
- for (apr_err = apr_dir_read (&finfo, flags, dir);
- apr_err == APR_SUCCESS;
- apr_err = apr_dir_read (&finfo, flags, dir))
- {
- const char *child_path;
-
- /* Clear the per-iteration SUBPOOL. */
- svn_pool_clear (subpool);
-
- /* Skip entries for "this dir" ('.') and its parent ('..'). */
- if (finfo.filetype == APR_DIR)
- {
- if (finfo.name[0] == '.'
- && (finfo.name[1] == '\0'
- || (finfo.name[1] == '.' && finfo.name[2] == '\0')))
- continue;
- }
-
- /* Build CHILD_PATH from DIRECTORY and FINFO.name. */
- child_path = svn_path_join (directory, finfo.name, subpool);
-
- /* Do some task to this encountered path. */
- do_some_task (child_path, subpool);
-
- /* Handle subdirectories by recursing into them, passing SUBPOOL
- as the pool for temporary allocations. */
- if (finfo.filetype == APR_DIR)
- {
- apr_err = crawl_dir (files, child_path, subpool);
- if (apr_err)
- return apr_err;
- }
-
- /* Handle files by adding their paths to the FILES array. */
- else if (finfo.filetype == APR_REG)
- {
- /* Copy the file's path into the FILES array's pool. */
- child_path = apr_pstrdup (hash_pool, child_path);
-
- /* Add the path to the array. */
- (*((const char **) apr_array_push (files))) = child_path;
- }
- }
-
- /* Destroy SUBPOOL. */
- svn_pool_destroy (subpool);
-
- /* Check that the loop exited cleanly. */
- if (apr_err)
- return apr_err;
-
- /* Yes, it exited cleanly, so close the dir. */
- apr_err = apr_dir_close (dir);
- if (apr_err)
- return apr_err;
-
- return APR_SUCCESS;
-}
-</programlisting>
- </example>
-
- <para>The previous example demonstrates effective pool usage in
- <emphasis>both</emphasis> looping and recursive situations.
- Each recursion begins by making a subpool of the pool passed to
- the function. This subpool is used for the looping region, and
- cleared with each iteration. The result is memory usage is
- roughly proportional to the depth of the recursion, not to total
- number of file and directories present as children of the
- top-level directory. When the first call to this recursive
- function finally finishes, there is actually very little data
- stored in the pool that was passed to it. Now imagine the extra
- complexity that would be present if this function had to
- <function>alloc()</function> and <function>free()</function>
- every single piece of data used!</para>
-
- <para>Pools might not be ideal for every application, but they are
- extremely useful in Subversion. As a Subversion developer,
- you'll need to grow comfortable with pools and how to wield them
- correctly. Memory usage bugs and bloating can be difficult to
- diagnose and fix regardless of the API, but the pool construct
- provided by APR has proven a tremendously convenient,
- time-saving bit of functionality.</para>
-
- </sect1>
-
- <!-- ================================================================= -->
- <!-- ================================================================= -->
- <!-- ================================================================= -->
- <sect1 id="svn.developer.contrib">
- <title>Contributing to Subversion</title>
-
- <para>The official source of information about the Subversion
- project is, of course, the project's website at
- <ulink url="http://subversion.tigris.org/"/>. There you can
- find information about getting access to the source code and
- participating on the discussion lists. The Subversion community
- always welcomes new members. If you are interested in
- participating in this community by contributing changes to the
- source code, here are some hints on how to get started.</para>
-
- <!-- =============================================================== -->
- <sect2 id="svn.developer.contrib.join">
- <title>Join the Community</title>
-
- <para>The first step in community participation is to find a way
- to stay on top of the latest happenings. To do this most
- effectively, you will want to subscribe to the main developer
- discussion list (<email>dev at subversion.tigris.org</email>) and
- commit mail list (<email>svn at subversion.tigris.org</email>).
- By following these lists even loosely, you will have access
- to important design discussions, be able to see actual changes
- to Subversion source code as they occur, and be able to
- witness peer reviews of those changes and proposed changes.
- These email based discussion lists are the primary
- communication media for Subversion development. See the
- Mailing Lists section of the website for other
- Subversion-related lists you might be interested in.</para>
-
- <para>But how do you know what needs to be done? It is quite
- common for a programmer to have the greatest intentions of
- helping out with the development, yet be unable to find a good
- starting point. After all, not many folks come to the
- community having already decided on a particular itch they
- would like to scratch. But by watching the developer
- discussion lists, you might see mentions of existing bugs or
- feature requests fly by that particularly interest you. Also,
- a great place to look for outstanding, unclaimed tasks is the
- Issue Tracking database on the Subversion website. There you
- will find the current list of known bugs and feature requests.
- If you want to start with something small, look for issues
- marked as <quote>bite-sized</quote>.</para>
-
- </sect2>
-
- <!-- =============================================================== -->
- <sect2 id="svn.developer.contrib.get-code">
- <title>Get the Source Code</title>
-
- <para>To edit the code, you need to have the code. This means
- you need to check out a working copy from the public
- Subversion source repository. As straightforward as that
- might sound, the task can be slightly tricky. Because
- Subversion's source code is versioned using Subversion itself,
- you actually need to <quote>bootstrap</quote> by getting a
- working Subversion client via some other method. The most
- common methods include downloading the latest binary
- distribution (if such is available for your platform), or
- downloading the latest source tarball and building your own
- Subversion client. If you build from source, make sure to
- read the <filename>INSTALL</filename> file in the top level of
- the source tree for instructions.</para>
-
- <para>After you have a working Subversion client, you are now
- poised to checkout a working copy of the Subversion source
- repository from <ulink
- url="http://svn.collab.net/repos/svn/trunk/"/>:
- <footnote>
- <para>Note that the URL checked out in the example above
- ends not with <literal>svn</literal>, but with a
- subdirectory thereof called <literal>trunk</literal>. See
- our discussion of Subversion's branching and tagging model
- for the reasoning behind this.</para>
- </footnote></para>
-
- <screen>
-$ svn checkout http://svn.collab.net/repos/svn/trunk subversion
-A subversion/HACKING
-A subversion/INSTALL
-A subversion/README
-A subversion/autogen.sh
-A subversion/build.conf
-…
-</screen>
-
- <para>The above command will checkout the bleeding-edge, latest
- version of the Subversion source code into a subdirectory
- named <filename>subversion</filename> in your current working
- directory. Obviously, you can adjust that last argument as
- you see fit. Regardless of what you call the new working copy
- directory, though, after this operation completes, you will
- now have the Subversion source code. Of course, you will
- still need to fetch a few helper libraries (apr, apr-util,
- etc.)—see the <filename>INSTALL</filename> file in the
- top level of the working copy for details.</para>
-
- </sect2>
-
- <!-- =============================================================== -->
- <sect2 id="svn.developer.contrib.hacking">
- <title>Become Familiar with Community Policies</title>
-
- <para>Now that you have a working copy containing the latest
- Subversion source code, you will most certainly want to take a
- cruise through the <quote>Hacker's Guide to Subversion</quote>,
- which is available either as the
- <filename>www/hacking.html</filename> file in the working copy,
- or on the Subversion website at <ulink
- url="http://subversion.tigris.org/hacking.html"/>. This guide
- contains general instructions for contributing to Subversion,
- including how to properly format your source code for
- consistency with the rest of the codebase, how to describe your
- proposed changes with an effective change log message, how to
- test your changes, and so on. Commit privileges on the
- Subversion source repository are earned—a government by
- meritocracy.
- <footnote>
- <para>While this may superficially appear as some sort of
- elitism, this <quote>earn your commit privileges</quote>
- notion is about efficiency—whether it costs more in
- time and effort to review and apply someone else's changes
- that are likely to be safe and useful, versus the
- potential costs of undoing changes that are
- dangerous.</para>
- </footnote>
- The <quote>Hacker's Guide</quote> is an invaluable resource when
- it comes to making sure that your proposed changes earn the
- praises they deserve without being rejected on
- technicalities.</para>
-
- </sect2>
-
- <!-- =============================================================== -->
- <sect2 id="svn.developer.contrib.code-and-test">
- <title>Make and Test Your Changes</title>
-
- <para>With the code and community policy understanding in hand,
- you are ready to make your changes. It is best to try to make
- smaller but related sets of changes, even tackling larger
- tasks in stages, instead of making huge, sweeping
- modifications. Your proposed changes will be easier to
- understand (and therefore easier to review) if you disturb
- the fewest lines of code possible to accomplish your task
- properly. After making each set of proposed changes, your
- Subversion tree should be in a state in which the software
- compiles with no warnings.</para>
-
- <para>Subversion has a fairly thorough
- <footnote>
- <para>You might want to grab some popcorn.
- <quote>Thorough</quote>, in this instance, translates to
- somewhere in the neighborhood of thirty minutes of
- non-interactive machine churn.</para>
- </footnote>
- regression test suite, and your proposed changes are expected
- to not cause any of those tests to fail. By running
- <command>make check</command> (in Unix) from the top of the
- source tree, you can sanity-check your changes. The fastest
- way to get your code contributions rejected (other than
- failing to supply a good log message) is to submit changes
- that cause failure in the test suite.</para>
-
- <!-- ### TODO: Describe building and testing on Windows. -->
-
- <para>In the best-case scenario, you will have actually added
- appropriate tests to that test suite which verify that your
- proposed changes work as expected. In fact,
- sometimes the best contribution a person can make is solely
- the addition of new tests. You can write regression tests for
- functionality that currently works in Subversion as a way to
- protect against future changes that might trigger failure in
- those areas. Also, you can write new tests that demonstrate
- known failures. For this purpose, the Subversion test suite
- allows you to specify that a given test is expected to fail
- (called an <literal>XFAIL</literal>), and so long as
- Subversion fails in the way that was expected, a test result
- of <literal>XFAIL</literal> itself is considered a success.
- Ultimately, the better the test suite, the less time wasted on
- diagnosing potentially obscure regression bugs.</para>
-
- </sect2>
-
- <!-- =============================================================== -->
- <sect2 id="svn.developer.contrib.submit">
- <title>Donate Your Changes</title>
-
- <para>After making your modifications to the source code,
- compose a clear and concise log message to describe those
- changes and the reasons for them. Then, send an email to the
- developers list containing your log message and the output of
- <command>svn diff</command> (from the top of your Subversion
- working copy). If the community members consider your changes
- acceptable, someone who has commit privileges (permission to
- make new revisions in the Subversion source repository) will
- add your changes to the public source code tree. Recall that
- permission to directly commit changes to the repository is
- granted on merit—if you demonstrate comprehension of
- Subversion, programming competency, and a <quote>team
- spirit</quote>, you will likely be awarded that
- permission.</para>
-
- </sect2>
- </sect1>
</chapter>
<!--
Modified: trunk/src/ru/book/ch-fundamental-concepts.xml
==============================================================================
--- trunk/src/ru/book/ch-fundamental-concepts.xml (original)
+++ trunk/src/ru/book/ch-fundamental-concepts.xml Sun Feb 4 10:11:16 2007
@@ -1,43 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter id="svn.basic">
- <!-- @ENGLISH {{{
- <title>Fundamental Concepts</title>
- @ENGLISH }}} -->
- <title>Фундаментальные понятия</title>
<chapterinfo>
<!-- See also svn.preface.organization -->
<othername id="svn.basic.accusative-case" role="title-variant">главу
2, «Основные понятия»</othername>
</chapterinfo>
+ <!-- @ENGLISH {{{
+ <title>Fundamental Concepts</title>
+ @ENGLISH }}} -->
+ <title>Фундаментальные понятия</title>
- <simplesect>
- <!-- @ENGLISH {{{
- <para>This chapter is a short, casual introduction to Subversion.
- If you're new to version control, this chapter is definitely for
- you. We begin with a discussion of general version control
- concepts, work our way into the specific ideas behind
- Subversion, and show some simple examples of Subversion in
- use.</para>
- @ENGLISH }}} -->
- <para>Эта глава представляет собой краткое, промежуточное введение
- в Subversion. Если контроль версий для вас в новинку, то эта глава
- специально для вас. Мы начнем с обсуждения основных понятий
- контроля версий, подойдем к основным идеям, лежащим в основе Subversion
- и покажем несколько простых примеров использования Subversion.</para>
-
- <!-- @ENGLISH {{{
- <para>Even though the examples in this chapter show people sharing
- collections of program source code, keep in mind that Subversion
- can manage any sort of file collection—it's not limited to
- helping computer programmers.</para>
- @ENGLISH }}} -->
- <para>Несмотря на то, что примеры в этой главе показывают людей
- делящих между собой набор исходников программы, помните, что
- Subversion может управлять набором файлов любого типа — она не
- ограничивается помощью компьютерным программистам.</para>
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>This chapter is a short, casual introduction to Subversion.
+ If you're new to version control, this chapter is definitely for
+ you. We begin with a discussion of general version control
+ concepts, work our way into the specific ideas behind
+ Subversion, and show some simple examples of Subversion in
+ use.</para>
+ @ENGLISH }}} -->
+ <para>Эта глава представляет собой краткое, промежуточное введение
+ в Subversion. Если контроль версий для вас в новинку, то эта глава
+ специально для вас. Мы начнем с обсуждения основных понятий
+ контроля версий, подойдем к основным идеям, лежащим в основе Subversion
+ и покажем несколько простых примеров использования Subversion.</para>
+ <!-- @ENGLISH {{{
+ <para>Even though the examples in this chapter show people sharing
+ collections of program source code, keep in mind that Subversion
+ can manage any sort of file collection—it's not limited to
+ helping computer programmers.</para>
+ @ENGLISH }}} -->
+ <para>Несмотря на то, что примеры в этой главе показывают людей
+ делящих между собой набор исходников программы, помните, что
+ Subversion может управлять набором файлов любого типа — она не
+ ограничивается помощью компьютерным программистам.</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
Modified: trunk/src/ru/book/ch-preface.xml
==============================================================================
--- trunk/src/ru/book/ch-preface.xml (original)
+++ trunk/src/ru/book/ch-preface.xml Sun Feb 4 10:11:16 2007
@@ -5,59 +5,57 @@
@ENGLISH }}} -->
<title>Об этой книге</title>
- <simplesect>
+ <!-- @ENGLISH {{{
+ <blockquote>
+ <attribution>Brian W. Fitzpatrick</attribution>
+ <para><quote>If C gives you enough rope to hang yourself, think
+ of Subversion as a sort of rope storage facility.</quote></para>
+ </blockquote>
+ @ENGLISH }}} -->
+ <blockquote>
+ <attribution>Brian W. Fitzpatrick</attribution>
+ <para><quote>Если язык C — это клубок верёвок, в
+ которых можно легко запутаться, то Subversion — это
+ что-то вроде склада для верёвок.</quote></para>
+ </blockquote>
- <!-- @ENGLISH {{{
- <blockquote>
- <attribution>Brian W. Fitzpatrick</attribution>
- <para><quote>If C gives you enough rope to hang yourself, think
- of Subversion as a sort of rope storage facility.</quote></para>
- </blockquote>
- @ENGLISH }}} -->
- <blockquote>
- <attribution>Brian W. Fitzpatrick</attribution>
- <para><quote>Если язык C — это клубок верёвок, в
- которых можно легко запутаться, то Subversion — это
- что-то вроде склада для верёвок.</quote></para>
- </blockquote>
-
- <!-- @ENGLISH {{{
- <para>In the world of open-source software, the Concurrent
- Versions System (CVS) has long been the tool of choice for
- version control. And rightly so. CVS itself is free software,
- and its non-restrictive <foreignphrase>modus
- operandi</foreignphrase> and support for networked
- operation—which allow dozens of geographically dispersed
- programmers to share their work—fits the collaborative
- nature of the open-source world very well. CVS and its
- semi-chaotic development model have become cornerstones of
- open-source culture.
- </para>
- @ENGLISH }}} -->
- <para>В мире программного обеспечения с открытым исходным кодом в
- качестве инструмента управления версиями долгое время
- использовалась Concurrent Versions System<footnote><para>Система
- параллельного управления версиями</para></footnote> (CVS). На
- это были свои причины. CVS сама по себе является свободным
- программным обеспечением, на работу с ней не накладывается
- ограничений, а поддержка сетевых возможностей позволяет десяткам
- географически разделённых программистов работать
- совместно — всё это отлично подходит для мира свободного
- программного обеспечения, отличающегося духом сотрудничества. CVS
- и её полубеспорядочная модель разработки стали краеугольными
- камнями культуры свободного программного обеспечения.</para>
+ <!-- @ENGLISH {{{
+ <para>In the world of open-source software, the Concurrent
+ Versions System (CVS) has long been the tool of choice for
+ version control. And rightly so. CVS itself is free software,
+ and its non-restrictive <foreignphrase>modus
+ operandi</foreignphrase> and support for networked
+ operation—which allow dozens of geographically dispersed
+ programmers to share their work—fits the collaborative
+ nature of the open-source world very well. CVS and its
+ semi-chaotic development model have become cornerstones of
+ open-source culture.
+ </para>
+ @ENGLISH }}} -->
+ <para>В мире программного обеспечения с открытым исходным кодом в
+ качестве инструмента управления версиями долгое время
+ использовалась Concurrent Versions System<footnote><para>Система
+ параллельного управления версиями</para></footnote> (CVS). На
+ это были свои причины. CVS сама по себе является свободным
+ программным обеспечением, на работу с ней не накладывается
+ ограничений, а поддержка сетевых возможностей позволяет десяткам
+ географически разделённых программистов работать
+ совместно — всё это отлично подходит для мира свободного
+ программного обеспечения, отличающегося духом сотрудничества. CVS
+ и её полубеспорядочная модель разработки стали краеугольными
+ камнями культуры свободного программного обеспечения.</para>
<!-- @ENGLISH {{{
- <para>But like many tools, CVS is starting to show its age.
- Subversion is a relatively new version control system designed
- to be the successor to CVS. The designers set out to win the
- hearts of CVS users in two ways: by creating an open-source
- system with a design (and <quote>look and feel</quote>) similar
- to CVS, and by attempting to fix most of CVS's noticeable flaws.
- While the result isn't necessarily the next great evolution in
- version control design, Subversion <emphasis>is</emphasis> very
- powerful, very usable, and very flexible.
- </para>
+ <para>But like many tools, CVS is starting to show its age.
+ Subversion is a relatively new version control system designed
+ to be the successor to CVS. The designers set out to win the
+ hearts of CVS users in two ways: by creating an open-source
+ system with a design (and <quote>look and feel</quote>) similar
+ to CVS, and by attempting to fix most of CVS's noticeable flaws.
+ While the result isn't necessarily the next great evolution in
+ version control design, Subversion <emphasis>is</emphasis> very
+ powerful, very usable, and very flexible.
+ </para>
@ENGLISH }}} -->
<para>Однако, несмотря на все достоинства CVS, её возраст даёт о себе
знать. Subversion представляет собой относительно молодую систему
@@ -71,26 +69,24 @@
версиями, Subversion <emphasis>на самом деле</emphasis> очень
мощное, удобное и гибкое средство.</para>
- <!-- @ENGLISH {{{
- <para>This book is written to document the 1.3 series of the
- Subversion version control system. We have made every attempt to be
- thorough in our coverage. However, Subversion has a thriving
- and energetic development community, so there are already a
- number of features and improvements planned for future versions
- of Subversion that may change some of the commands and specific
- notes in this book.
- </para>
- @ENGLISH }}} -->
- <para>Эта книга описывает систему управления версиями Subversion
- поколения 1.3. Мы стремились охватить материал как можно шире.
- В то же время следует иметь в виду, что разработкой Subversion
- занимается активное энергичное сообщество, так что уже сейчас идёт
- работа над рядом особенностей и улучшений, которые будут внесены в
- последующие версии Subversion. Эти нововведения могут привести к
- некоторым расхождениям между командами и соответствующими
- пояснениями в тексте книги.</para>
-
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>This book is written to document the 1.3 series of the
+ Subversion version control system. We have made every attempt to be
+ thorough in our coverage. However, Subversion has a thriving
+ and energetic development community, so there are already a
+ number of features and improvements planned for future versions
+ of Subversion that may change some of the commands and specific
+ notes in this book.
+ </para>
+ @ENGLISH }}} -->
+ <para>Эта книга описывает систему управления версиями Subversion
+ поколения 1.3. Мы стремились охватить материал как можно шире.
+ В то же время следует иметь в виду, что разработкой Subversion
+ занимается активное энергичное сообщество, так что уже сейчас идёт
+ работа над рядом особенностей и улучшений, которые будут внесены в
+ последующие версии Subversion. Эти нововведения могут привести к
+ некоторым расхождениям между командами и соответствующими
+ пояснениями в тексте книги.</para>
<!-- ================================================================= -->
@@ -177,6 +173,20 @@
различий между CVS и Subversion вынесен в отдельное
приложение.</para>
+ <!-- @ENGLISH {{{
+ <para>Note also that the source code examples used throughout the
+ book are only examples. While they will compile with the proper
+ compiler incantations, they are intended to illustrate a
+ particular scenario, not necessarily serve as examples of good
+ programming style or practices.</para>
+ @ENGLISH }}} -->
+ <para>Обратите внимание, что примеры исходного кода являются всего
+ лишь примерами. Хотя они и могут быть собраны с помощью
+ определённых заклинаний для компилятора, в тексте книги они
+ приводятся для иллюстрации соответствующей проблемы и не
+ обязательно служат примером хорошего стиля
+ программирования.</para>
+
</sect1>
<!-- ================================================================= -->
@@ -447,20 +457,6 @@
</warning>
</sect2>
- <!-- @ENGLISH {{{
- <para>Note that the source code examples are just
- that—examples. While they will compile with the proper
- compiler incantations, they are intended to illustrate the
- problem at hand, not necessarily serve as examples of good
- programming style.</para>
- @ENGLISH }}} -->
- <para>Обратите внимание, что примеры исходного кода являются всего
- лишь примерами. Хотя они и могут быть собраны с помощью
- определённых заклинаний для компилятора, в тексте книги они
- приводятся для иллюстрации соответствующей проблемы и не
- обязательно служат примером хорошего стиля
- программирования.</para>
-
</sect1>
<!-- ================================================================= -->
@@ -797,18 +793,14 @@
you wish—it's under a free license. Of course,
rather than distribute your own private version of this
book, we'd much rather you send feedback and patches to the
- Subversion developer community. See <xref
- linkend="svn.developer.contrib"/> to learn about joining this
- community.</para>
+ Subversion developer community.</para>
@ENGLISH }}} -->
<para>Вы можете распространять эту книгу и вносить в неё
изменения по своему усмотрению — лицензия на
использование книги является свободной. Конечно, будет лучше
всего, если вместо того, чтобы распространять собственную
версию книги, вы поделитесь отзывами и исправлениями с
- сообществом разработчиков Subversion. О том, как стать
- участником сообщества, написано в одном из разделов этой
- книги, см. <xref linkend="svn.developer.contrib"/>.</para>
+ сообществом разработчиков Subversion.</para>
</listitem>
</itemizedlist>
Modified: trunk/src/ru/book/ch-reference.xml
==============================================================================
--- trunk/src/ru/book/ch-reference.xml (original)
+++ trunk/src/ru/book/ch-reference.xml Sun Feb 4 10:11:16 2007
@@ -8,23 +8,20 @@
<!-- See also svn.preface.organization -->
<!-- @ENGLISH {{{
- <simplesect>
- <para>This chapter is intended to be a complete reference to using
- Subversion. This includes the command line client
- (<command>svn</command>) and all its subcommands, as well as the
- repository administration programs (<command>svnadmin</command>
- and <command>svnlook</command>) and their respective
- subcommands.</para>
- </simplesect>
- at ENGLISH }}} -->
- <simplesect>
- <para>Эта глава является полным справочным руководством
- по использованию Subversion. Она описывает работу программы-клиента
- командной строки (<command>svn</command>) и всех его подкоманд,
- а так же программы администрирования хранилища
- (<command>svnadmin</command> и <command>svnlook</command>) и
- соответствующие им подкоманды.</para>
- </simplesect>
+ <para>This chapter is intended to be a complete reference to using
+ Subversion. This includes the command line client
+ (<command>svn</command>) and all its subcommands, as well as the
+ repository administration programs (<command>svnadmin</command>
+ and <command>svnlook</command>) and their respective
+ subcommands.</para>
+
+ at ENGLISH }}} -->
+ <para>Эта глава является полным справочным руководством
+ по использованию Subversion. Она описывает работу программы-клиента
+ командной строки (<command>svn</command>) и всех его подкоманд,
+ а так же программы администрирования хранилища
+ (<command>svnadmin</command> и <command>svnlook</command>) и
+ соответствующие им подкоманды.</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -5467,7 +5464,7 @@
<refentry id="svn.ref.svnadmin.c.help">
<refnamediv>
- <refname>svnadmin help</refname>
+ <refname>svnadmin help</refname> <refpurpose>Help!</refpurpose>
</refnamediv>
<refsect1>
<title>Synopsis</title>
@@ -6396,7 +6393,7 @@
<refentry id="svn.ref.svnlook.c.help">
<refnamediv>
- <refname>svnlook help</refname>
+ <refname>svnlook help</refname> <refpurpose>Help!</refpurpose>
</refnamediv>
<refsect1>
<title>Synopsis</title>
Modified: trunk/src/ru/book/ch-repository-admin.xml
==============================================================================
--- trunk/src/ru/book/ch-repository-admin.xml (original)
+++ trunk/src/ru/book/ch-repository-admin.xml Sun Feb 4 10:11:16 2007
@@ -6,38 +6,37 @@
<title>Администрирование хранилища</title>
<!-- See also svn.preface.organization -->
- <simplesect>
+ <para>### TODO: Heavy (re-)construction will be happenin' here! ###</para>
- <para>The Subversion repository is the central storehouse of
- versioned data for any number of projects. As such, it becomes
- an obvious candidate for all the love and attention an
- administrator can offer. While the repository is generally a
- low-maintenance item, it is important to understand how to
- properly configure and care for it so that potential problems
- are avoided, and actual problems are safely resolved.</para>
-
- <para>In this chapter, we'll discuss how to create and configure
- a Subversion repository. We'll also talk about repository
- maintenance, including the use of the <command>svnlook</command>
- and <command>svnadmin</command> tools (which are provided with
- Subversion). We'll address some common questions and mistakes,
- and give some suggestions on how to arrange the data in the
- repository.</para>
-
- <para>If you plan to access a Subversion repository only in the
- role of a user whose data is under version control (that is, via
- a Subversion client), you can skip this chapter altogether.
- However, if you are, or wish to become, a Subversion repository
- administrator,
- <footnote>
- <para>This may sound really prestigious and lofty, but we're
- just talking about anyone who is interested in that
- mysterious realm beyond the working copy where everyone's
- data hangs out.</para>
- </footnote>
- you should definitely pay attention to this chapter.</para>
+ <para>The Subversion repository is the central storehouse of
+ versioned data for any number of projects. As such, it becomes
+ an obvious candidate for all the love and attention an
+ administrator can offer. While the repository is generally a
+ low-maintenance item, it is important to understand how to
+ properly configure and care for it so that potential problems
+ are avoided, and actual problems are safely resolved.</para>
+
+ <para>In this chapter, we'll discuss how to create and configure
+ a Subversion repository. We'll also talk about repository
+ maintenance, including the use of the <command>svnlook</command>
+ and <command>svnadmin</command> tools (which are provided with
+ Subversion). We'll address some common questions and mistakes,
+ and give some suggestions on how to arrange the data in the
+ repository.</para>
+
+ <para>If you plan to access a Subversion repository only in the
+ role of a user whose data is under version control (that is, via
+ a Subversion client), you can skip this chapter altogether.
+ However, if you are, or wish to become, a Subversion repository
+ administrator,
+ <footnote>
+ <para>This may sound really prestigious and lofty, but we're
+ just talking about anyone who is interested in that
+ mysterious realm beyond the working copy where everyone's
+ data hangs out.</para>
+ </footnote>
+ you should definitely pay attention to this chapter.</para>
- </simplesect>
<!-- ================================================================= -->
<!-- ================================================================= -->
Modified: trunk/src/ru/book/ch-server-configuration.xml
==============================================================================
--- trunk/src/ru/book/ch-server-configuration.xml (original)
+++ trunk/src/ru/book/ch-server-configuration.xml Sun Feb 4 10:11:16 2007
@@ -7,40 +7,36 @@
<title>Настройка сервера</title>
<!-- See also svn.preface.organization -->
- <simplesect>
-
- <!-- @ENGLISH {{{
- <para>A Subversion repository can be accessed simultaneously by
- clients running on the same machine on which the repository
- resides using the <literal>file:///</literal> method. But the
- typical Subversion setup involves a single server machine being
- accessed from clients on computers all over the office—or,
- perhaps, all over the world.</para>
- @ENGLISH }}} -->
- <para>Одновременный доступ к хранилищу Subversion клиентами,
- запущенными на том же компьютере, где расположено и хранилище,
- возможен при использовании метода <literal>file:///</literal>.
- Но, обычно, сервер Subversion устанавливается на отдельный
- компьютер, к которому имеют доступ клиенты с компьютеров всего
- офиса — или, возможно, всего мира.</para>
-
- <!-- @ENGLISH {{{
- <para>This section describes how to get your Subversion repository
- exposed outside its host machine for use by remote clients. We
- will cover Subversion's currently available server mechanisms,
- discussing the configuration and use of each. After reading
- this section, you should be able to decide which networking
- setup is right for your needs, and understand how to enable such
- a setup on your host computer.</para>
- @ENGLISH }}} -->
- <para>Этот раздел расскажет, как предоставить доступ к хранилищу
- Subversion удаленным клиентам. Мы опишем доступные на сегодняшний
- день механизмы серверов Subversion, а так же обсудим вопросы
- конфигурации и использования каждого из них. После прочтения этого
- раздела вы сможете решить, какой тип сервера подходит вам, как его
- установить и настроить на вашем комптьютере.</para>
-
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>A Subversion repository can be accessed simultaneously by
+ clients running on the same machine on which the repository
+ resides using the <literal>file:///</literal> method. But the
+ typical Subversion setup involves a single server machine being
+ accessed from clients on computers all over the office—or,
+ perhaps, all over the world.</para>
+ @ENGLISH }}} -->
+ <para>Одновременный доступ к хранилищу Subversion клиентами,
+ запущенными на том же компьютере, где расположено и хранилище,
+ возможен при использовании метода <literal>file:///</literal>.
+ Но, обычно, сервер Subversion устанавливается на отдельный
+ компьютер, к которому имеют доступ клиенты с компьютеров всего
+ офиса — или, возможно, всего мира.</para>
+
+ <!-- @ENGLISH {{{
+ <para>This section describes how to get your Subversion repository
+ exposed outside its host machine for use by remote clients. We
+ will cover Subversion's currently available server mechanisms,
+ discussing the configuration and use of each. After reading
+ this section, you should be able to decide which networking
+ setup is right for your needs, and understand how to enable such
+ a setup on your host computer.</para>
+ @ENGLISH }}} -->
+ <para>Этот раздел расскажет, как предоставить доступ к хранилищу
+ Subversion удаленным клиентам. Мы опишем доступные на сегодняшний
+ день механизмы серверов Subversion, а так же обсудим вопросы
+ конфигурации и использования каждого из них. После прочтения этого
+ раздела вы сможете решить, какой тип сервера подходит вам, как его
+ установить и настроить на вашем комптьютере.</para>
<!-- ================================================================= -->
<!-- ================================================================= -->
@@ -814,12 +810,11 @@
<emphasis>absolute</emphasis> path in the repository URL. For
example, if a repository is located at
<filename>/usr/local/repositories/project1</filename>, then a
- client would reach it via <systemitem
- class="url">svn://host.example.com/usr/local/repositories/project1
- </systemitem>. To increase security, you can pass the
- <option>-r</option> option to <command>svnserve</command>,
- which restricts it to exporting only repositories below that
- path:</para>
+ client would reach it via
+ <uri>svn://host.example.com/usr/local/repositories/project1</uri>.
+ To increase security, you can pass the <option>-r</option>
+ option to <command>svnserve</command>, which restricts it to
+ exporting only repositories below that path:</para>
<screen>
$ svnserve -d -r /usr/local/repositories
@@ -1467,10 +1462,8 @@
common parent directory. For example, if you know you will be
creating multiple Subversion repositories in a directory
<filename>/usr/local/svn</filename> that would be accessed via
- URLs like <systemitem
- class="url">http://my.server.com/svn/repos1</systemitem>,
- <systemitem
- class="url">http://my.server.com/svn/repos2</systemitem>, and
+ URLs like <uri>http://my.server.com/svn/repos1</uri>,
+ <uri>http://my.server.com/svn/repos2</uri>, and
so on, you could use the <filename>httpd.conf</filename>
configuration syntax in the following example:</para>
Modified: trunk/src/ru/book/copyright.xml
==============================================================================
--- trunk/src/ru/book/copyright.xml (original)
+++ trunk/src/ru/book/copyright.xml Sun Feb 4 10:11:16 2007
@@ -2,8 +2,7 @@
<appendix id="svn.copyright">
<title>Copyright</title>
- <simplesect>
- <programlisting>
+ <programlisting>
Copyright (c) 2002-2006
Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato.
@@ -302,7 +301,7 @@
====================================================================
</programlisting>
- </simplesect>
+
</appendix>
<!--
Modified: trunk/src/ru/book/foreword.xml
==============================================================================
--- trunk/src/ru/book/foreword.xml (original)
+++ trunk/src/ru/book/foreword.xml Sun Feb 4 10:11:16 2007
@@ -5,263 +5,263 @@
ch00.xml. -->
<preface id="svn.foreword">
+
+
+ <prefaceinfo>
+ <!-- @ENGLISH {{{
+ <author>
+ <firstname>Karl</firstname>
+ <surname>Fogel</surname>
+ </author>
+ <pubdate>Chicago, March 14, 2004</pubdate>
+ @ENGLISH }}} -->
+ <author>
+ <firstname>Карл</firstname>
+ <surname>Фогель</surname>
+ </author>
+ <pubdate>Чикаго, 14 марта 2004 г.</pubdate>
+ </prefaceinfo>
+
<!-- @ENGLISH {{{
<title>Foreword</title>
@ENGLISH }}} -->
<title>Предисловие</title>
- <simplesect>
+ <!-- @ENGLISH {{{
+ <para>A bad Frequently Asked Questions (FAQ) sheet is one that is
+ composed not of the questions people actually asked, but of the
+ questions the FAQ's author <emphasis>wished</emphasis> people
+ had asked. Perhaps you've seen the type before:</para>
+ @ENGLISH }}} -->
+ <para>Скверный список ответов на часто задаваемые вопросы (ЧаВо)
+ состоит не из тех вопросов, которые были заданы на самом деле,
+ а из тех, на которые автору такого списка <emphasis>хотелось
+ бы</emphasis> дать ответ. Вы наверняка сталкивались с чем-то
+ подобным:</para>
- <!-- @ENGLISH {{{
- <para>A bad Frequently Asked Questions (FAQ) sheet is one that is
- composed not of the questions people actually asked, but of the
- questions the FAQ's author <emphasis>wished</emphasis> people
- had asked. Perhaps you've seen the type before:</para>
- @ENGLISH }}} -->
- <para>Скверный список ответов на часто задаваемые вопросы (ЧаВо)
- состоит не из тех вопросов, которые были заданы на самом деле,
- а из тех, на которые автору такого списка <emphasis>хотелось
- бы</emphasis> дать ответ. Вы наверняка сталкивались с чем-то
- подобным:</para>
-
- <!-- @ENGLISH {{{
- <blockquote>
- <para>Q: How can I use Glorbosoft XYZ to maximize team
- productivity?</para>
- </blockquote>
- @ENGLISH }}} -->
- <blockquote>
- <para>ВОПРОС: Как Glorbosoft XYZ поможет поднять
- производительность труда наших сотрудников?</para>
- </blockquote>
-
- <!-- @ENGLISH {{{
- <blockquote>
- <para>A: Many of our customers want to know how they can
- maximize productivity through our patented office groupware
- innovations. The answer is simple: first, click on the
- <quote><literal>File</literal></quote> menu, scroll down to
- <quote><literal>Increase Productivity</literal></quote>,
- then…</para>
- </blockquote>
- @ENGLISH }}} -->
- <blockquote>
- <para>ОТВЕТ: Многие наши клиенты хотят знать, как поднять
- производительность труда при помощи наших патентованных офисных
- инноваций для коллективной работы. Ответ простой: выберите меню
- <quote><literal>Файл</literal></quote> и перейдите к пункту
- <quote><literal>Поднять производительность</literal></quote>,
- затем…</para>
- </blockquote>
-
- <!-- @ENGLISH {{{
- <para>The problem with such FAQs is that they are not, in a
- literal sense, FAQs at all. No one ever called the tech support
- line and asked, <quote>How can we maximize
- productivity?</quote>. Rather, people asked highly specific
- questions, like, <quote>How can we change the calendaring system
- to send reminders two days in advance instead of one?</quote>
- and so on. But it's a lot easier to make up imaginary
- Frequently Asked Questions than it is to discover the real ones.
- Compiling a true FAQ sheet requires a sustained, organized
- effort: over the lifetime of the software, incoming questions
- must be tracked, responses monitored, and all gathered into a
- coherent, searchable whole that reflects the collective
- experience of users in the wild. It calls for the patient,
- observant attitude of a field naturalist. No grand
- hypothesizing, no visionary pronouncements here—open eyes
- and accurate note-taking are what's needed most.</para>
- @ENGLISH }}} -->
- <para>Проблема подобных ЧаВо заключается в том, что они вовсе не
- являются ответами на <emphasis>часто задаваемые</emphasis> вопросы
- в буквальном смысле. Какой нормальный человек будет звонить в
- службу технической поддержки и спрашивать: <quote>как нам поднять
- производительность труда</quote>? Вопросы, которые обычно звучат
- в таких случаях, узко специализированы, например: <quote>Как
- настроить календарь для отправки напоминаний за два дня вместо
- одного?</quote>. Однако, создать список якобы заданных вопросов
- намного проще, чем подобрать настоящие вопросы из реальной жизни.
- Такая работа требует упорства и организованности: вопросы,
- возникающие в процессе жизненного цикла программного продукта, и
- ответы на них должны бережно сохраняться и систематизироваться,
- пока на их основе не будет создано логически связанное и удобное
- для поиска единое целое, наилучшим образом отражающее опыт
- пользователей. Здесь требуется терпеливость и внимательность,
- присущие естествоиспытателю, а не великие гипотезы и провидческие
- заявления. Главное в этой работе — открытые глаза и
- аккуратное отношение к записям в блокноте.</para>
-
- <!-- @ENGLISH {{{
- <para>What I love about this book is that it grew out of just such
- a process, and shows it on every page. It is the direct result
- of the authors' encounters with users. It began with Ben
- Collins-Sussman's observation that people were asking the same
- basic questions over and over on the Subversion mailing lists:
- What are the standard workflows to use with Subversion? Do
- branches and tags work the same way as in other version control
- systems? How can I find out who made a particular change?</para>
- @ENGLISH }}} -->
- <para>В этой книге мне больше всего нравится то, что она именно так
- и была написана, и это заметно на каждой её странице. Она является
- непосредственным результатом общения авторов с пользователями.
- Книга началась с того, что Бен Коллинз-Сассман как-то раз заметил
- в рассылке Subversion, что пользователи всё время задают одни и те
- же вопросы: какого порядка действий следует придерживаться при
- работе с Subversion; есть ли отличия от других систем управления
- версиями при работе с ветками и метками; как узнать, кем было
- выполнено то или иное изменение?</para>
-
- <!-- @ENGLISH {{{
- <para>Frustrated at seeing the same questions day after day, Ben
- worked intensely over a month in the summer of 2002 to write
- <citetitle>The Subversion Handbook</citetitle>, a sixty page
- manual that covered all the basics of using Subversion. The
- manual made no pretense of being complete, but it was
- distributed with Subversion and got users over that initial hump
- in the learning curve. When O'Reilly and Associates decided to
- publish a full-length Subversion book, the path of least
- resistance was obvious: just expand the Subversion
- handbook.</para>
- @ENGLISH }}} -->
- <para>Устав от ежедневного просмотра одних и тех же вопросов, Бен
- провёл месяц в напряжённой работе, и летом 2002 года появилось
- <citetitle>Руководство по Subversion</citetitle> — документ, в
- котором на 60 страницах описывались все основные приёмы работы с
- Subversion. Это руководство не претендовало на полноту, но оно
- было включено в поставку Subversion и помогало преодолеть
- начинающим пользователям первые трудности, с которыми они
- сталкивались. После того, как издательство O'Reilly and Associates
- решило выпустить полноценную книгу о Subversion, путь наименьшего
- сопротивления был очевиден: нужно было просто расширить
- <citetitle>Руководство по Subversion</citetitle>.</para>
-
- <!-- @ENGLISH {{{
- <para>The three co-authors of the new book were thus presented
- with an unusual opportunity. Officially, their task was to
- write a book top-down, starting from a table of contents and an
- initial draft. But they also had access to a steady
- stream—indeed, an uncontrollable geyser—of bottom-up
- source material. Subversion was already in the hands of
- thousands of early adopters, and those users were giving tons of
- feedback, not only about Subversion, but about its existing
- documentation.</para>
- @ENGLISH }}} -->
- <para>Таким образом, три соавтора новой книги получили необычную
- возможность. С одной стороны, перед ними была поставлена задача
- написать книгу в обычном смысле слова, от автора к читателю,
- начиная с содержания и первого черновика. Но, с другой стороны, у
- них также была возможность обращаться у устойчивому
- потоку — да что там говорить, к неуправляемому
- фонтану — материалу, поступающему от будущих читателей.
- Subversion уже был в то время в руках тысяч первых пользователей,
- которые давали множество отзывов не только о самом Subversion, но
- и о документации к нему.</para>
-
- <!-- @ENGLISH {{{
- <para>During the entire time they wrote this book, Ben, Mike, and
- Brian haunted the Subversion mailing lists and chat rooms
- incessantly, carefully noting the problems users were having in
- real-life situations. Monitoring such feedback is part of their
- job descriptions at CollabNet anyway, and it gave them a huge
- advantage when they set out to document Subversion. The book
- they produced is grounded firmly in the bedrock of experience,
- not in the shifting sands of wishful thinking; it combines the
- best aspects of user manual and FAQ sheet. This duality might
- not be noticeable on a first reading. Taken in order, front to
- back, the book is simply a straightforward description of a
- piece of software. There's the overview, the obligatory guided
- tour, the chapter on administrative configuration, some advanced
- topics, and of course a command reference and troubleshooting
- guide. Only when you come back to it later, seeking the
- solution to some specific problem, does its authenticity shine
- out: the telling details that can only result from encounters
- with the unexpected, the examples honed from genuine use cases,
- and most of all the sensitivity to the user's needs and the
- user's point of view.</para>
- @ENGLISH }}} -->
- <para>Пока шла работа над книгой, Бен, Майк и Брайан постоянно
- отслеживали рассылки и чаты, скрупулёзно отмечая проблемы, с
- которыми пользователи сталкивались в реальных жизненных ситуациях.
- Мониторинг подобных отзывов входит в их служебные обязанности в
- CollabNet, но в данном случае эта работа оказалась неоценимой при
- подготовке документации к Subversion. В основу написанной ими
- книги положен твёрдый фундамент опыта, а не зыбучие пески принятия
- желаемого за действительное; в этой книге соединяются лучшие
- качества руководства пользователя и списка ЧаВо. Эта
- двойственность может быть незаметна при первом прочтении книги.
- При чтении книги по порядку, от корки до корки, создаётся
- ощущение, что перед нами прямолинейное описание программного
- продукта. Нам предлагают общий обзор, непременный в таких случаях
- вводный курс, главу по администрированию, несколько тем для
- продвинутых пользователей и, само собой, справочник по командам и
- способы устранения проблем. Лишь возвращаясь к этой книге снова и
- снова, вы сможете оценить её самобытность: отличительные
- подробности, которые могут появиться лишь при встрече с
- неожиданными ситуациями, примеры, взятые из жизни и, самое
- главное, внимательность к нуждам пользователей и их точке
- зрения.</para>
-
- <!-- @ENGLISH {{{
- <para>Of course, no one can promise that this book will answer
- every question you have about Subversion. Sometimes, the
- precision with which it anticipates your questions will seem
- eerily telepathic; yet occasionally, you will stumble into a
- hole in the community's knowledge, and come away empty-handed.
- When this happens, the best thing you can do is email
- <email>users at subversion.tigris.org</email> and present your
- problem. The authors are still there, still watching, and they
- include not just the three listed on the cover, but many others
- who contributed corrections and original material. From the
- community's point of view, solving your problem is merely a
- pleasant side effect of a much larger project—namely,
- slowly adjusting this book, and ultimately Subversion itself, to
- more closely match the way people actually use it. They are
- eager to hear from you not merely because they can help you, but
- because you can help them. With Subversion as with all active
- free software projects, <emphasis>you are not
- alone</emphasis>.</para>
- @ENGLISH }}} -->
- <para>Конечно, никто не может пообещать, что эта книга ответит на
- все ваши вопросы о Subversion. Иногда точность, с которой книга
- предвосхищает ваши вопросы, может показаться телепатической, но
- вполне может случиться и так, что вы столкнётесь с пробелом в
- коллективном знании сообщества и уйдёте с пустыми руками. Лучшее,
- что можно сделать в такой ситуации — отправить письмо на адрес
- <email>users at subversion.tigris.org</email> с описанием вашей
- проблемы. Авторы по-прежнему читают эту рассылку, они внимательно
- наблюдают за вопросами, и, кроме того, сообщество пользователей не
- ограничивается тремя людьми, имена которых вынесены на обложку
- этой книги — многие подписчики рассылки также помогают вносить
- исправления и предлагают новый материал для книги. С точки зрения
- сообщества, решение вашей конкретной проблемы — это лишь
- приятный побочный эффект значительно более обширного проекта, а
- именно, постепенного исправления данной книги и самого Subversion
- с тем, чтобы как можно ближе соответствовать практике. Эти люди с
- удовольствием выслушают вас не только потому, что могут помочь, но
- и потому, что вы можете помочь им. При работе с Subversion, как и
- с любым другим бурно развивающимся свободным программным
- обеспечением, <emphasis>вы не будете чувствовать себя
- одиноким</emphasis>.</para>
+ <!-- @ENGLISH {{{
+ <blockquote>
+ <para>Q: How can I use Glorbosoft XYZ to maximize team
+ productivity?</para>
+ </blockquote>
+ @ENGLISH }}} -->
+ <blockquote>
+ <para>ВОПРОС: Как Glorbosoft XYZ поможет поднять
+ производительность труда наших сотрудников?</para>
+ </blockquote>
- <!-- @ENGLISH {{{
- <para>Let this book be your first companion.</para>
- @ENGLISH }}} -->
- <para>Пусть эта книга будет вашим верным помощником.</para>
+ <!-- @ENGLISH {{{
+ <blockquote>
+ <para>A: Many of our customers want to know how they can
+ maximize productivity through our patented office groupware
+ innovations. The answer is simple: first, click on the
+ <quote><literal>File</literal></quote> menu, scroll down to
+ <quote><literal>Increase Productivity</literal></quote>,
+ then…</para>
+ </blockquote>
+ @ENGLISH }}} -->
+ <blockquote>
+ <para>ОТВЕТ: Многие наши клиенты хотят знать, как поднять
+ производительность труда при помощи наших патентованных офисных
+ инноваций для коллективной работы. Ответ простой: выберите меню
+ <quote><literal>Файл</literal></quote> и перейдите к пункту
+ <quote><literal>Поднять производительность</literal></quote>,
+ затем…</para>
+ </blockquote>
- <!-- @ENGLISH {{{
- <para>—
- <author>
- <firstname>Karl</firstname>
- <surname>Fogel</surname>
- </author>, Chicago, 14 March, 2004</para>
- @ENGLISH }}} -->
+ <!-- @ENGLISH {{{
+ <para>The problem with such FAQs is that they are not, in a
+ literal sense, FAQs at all. No one ever called the tech support
+ line and asked, <quote>How can we maximize
+ productivity?</quote>. Rather, people asked highly specific
+ questions, like, <quote>How can we change the calendaring system
+ to send reminders two days in advance instead of one?</quote>
+ and so on. But it's a lot easier to make up imaginary
+ Frequently Asked Questions than it is to discover the real ones.
+ Compiling a true FAQ sheet requires a sustained, organized
+ effort: over the lifetime of the software, incoming questions
+ must be tracked, responses monitored, and all gathered into a
+ coherent, searchable whole that reflects the collective
+ experience of users in the wild. It calls for the patient,
+ observant attitude of a field naturalist. No grand
+ hypothesizing, no visionary pronouncements here—open eyes
+ and accurate note-taking are what's needed most.</para>
+ @ENGLISH }}} -->
+ <para>Проблема подобных ЧаВо заключается в том, что они вовсе не
+ являются ответами на <emphasis>часто задаваемые</emphasis> вопросы
+ в буквальном смысле. Какой нормальный человек будет звонить в
+ службу технической поддержки и спрашивать: <quote>как нам поднять
+ производительность труда</quote>? Вопросы, которые обычно звучат
+ в таких случаях, узко специализированы, например: <quote>Как
+ настроить календарь для отправки напоминаний за два дня вместо
+ одного?</quote>. Однако, создать список якобы заданных вопросов
+ намного проще, чем подобрать настоящие вопросы из реальной жизни.
+ Такая работа требует упорства и организованности: вопросы,
+ возникающие в процессе жизненного цикла программного продукта, и
+ ответы на них должны бережно сохраняться и систематизироваться,
+ пока на их основе не будет создано логически связанное и удобное
+ для поиска единое целое, наилучшим образом отражающее опыт
+ пользователей. Здесь требуется терпеливость и внимательность,
+ присущие естествоиспытателю, а не великие гипотезы и провидческие
+ заявления. Главное в этой работе — открытые глаза и
+ аккуратное отношение к записям в блокноте.</para>
+
+ <!-- @ENGLISH {{{
+ <para>What I love about this book is that it grew out of just such
+ a process, and shows it on every page. It is the direct result
+ of the authors' encounters with users. It began with Ben
+ Collins-Sussman's observation that people were asking the same
+ basic questions over and over on the Subversion mailing lists:
+ What are the standard workflows to use with Subversion? Do
+ branches and tags work the same way as in other version control
+ systems? How can I find out who made a particular change?</para>
+ @ENGLISH }}} -->
+ <para>В этой книге мне больше всего нравится то, что она именно так
+ и была написана, и это заметно на каждой её странице. Она является
+ непосредственным результатом общения авторов с пользователями.
+ Книга началась с того, что Бен Коллинз-Сассман как-то раз заметил
+ в рассылке Subversion, что пользователи всё время задают одни и те
+ же вопросы: какого порядка действий следует придерживаться при
+ работе с Subversion; есть ли отличия от других систем управления
+ версиями при работе с ветками и метками; как узнать, кем было
+ выполнено то или иное изменение?</para>
+
+ <!-- @ENGLISH {{{
+ <para>Frustrated at seeing the same questions day after day, Ben
+ worked intensely over a month in the summer of 2002 to write
+ <citetitle>The Subversion Handbook</citetitle>, a sixty page
+ manual that covered all the basics of using Subversion. The
+ manual made no pretense of being complete, but it was
+ distributed with Subversion and got users over that initial hump
+ in the learning curve. When O'Reilly and Associates decided to
+ publish a full-length Subversion book, the path of least
+ resistance was obvious: just expand the Subversion
+ handbook.</para>
+ @ENGLISH }}} -->
+ <para>Устав от ежедневного просмотра одних и тех же вопросов, Бен
+ провёл месяц в напряжённой работе, и летом 2002 года появилось
+ <citetitle>Руководство по Subversion</citetitle> — документ, в
+ котором на 60 страницах описывались все основные приёмы работы с
+ Subversion. Это руководство не претендовало на полноту, но оно
+ было включено в поставку Subversion и помогало преодолеть
+ начинающим пользователям первые трудности, с которыми они
+ сталкивались. После того, как издательство O'Reilly and Associates
+ решило выпустить полноценную книгу о Subversion, путь наименьшего
+ сопротивления был очевиден: нужно было просто расширить
+ <citetitle>Руководство по Subversion</citetitle>.</para>
+
+ <!-- @ENGLISH {{{
+ <para>The three co-authors of the new book were thus presented
+ with an unusual opportunity. Officially, their task was to
+ write a book top-down, starting from a table of contents and an
+ initial draft. But they also had access to a steady
+ stream—indeed, an uncontrollable geyser—of bottom-up
+ source material. Subversion was already in the hands of
+ thousands of early adopters, and those users were giving tons of
+ feedback, not only about Subversion, but about its existing
+ documentation.</para>
+ @ENGLISH }}} -->
+ <para>Таким образом, три соавтора новой книги получили необычную
+ возможность. С одной стороны, перед ними была поставлена задача
+ написать книгу в обычном смысле слова, от автора к читателю,
+ начиная с содержания и первого черновика. Но, с другой стороны, у
+ них также была возможность обращаться у устойчивому
+ потоку — да что там говорить, к неуправляемому
+ фонтану — материалу, поступающему от будущих читателей.
+ Subversion уже был в то время в руках тысяч первых пользователей,
+ которые давали множество отзывов не только о самом Subversion, но
+ и о документации к нему.</para>
+
+ <!-- @ENGLISH {{{
+ <para>During the entire time they wrote this book, Ben, Mike, and
+ Brian haunted the Subversion mailing lists and chat rooms
+ incessantly, carefully noting the problems users were having in
+ real-life situations. Monitoring such feedback is part of their
+ job descriptions at CollabNet anyway, and it gave them a huge
+ advantage when they set out to document Subversion. The book
+ they produced is grounded firmly in the bedrock of experience,
+ not in the shifting sands of wishful thinking; it combines the
+ best aspects of user manual and FAQ sheet. This duality might
+ not be noticeable on a first reading. Taken in order, front to
+ back, the book is simply a straightforward description of a
+ piece of software. There's the overview, the obligatory guided
+ tour, the chapter on administrative configuration, some advanced
+ topics, and of course a command reference and troubleshooting
+ guide. Only when you come back to it later, seeking the
+ solution to some specific problem, does its authenticity shine
+ out: the telling details that can only result from encounters
+ with the unexpected, the examples honed from genuine use cases,
+ and most of all the sensitivity to the user's needs and the
+ user's point of view.</para>
+ @ENGLISH }}} -->
+ <para>Пока шла работа над книгой, Бен, Майк и Брайан постоянно
+ отслеживали рассылки и чаты, скрупулёзно отмечая проблемы, с
+ которыми пользователи сталкивались в реальных жизненных ситуациях.
+ Мониторинг подобных отзывов входит в их служебные обязанности в
+ CollabNet, но в данном случае эта работа оказалась неоценимой при
+ подготовке документации к Subversion. В основу написанной ими
+ книги положен твёрдый фундамент опыта, а не зыбучие пески принятия
+ желаемого за действительное; в этой книге соединяются лучшие
+ качества руководства пользователя и списка ЧаВо. Эта
+ двойственность может быть незаметна при первом прочтении книги.
+ При чтении книги по порядку, от корки до корки, создаётся
+ ощущение, что перед нами прямолинейное описание программного
+ продукта. Нам предлагают общий обзор, непременный в таких случаях
+ вводный курс, главу по администрированию, несколько тем для
+ продвинутых пользователей и, само собой, справочник по командам и
+ способы устранения проблем. Лишь возвращаясь к этой книге снова и
+ снова, вы сможете оценить её самобытность: отличительные
+ подробности, которые могут появиться лишь при встрече с
+ неожиданными ситуациями, примеры, взятые из жизни и, самое
+ главное, внимательность к нуждам пользователей и их точке
+ зрения.</para>
- <para>—
- <author>
- <firstname>Карл</firstname>
- <surname>Фогель</surname>
- </author>, Чикаго, 14 марта 2004 г.</para>
- </simplesect>
+ <!-- @ENGLISH {{{
+ <para>Of course, no one can promise that this book will answer
+ every question you have about Subversion. Sometimes, the
+ precision with which it anticipates your questions will seem
+ eerily telepathic; yet occasionally, you will stumble into a
+ hole in the community's knowledge, and come away empty-handed.
+ When this happens, the best thing you can do is email
+ <email>users at subversion.tigris.org</email> and present your
+ problem. The authors are still there, still watching, and they
+ include not just the three listed on the cover, but many others
+ who contributed corrections and original material. From the
+ community's point of view, solving your problem is merely a
+ pleasant side effect of a much larger project—namely,
+ slowly adjusting this book, and ultimately Subversion itself, to
+ more closely match the way people actually use it. They are
+ eager to hear from you not merely because they can help you, but
+ because you can help them. With Subversion as with all active
+ free software projects, <emphasis>you are not
+ alone</emphasis>.</para>
+ @ENGLISH }}} -->
+ <para>Конечно, никто не может пообещать, что эта книга ответит на
+ все ваши вопросы о Subversion. Иногда точность, с которой книга
+ предвосхищает ваши вопросы, может показаться телепатической, но
+ вполне может случиться и так, что вы столкнётесь с пробелом в
+ коллективном знании сообщества и уйдёте с пустыми руками. Лучшее,
+ что можно сделать в такой ситуации — отправить письмо на адрес
+ <email>users at subversion.tigris.org</email> с описанием вашей
+ проблемы. Авторы по-прежнему читают эту рассылку, они внимательно
+ наблюдают за вопросами, и, кроме того, сообщество пользователей не
+ ограничивается тремя людьми, имена которых вынесены на обложку
+ этой книги — многие подписчики рассылки также помогают вносить
+ исправления и предлагают новый материал для книги. С точки зрения
+ сообщества, решение вашей конкретной проблемы — это лишь
+ приятный побочный эффект значительно более обширного проекта, а
+ именно, постепенного исправления данной книги и самого Subversion
+ с тем, чтобы как можно ближе соответствовать практике. Эти люди с
+ удовольствием выслушают вас не только потому, что могут помочь, но
+ и потому, что вы можете помочь им. При работе с Subversion, как и
+ с любым другим бурно развивающимся свободным программным
+ обеспечением, <emphasis>вы не будете чувствовать себя
+ одиноким</emphasis>.</para>
+
+ <!-- @ENGLISH {{{
+ <para>Let this book be your first companion.</para>
+ @ENGLISH }}} -->
+ <para>Пусть эта книга будет вашим верным помощником.</para>
</preface>
Modified: trunk/src/ru/book/styles.css
==============================================================================
--- trunk/src/ru/book/styles.css (original)
+++ trunk/src/ru/book/styles.css Sun Feb 4 10:11:16 2007
@@ -142,14 +142,20 @@
font-size: 100% !important;
}
-.author
+.author, .pubdate
{
+ margin: 0;
font-size: 100%;
font-style: italic;
font-weight: normal;
color: black;
}
+.preface div.author, .preface .pubdate
+{
+ font-size: 80%;
+}
+
.sidebar
{
border-top: dotted 1px black;
More information about the svnbook-dev
mailing list