[svnbook commit] r2154 - in trunk/src/ru: . book

dmitriy noreply at red-bean.com
Sun May 14 06:20:48 CDT 2006


Author: dmitriy
Date: Sun May 14 06:20:48 2006
New Revision: 2154

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

Log:
* ru/sync.py
  few tweaks

* ru/book/ch07.xml
  Warning: Inconsistent synchronization, merge with r2020:r2121 of en/book/ch07.xml 
  has been performed, but the range r1943:r2020 has been omitted. It needs to be
  considered on future syncs.

* 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/ch08.xml
  ru/book/copyright.xml
  ru/book/foreword.xml
  ru/book/styles.css
  Update to mirror a current state of en/book/* (up to r2152)


Modified: trunk/src/ru/book/appa.xml
==============================================================================
--- trunk/src/ru/book/appa.xml	(original)
+++ trunk/src/ru/book/appa.xml	Sun May 14 06:20:48 2006
@@ -11,7 +11,7 @@
 
     <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
+      as <quote>viewed from 10,000 feet</quote>.  For each section, we
       provide backreferences to relevant chapters when
       possible.</para>
 
@@ -46,7 +46,7 @@
     <para>Technically, it's not valid to talk about <quote>revision 5
       of <filename>foo.c</filename></quote>.  Instead, one would say
       <quote><filename>foo.c</filename> as it appears in revision
-      5</quote>. Also, be careful when making assumptions about the
+      5</quote>.  Also, be careful when making assumptions about the
       evolution of a file.  In CVS, revisions 5 and 6 of
       <filename>foo.c</filename> are always different.  In Subversion,
       it's most likely that <filename>foo.c</filename> did
@@ -219,52 +219,55 @@
       only prints information about files that are updated,
       <emphasis>not</emphasis> local modifications.</para>
 
-    <para><command>svn status</command> prints all files that have
-      local modifications.  By default, the repository is not
-      contacted.  While this subcommand accepts a fair number of
-      options, the following are the most commonly used ones:</para>
+    <sect2 id="svn.forcvs.status-vs-update.status">
+      <title>Status</title>
 
-    <variablelist>
-      <varlistentry>
-        <term><option>-u</option></term>
-        <listitem>
-          <para>Contact the repository to determine, and then display,
-            out-of-dateness information.</para>
-        </listitem>
-      </varlistentry>
+      <para><command>svn status</command> prints all files that have
+        local modifications.  By default, the repository is not
+        contacted.  While this subcommand accepts a fair number of
+        options, the following are the most commonly used ones:</para>
+
+      <variablelist>
+        <varlistentry>
+          <term><option>-u</option></term>
+          <listitem>
+            <para>Contact the repository to determine, and then display,
+              out-of-dateness information.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><option>-v</option></term>
+          <listitem>
+            <para>Show <emphasis>all</emphasis> entries under
+              version control.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><option>-N</option></term>
+          <listitem>
+            <para>Run non-recursively (do not descend into
+              subdirectories).</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+
+      <para>The <command>status</command> command has two output
+        formats.  In the default <quote>short</quote> format, local
+        modifications look like this:</para>
 
-      <varlistentry>
-        <term><option>-v</option></term>
-        <listitem>
-          <para>Show <emphasis>all</emphasis> entries under
-            version control.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-N</option></term>
-        <listitem>
-          <para>Run non-recursively (do not descend into
-            subdirectories).</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-
-    <para>The <command>status</command> command has two output
-      formats.  In the default <quote>short</quote> format, local
-      modifications look like this:</para>
-
-    <screen>
+      <screen>
 $ svn status
 M      foo.c
 M      bar/baz.c
 </screen>
 
-    <para>If you specify the <option>--show-updates</option>
-      (<option>-u</option>) switch, a longer output format is
-      used:</para>
+      <para>If you specify the <option>--show-updates</option>
+        (<option>-u</option>) switch, a longer output format is
+        used:</para>
 
-    <screen>
+      <screen>
 $ svn status -u
 M            1047   foo.c
        *     1045   faces.html
@@ -273,52 +276,61 @@
 Status against revision:   1066
 </screen>
 
-    <para>In this case, two new columns appear.  The second column
-      contains an asterisk if the file or directory is out-of-date.
-      The third column shows the working-copy's revision number of the
-      item.  In the example above, the asterisk indicates that
-      <filename>faces.html</filename> would be patched if we updated,
-      and that <filename>bloo.png</filename> is a newly added file in
-      the repository.  (The absence of any revision number next to
-      <filename>bloo.png</filename> means that it doesn't yet exist in
-      the working copy.)</para>
-
-    <!-- ###TODO describe -v here as well as -uv. -u and -v use
-         different <quote>long</quote> formats and need to be
-         documented separately. Moreover, as you can combine -u and
-         -v, it needs to be explained what each of them does. As -u is
-         much more important than -v, and the example following that
-         paragraph *is* about -u, not -v, my patch concentrated on
-         that. -->
+      <para>In this case, two new columns appear.  The second column
+        contains an asterisk if the file or directory is out-of-date.
+        The third column shows the working-copy's revision number of the
+        item.  In the example above, the asterisk indicates that
+        <filename>faces.html</filename> would be patched if we updated,
+        and that <filename>bloo.png</filename> is a newly added file in
+        the repository.  (The absence of any revision number next to
+        <filename>bloo.png</filename> means that it doesn't yet exist in
+        the working copy.)</para>
+
+      <!-- ###TODO describe -v here as well as -uv. -u and -v use
+           different <quote>long</quote> formats and need to be
+           documented separately.  Moreover, as you can combine -u and
+           -v, it needs to be explained what each of them does.  As -u is
+           much more important than -v, and the example following that
+           paragraph *is* about -u, not -v, my patch concentrated on
+           that. -->
 
-    <para>Lastly, here's a quick summary of the most common status codes that
-      you may see:</para>
+      <para>Lastly, here's a quick summary of the most common status codes that
+        you may see:</para>
 
-    <screen>
+      <screen>
 A    Resource is scheduled for Addition
 D    Resource is scheduled for Deletion
-M    Resource has local modifications
-C    Resource has conflicts (changes have not been completely merged
+M    Resource has local Modifications
+C    Resource has Conflicts (changes have not been completely merged
        between the repository and working copy version)
-X    Resource is external to this working copy (comes from another
-       repository.  See <xref linkend="svn.advanced.props.special.externals" />)
+X    Resource is eXternal to this working copy (may come from another
+       repository).  See <xref linkend="svn.advanced.props.special.externals" />
 ?    Resource is not under version control
 !    Resource is missing or incomplete (removed by another tool than
        Subversion)
 </screen>
 
-    <!-- ###TODO:  This paragraph should be moved elsewhere.  We are
-                   talking about status codes here, and not update.
-                   Although CVS uses update as a form of status... -->
-    <para>Subversion has combined the CVS <literal>P</literal> and
-      <literal>U</literal> codes into just <literal>U</literal>.  When
-      a merge or conflict occurs, Subversion simply prints
-      <literal>G</literal> or <literal>C</literal>, rather than a
-      whole sentence about it.</para>
+      <para>For a more detailed discussion of <command>svn
+        status</command>, see <xref linkend="svn.tour.cycle.examine.status" />.</para>
+
+    </sect2>
+
+    <sect2 id="svn.forcvs.status-vs-update.update">
+      <title>Update</title>
+
+      <para><command>svn update</command> updates your working copy,
+        and only prints information about files that it updates.</para>
+
+      <para>Subversion has combined the CVS <literal>P</literal> and
+        <literal>U</literal> codes into just <literal>U</literal>.  When
+        a merge or conflict occurs, Subversion simply prints
+        <literal>G</literal> or <literal>C</literal>, rather than a
+        whole sentence about it.</para>
 
-    <para>For a more detailed discussion of <command>svn
-      status</command>, see <xref linkend="svn.tour.cycle.examine.status" />.</para>
+      <para>For a more detailed discussion of <command>svn
+        update</command>, see <xref linkend="svn.tour.cycle.update" />.</para>
 
+    </sect2>
 
   </sect1>
 
@@ -522,10 +534,7 @@
     <para>One such tool is cvs2svn
       (<ulink url="http://cvs2svn.tigris.org/"/>), a Python script
       originally created by members of Subversion's own development
-      community.  Others include Chia-liang Kao's Subversion converter
-      plugin to the VCP tool
-      (<ulink url="http://svn.clkao.org/revml/branches/svn-perl/"/>)
-      and Lev Serebryakov's RefineCVS
+      community.  Others include Lev Serebryakov's RefineCVS
       (<ulink url="http://lev.serebryakov.spb.ru/refinecvs/"/>).
       These tools have various levels of completeness, and may make
       entirely different decisions about how to handle your CVS

Modified: trunk/src/ru/book/appb.xml
==============================================================================
--- trunk/src/ru/book/appb.xml	(original)
+++ trunk/src/ru/book/appb.xml	Sun May 14 06:20:48 2006
@@ -160,7 +160,7 @@
           <listitem>
             <para>Like CVS and other version-control systems,
               DeltaV assumes that each resource has a potentially
-              infinite number of states. A client begins by placing
+              infinite number of states.  A client begins by placing
               a resource under version control using the new
               <literal>VERSION-CONTROL</literal> method.</para>
           </listitem>
@@ -176,7 +176,7 @@
               private area, then indicate they want to change
               specific resources by <quote>checking them out</quote>
               into the workspace, editing them, and <quote>checking
-                them in</quote> again. In HTTP terms, the sequence of
+              them in</quote> again.  In HTTP terms, the sequence of
               methods would be <literal>CHECKOUT</literal>,
               <literal>PUT</literal>,
               <literal>CHECKIN</literal>.</para>
@@ -194,7 +194,7 @@
               <literal>MKACTIVITY</literal> method.  The client then
               performs a <literal>CHECKOUT</literal> on each
               resource it wishes to change and sends
-              <literal>PUT</literal> requests. Finally, the client
+              <literal>PUT</literal> requests.  Finally, the client
               performs a <literal>CHECKIN</literal> resource, or
               sends a <literal>MERGE</literal> request to check in
               all resources at once.</para>
@@ -207,7 +207,7 @@
             <para>DeltaV allows you define flexible collections of
               resources called <quote>configurations</quote>, which
               don't necessarily correspond to particular
-              directories. A configuration can be made to point to
+              directories.  A configuration can be made to point to
               specific versions of files, and then a
               <quote>baseline</quote> snapshot can be made, much
               like a tag.</para>
@@ -221,7 +221,7 @@
               <literal>REPORT</literal>, which allows the client and
               server to perform customized data exchanges.  While
               DeltaV defines a number of standardized history reports
-              that a client can request, the the server is also free
+              that a client can request, the server is also free
               to define custom reports.  The client sends a
               <literal>REPORT</literal> request with a
               properly-labeled XML body full of custom data; assuming
@@ -332,11 +332,11 @@
       <literal>MKACTIVITY</literal>, <literal>CHECKOUT</literal>,
       <literal>PUT</literal>, <literal>CHECKIN</literal>.  But if the
       DeltaV server supports autoversioning, then write-requests from
-      basic WebDAV clients are accepted.  The server behaves *as if*
-      the client had issued the proper series of versioning requests,
+      basic WebDAV clients are accepted.  The server behaves as if the
+      client had issued the proper series of versioning requests,
       performing a commit under the hood.  In other words, it allows a
       DeltaV server to interoperate with ordinary WebDAV
-      clients.</para>
+      clients that don't understand versioning.</para>
 
     <para>Because so many operating systems already have integrated
       WebDAV clients, the use case for this feature borders on
@@ -378,17 +378,53 @@
       many applications auto-save every few minutes, resulting in even
       more commits.</para>
 
-    <para>If you have a post-commit hook program that sends email, for
-      example, you may want to disable email generation either
-      altogether, or on certain sections of the repository; it depends
-      on whether you think the influx of emails will still prove to be
-      valuable notifications or not.  Also, a smart post-commit hook
-      program can distinguish between a transaction created via
-      autoversioning and one created through a normal <command>svn
-      commit</command>.  The trick is to look for a revision property
+    <para>If you have a post-commit hook program that sends email, you
+      may want to disable email generation either altogether, or on
+      certain sections of the repository; it depends on whether you
+      think the influx of emails will still prove to be valuable
+      notifications or not.  Also, a smart post-commit hook program
+      can distinguish between a transaction created via autoversioning
+      and one created through a normal <command>svn commit</command>.
+      The trick is to look for a revision property
       named <literal>svn:autoversioned</literal>.  If present, the
       commit was made by a generic WebDAV client.</para>
 
+    <para>Another feature that may be a useful complement
+      for <literal>SVNAutoversioning</literal> comes from
+      Apache's <literal>mod_mime</literal> module.  If a generic
+      WebDAV client adds a new file to the repository, there's no
+      opportunity for the user to set the
+      the <literal>svn:mime-type</literal> property.  This might cause
+      the file to appear as <quote>generic</quote> icon when viewed
+      within a WebDAV shared folder, not having an association with
+      any application.  One remedy is to have a sysadmin (or other
+      Subversion-knowledgable person) check out a working copy and
+      manually set the <literal>svn:mime-type</literal> property on
+      necessary files. But there's potentially no end to such cleanup
+      tasks.  Instead, you can use
+      the <literal>ModMimeUsePathInfo</literal> directive in
+      your Subversion <literal><Location></literal>
+      block:</para>
+ 
+    <screen>
+<Location /repos>
+  DAV svn
+  SVNPath /path/to/repository
+  SVNAutoversioning on
+
+  ModMimeUsePathInfo on
+
+</Location>
+</screen>
+
+    <para>This directive allows <literal>mod_mime</literal> to attempt
+      automatic deduction of the mime-type on new files that enter the
+      repository via autoversioning.  The module looks at the file's
+      named extension and possibly the contents as well; if the file
+      matches some common patterns, then the the
+      file's <literal>svn;mime-type</literal> property will be set
+      automatically.</para>
+
   </sect1>
 
   <!-- ================================================================= -->
@@ -473,7 +509,7 @@
               URLs</entry>
           </row>
           <row>
-            <entry>Microsoft Webfolders</entry>
+            <entry>Microsoft Web Folders</entry>
             <entry>File-explorer WebDAV extensions</entry>
             <entry>GUI file explorer program able to perform tree
               operations on a WebDAV share</entry>
@@ -524,7 +560,7 @@
           the Mac OS X, they do not appear to support WebDAV directly
           on that platform.  In fact, on Mac OS X, the
           <guimenu>File->Open</guimenu> dialog box doesn't allow
-          one to type a path or URL at all.  It's likely that the the
+          one to type a path or URL at all.  It's likely that the
           WebDAV features were deliberately left out of Macintosh
           versions of these programs, since OS X already provides such
           excellent low-level filesystem support for WebDAV.</para>
@@ -601,23 +637,23 @@
         explorer interface.</para>
 
       <sect3 id="svn.webdav.clients.file-explorer-extensions.windows">
-        <title>Microsoft Webfolders</title> 
+        <title>Microsoft Web Folders</title> 
   
         <para>Microsoft was one of the original backers of the WebDAV
           specification, and first started shipping a client in Windows
-          98, known as <quote>Webfolders</quote>.  This client was also
+          98, known as <quote>Web Folders</quote>.  This client was also
           shipped in Windows NT4 and 2000.</para>
   
-        <para>The original Webfolders client was an extension to
+        <para>The original Web Folders client was an extension to
           Explorer, the main GUI program used to browse filesystems.  It
           works well enough.  In Windows 98, the feature might need to
-          be explicitly installed if Webfolders aren't already visible
+          be explicitly installed if Web Folders aren't already visible
           inside <quote>My Computer</quote>.  In Windows 2000, simply
           add a new <quote>network place</quote>, enter the URL, and the
           WebDAV share will pop up for browsing.</para>
   
         <para>With the release of Windows XP, Microsoft started shipping
-          a new implementation of Webfolders, known as the <quote>WebDAV
+          a new implementation of Web Folders, known as the <quote>WebDAV
           mini-redirector</quote>.  The new implementation is a
           filesystem-level client, allowing WebDAV shares to be mounted
           as drive letters.  Unfortunately, this implementation is
@@ -630,11 +666,11 @@
           problems are severe and documented in numerous places around
           the web, to the frustration of many users.  Even Greg Stein,
           the original author of Apache's WebDAV module, recommends
-          against trying to use XP Webfolders against an Apache
+          against trying to use XP Web Folders against an Apache
           server.</para>
   
         <para>It turns out that the original
-          <quote>Explorer-only</quote> Webfolders implementation isn't
+          <quote>Explorer-only</quote> Web Folders implementation isn't
           dead in XP, it's just buried.  It's still possible to find it
           by using this technique:</para>
   
@@ -667,11 +703,20 @@
           patchlevels of Windows XP.  In our tests, only the previous
           algorithm seems to work consistently on every system.  The
           general consensus of the WebDAV community is that you should
-          avoid the new Webfolders implementation and use the old one
+          avoid the new Web Folders implementation and use the old one
           instead, and that if you need real a real filesystem-level
           client for Windows XP, then use a third-party program like
           WebDrive or NetDrive.</para>
 
+        <para>A final tip: if you're attempting to use XP Web Folders,
+          make sure you have the absolute latest version from
+          Microsoft.  For example, Microsoft released a bug-fixed
+          version in January 2005, available at
+          <ulink url="http://support.microsoft.com/?kbid=892211"/>.
+          In particular, this release is known to fix a bug whereby
+          browsing a DAV share shows an unexpected infinite
+          recursion.</para>
+
       </sect3>
 
       <sect3 id="svn.webdav.clients.file-explorer-extensions.linux-de">
@@ -754,7 +799,7 @@
           files first appeared in Subversion 1.2.</para>
   
         <para>One more word of warning: OS X's WebDAV client can
-          sometimes be overly sensitive to HTTP redirects. If OS X is
+          sometimes be overly sensitive to HTTP redirects.  If OS X is
           unable to mount the repository at all, you may need to enable
           the BrowserMatch directive in the Apache server's
           <filename>httpd.conf</filename>:</para>
@@ -770,7 +815,7 @@
   
         <para>Linux davfs2 is a filesystem module for the Linux kernel,
           whose development is located at <ulink
-          url="http://dav.sourceforge.net/"/>. Once installed, a WebDAV
+          url="http://dav.sourceforge.net/"/>.  Once installed, a WebDAV
           network share can be mounted with the usual Linux mount
           command:</para>
   

Modified: trunk/src/ru/book/book.xml
==============================================================================
--- trunk/src/ru/book/book.xml	(original)
+++ trunk/src/ru/book/book.xml	Sun May 14 06:20:48 2006
@@ -32,9 +32,9 @@
   <!-- Using revnumber would be more appropriate, but our stylesheets -->
   <!-- don't seem to render it. -->
   <!-- @ENGLISH {{{
-  <subtitle>For Subversion 1.2</subtitle>
+  <subtitle>For Subversion 1.3</subtitle>
   @ENGLISH }}} -->
-  <subtitle>Для Subversion 1.2</subtitle>
+  <subtitle>Для Subversion 1.3</subtitle>
   <subtitle>(&svn.version;)</subtitle>
 
   <bookinfo>
@@ -73,6 +73,7 @@
       <year>2003</year>
       <year>2004</year>
       <year>2005</year>
+      <year>2006</year>
       <holder>Ben Collins-Sussman</holder>
       <holder>Brian W. Fitzpatrick</holder>
       <holder>C. Michael Pilato</holder>
@@ -80,7 +81,7 @@
 
     <!-- @ENGLISH {{{
     <legalnotice><para>This work is licensed under the Creative
-      Commons Attribution License. To view a copy of this license,
+      Commons Attribution License.  To view a copy of this license,
       visit <ulink url="http://creativecommons.org/licenses/by/2.0/"/>
       or send a letter to Creative Commons, 559 Nathan Abbott Way,
       Stanford, California 94305, USA.</para></legalnotice>

Modified: trunk/src/ru/book/ch00.xml
==============================================================================
--- trunk/src/ru/book/ch00.xml	(original)
+++ trunk/src/ru/book/ch00.xml	Sun May 14 06:20:48 2006
@@ -72,7 +72,7 @@
     мощное, удобное и гибкое средство.</para>
 
     <!-- @ENGLISH {{{
-    <para>This book is written to document the 1.2 series of the
+    <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
@@ -82,7 +82,7 @@
     </para>
     @ENGLISH }}} -->
     <para>Эта книга описывает систему управления версиями Subversion
-      поколения 1.2. Мы стремились охватить материал как можно шире.
+      поколения 1.3. Мы стремились охватить материал как можно шире.
       В то же время следует иметь в виду, что разработкой Subversion
       занимается активное энергичное сообщество, так что уже сейчас идёт
       работа над рядом особенностей и улучшений, которые будут внесены в
@@ -451,7 +451,7 @@
 
     <!-- @ENGLISH {{{
     <para>Note that the source code examples are just
-      that—examples. While they will compile with the proper
+      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>
@@ -907,7 +907,7 @@
       <para>Huge thanks to my wife Marie for being incredibly
         understanding, supportive, and most of all, patient.  Thank
         you to my brother Eric who first introduced me to UNIX
-        programming way back when. Thanks to my Mom and Grandmother
+        programming way back when.  Thanks to my Mom and Grandmother
         for all their support, not to mention enduring a Christmas
         holiday where I came home and promptly buried my head in my
         laptop to work on the book.</para>

Modified: trunk/src/ru/book/ch01.xml
==============================================================================
--- trunk/src/ru/book/ch01.xml	(original)
+++ trunk/src/ru/book/ch01.xml	Sun May 14 06:20:48 2006
@@ -833,10 +833,10 @@
 
     <!-- @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're one of those folks who prefers to learn 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>

Modified: trunk/src/ru/book/ch02.xml
==============================================================================
--- trunk/src/ru/book/ch02.xml	(original)
+++ trunk/src/ru/book/ch02.xml	Sun May 14 06:20:48 2006
@@ -168,19 +168,20 @@
 
       <!-- @ENGLISH {{{
       <para>Consider the scenario shown in <xref
-        linkend="svn.basic.vsn-models.problem-sharing.dia-1"/>.  Suppose we have two co-workers,
-        Harry and Sally.  They each decide to edit the same repository
-        file at the same time.  If Harry saves his changes to the
-        repository first, then it's possible that (a few moments
-        later) Sally could accidentally overwrite them with her own
-        new version of the file.  While Harry's version of the file
-        won't be lost forever (because the system remembers every
-        change), any changes Harry made <emphasis>won't</emphasis> be
-        present in Sally's newer version of the file, because she
-        never saw Harry's changes to begin with.  Harry's work is
-        still effectively lost—or at least missing from the
-        latest version of the file—and probably by accident.
-        This is definitely a situation we want to avoid!</para>
+        linkend="svn.basic.vsn-models.problem-sharing.dia-1"/>.
+        Suppose we have two co-workers, Harry and Sally.  They each
+        decide to edit the same repository file at the same time.  If
+        Harry saves his changes to the repository first, then it's
+        possible that (a few moments later) Sally could accidentally
+        overwrite them with her own new version of the file.  While
+        Harry's version of the file won't be lost forever (because the
+        system remembers every change), any changes Harry made
+        <emphasis>won't</emphasis> be present in Sally's newer version
+        of the file, because she never saw Harry's changes to begin
+        with.  Harry's work is still effectively lost—or at
+        least missing from the latest version of the file—and
+        probably by accident.  This is definitely a situation we want
+        to avoid!</para>
       @ENGLISH }}} -->
       <para>Рассматриваемую ситуацию иллюстрирует <xref
         linkend="svn.basic.vsn-models.problem-sharing.dia-1"/>.
@@ -215,35 +216,34 @@
 
       <!-- @ENGLISH {{{
       <para>Many version control systems use a
-        <firstterm>lock-modify-unlock</firstterm> model to address
-        this problem.  In such a system, the repository allows only
-        one person to change a file at a time.  First Harry must
-        <quote>lock</quote> the file before he can begin making
-        changes to it.  Locking a file is a lot like borrowing a book
-        from the library; if Harry has locked a file, then Sally
-        cannot make any changes to it.  If she tries to lock the file,
-        the repository will deny the request.  All she can do is read
-        the file, and wait for Harry to finish his changes and release
-        his lock.  After Harry unlocks the file, his turn is over, and
-        now Sally can take her turn by locking and editing.  <xref
-        linkend="svn.basic.vsn-models.lock-unlock.dia-1"/> demonstrates this simple
-        solution.</para>
+        <firstterm>lock-modify-unlock</firstterm> model to address the
+        problem of many authors clobbering each other's work.  In this
+        model, the repository allows only one person to change a file
+        at a time.  This exclusivity policy is managed using locks.
+        Harry must <quote>lock</quote> a file before he can begin
+        making changes to it.  If Harry has locked a file, then Sally
+        cannot also lock it, and therefore cannot make any changes to
+        that file.  All she can do is read the file, and wait for
+        Harry to finish his changes and release his lock.  After Harry
+        unlocks the file, Sally can take her turn by locking and
+        editing the file.  <xref
+        linkend="svn.basic.vsn-models.lock-unlock.dia-1"/>
+        demonstrates this simple solution.</para>
       @ENGLISH }}} -->
-      <para>Многие системы управления версиями применяют в отношении
-        этой проблемы модель
+      <para>Для того, что бы несколько авторов не мешало друг другу
+        многие системы управления версиями применяют модель
         <firstterm>блокирование-изменение-разблокирование</firstterm>.
-        В такой системе хранилище разрешает изменение файла только одному
-        человеку в каждый из моментов времени. До того как Гарри сможет
-        внести изменения он должен <quote>заблокировать</quote> файл.
-        Блокирование файла это как взятие книги в библиотеке; если
-        Гарри заблокировал файл то Салли ни как не сможет его изменить.
-        Хранилище отклонит запрос, если она попытается заблокировать файл.
-        Все что ей остается — это читать файл и ждать когда Гарри закончит
-        свои изменения и снимет блокировку. После того как Гарри разблокирует
-        файл, он возвращает его обратно и теперь Салли может получить его,
-        заблокировать и редактировать. <xref
+        Эта модель запрещает одновременное редактирование файла несколькими
+        пользователями. Эксклюзивность доступа гарантируется блокировками.
+        Перед началом редактирования Гарри должен <quote>заблокировать</quote>
+        файл. Если файл заблокировал Гарри, Салли уже не сможет
+        его заблокировать и не сможет внести в него изменения.
+        Ей остается только читать файл и ждать пока Гарри закончит свои
+        изменения и снимет свою блокировку. После того как Гарри разблокирует
+        файл, файл сможет получить Салли, заблокировать его и начать
+        редактирование. <xref
         linkend="svn.basic.vsn-models.lock-unlock.dia-1"/>
-        демонстрирует эту простую модель.</para>
+        демонстрирует это простое решение.</para>
 
       <figure id="svn.basic.vsn-models.lock-unlock.dia-1">
         <!-- @ENGLISH {{{
@@ -319,7 +319,7 @@
             Sally simultaneously locks and edits file B.  But suppose
             that A and B depend on one another, and the changes made
             to each are semantically incompatible.  Suddenly A and B
-            don't work together anymore. The locking system was
+            don't work together anymore.  The locking system was
             powerless to prevent the problem—yet it somehow
             provided a false sense of security.  It's easy for Harry and
             Sally to imagine that by locking files, each is beginning a

Modified: trunk/src/ru/book/ch03.xml
==============================================================================
--- trunk/src/ru/book/ch03.xml	(original)
+++ trunk/src/ru/book/ch03.xml	Sun May 14 06:20:48 2006
@@ -15,7 +15,7 @@
       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
+      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 }}} -->
@@ -221,7 +221,7 @@
           служебной папке. Эта копия является немодифицированной
           (без раскрытия ключевых слов, без преобразования концовок строк,
           без чего-либо другого) копией файла какой он есть в последней
-          правке (названой <quote>BASE</quote>) до которой вы обновили
+          правке (называемой <quote>BASE</quote>) до которой вы обновили
           его в вашей рабочей копии. Мы обращаемся к этому файлу, как
           к <firstterm>первоисточнику</firstterm> или
           <firstterm>базовой</firstterm> версии вашего файла; он всегда
@@ -235,9 +235,11 @@
           <term>HEAD</term>
           <listitem>
             <!-- @ENGLISH {{{
-            <para>The latest revision in the repository.</para>
+            <para>The latest (or <quote>youngest</quote>) revision in
+              the repository.</para>
             @ENGLISH }}} -->
-            <para>Последняя правка хранилища</para>
+            <para>Последняя (или <quote>самая новая</quote>) правка
+              хранилища</para>
           </listitem>
         </varlistentry>
 
@@ -245,11 +247,14 @@
           <term>BASE</term>
           <listitem>
             <!-- @ENGLISH {{{
-            <para>The <quote>pristine</quote> revision of an item in a
-              working copy.</para>
-            @ENGLISH }}} -->
-            <para><quote>Исходная</quote> правка элемента в рабочей
-              копии.</para>
+            <para>The revision number of an item in a working copy.
+              If the item has been locally modified, the <quote>BASE
+              version</quote> refers to the way the item appears
+              without those local modifications.</para>
+            @ENGLISH }}} -->
+            <para>Номер правки элемента рабочей копии. Если элемент
+              редактировался, то <quote>BASE версия</quote> соответствует тому,
+              как элемент выглядел до редактирования.</para>
           </listitem>
         </varlistentry>
 
@@ -257,11 +262,11 @@
           <term>COMMITTED</term>
           <listitem>
             <!-- @ENGLISH {{{
-            <para>The last revision in which an item changed before (or
-              at) <literal>BASE</literal>.</para>
+            <para>The most recent revision prior to, or equal to,
+              <literal>BASE</literal>, in which an item changed.</para>
             @ENGLISH }}} -->
-            <para>Последняя правка, в которой элемент изменялся в диапазоне до
-              (или включая) <literal>BASE</literal>.</para>
+            <para>Правка, в которой элемент последний раз редактировался
+              (предшествующая либо равная <literal>BASE</literal>).</para>
           </listitem>
         </varlistentry>
 
@@ -269,13 +274,13 @@
           <term>PREV</term>
           <listitem>
             <!-- @ENGLISH {{{
-            <para>The revision just <emphasis>before</emphasis> the last
-              revision in which an item changed.  (Technically,
-              <literal>COMMITTED</literal> - 1.)</para>
+            <para>The revision immediately <emphasis>before</emphasis>
+              the last revision in which an item changed.
+              (Technically, <literal>COMMITTED</literal> - 1.)</para>
             @ENGLISH }}} -->
             <para>Правка, <emphasis>предшествующая</emphasis> последней
-              правке, в которой элемент был изменен. (Технически, <literal>
-              COMMITTED</literal> - 1.)</para>
+              правке, в которой элемент был изменен. (Технически,
+              <literal>COMMITTED</literal> - 1.)</para>
           </listitem>
         </varlistentry>
 
@@ -551,7 +556,7 @@
       <para>Subversion tries hard not to limit the type of data you
         can place under version control.  The contents of files and
         property values are stored and transmitted as binary data, and
-        the <xref linkend="svn.advanced.props.special.mime-type"/>
+        <xref linkend="svn.advanced.props.special.mime-type"/>
         tells you how to give Subversion a hint that
         <quote>textual</quote> operations don't make sense for a
         particular file.  There are a few places, however, where
@@ -568,27 +573,25 @@
         информацию.</para>
 
       <!-- @ENGLISH {{{
-      <para>Subversion handles text internally as UTF-8 encoded
-        Unicode.  As a result, certain items which are inherently
-        <quote>textual</quote>, such as property names, path names,
-        and log messages, can only contain legal UTF-8 characters.  It
-        also provides a minimum requirement for use of the
-        <literal>svn:mime-type</literal> property—if a file's
-        contents aren't compatible with UTF-8, you should mark it as a
-        binary file.  Otherwise, Subversion will attempt to merge
-        differences using UTF-8, which is likely to leave garbage in
-        the file.</para>
-      @ENGLISH }}} -->
-      <para>Внутри Subversion текст представляется в кодировке
-        UTF-8. Как следствие, некоторые элементы, имеющие
-        <quote>текстовую</quote> сущность, например имена свойств, пути
-        и лог-сообщения, могут содержать только корректные UTF-8
-        символы. Это частично объясняет необходимость свойства
-        <literal>svn:mime-type</literal> — файл, не совместимый с 
-        UTF-8, необходимо пометить как бинарный. В противном случае
-        Subversion будет пытаться, используя UTF-8, выполнить
-        слияние различий, что скорее всего закончиться
-        замусориванием файла.</para>
+      <para>Subversion internally handles certain bits of
+        data—for example, property names, path names, and log
+        messages—as UTF-8 encoded Unicode.  This is not to say
+        that all your interactions with Subversion must involve UTF-8,
+        though.  As a general rule, Subversion clients will gracefully
+        and transparently handle conversions between UTF-8 and the
+        encoding system in use on your computer, if such a conversion
+        can meaningfully be done (which is the case for most common
+        encodings in use today).</para>
+      @ENGLISH }}} -->
+      <para>Внутри Subversion определенная информация — например,
+        имена свойств, пути и лог-сообщения — обрабатывается как текст
+        в кодировке UTF-8. Однако это вовсе не означает обязательного
+        использования UTF-8 при работе с Subversion. В случае если
+        преобразования между UTF-8 и локальной кодировкой на компьютере
+        могут быть выполнены (что справедливо для большинства испульзуемых
+        сегодня кодировок), как правило, Subversion-клиент выполняет эти
+        преобразования легко и прозрачно для пользователя.
+      </para>
 
       <!-- @ENGLISH {{{
       <para>In addition, path names are used as XML attribute values
@@ -793,10 +796,11 @@
     <title>Простейший рабочий цикл</title>
 
     <!-- @ENGLISH {{{
-    <para>Subversion has numerous features, options, bells and whistles, but on
-      a day-to-day basis, odds are that you will only use a few of them. In
-      this section we'll run through the most common things that you might
-      find yourself doing with Subversion in the course of a day's work.</para>
+    <para>Subversion has numerous features, options, bells and
+      whistles, but on a day-to-day basis, odds are that you will only
+      use a few of them.  In this section we'll run through the most
+      common things that you might find yourself doing with Subversion
+      in the course of a day's work.</para>
     @ENGLISH }}} -->
     <para>Subversion имеет множество возможностей, опций и украшательств, но
       в ежедневной работе используются только некоторые из них. В этом
@@ -1060,7 +1064,7 @@
 
       <!-- @ENGLISH {{{
       <para>Now you can get to work and make changes in your
-        working copy. It's usually most convenient to decide on a
+        working copy.  It's usually most convenient to decide on a
         particular change (or set of changes) to make, such as writing
         a new feature, fixing a bug, etc.  The Subversion commands
         that you will use here are <command>svn add</command>,
@@ -1304,11 +1308,11 @@
         <!-- @ENGLISH {{{
         <para>Earlier in this chapter, we said that you have to commit
           any changes that you make in order for the repository to
-          reflect these changes. That's not entirely true—there
+          reflect these changes.  That's not entirely true—there
           <emphasis>are</emphasis> some use cases that immediately
           commit tree changes to the repository.  This only happens
           when a subcommand is operating directly on a URL, rather
-          than on a working-copy path. In particular, specific uses
+          than on a working-copy path.  In particular, specific uses
           of <command>svn mkdir</command>, <command>svn
           copy</command>, <command>svn move</command>, and
           <command>svn delete</command> can work with URLs.</para>
@@ -1357,7 +1361,7 @@
         them to the repository, but before you do so, it's usually a
         good idea to take a look at exactly what you've changed.  By
         examining your changes before you commit, you can make a
-        more accurate log message. You may also discover that
+        more accurate log message.  You may also discover that
         you've inadvertently changed a file, and this gives you a
         chance to revert those changes before committing.
         Additionally, this is a good opportunity to review and
@@ -1835,12 +1839,16 @@
 
         <!-- @ENGLISH {{{
         <para>The sixth column shows information about locks, which is
-          further explained in <xref
-          linkend="svn.advanced.locking"/>.</para>
-        @ENGLISH }}} -->
-        <para>Шестая колонка показывает информацию о блокировке,
-          которая подробно объяснена в <xref
-          linkend="svn.advanced.locking"/>.</para>
+          further explained in <xref linkend="svn.advanced.locking"/>.
+          (These are not the same locks as the ones indicated by an
+          <computeroutput>L</computeroutput> in the third column;
+          see <xref linkend="svn.advanced.locking.meanings"/>.)</para>
+        @ENGLISH }}} -->
+        <para>Шестая колонка показывает информацию о блокировках,
+          которые подробно рассмотрены в <xref
+          linkend="svn.advanced.locking"/>. (Это не те блокировки, которые
+        отмечаются <computeroutput>L</computeroutput> в третьей колонке;
+        см. <xref linkend="svn.advanced.locking.meanings"/>)</para>
 
         <!-- @ENGLISH {{{
         <para>If you pass a specific path to <command>svn
@@ -3119,13 +3127,13 @@
       <para>
         <command>svn log</command> also takes a <option>-ﳢ-quiet</option>
         (<option>-q</option>) switch, which suppresses the body of the
-        log message. When combined with <option>-ﳢ-verbose</option>, it
+        log message.  When combined with <option>-ﳢ-verbose</option>, it
         gives just the names of the changed files.</para>
       @ENGLISH }}} -->
       <para>Кроме того<command>svn log</command> имеет параметр 
         <option>--quiet</option> (<option>-q</option>), сокращающий лог
-	сообщение. При его объединении с <option>--verbose</option>
-	выдаются только имена измененных файлов.</para>
+        сообщение. При его объединении с <option>--verbose</option>
+        выдаются только имена измененных файлов.</para>
 
       <sidebar>
         <!-- @ENGLISH {{{
@@ -3534,11 +3542,14 @@
       <para>When Subversion modifies your working copy (or any
         information within <filename>.svn</filename>), it tries to do
         so as safely as possible.  Before changing the working copy,
-        Subversion writes its intentions to a log file. Next it executes
-        the commands in the log file to apply the requested change.
-        Finally, Subversion removes the log file. Architecturally, this
-        is similar to a journaled filesystem.  If a Subversion operation is
-        interrupted (if the process is killed, or if the machine
+        Subversion writes its intentions to a log file.  Next it
+        executes the commands in the log file to apply the requested
+        change, holding a lock on the relevant part of the working
+        copy while it works — to prevent other Subversion clients
+        from accessing the working copy in mid-change.  Finally,
+        Subversion removes the log file.  Architecturally, this is
+        similar to a journaled filesystem.  If a Subversion operation
+        is interrupted (if the process is killed, or if the machine
         crashes, for example), the log files remain on disk.  By
         re-executing the log files, Subversion can complete the
         previously started operation, and your working copy can get
@@ -3546,18 +3557,22 @@
 
       <para>And this is exactly what <command>svn cleanup</command>
         does: it searches your working copy and runs any leftover
-        logs, removing locks in the process.  If Subversion ever tells
-        you that some part of your working copy is
-        <quote>locked</quote>, then this is the command that you
+        logs, removing working copy locks in the process.
+        If Subversion ever tells you that some part of your working copy
+        is <quote>locked</quote>, then this is the command that you
         should run.  Also, <command>svn status</command> will display
         an <literal>L</literal> next to locked items:</para>
       @ENGLISH }}} -->
       <para>Когда Subversion изменяет рабочую копию (или любую информацию
         в области <filename>.svn</filename>) она пытается делать это
-        безопасно настолько, насколько это возможно. Перед изменением рабочей
+        как можно более безопасно. Перед изменением рабочей
         копии Subversion записывает свои намерения в лог файл. Затем
         для выполнения запрошенных изменений она выполняет  команды из лог
-        файла. И в конце Subversion удаляет лог файл. Архитектурно, это
+        файла, устанавливая блокировку той части рабочей копии, с которой
+        работает — делается это для невозможности работы других
+        Subversion-клиентов с рабочей копией, которая находится в
+        промежуточном состоянии. После выполнения запрошеных действий
+        Subversion удаляет лог файл. Архитектурно, это
         напоминает журналируемую файловую систему. Если работа Subversion
         была прервана (в результате того, что процесс был убит или, например,
         из-за машинного сбоя) лог файлы остаются на диске. Перезапустив
@@ -3565,13 +3580,13 @@
         начатые операции и рабочая копия снова вернется в согласованное
         состояние.</para>
 
-      <para>Что собственно делает <command>svn cleanup</command>:
+      <para>Что собственно и делает <command>svn cleanup</command>:
         в рабочей копии выполняет поиск и выполнение незавершенных лог файлов,
-        удаляя походу блокировки. Если Subversion когда-нибудь говорила вам о
-        том, что часть рабочей копии <quote>заблокирована</quote> тогда вам
-        нужно запустить эту команду. Кроме того <command>svn status</command>
-        покажет для заблокированных элементов букву
-        <literal>L</literal>:</para>
+        удаляя по ходу выполнения блокировки в рабочей копии. Если Subversion
+        когда-нибудь говорила вам о том, что часть рабочей копии
+        <quote>заблокирована</quote> тогда вам нужно запустить эту команду.
+        Кроме того <command>svn status</command> покажет для заблокированных
+        элементов букву <literal>L</literal>:</para>
 
       <screen>
 $ svn status
@@ -3583,6 +3598,21 @@
 M      somedir/foo.c
 </screen>
 
+      <!-- @ENGLISH {{{
+      <para>Don't confuse these working copy locks with the ordinary
+        locks that Subversion users create when using
+        the <quote>lock-modify-unlock</quote> model of concurrent
+        version control; see
+        <xref linkend="svn.advanced.locking.meanings"/> for
+        clarification.</para>
+      @ENGLISH }}} -->
+      <para>Не путайте эти блокировки рабочей копии с обычными 
+        блокировками, устанавливаемыми пользоватлями Subversion,
+        использующими модель конкурентного управления версиями
+        <quote>lock-modify-unlock</quote>; за более подробным 
+        определением обратитесь к <xref
+        linkend="svn.advanced.locking.meanings"/></para>
+
     </sect2>
 
 
@@ -3653,7 +3683,7 @@
       <para>Now we've covered most of the Subversion client commands.
         Notable exceptions are those dealing with branching and
         merging (see <xref linkend="svn.branchmerge"/>) and properties (see
-        <xref linkend="svn.advanced.props"/>). However, you may want to
+        <xref linkend="svn.advanced.props"/>).  However, you may want to
         take a moment to skim through <xref linkend="svn.ref"/> to
         get an idea of all the many different commands that Subversion
         has—and how you can use them to make your work

Modified: trunk/src/ru/book/ch04.xml
==============================================================================
--- trunk/src/ru/book/ch04.xml	(original)
+++ trunk/src/ru/book/ch04.xml	Sun May 14 06:20:48 2006
@@ -1241,7 +1241,7 @@
         <firstterm>left side</firstterm> of the
         comparison),</para></listitem>
 
-        <listitem><para>An final repository tree (often called the
+        <listitem><para>A final repository tree (often called the
         <firstterm>right side</firstterm> of the
         comparison),</para></listitem>
 
@@ -2496,7 +2496,7 @@
       <!-- @ENGLISH {{{
       <para>The plus sign in the status output indicates that the item
         isn't merely scheduled for addition, but scheduled for
-        addition <quote>with history</quote>. Subversion remembers
+        addition <quote>with history</quote>.  Subversion remembers
         where it was copied from.  In the future, running <command>svn
         log</command> on this file will traverse back through the
         file's resurrection and through all the history it had prior
@@ -2839,7 +2839,7 @@
           hand-tracked to avoid the problem of repeated merges (as
           described in <xref linkend="svn.branchmerge.copychanges.bestprac.track"/>).  You'll
           need to write careful log messages detailing exactly which
-          revision ranges have been been merged already (as
+          revision ranges have been merged already (as
           demonstrated in <xref linkend="svn.branchmerge.commonuses.wholebr"/>).  It
           may sound intimidating, but it's actually pretty easy to
           do.</para>
@@ -3111,7 +3111,7 @@
       <para>When you run <command>svn update</command>, you're asking
         the repository to compare two trees.  The repository does so,
         and then sends a description of the differences back to the
-        client. The only difference between <command>svn
+        client.  The only difference between <command>svn
         switch</command> and <command>svn update</command> is that the
         <literal>update</literal> command always compares two identical
         paths.</para>
@@ -3362,7 +3362,7 @@
         data you need.</para>
 
       <para>Time to make a snapshot.  Copying one URL to another won't
-        work here. In this case, you want to make a snapshot of your
+        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),

Modified: trunk/src/ru/book/ch05.xml
==============================================================================
--- trunk/src/ru/book/ch05.xml	(original)
+++ trunk/src/ru/book/ch05.xml	Sun May 14 06:20:48 2006
@@ -469,10 +469,10 @@
       property, <literal>svn:date</literal>, set to the time at which
       the repository was created.</para>
 
-    <para>In Subversion 1.2, a repository is created with a FSFS
+    <para>In Subversion 1.2, a repository is created with an FSFS
       back-end by default (see <xref
-      linkend="svn.reposadmin.basics.backends"/>). The back-end can be
-      explicitly chosen with the <option>--fs-type</option>
+      linkend="svn.reposadmin.basics.backends"/>).  The back-end can
+      be explicitly chosen with the <option>--fs-type</option>
       argument:</para>
 
     <screen>
@@ -869,7 +869,7 @@
 
       <warning>
         <para>Do not attempt to modify the transaction using hook
-          scripts. A common example of this would be to automatically
+          scripts.  A common example of this would be to automatically
           set properties such as <literal>svn:eol-style</literal> or
           <literal>svn:mime-type</literal> during the commit.  While
           this might seem like a good idea, it causes problems.  The
@@ -907,7 +907,7 @@
       <para>A Berkeley DB environment is an encapsulation of one or
         more databases, log files, region files and configuration
         files.  The Berkeley DB environment has its own set of default
-        configuration values for things like the number of locks
+        configuration values for things like the number of database locks
         allowed to be taken out at any given time, or the maximum size
         of the journaling log files, etc.  Subversion's filesystem
         code additionally chooses default values for some of the
@@ -1577,7 +1577,7 @@
           and <filename>branches</filename> directories to live in the
           root of your repository, you might wish to edit your
           dump files, tweaking the <literal>Node-path</literal> and
-          <literal>Copyfrom-path</literal> headers to no longer have
+          <literal>Node-copyfrom-path</literal> headers to no longer have
           that first <filename>calc/</filename> path component.  Also,
           you'll want to remove the section of dump data that creates
           the <filename>calc</filename> directory.  It will look
@@ -1669,7 +1669,7 @@
           to path semantics.  Pay attention to whether paths in your
           dump file are specified with or without leading slashes.
           You'll want to look at the <literal>Node-path</literal> and
-          <literal>Copyfrom-path</literal> headers.</para>
+          <literal>Node-copyfrom-path</literal> headers.</para>
 
         <screen>
 …
@@ -1723,7 +1723,7 @@
           regular Berkeley DB environment directory, and can therefore
           be used in conjunction with any of the Berkeley database
           tools (you can see the documentation for these tools at
-          SleepyCat's website,
+          Sleepycat's website,
           <ulink url="http://www.sleepycat.com/"/>).</para>
 
         <para>For day-to-day Subversion use, these tools are
@@ -1762,7 +1762,7 @@
         However, there are times when some manual assistance from an
         administrator might be in order.  The
         <command>svnadmin</command> utility provides some helpful
-        functionality to assist you in performing such tasks as</para>
+        functionality to assist you in performing such tasks as:</para>
 
       <itemizedlist>
         <listitem>
@@ -1934,7 +1934,7 @@
 $
 </screen>
 
-      <para>An long-abandoned transaction usually represents some sort
+      <para>A long-abandoned transaction usually represents some sort
         of failed or interrupted commit.  A transaction's datestamp
         can provide interesting information—for example, how
         likely is it that an operation begun nine months ago is still
@@ -1966,7 +1966,7 @@
           data need to remain on the live site, which need to be
           backed up, and which can be safely removed.  This section is
           specific to Berkeley DB;  FSFS repositories have no extra
-          data that be cleaned up or reclaimed.</para>
+          data to be cleaned up or reclaimed.</para>
 
         <para>Until recently, the largest offender of disk space usage
           with respect to Subversion repositories was the log files to
@@ -2030,7 +2030,7 @@
           equal to the size of the original data, it only takes up
           enough space to say, <quote>I look just like this other
           piece of data over here, except for the following couple of
-          changes</quote>. Specifically, each time a new version of a
+          changes</quote>.  Specifically, each time a new version of a
           file is committed to the repository, Subversion encodes the
           previous version (actually, several previous versions) as a
           delta against the new version.  The result is that most of
@@ -2075,7 +2075,11 @@
         data, makes the change it wants to make, and then unlocks the
         data.  Other processes are forced to wait until that lock is
         removed before they are permitted to continue accessing that
-        section of the database.</para>
+        section of the database. (This has nothing to do with the
+        locks that you, as a user, can apply to versioned files within
+        the repository; see
+        <xref linkend="svn.advanced.locking.meanings"/> for more
+        information.)</para>
 
       <para>In the course of using your Subversion repository, fatal
         errors (such as running out of disk space or available memory)

Modified: trunk/src/ru/book/ch06.xml
==============================================================================
--- trunk/src/ru/book/ch06.xml	(original)
+++ trunk/src/ru/book/ch06.xml	Sun May 14 06:20:48 2006
@@ -203,14 +203,14 @@
             <!-- @ENGLISH {{{
             <entry>Web viewing</entry>
             <entry>limited built-in support, or via 3rd-party tools
-              such as ViewCVS</entry>
-            <entry>via 3rd-party tools such as ViewCVS</entry>
+              such as ViewVC</entry>
+            <entry>via 3rd-party tools such as ViewVC</entry>
             @ENGLISH }}} -->
             <entry>Просмотр через web</entry>
             <entry>встроенная ограниченная поддержка, или используя
-              программы сторонних разработчиков, такие, как ViewCVS</entry>
+              программы сторонних разработчиков, такие, как ViewVS</entry>
             <entry>используя программы сторонних разработчиков, такие,
-              как ViewCVS</entry>
+              как ViewVS</entry>
           </row>
 
           <row>
@@ -379,8 +379,9 @@
       <para>Happily, the Subversion client has a remedy for this: a
         built-in system for caching authentication credentials on
         disk.  By default, whenever the command-line client
-        successfully authenticates itself to a server, it saves the
-        credentials in the user's private runtime configuration
+        successfully responds to a server's authentication challenge,
+        it saves the credentials in the user's private runtime
+        configuration
         area—in <filename>~/.subversion/auth/</filename> on
         Unix-like systems or
         <filename>%APPDATA%/Subversion/auth/</filename> on Windows.
@@ -392,7 +393,7 @@
       <para>К счастью, клиент Subversion спасает пользователя от этого:
         он имеет встроенную систему кеширования идентификационной
         информации на диск. По умолчанию, каждый раз, когда клиент
-        командной строки успешно проходит процедуру установления личности
+        успешно проходит процедуру установления личности
         на сервере, он сохраняет идентификационную информацию в области
         конфигурации — в <filename>~/.subversion/auth/</filename>
         на UNIX-системах и в
@@ -405,14 +406,14 @@
 
       <!-- @ENGLISH {{{
       <para>When the client receives an authentication challenge, it
-        first looks for the appropriate credentials in the disk cache;
-        if not present, or if the cached credentials fail to
+        first looks for the appropriate credentials in the user's disk
+        cache; if not present, or if the cached credentials fail to
         authenticate, then the client simply prompts the user for the
         information.</para>
       @ENGLISH }}} -->
       <para>Когда клиент получает запрос об установлении личности,
         он в первую очередь ищет соответствующую идентификационную
-        информацию в кеше; и только в случаях, когда ее нет в кеше или
+        информацию в дисковом кеше пользователя; если ее нет в кеше или
         она не проходит процедуру опознания, клиент просит пользователя
         ввести необходимую информацию.</para>
 
@@ -450,21 +451,21 @@
             password on disk.  Because the encryption key is managed
             by Windows and is tied to the user's own login
             credentials, only the user can decrypt the cached
-            password.  (Note: if the the user's Windows account
-            password is changed, all of the cached passwords become
-            undecipherable.  The Subversion client will behave as if
-            they don't exist, prompting for passwords when
+            password.  (Note: if the user's Windows account password
+            is reset by an administrator, all of the cached passwords
+            become undecipherable.  The Subversion client will behave
+            as if they don't exist, prompting for passwords when
             required.)</para>
           @ENGLISH }}} -->
           <para>На операционных системах Windows 2000 и старше Subversion
             использует стандартные средства шифрования Windows при сохранении
             пароля на диск. Поскольку ключ шифрования управляется Windows
             и привязывается к учетной записи пользователя, то только владелец
-            учетной записи может расшифровать сохраненный пароль. (Внимание:
-            при смене пароля учетной записи пользователя все сохраненные на диск
-            пароли становятся нечитабельными. Клиент Subversion поступит так,
-            словно их не существует, и попросит ввести пароль, когда это
-            потребуется)</para>
+            учетной записи может расшифровать сохраненный пароль. (Обратите 
+            внимание: если администратор сменит пароль для учетной записи
+            пользователя все сохраненные на диск пароли станут 
+            недействительными. Клиент Subversion будет вести себя так, словно
+            их не существует, запрашивая пароль, когда он потребуется.)</para>
         </listitem>
 
         <listitem>
@@ -1256,7 +1257,7 @@
 
         <para>A final word of caution: giving a user access to the
           server via public-key in a shared account might still allow
-          other forms of SSH access, even if you've set the
+          other forms of SSH access, even if you've set
           the <literal>command</literal> value
           in <filename>authorized_keys</filename>.  For example, the
           user may still get shell access through SSH, or be able to
@@ -1290,7 +1291,7 @@
       module, <command>httpd</command> makes Subversion repositories
       available to clients via the WebDAV/DeltaV protocol, which is an
       extension to HTTP 1.1 (see <ulink url="http://www.webdav.org/"/>
-      for more information). This protocol takes the ubiquitous HTTP
+      for more information).  This protocol takes the ubiquitous HTTP
       protocol that is the core of the World Wide Web, and adds
       writing—specifically, versioned
       writing—capabilities.  The result is a standardized,
@@ -1655,7 +1656,7 @@
           yet complete, and will not do anything useful.  It's merely
           telling Apache that whenever authorization is required,
           Apache should harvest a username and password from the
-          Subversion client. What's missing here, however, are
+          Subversion client.  What's missing here, however, are
           directives that tell Apache <emphasis>which</emphasis> sorts
           of client requests require authorization.  Wherever
           authorization is required, Apache will demand
@@ -2387,9 +2388,13 @@
             list</command> and <command>svn cat</command> commands.
             To browse old revisions with your web browser, however,
             you can use third-party software.  A good example of this
-            is ViewCVS (<ulink url="http://viewvc.tigris.org/"/>).
-            ViewCVS was originally written to display CVS repositories
-            through the web, and the latest bleeding-edge versions (at
+            is ViewVC (<ulink url="http://viewvc.tigris.org/"/>).
+            ViewVC was originally written to display CVS repositories
+            through the web,
+            <footnote>
+              <para>Back then, it was called <quote>ViewCVS</quote>.</para>
+            </footnote>
+            and the latest bleeding-edge versions (at
             the time of writing) are able to understand Subversion
             repositories as well.</para>
         </sidebar>

Modified: trunk/src/ru/book/ch07.xml
==============================================================================
--- trunk/src/ru/book/ch07.xml	(original)
+++ trunk/src/ru/book/ch07.xml	Sun May 14 06:20:48 2006
@@ -2664,6 +2664,46 @@
       only—it's not yet possible to reserve access to a whole
       directory tree.</para>
 
+    <sidebar id="svn.advanced.locking.meanings">
+      <title>Three meanings of <quote>lock</quote></title>
+
+      <para>In this section, and almost everywhere in this book, the
+        words <quote>lock</quote> and <quote>locking</quote> describe
+        a mechanism for mutual exclusion between users to avoid
+        clashing commits. Unfortunately, there are two other sorts
+        of <quote>lock</quote> with which Subversion, and therefore
+        this book, sometimes needs to be concerned.</para>
+
+      <itemizedlist>
+
+        <listitem><para><firstterm>Working copy locks</firstterm>,
+          used internally by Subversion to prevent clashes between
+          multiple Subversion clients operating on the same working
+          copy. This is the sort of lock indicated by
+          an <computeroutput>L</computeroutput> in the third column
+          of <command>svn status</command> output, and removed by
+          the <command>svn cleanup</command> command, as described in
+          <xref linkend="svn.tour.other.cleanup"/>.</para>
+        </listitem>
+
+        <listitem><para><firstterm>Database locks</firstterm>, used
+          internally by the Berkeley DB backend to prevent clashes
+          between multiple programs trying to access the
+          database. This is the sort of lock whose unwanted
+          persistence after an error can cause a repository to
+          be <quote>wedged</quote>, as described in
+          <xref linkend="svn.reposadmin.maint.recovery"/>.</para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>You can generally forget about these other sorts of lock,
+        until something goes wrong that requires you to care about
+        them. In this book, <quote>lock</quote> means the first sort
+        unless the contrary is either clear from context or explicitly
+        stated.</para>
+    </sidebar>
+
     <!-- =============================================================== -->
     <sect2 id="svn.advanced.locking.creation">
       <title>Creating locks</title>

Modified: trunk/src/ru/book/ch08.xml
==============================================================================
--- trunk/src/ru/book/ch08.xml	(original)
+++ trunk/src/ru/book/ch08.xml	Sun May 14 06:20:48 2006
@@ -146,13 +146,13 @@
       this.</para>
 
     <para>The client itself also highlights modularity in the
-      Subversion design.  While Subversion currently comes with only a
-      command-line client program, there are already a few other
-      programs being developed by third parties to act as GUIs for
-      Subversion.  Again, these GUIs use the same APIs that the stock
-      command-line client does.  Subversion's libsvn_client library is
-      the one-stop shop for most of the functionality necessary for
-      designing a working Subversion client (see <xref
+      Subversion design.  While Subversion itself comes with only a
+      command-line client program, there are several third party
+      programs which provide various forms of client GUI.  These GUIs
+      use the same APIs that the stock command-line client does.
+      Subversion's libsvn_client library is the one-stop shop for most
+      of the functionality necessary for designing a working
+      Subversion client (see <xref
       linkend="svn.developer.layerlib.client"/>).</para>
 
     <!-- =============================================================== -->
@@ -581,12 +581,12 @@
           this in the WebDAV section of this chapter, but in short,
           WebDAV and DeltaV are extensions to the standard HTTP 1.1
           protocol that enable sharing and versioning of files over
-          the web.  Apache 2.0 comes with mod_dav, an Apache module
-          that understands the DAV extensions to HTTP.  Subversion
-          itself supplies mod_dav_svn, though, which is another Apache
-          module that works in conjunction with (really, as a back-end
-          to) mod_dav to provide Subversion's specific implementations
-          of WebDAV and DeltaV.</para>
+          the web.  Apache 2.0 and later versions come with mod_dav,
+          an Apache module that understands the DAV extensions to
+          HTTP.  Subversion itself supplies mod_dav_svn, though, which
+          is another Apache module that works in conjunction with
+          (really, as a back-end to) mod_dav to provide Subversion's
+          specific implementations of WebDAV and DeltaV.</para>
 
         <para>When communicating with a repository over HTTP, the RA
           loader library chooses libsvn_ra_dav as the proper access
@@ -1034,9 +1034,14 @@
                          % (os.path.basename(sys.argv[0])))
         sys.exit(1)
 
+    # Canonicalize (enough for Subversion, at least) the repository path.
+    repos_path = os.path.normpath(sys.argv[1])
+    if repos_path == '.': 
+        repos_path = ''
+
     # Call the app-wrapper, which takes care of APR initialization/shutdown
     # and the creation and cleanup of our top-level memory pool.
-    svn.core.run_app(crawl_youngest, os.path.normpath(sys.argv[1]))
+    svn.core.run_app(crawl_youngest, repos_path)
 </programlisting>
       </example>
 
@@ -1152,9 +1157,14 @@
     if len(args) != 1:
         usage_and_exit(2)
 
+    # Canonicalize (enough for Subversion, at least) the working copy path.
+    wc_path = os.path.normpath(args[0])
+    if wc_path == '.': 
+        wc_path = ''
+
     # Call the app-wrapper, which takes care of APR initialization/shutdown
     # and the creation and cleanup of our top-level memory pool.
-    svn.core.run_app(do_status, os.path.normpath(args[0]), verbose)
+    svn.core.run_app(do_status, wc_path, verbose)
 </programlisting>
       </example>
 
@@ -1162,7 +1172,7 @@
         the level of attention given to the core Subversion modules.
         However, there have been significant efforts towards creating
         functional bindings for Python, Perl, and Ruby.  To some extent,
-        the work done preparing the SWIG interface files for the these
+        the work done preparing the SWIG interface files for these
         languages is reusable in efforts to generate bindings for other
         languages supported by SWIG (which includes versions of C#,
         Guile, Java, MzScheme, OCaml, PHP, Tcl, and others).
@@ -1398,7 +1408,7 @@
 
     <para>A number of operating system file browsers are already able
       to mount networked directories using WebDAV.  On Win32, the
-      Windows Explorer can browse what it calls WebFolders (which are
+      Windows Explorer can browse what it calls Web Folders (which are
       just WebDAV-ready network locations) as if they were regular
       shared folders.  Mac OS X also has this capability, as do the
       Nautilus and Konqueror browsers (under GNOME and KDE,

Modified: trunk/src/ru/sync.py
==============================================================================
--- trunk/src/ru/sync.py	(original)
+++ trunk/src/ru/sync.py	Sun May 14 06:20:48 2006
@@ -119,7 +119,8 @@
       return get_list()
     elif o == '--dry-run':
       dry_run = True
-  cmd = string.Template('svn $a -r $r1:$r2 https://svn.red-bean.com/svnbook/trunk/src/en/book/$t')
+  cmd = string.Template('svn $a -r $r1:$r2 \
+      http://svn.red-bean.com/svnbook/trunk/src/en/book/$t')
   for fname in sync_list:
     last = get_last(fname)
     base = get_base(fname)
@@ -129,15 +130,15 @@
     if len(diff) != 0:
       os.system(cmd.substitute(a='log', r1=last, r2=base, t=fname))
       f = file('../'+fname+'.diff', 'w'); f.write(diff); f.close()
-      if not dry_run:
-        os.system(cmd.substitute(a='merge', r1=last, r2=base, t=fname))
+      c = cmd.substitute(a='merge', r1=last, r2=base, t=fname)
+      if dry_run:
+        c += ' --dry-run'
+      os.system(c)
     if not dry_run:
       set_last(fname, str(base))
 
 if __name__ == "__main__":
   main()
 
-"""
- vim: tabstop=2 shiftwidth=2 expandtab smarttab
-"""
+# vim: tabstop=2 shiftwidth=2 expandtab smarttab
 




More information about the svnbook-dev mailing list