[svnbook commit] r2393 - trunk/src/ru/book

dmitriy noreply at red-bean.com
Thu Aug 17 10:38:09 CDT 2006


Author: dmitriy
Date: Thu Aug 17 10:38:08 2006
New Revision: 2393

Modified:
   trunk/src/ru/book/appa.xml   (props changed)
   trunk/src/ru/book/appb.xml   (props changed)
   trunk/src/ru/book/appc.xml   (props changed)
   trunk/src/ru/book/book.xml   (props changed)
   trunk/src/ru/book/ch00.xml   (contents, props changed)
   trunk/src/ru/book/ch01.xml   (props changed)
   trunk/src/ru/book/ch02.xml   (contents, props changed)
   trunk/src/ru/book/ch03.xml   (props changed)
   trunk/src/ru/book/ch04.xml   (contents, props changed)
   trunk/src/ru/book/ch05.xml   (props changed)
   trunk/src/ru/book/ch06.xml   (contents, props changed)
   trunk/src/ru/book/ch07.xml   (contents, props changed)
   trunk/src/ru/book/ch08.xml   (props changed)
   trunk/src/ru/book/copyright.xml   (contents, props changed)
   trunk/src/ru/book/foreword.xml   (props changed)
   trunk/src/ru/book/styles.css   (props changed)

Log:
* ru/book/appa.xml
  ru/book/appb.xml
  ru/book/appc.xml
  ru/book/ch00.xml
  ru/book/ch01.xml
  ru/book/ch02.xml
  ru/book/ch03.xml
  ru/book/ch04.xml
  ru/book/ch05.xml
  ru/book/ch06.xml
  ru/book/ch07.xml
  ru/book/ch08.xml
  ru/book/copyright.xml
  ru/book/foreword.xml
  ru/book/styles.css

  Merged with r2152:r2392 of en/book/* to mirror a current state of the book's xmls


Modified: trunk/src/ru/book/ch00.xml
==============================================================================
--- trunk/src/ru/book/ch00.xml	(original)
+++ trunk/src/ru/book/ch00.xml	Thu Aug 17 10:38:08 2006
@@ -9,16 +9,16 @@
 
     <!-- @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>
-        —Brian W. Fitzpatrick</para>
+        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>
+          что-то вроде склада для верёвок.</quote></para>
     </blockquote>
 
     <!-- @ENGLISH {{{

Modified: trunk/src/ru/book/ch02.xml
==============================================================================
--- trunk/src/ru/book/ch02.xml	(original)
+++ trunk/src/ru/book/ch02.xml	Thu Aug 17 10:38:08 2006
@@ -1466,24 +1466,25 @@
           <para>If your project is sufficiently complex, you'll
             discover that it's sometimes nice to forcibly
             <quote>backdate</quote> portions of your working copy to
-            an earlier revision; you'll learn how to do that in
-            Chapter 3.  Perhaps you'd like to test an earlier version
-            of a sub-module contained in a subdirectory, or perhaps
-            you'd like to figure out when a bug first came into
-            existence in a specific file.  This is the <quote>time
-            machine</quote> aspect of a version control system —
-            the feature which allows you to move any portion of your
-            working copy forward and backward in history.</para>
+            an earlier revision; you'll learn how to do that in <xref
+            linkend="svn.tour"/>.  Perhaps you'd like to test an
+            earlier version of a sub-module contained in a
+            subdirectory, or perhaps you'd like to figure out when a
+            bug first came into existence in a specific file.  This is
+            the <quote>time machine</quote> aspect of a version
+            control system — the feature which allows you to
+            move any portion of your working copy forward and backward
+            in history.</para>
           @ENGLISH }}} -->
           <title>Смешивание правок — это полезно</title>
 
           <para>Если у вас очень большой проект, вы можете найти
             полезным, время от времени принудительно
             <quote>возвращать</quote> части рабочей копии к более
-            ранним правкам; как это делается, вы узнаете в Главе 3.
-            Возможно вы захотите протестировать более раннюю версию
-            модуля, находящегося в подкаталоге или точно
-            узнать, когда в конкретном файле появилась
+            ранним правкам; как это делается, вы узнаете в <xref
+            linkend="svn.tour"/>. Возможно вы захотите протестировать
+            более раннюю версию модуля, находящегося в подкаталоге
+            или точно узнать, когда в конкретном файле появилась
             ошибка. Это — <quote>машина времени</quote> —
             тот аспект системы управления версиями, который
             позволяет перемещать в истории любую часть рабочей копии
@@ -1525,19 +1526,21 @@
           <para>Second, you cannot commit a metadata change to a
             directory unless it's fully up-to-date.  You'll learn
             about attaching
-            <quote>properties</quote> to items in Chapter 6.  A
-            directory's working revision defines a specific set of
-            entries and properties, and thus committing a property
-            change to an out-of-date directory may destroy properties
-            you've not yet seen.</para>
+            <quote>properties</quote> to items in <xref
+            linkend="svn.serverconfig"/>.  A directory's working
+            revision defines a specific set of entries and properties,
+            and thus committing a property change to an out-of-date
+            directory may destroy properties you've not yet
+            seen.</para>
           @ENGLISH }}} -->
           <para>Во-вторых, нельзя зафиксировать изменение метаданных
             для не обновленного каталога. О присвоении
-            <quote>свойств</quote> к элементам вы узнаете в Главе 6.
-            Рабочая правка каталога определяет конкретный набор входящих
-            в нее элементов и свойств, поэтому фиксация изменений свойств
-            для устаревшего каталога может привести к уничтожению
-            свойств о которых вы не знаете.</para>
+            <quote>свойств</quote> к элементам вы узнаете в <xref
+            linkend="svn.serverconfig"/>. Рабочая правка каталога
+            определяет конкретный набор входящих в нее элементов и
+            свойств, поэтому фиксация изменений свойств для устаревшего
+            каталога может привести к уничтожению свойств о которых
+            вы не знаете.</para>
 
         </sect3>
 

Modified: trunk/src/ru/book/ch04.xml
==============================================================================
--- trunk/src/ru/book/ch04.xml	(original)
+++ trunk/src/ru/book/ch04.xml	Thu Aug 17 10:38:08 2006
@@ -143,11 +143,12 @@
       <xref linkend="svn.basic.in-action.revs"/>.</para>
 
     <para>For this chapter, we'll go back to the same example from
-      Chapter 2.  Remember that you and your collaborator, Sally, are
-      sharing a repository that contains two projects,
-      <filename>paint</filename> and <filename>calc</filename>.
-      Notice that in <xref linkend="svn.branchmerge.using.dia-1"/>, however, each
-      project directory now contains subdirectories named
+      <xref linkend="svn.basic"/>.  Remember that you and your
+      collaborator, Sally, are sharing a repository that contains two
+      projects, <filename>paint</filename> and
+      <filename>calc</filename>.  Notice that in <xref
+      linkend="svn.branchmerge.using.dia-1"/>, however, each project
+      directory now contains subdirectories named
       <filename>trunk</filename> and <filename>branches</filename>.
       The reason for this will soon become clear.</para>
     @ENGLISH }}} -->
@@ -159,13 +160,13 @@
       раздел <xref linkend="svn.basic.in-action.revs"/>.</para>
 
     <para>Для этой главы, мы воспользуемся тем же примером, что и
-      в Главе 2. Как вы помните, вы и ваш соразработчик Салли
-      делите хранилище, содержащее два проекта, <filename>paint</filename>
-      и <filename>calc</filename>. Как показывает <xref
-      linkend="svn.branchmerge.using.dia-1"/> каждая директория проекта
-      содержит поддиректории с названиями <filename>trunk</filename> и
-      <filename>branches</filename>. Назначение этих директорий скоро
-      станет понятно.</para>
+      в <xref linkend="svn.basic"/>. Как вы помните, вы и ваш соразработчик
+      Салли делите хранилище, содержащее два проекта,
+      <filename>paint</filename> и <filename>calc</filename>. Как
+      показывает <xref linkend="svn.branchmerge.using.dia-1"/> каждая
+      директория проекта содержит поддиректории с названиями
+      <filename>trunk</filename> и <filename>branches</filename>.
+      Назначение этих директорий скоро станет понятно.</para>
 
       <figure id="svn.branchmerge.using.dia-1">
         <!-- @ENGLISH {{{
@@ -874,10 +875,11 @@
       <para>It's time to use the <command>svn merge</command> command.
         This command, it turns out, is a very close cousin to the
         <command>svn diff</command> command (which you read about in
-        Chapter 3).  Both commands are able to compare any two objects
-        in the repository and describe the differences.  For example,
-        you can ask <command>svn diff</command> to show you the exact
-        change made by Sally in revision 344:</para>
+        <xref linkend="svn.tour"/>).  Both commands are able to
+        compare any two objects in the repository and describe the
+        differences.  For example, you can ask <command>svn
+        diff</command> to show you the exact change made by Sally in
+        revision 344:</para>
       @ENGLISH }}} -->
       <title>Копирование отдельных изменений</title>
 
@@ -896,10 +898,10 @@
       <para>Настал момент воспользоваться командой <command>svn
         merge</command>. Эта команда, оказывается, является очень близким
         родственником команды <command>svn diff</command> (о которой вы
-        читали Главе 3). Обе эти команды способны сравнивать любые два
-        объекта в хранилище и показывать изменения. Например, вы можете
-        попросить <command>svn diff</command> показать все изменения
-        сделанные Салли в правке 344:</para>
+        читали <xref linkend="svn.tour"/>). Обе эти команды способны
+        сравнивать любые два объекта в хранилище и показывать изменения.
+        Например, вы можете попросить <command>svn diff</command> показать
+        все изменения сделанные Салли в правке 344:</para>
 
       <screen>
 $ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk
@@ -977,9 +979,10 @@
       <para>In another scenario, it's possible that things may not have
         gone so well, and that <filename>integer.c</filename> may have
         entered a conflicted state.  You might need to resolve the
-        conflict using standard procedures (see Chapter 3), or if you
-        decide that the merge was a bad idea altogether, simply give up
-        and <command>svn revert</command> the local change.</para>
+        conflict using standard procedures (see <xref
+        linkend="svn.tour"/>), or if you decide that the merge was a
+        bad idea altogether, simply give up and <command>svn
+        revert</command> the local change.</para>
       @ENGLISH }}} -->
       <para>Вывод команды <command>svn merge</command> показывает, что
         к вашей копии <filename>integer.c</filename> был применен патч.
@@ -992,9 +995,10 @@
       <para>По другому сценарию, возможно, что не все будет так хорошо
         и <filename>integer.c</filename> может оказаться в состоянии
         конфликта. Вам необходимо будет при помощи стандартной процедуры
-        (см. Главу 3) решить конфликт, либо если вы прейдете к мнению, что
-        объединение было плохой идеей, просто отказаться от него, отменив
-        локальные изменения командой <command>svn revert</command>.</para>
+        (см. <xref linkend="svn.tour"/>) решить конфликт, либо если вы
+        прейдете к мнению, что объединение было плохой идеей, просто
+        отказаться от него, отменив локальные изменения командой
+        <command>svn revert</command>.</para>
 
       <!-- @ENGLISH {{{
       <para>But assuming that you've reviewed the merged change, you can
@@ -1111,12 +1115,12 @@
       <para>A word of warning: while <command>svn diff</command> and
         <command>svn merge</command> are very similar in concept, they
         do have different syntax in many cases.  Be sure to read about
-        them in Chapter 9 for details, or ask <command>svn
-        help</command>.  For example, <command>svn merge</command>
-        requires a working-copy path as a target, i.e. a place where
-        it should apply the tree-changes.  If the target isn't
-        specified, it assumes you are trying to perform one of the
-        following common operations:</para>
+        them in <xref linkend="svn.ref"/> for details, or ask
+        <command>svn help</command>.  For example, <command>svn
+        merge</command> requires a working-copy path as a target, i.e.
+        a place where it should apply the tree-changes.  If the target
+        isn't specified, it assumes you are trying to perform one of
+        the following common operations:</para>
 
       <orderedlist>
         <listitem>
@@ -1133,8 +1137,8 @@
       <para>Небольшое предупреждение: несмотря на то, что <command>svn
         diff</command> и <command>svn merge</command> очень похожи в
         основе, в большинстве случаев они имеют разные правила записи.
-        Обязательно прочтите об этом в Главе 9, или спросите у
-        <command>svn help</command>. Например, <command>svn
+        Обязательно прочтите об этом в <xref linkend="svn.ref"/>, или
+        спросите у <command>svn help</command>. Например, <command>svn
         merge</command> требует в качестве целевого объекта путь в
         рабочей копии, т. е. место, где ей нужно применить изменения
         структуры файлов. Если целевой объект не указан, предполагается,
@@ -3365,9 +3369,9 @@
         work here.  In this case, you want to make a snapshot of your
         exact working copy arrangement and store it in the repository.
         Luckily, <command>svn copy</command> actually has four
-        different uses (which you can read about in Chapter 9),
-        including the ability to copy a working-copy tree to the
-        repository:</para>
+        different uses (which you can read about in <xref
+        linkend="svn.ref"/>), including the ability to copy a
+        working-copy tree to the repository:</para>
       @ENGLISH }}} -->
       <title>Создание комплексной метки</title>
 
@@ -3391,8 +3395,8 @@
         здесь не пройдет. Здесь нужно сделать и сохранить в хранилище снимок
         именно такой структуры которую имеет рабочая копия. К счастью,
         <command>svn copy</command> имеет четыре способа использования
-        (о которых вы можете прочитать в Главе 9), включая возможность
-        копировать в хранилище дерево рабочей копии:</para>
+        (о которых вы можете прочитать в <xref linkend="svn.ref"/>),
+        включая возможность копировать в хранилище дерево рабочей копии:</para>
 
       <screen>
 $ ls

Modified: trunk/src/ru/book/ch06.xml
==============================================================================
--- trunk/src/ru/book/ch06.xml	(original)
+++ trunk/src/ru/book/ch06.xml	Thu Aug 17 10:38:08 2006
@@ -74,11 +74,12 @@
     <!-- @ENGLISH {{{
     <para>Apache is an extremely popular webserver; using the
       <command>mod_dav_svn</command> module, Apache can access a
-      repository and make it available to clients via the WebDAV/DeltaV
-      protocol, which is an extension of HTTP.  In the other corner is
-      <command>svnserve</command>: a small, standalone server
-      program that speaks a custom protocol with clients.  Table 6-1
-      presents a comparison of the two servers.</para>
+      repository and make it available to clients via the
+      WebDAV/DeltaV protocol, which is an extension of HTTP.  In the
+      other corner is <command>svnserve</command>: a small, standalone
+      server program that speaks a custom protocol with clients.
+      <xref linkend="svn.serverconfig.overview.tbl-1"/> presents a
+      comparison of the two servers.</para>
     @ENGLISH }}} -->
     <para>Apache — наиболее популярный web-сервер; при использовании
       модуля <command>mod_dav_svn</command> Apache получает возможность
@@ -86,7 +87,8 @@
       используя протокол WebDAV/DeltaV, который является расширением
       HTTP. В другом углу ринга — <command>svnserve</command>
       — небольшой, самостоятельный сервер, использующий для связи
-      с клиентами собственный протокол. В таблице 6-1 дано сравнение этих
+      с клиентами собственный протокол.
+      В <xref linkend="svn.serverconfig.overview.tbl-1"/> дано сравнение этих
       двух серверов.</para>
 
     <!-- @ENGLISH {{{
@@ -1183,7 +1185,7 @@
           form:</para>
 
         <screen>
-  ssh-dsa AAAABtce9euch.... user at example.com
+  ssh-dsa AAAABtce9euch… user at example.com
 </screen>
 
         <para>The first field describes the type of key, the second
@@ -1193,7 +1195,7 @@
           field:</para>
 
         <screen>
-  command="program" ssh-dsa AAAABtce9euch.... user at example.com
+  command="program" ssh-dsa AAAABtce9euch… user at example.com
 </screen>
 
         <para>When the <literal>command</literal> field is set, the
@@ -1573,7 +1575,7 @@
 </Location>
 </screen>
 
-      <para>...then your repository is <quote>anonymously</quote>
+      <para>…then your repository is <quote>anonymously</quote>
         accessible to the world.  Until you configure some
         authentication and authorization policies, the Subversion
         repositories you make available via the
@@ -2225,7 +2227,7 @@
 everyone = @calc-developers, @paint-developers
 </screen>
 
-        <para>...and that's pretty much all there is to it.</para>
+        <para>…and that's pretty much all there is to it.</para>
 
       </sect3>
 

Modified: trunk/src/ru/book/ch07.xml
==============================================================================
--- trunk/src/ru/book/ch07.xml	(original)
+++ trunk/src/ru/book/ch07.xml	Thu Aug 17 10:38:08 2006
@@ -789,7 +789,7 @@
             <listitem>
               <!-- @ENGLISH {{{
               <para>This setting is the same as
-                <literal>store-passwords</literal>, except that
+                <literal>store-passwords</literal>, except that it
                 enables or disables disk-caching of
                 <emphasis>all</emphasis> authentication information:
                 usernames, passwords, server certificates, and any
@@ -831,29 +831,76 @@
                 user wishes to edit, and the edits take place right
                 in the editor program (see <xref
                 linkend="svn.advanced.props" />).  This option's default
-                value is empty.  If the option is not set, Subversion
-                will fall back to checking the environment variables
-                <literal>SVN_EDITOR</literal>,
-                <literal>VISUAL</literal>, and
-                <literal>EDITOR</literal> (in that order) for an
-                editor command.</para>
+                value is empty.  The order of priority for determining the
+                editor command is:</para>
+              <orderedlist>
+                <listitem>
+                  <para>Command-line option <literal>-ﳢ-editor-cmd</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Environment variable <literal>SVN_EDITOR</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Configuration option <literal>editor-cmd</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Environment variable <literal>VISUAL</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Environment variable <literal>EDITOR</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Possibly, a default value built in to Subversion
+                    (not present in the official builds)</para>
+                </listitem>
+              </orderedlist>
+              <para>The value of any of these options or variables is
+                (unlike <literal>diff-cmd</literal>) the beginning of a
+                command line to be executed by the shell.  Subversion
+                appends a space and the pathname of the temporary file to be
+                edited.  The editor should modify the temporary file and
+                return a zero exit code to indicate success.</para>
               @ENGLISH }}} -->
               <para>Определяет программу, которую будет использовать
                 Subversion для ввода лог сообщений, в тех случаях, когда
                 <command>svn commit</command> используется без параметров
-                 <option>--message</option> (<option>-m</option>) или
-                 <option>--file</option> (<option>-F</option>). Эта же
-                 программа используется с командой <command>svn
-                 propedit</command> — вызывается временный файл,
-                 содержащий текущее значение редактируемого пользователем
-                 свойства и редактирование выполняется прямо в
-                 программе-редакторе (см. <xref
-                 linkend="svn.advanced.props" />). По умолчанию значение
-                 этого свойства не установлено. Если этот параметр не задан,
-                 для определения редактора Subversion возвращается к проверке
-                 переменных среды <literal>SVN_EDITOR</literal>,
-                 <literal>VISUAL</literal> и <literal>EDITOR</literal>
-                 (именно в такой последовательности).</para>
+                <option>--message</option> (<option>-m</option>) или
+                <option>--file</option> (<option>-F</option>). Эта же
+                программа используется с командой <command>svn
+                propedit</command> — вызывается временный файл,
+                содержащий текущее значение редактируемого пользователем
+                свойства и редактирование выполняется прямо в
+                программе-редакторе (см. <xref
+                linkend="svn.advanced.props" />). По умолчанию значение
+                этого свойства не установлено. Порядок определения
+                используемого редактора следующий:</para>
+              <orderedlist>
+                <listitem>
+                  <para>Command-line option <literal>--editor-cmd</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Environment variable <literal>SVN_EDITOR</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Configuration option <literal>editor-cmd</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Environment variable <literal>VISUAL</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Environment variable <literal>EDITOR</literal></para>
+                </listitem>
+                <listitem>
+                  <para>Possibly, a default value built in to Subversion
+                    (not present in the official builds)</para>
+                </listitem>
+              </orderedlist>
+              <para>The value of any of these options or variables is
+                (unlike <literal>diff-cmd</literal>) the beginning of a
+                command line to be executed by the shell.  Subversion
+                appends a space and the pathname of the temporary file to be
+                edited.  The editor should modify the temporary file and
+                return a zero exit code to indicate success.</para>
             </listitem>
           </varlistentry>
           <varlistentry>
@@ -972,11 +1019,13 @@
 
               <para>As well as <command>svn status</command>, the
                 <command>svn add</command> and <command>svn import</command>
-                commands also ignore files that match the list.
-                You can override this option for a single instance
-                of any of these commands by using
-                the <option>-ﳢ-no-ignore</option> command-line flag.
-                For information on more fine-grained control of
+                commands also ignore files that match the list
+                when they are scanning a directory.  You can override this
+                behaviour for a single instance of any of these commands
+                by explicitly specifying the file name, or by using
+                the <option>-ﳢ-no-ignore</option> command-line flag.</para>
+
+              <para>For information on more fine-grained control of
                 ignored items, see <xref linkend="svn.advanced.props.special.ignore"
                 />.</para>
               @ENGLISH }}} -->
@@ -997,10 +1046,10 @@
 
               <para>Также как и <command>svn status</command>, команды
                 <command>svn add</command> и <command>svn import</command>
-                тоже игнорируют файлы, подходящие к этому списку. Можно
-                переопределить этот параметр, используя флаг командной строки
-                <option>--no-ignore</option>. Подробнее о более точном
-                контроле игнорирования см. <xref
+                при просмотре директорий тоже игнорируют файлы, подходящие
+                к этому списку. Можно переопределить этот параметр, используя
+                флаг командной строки <option>--no-ignore</option>. Более
+                подробнее о контроле игнорирования см. <xref
                 linkend="svn.advanced.props.special.ignore" />.</para>
             </listitem>
           </varlistentry>
@@ -1033,8 +1082,8 @@
               <para>This variable sets the default character set
                 encoding for commit log messages.  It's a permanent
                 form of the <option>-ﳢ-encoding</option> option (see
-                <xref linkend="svn.ref.svn.sw"/>.)  The Subversion
-                repository stores log messages in UTF8, and assumes
+                <xref linkend="svn.ref.svn.sw"/>).  The Subversion
+                repository stores log messages in UTF-8, and assumes
                 that your log message is written using your operating
                 system's native locale.  You should specify a
                 different encoding if your commit messages are written
@@ -1578,7 +1627,7 @@
 
       <screen>
 $ svn propdel license calc/button.c
-property 'license' deleted from ''.
+property 'license' deleted from 'calc/button.c'.
 $ svn proplist --verbose calc/button.c
 Properties on 'calc/button.c':
   copyright : (c) 2003 Red-Bean Software
@@ -2380,6 +2429,101 @@
           file will be re-substituted with information that
           reflects the most recent known commit to that file.</para>
 
+        <para>Subversion 1.2 introduced a new variant of the keyword
+          syntax which brought additional, useful—though perhaps
+          atypical—functionality.  You can now tell Subversion
+          to maintain a fixed length (in terms of the number of bytes
+          consumed) for the substituted keyword.  By using a
+          double-colon (<literal>::</literal>) after the keyword name,
+          followed by a number of space characters, you define that
+          fixed width.  When Subversion goes to substitute your
+          keyword for the keyword and its value, it will essentially
+          replace only those space characters, leaving the overall
+          width of the keyword field unchanged.  If the substituted
+          value is shorter than the defined field width, there will be
+          extra padding characters (spaces) at the end of the
+          substituted field; if it is too long, it is truncated with a
+          special hash (<literal>#</literal>) character just before
+          the final dollar sign terminator.</para>
+
+        <para>For example, say you have a document in which you have
+          some section of tabular data reflecting the document's
+          Subversion keywords.  Using the original Subversion keyword
+          substitution syntax, your file might look something
+          like:</para>
+
+        <screen>
+$Rev$:     Revision of last commit
+$Author$:  Author of last commit
+$Date$:    Date of last commit
+</screen>
+
+        <para>Now, that looks nice and tabular at the start of things.
+          But when you then commit that file (with keyword substitution
+          enabled, of course), you see:</para>
+
+        <screen>
+$Rev: 12 $:     Revision of last commit
+$Author: harry $:  Author of last commit
+$Date: 2006-03-15 02:33:03 -0500 (Wed, 15 Mar 2006) $:    Date of last commit
+</screen>
+
+        <para>The result is not so beautiful.  And you might be
+          tempted to then adjust the file after the substitution so
+          that it again looks tabular.  But that only holds as long as
+          the keyword values are the same width.  If the last
+          committed revision rolls into a new place value (say, from
+          99 to 100), or if another person with a longer username
+          commits the file, stuff gets all crooked again.  However, if
+          you are using Subversion 1.2 or better, you can use the new
+          fixed-length keyword syntax, define some field widths that
+          seem sane, and now your file might look like this:</para>
+
+        <screen>
+$Rev::               $:  Revision of last commit
+$Author::            $:  Author of last commit
+$Date::              $:  Date of last commit
+</screen>
+
+        <para>You commit this change to your file.  This time,
+          Subversion notices the new fixed-length keyword syntax, and
+          maintains the width of the fields as defined by the padding
+          you placed between the double-colon and the trailing dollar
+          sign.  After substitution, the width of the fields is
+          completely unchanged—the short values for
+          <literal>Rev</literal> and <literal>Author</literal> are
+          padded with spaces, and the long <literal>Date</literal>
+          field is truncated by a hash character:</para>
+
+        <screen>
+$Rev:: 13            $:  Revision of last commit
+$Author:: harry      $:  Author of last commit
+$Date:: 2006-03-15 0#$:  Date of last commit
+</screen>
+       
+        <para>The use of fixed-length keywords is especially handy
+          when performing substitutions into complex file formats that
+          themselves use fixed-length fields for data, or for which
+          the stored size of a given data field is overbearingly
+          difficult to modify from outside the format's native
+          application (such as for Microsoft Office documents).</para>
+
+        <warning>
+          <para>Be aware that because the width of a keyword field is
+            measured in bytes, the potential for corruption of
+            multi-byte values exists.  For example, a username which
+            contains some multi-byte UTF-8 characters might suffer
+            truncation in the middle of the string of bytes which make
+            up one of those characters.  The result will be a mere
+            truncation when viewed at the byte level, but will likely
+            appear as a string with an incorrect or garbled final
+            character when viewed as UTF-8 text.  It is conceivable
+            that certain applications, when asked to load the file,
+            would notice the broken UTF-8 text and deem the entire
+            file corrupt, refusing to operate on the file
+            altogether.</para> 
+        </warning>
+
       </sect3>
 
       <sect3 id="svn.advanced.props.special.eol-style">
@@ -2395,7 +2539,7 @@
         <para>This means that by default, Subversion doesn't pay any
           attention to the type of <firstterm>end-of-line (EOL)
           markers</firstterm> used in your files.  Unfortunately,
-          different operating system use different tokens to represent
+          different operating systems use different tokens to represent
           the end of a line of text in a file.  For example, the usual
           line ending token used by software on the Windows platform
           is a pair of ASCII control characters—carriage return
@@ -2891,7 +3035,7 @@
           This behavior is also semi-permanently tweakable, by setting
           <literal>no-unlock = yes</literal> in your run-time
           <filename>config</filename> file (see <xref
-          linkend="svn.advanced.confarea"/>.)</para>
+          linkend="svn.advanced.confarea"/>).</para>
 
       <para>Of course, locking a file doesn't oblige one to commit a
         change to it.  The lock can be released at any time with a
@@ -3239,18 +3383,19 @@
   <sect1 id="svn.advanced.pegrevs">
     <title>Peg and Operative Revisions</title>
 
-    <para>The ability to copy, move, and rename files and directories;
-      to be able to create an object, then delete it and then add a
-      new one at the same path—those are operations which we
-      perform on files and directories on our computers all the time,
-      and operations we tend to take for granted.  And Subversion
-      would like you to think they are granted.  Subversion's file
-      management support is quite liberating, affording almost as much
+    <para>We make use of the ability to copy, move, rename, and
+      completely replace files and directories on our computers all
+      that time.  And your version control system shouldn't get in the
+      way of your doing these things with your version controlled
+      files and directories, either.  Subversion's file management
+      support is quite liberating, affording almost as much
       flexibility for versioned files that you'd expect when
       manipulating your unversioned ones.  But that flexibility means
       that across the lifetime of your repository, a given versioned
       resource might have many paths, and a given path might represent
-      several entirely different versioned resources.</para>
+      several entirely different versioned resources.  And this
+      introduces a certain level of complexity to your interactions
+      with those paths and resources.</para>
 
     <para>Subversion is pretty smart about noticing when an object's
       version history includes such <quote>changes of address</quote>.
@@ -3365,7 +3510,7 @@
 $ svn <replaceable>command</replaceable> -r <replaceable>OPERATIVE-REV</replaceable> item@<replaceable>PEG-REV</replaceable>
 </screen>
 
-      <para>...it performs the following algorithm:</para>
+      <para>…it performs the following algorithm:</para>
 
       <itemizedlist>
 
@@ -3435,7 +3580,7 @@
 svn: Unable to find repository location for 'concept/IDEA' in revision 1
 </screen>
 
-    <para>And when executed, has the expected results.  Peg revisions
+    <para>And when executed, it has the expected results.  Peg revisions
       generally default to a value of <literal>BASE</literal> (the
       revision currently present in the working copy) when applied to
       working copy paths, and of <literal>HEAD</literal> when applied
@@ -4286,8 +4431,8 @@
         in an asynchronous fashion (or <quote>backgrounded</quote>),
         you might have several instances of it all running
         simultaneously.  Finally, Subversion expects that your program
-        return an errorcode of 0 if your program detected differences,
-        or 1 if it did not—any other errorcode is considered a
+        return an errorcode of 1 if your program detected differences,
+        or 0 if it did not—any other errorcode is considered a
         fatal error.
         <footnote>
           <para>The GNU diff manual page puts it this way: <quote>An

Modified: trunk/src/ru/book/copyright.xml
==============================================================================
--- trunk/src/ru/book/copyright.xml	(original)
+++ trunk/src/ru/book/copyright.xml	Thu Aug 17 10:38:08 2006
@@ -5,7 +5,7 @@
   <simplesect>
     <programlisting>
 
-Copyright (c) 2002-2005
+Copyright (c) 2002-2006
 Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato.  
 
 This work is licensed under the Creative Commons Attribution License.




More information about the svnbook-dev mailing list