[svnbook] r3878 committed - * src/en/HACKING,...

svnbook at googlecode.com svnbook at googlecode.com
Tue Jul 5 11:26:33 CDT 2011


Revision: 3878
Author:   cmpilato at gmail.com
Date:     Tue Jul  5 09:25:22 2011
Log:      * src/en/HACKING,
* src/en/book/appa-quickstart.xml,
* src/en/book/appb-svn-for-cvs-users.xml,
* src/en/book/appc-webdav.xml,
* src/en/book/ch00-preface.xml,
* src/en/book/ch01-fundamental-concepts.xml,
* src/en/book/ch02-basic-usage.xml,
* src/en/book/ch03-advanced-topics.xml,
* src/en/book/ch04-branching-and-merging.xml,
* src/en/book/ch05-repository-admin.xml,
* src/en/book/ch06-server-configuration.xml,
* src/en/book/ch07-customizing-svn.xml,
* src/en/book/ch08-embedding-svn.xml,
* src/en/book/ch09-reference.xml
   Embed <footnote>'s into the primary text without spurious line breaks now.

http://code.google.com/p/svnbook/source/detail?r=3878

Modified:
  /trunk/src/en/HACKING
  /trunk/src/en/book/appa-quickstart.xml
  /trunk/src/en/book/appb-svn-for-cvs-users.xml
  /trunk/src/en/book/appc-webdav.xml
  /trunk/src/en/book/ch00-preface.xml
  /trunk/src/en/book/ch01-fundamental-concepts.xml
  /trunk/src/en/book/ch02-basic-usage.xml
  /trunk/src/en/book/ch03-advanced-topics.xml
  /trunk/src/en/book/ch04-branching-and-merging.xml
  /trunk/src/en/book/ch05-repository-admin.xml
  /trunk/src/en/book/ch06-server-configuration.xml
  /trunk/src/en/book/ch07-customizing-svn.xml
  /trunk/src/en/book/ch08-embedding-svn.xml
  /trunk/src/en/book/ch09-reference.xml

=======================================
--- /trunk/src/en/HACKING	Fri Jul  1 07:38:09 2011
+++ /trunk/src/en/HACKING	Tue Jul  5 09:25:22 2011
@@ -184,9 +184,6 @@
  - Whitespace after a <screen> or <programlisting> tag, up to and
    including the first carriage return, should be removed.

-- Whitespace (including carriage returns) around
-  <footnote>...</footnote> should be removed.
-
  - Whitespace (including carriage returns) around
    <indexterm>...</indexterm> should be removed.

@@ -242,8 +239,9 @@
    <sect1 id="svn-ch-pi-sect-1">
      <title>Flornthorple Plathering</title>

-    <para>The real key to <firstterm>Plathering</firstterm> is to start  
with
-       a good glab. A good glab provides a solid thorpy foundation.</para>
+    <para>The real key to <firstterm>Plathering</firstterm> is to
+      start with a good glab. A good glab provides a solid thorpy
+      foundation.</para>

      <!-- ===============================================================  
-->
      <sect2 id="svn-ch-pi-sect-1.1">
@@ -253,22 +251,21 @@
          can avoid this by using cross-blather's <command>cb-avoid</command>
          command:</para>

-      <screen>        <!-- We use an EOL here, but technically shouldn't  
-->
+      <informalexample>
+        <screen>        <!-- We use an EOL here, but technically shouldn't  
-->
  $ cb-avoid
  Avoiding blather......... Done
  $
  </screen>                       <!-- Closing tag at the left-most column  
-->
+      </informalexample>

        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
        <sect3>
          <title>Exceptions</title>

-        <para>There's one to every rule.
-          <footnote>  <!-- We bring this down, but technically shouldn't  
-->
-            <para>Exception, that is.  Were we talking about inches,
-              there would be twelve.</para>
-          </footnote>
-          Except this one.</para>
+        <para>There's one to every rule.<footnote><para>Exception,
+          that is.  Were we talking about inches, there would be
+          twelve.</para></footnote>  Except this one.</para>

        </sect3>

@@ -279,9 +276,6 @@
          <para>I see a bright light coming toward me….</para>

        </sect3>
-
      </sect2>
-
    </sect1>
-
  </chapter>
=======================================
--- /trunk/src/en/book/appa-quickstart.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/appa-quickstart.xml	Tue Jul  5 09:25:22 2011
@@ -73,16 +73,14 @@
        software, you can also get the Subversion source code from the
        Subversion repository in which it lives.  Obviously, you'll need
        to already have a Subversion client on hand to do this.  But
-      once you do, you can check out a working copy of the Subversion  
source
-      repository from <ulink  
url="http://svn.collab.net/repos/svn/trunk/"/>:
-      <footnote>
-        <para>Note that the URL checked out in the example ends not
-          with <literal>svn</literal>, but with a subdirectory thereof
-          called <literal>trunk</literal>.  See our discussion of
-          Subversion's branching and tagging model for the reasoning
-          behind this.</para>
-      </footnote>
-    </para>
+      once you do, you can check out a working copy of the Subversion
+      source repository from
+      <ulink url="http://svn.collab.net/repos/svn/trunk/"
+      /><footnote><para>Note that the URL checked out in the example
+      ends not with <literal>svn</literal>, but with a subdirectory
+      thereof called <literal>trunk</literal>.  See our discussion of
+      Subversion's branching and tagging model for the reasoning
+      behind this.</para></footnote>:</para>

      <informalexample>
        <screen>
=======================================
--- /trunk/src/en/book/appb-svn-for-cvs-users.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/appb-svn-for-cvs-users.xml	Tue Jul  5 09:25:22 2011
@@ -370,11 +370,8 @@
          out the root of the project, you may very well wind up with a
          working copy that contains a complete copy of your project's
          content for each and every one of its branches and tags.
-        <footnote>
-          <para>That is, providing you don't run out of disk space
-            before your checkout finishes.</para>
-        </footnote>
-      </para>
+        <footnote><para>That is, providing you don't run out of disk
+        space before your checkout finishes.</para></footnote></para>
      </warning>

    </sect1>
=======================================
--- /trunk/src/en/book/appc-webdav.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/appc-webdav.xml	Tue Jul  5 09:25:22 2011
@@ -381,17 +381,14 @@
        <sect3 id="svn.webdav.clients.standalone.windows">
          <title>Microsoft Office, Dreamweaver, Photoshop</title>

-        <para>On Windows, several well-known applications
-          contain integrated WebDAV client functionality, such as
-          Microsoft's Office,
-          <footnote>
-            <para>WebDAV support was removed from Microsoft Access for
-              some reason, but it exists in the rest of the Office
-              suite.</para>
-          </footnote>
-          Adobe's Photoshop and Dreamweaver programs.
-          They're able to directly open and save to URLs, and tend to
-          make heavy use of WebDAV locks when editing a file.</para>
+        <para>On Windows, several well-known applications contain
+          integrated WebDAV client functionality, such as Microsoft's
+          Office,<footnote><para>WebDAV support was removed from
+          Microsoft Access for some reason, but it exists in the rest
+          of the Office suite.</para></footnote> Adobe's Photoshop and
+          Dreamweaver programs.  They're able to directly open and
+          save to URLs, and tend to make heavy use of WebDAV locks
+          when editing a file.</para>

          <para>Note that while many of these programs also exist for
            Mac OS X, they do not appear to support WebDAV directly
=======================================
--- /trunk/src/en/book/ch00-preface.xml	Wed Jun 29 06:56:08 2011
+++ /trunk/src/en/book/ch00-preface.xml	Tue Jul  5 09:25:22 2011
@@ -40,18 +40,15 @@
      powerful, very usable, and very flexible.</para>

    <para>This book is written to document the 1.6 series of the Apache
-    Subversion™
-    <footnote>
-      <para>We'll refer to it simply as <quote>Subversion</quote>
-        throughout this book.  You'll thank us when you realize just
-        how much space that saves!</para>
-    </footnote>
-    version control system.  We have made every attempt to
-    be thorough in our coverage.  However, Subversion has a thriving
-    and energetic development community, so already a number of
-    features and improvements are planned for future versions that may
-    change some of the commands and specific notes in this
-    book.</para>
+    Subversion™<footnote><para>We'll refer to it simply
+    as <quote>Subversion</quote> throughout this book.  You'll thank
+    us when you realize just how much space that
+    saves!</para></footnote> version control system.  We have made
+    every attempt to be thorough in our coverage.  However, Subversion
+    has a thriving and energetic development community, so already a
+    number of features and improvements are planned for future
+    versions that may change some of the commands and specific notes
+    in this book.</para>


    <!-- =================================================================  
-->
@@ -153,12 +150,9 @@
          changing at all.  The collection itself grows over time, but
          the individual files within the collection aren't being
          changed.  In this case, using Subversion
-        is <quote>overkill.</quote>
-        <footnote>
-          <para>Or as a friend puts it, <quote>swatting a fly with a
-            Buick.</quote></para>
-        </footnote>
-        There are simpler tools that
+        is <quote>overkill.</quote><footnote><para>Or as a friend puts
+        it, <quote>swatting a fly with a
+        Buick.</quote></para></footnote> There are simpler tools that
          efficiently replicate data <emphasis>without</emphasis> the
          overhead of tracking changes, such as <command>rsync</command>
          or <command>unison</command>.</para>
@@ -862,12 +856,9 @@
        a risky and ambitious new open source project; Jim Blandy for
        the original Subversion name and design—we love you, Jim;
        and Karl Fogel for being such a good friend and a great
-      community leader, in that order.
-      <footnote>
-        <para>Oh, and thanks, Karl, for being too overworked to write
-          this book yourself.</para>
-      </footnote>
-    </para>
+      community leader, in that order.<footnote><para>Oh, and thanks,
+      Karl, for being too overworked to write this book
+      yourself.</para></footnote></para>

      <para>Thanks to O'Reilly and the team of professional editors who
        have helped us polish this text at various stages of its
=======================================
--- /trunk/src/en/book/ch01-fundamental-concepts.xml	Thu Jun 30 07:24:39  
2011
+++ /trunk/src/en/book/ch01-fundamental-concepts.xml	Tue Jul  5 09:25:22  
2011
@@ -113,21 +113,18 @@

        <para>A working copy is, quite literally, a local copy of a
          particular version of a user's VCS-managed data upon which
-        that user is free to work.  Working copies
-        <footnote>
-          <para>The term <quote>working copy</quote> can be generally
-            applied to any one file version's local instance.  When
-            most folks use the term, though, they are referring to a
-            whole directory tree containing files and subdirectories
-            managed by the version control system.</para>
-        </footnote>
-        appear to other software just as any other local directory
-        full of files, so those programs don't have to
-        be <quote>version-control-aware</quote> in order to read from
-        and write to that data.  The task of managing the working copy
-        and communicating changes made to its contents to and from the
-        repository falls squarely to the version control system's
-        client software.</para>
+        that user is free to work.  Working copies<footnote><para>The
+        term <quote>working copy</quote> can be generally applied to
+        any one file version's local instance.  When most folks use
+        the term, though, they are referring to a whole directory tree
+        containing files and subdirectories managed by the version
+        control system.</para></footnote> appear to other software
+        just as any other local directory full of files, so those
+        programs don't have to be <quote>version-control-aware</quote>
+        in order to read from and write to that data.  The task of
+        managing the working copy and communicating changes made to
+        its contents to and from the repository falls squarely to the
+        version control system's client software.</para>

      </sect2>

=======================================
--- /trunk/src/en/book/ch02-basic-usage.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/ch02-basic-usage.xml	Tue Jul  5 09:25:22 2011
@@ -685,18 +685,15 @@
                directory, it is not deleted, but Subversion schedules
                it for deletion.  When you commit your
                changes, <filename>FOO</filename> will be entirely
-              removed from your working copy and the repository.
-              <footnote>
-                <para>Of course, nothing is ever totally deleted from
-                  the repository—just from
-                  its <literal>HEAD</literal> revision.  You may
-                  continue to access the deleted item in previous
-                  revisions.  Should you desire to resurrect the item
-                  so that it is again present in <literal>HEAD</literal>,
-                  see <xref  
linkend="svn.branchmerge.basicmerging.resurrect"
-                  />.</para>
-              </footnote>
-            </para>
+              removed from your working copy and the
+              repository.<footnote><para>Of course, nothing is ever
+              totally deleted from the repository—just from
+              its <literal>HEAD</literal> revision.  You may continue
+              to access the deleted item in previous revisions.
+              Should you desire to resurrect the item so that it is
+              again present in <literal>HEAD</literal>, see
+              <xref linkend="svn.branchmerge.basicmerging.resurrect"
+              />.</para></footnote></para>
            </listitem>
          </varlistentry>

@@ -1757,15 +1754,13 @@
          <para>Usually you won't want to just delete the conflict
            markers and Sally's changes—she's going to be awfully
            surprised when the sandwich arrives and it's not what she
-          wanted.  This is where you pick up the phone or walk
-          across the office and explain to Sally that you can't get
-          sauerkraut from an Italian deli.
-          <footnote>
-            <para>And if you ask them for it, they may very well ride
-              you out of town on a rail.</para>
-          </footnote>
-          Once you've agreed on the changes you will commit, edit
-          your file and remove the conflict markers:</para>
+          wanted.  This is where you pick up the phone or walk across
+          the office and explain to Sally that you can't get
+          sauerkraut from an Italian deli.<footnote><para>And if you
+          ask them for it, they may very well ride you out of town on
+          a rail.</para></footnote>  Once you've agreed on the changes
+          you will commit, edit your file and remove the conflict
+          markers:</para>

          <informalexample>
            <screen>
@@ -2457,11 +2452,9 @@
        <para>In addition to all of the previous commands, you can use
          the <option>--revision</option> (<option>-r</option>) option
          with <command>svn update</command> to take an entire working
-        copy <quote>back in time</quote>:
-        <footnote>
-          <para>See?  We told you that Subversion was a time  
machine.</para>
-        </footnote>
-        </para>
+        copy <quote>back in time</quote>:<footnote><para>See?  We told
+        you that Subversion was a time
+        machine.</para></footnote></para>

        <informalexample>
          <screen>
@@ -2632,17 +2625,13 @@
    <sect1 id="svn.tour.treeconflicts">
      <title>Dealing with Structural Conflicts</title>

-    <para>So far, we have only talked about conflicts at the level
-      of file content.  When you and your collaborators make overlapping
-      changes within the same file, Subversion forces you to merge those
-      changes before you can commit.
-      <footnote>
-        <para>Well, you <emphasis>could</emphasis> mark files
-          containing conflict markers as resolved and commit them,
-          if you really wanted to.  But this is rarely done in
-          practice.</para>
-      </footnote>
-    </para>
+    <para>So far, we have only talked about conflicts at the level of
+      file content.  When you and your collaborators make overlapping
+      changes within the same file, Subversion forces you to merge
+      those changes before you can commit.<footnote><para>Well,
+      you <emphasis>could</emphasis> mark files containing conflict
+      markers as resolved and commit them, if you really wanted to.
+      But this is rarely done in practice.</para></footnote></para>

      <para>But what happens if your collaborators move or delete a file
        that you are still working on?  Maybe there was a
=======================================
--- /trunk/src/en/book/ch03-advanced-topics.xml	Tue Jul  5 08:33:53 2011
+++ /trunk/src/en/book/ch03-advanced-topics.xml	Tue Jul  5 09:25:22 2011
@@ -351,12 +351,9 @@
        nascent software project you've been toying with.  Eventually,
        though, that project matures to the point that the idea seems to
        actually have some wings, so you do the unthinkable and decide
-      to give the project a name.
-      <footnote>
-        <para><quote>You're not supposed to name it.  Once you name it,
-          you start getting attached to it.</quote>—Mike
-          Wazowski</para>
-      </footnote>
+      to give the project a name.<footnote><para><quote>You're not
+      supposed to name it.  Once you name it, you start getting
+      attached to it.</quote>—Mike Wazowski</para></footnote>
        Let's say you called your software Frabnaggilywort.  At this
        point, it makes sense to rename the directory to reflect the
        project's new name, so <filename>concept</filename> is renamed
@@ -410,13 +407,10 @@
        peg revision, Subversion performs the requested operation using
        the operative revision(s).  To map this to our Chicagoland
        streets analogy, if we are told to go to 606 N. Main Street in
-      Wheaton,
-      <footnote>
-        <para>606 N. Main Street, Wheaton, Illinois, is the home of
-          the Wheaton <emphasis>History</emphasis> Center.  It seemed
-          appropriate….</para>
-      </footnote>
-      we can think of <quote>Main Street</quote> as our path and
+      Wheaton,<footnote><para>606 N. Main Street, Wheaton, Illinois,
+      is the home of the Wheaton <emphasis>History</emphasis> Center.
+      It seemed appropriate….</para></footnote> we can think
+      of <quote>Main Street</quote> as our path and
        <quote>Wheaton</quote> as our peg revision.  These two pieces of
        information identify a unique path that can be traveled (north or
        south on Main Street), and they keep us from traveling up and
@@ -906,12 +900,9 @@
          (<literal>:</literal>), or an underscore
          (<literal>_</literal>); after that, you can also use digits,
          hyphens (<literal>-</literal>), and periods
-        (<literal>.</literal>).
-          <footnote>
-            <para>If you're familiar with XML, this is pretty much the
-            ASCII subset of the syntax for XML <quote>Name</quote>.</para>
-          </footnote>
-      </para>
+        (<literal>.</literal>).<footnote><para>If you're familiar with
+        XML, this is pretty much the ASCII subset of the syntax for
+        XML <quote>Name</quote>.</para></footnote></para>

        <para>In addition to the <command>propset</command> command, the
          <command>svn</command> program supplies the
@@ -1048,19 +1039,16 @@
          the revision whose property you wish to modify.  Since
          revisions are global, you don't need to specify a target path
          to these property-related commands so long as you are
-        positioned in a working copy of the repository whose
-        revision property you wish to modify.  Otherwise, you can
-        simply provide the URL of any path in the repository of
-        interest (including the repository's root URL).  For example,
-        you might want to replace the commit log message of an
-        existing revision.
-        <footnote>
-          <para>Fixing spelling errors, grammatical gotchas, and
-            <quote>just-plain-wrongness</quote> in commit log
-            messages is perhaps the most common use case for the
-            <option>--revprop</option> option.</para>
-        </footnote>
-        If your current working directory is part of a working copy of
+        positioned in a working copy of the repository whose revision
+        property you wish to modify.  Otherwise, you can simply
+        provide the URL of any path in the repository of interest
+        (including the repository's root URL).  For example, you might
+        want to replace the commit log message of an existing
+        revision.<footnote><para>Fixing spelling errors, grammatical
+        gotchas, and <quote>just-plain-wrongness</quote> in commit log
+        messages is perhaps the most common use case for
+        the <option>--revprop</option> option.</para></footnote>  If
+        your current working directory is part of a working copy of
          your repository, you can simply run the
          <command>svn propset</command> command with no target path:</para>

@@ -1363,18 +1351,15 @@
            almost certainly been a plain-text file, just like today's
            <filename>.txt</filename> files.  But by the mid-1990s, you
            could almost bet that a file of that name would not be a
-          plain-text file at all, but instead a Microsoft Word document
-          in a proprietary, non-human-readable format.  But this
-          change didn't occur overnight—there was certainly a
-          period of confusion for computer users over what exactly
+          plain-text file at all, but instead a Microsoft Word
+          document in a proprietary, non-human-readable format.  But
+          this change didn't occur overnight—there was certainly
+          a period of confusion for computer users over what exactly
            they had in hand when they saw a <filename>.DOC</filename>
-          file.
-          <footnote>
-            <para>You think that was rough?  During that same era,
-              WordPerfect also used <filename>.DOC</filename> for their
-              proprietary file format's preferred extension!</para>
-          </footnote>
-        </para>
+          file.<footnote><para>You think that was rough?  During that
+          same era, WordPerfect also used <filename>.DOC</filename>
+          for their proprietary file format's preferred
+          extension!</para></footnote></para>

          <para>The popularity of computer networking cast still more
            doubt on the mapping between a file's name and its content.
@@ -1472,16 +1457,14 @@

        <para>This property has no effect on filesystems that have no
          concept of an executable permission bit, such as FAT32 and
-        NTFS.
-        <footnote>
-          <para>The Windows filesystems use file extensions (such as
-            <filename>.EXE</filename>, <filename>.BAT</filename>, and
-            <filename>.COM</filename>) to denote executable
-            files.</para>
-        </footnote>
-        Also, although it has no defined values, Subversion will force
-        its value to <literal>*</literal> when setting this property.
-        Finally, this property is valid only on files, not on
+        NTFS.<footnote><para>The Windows filesystems use file
+        extensions (such
+        as <filename>.EXE</filename>, <filename>.BAT</filename>, and
+        <filename>.COM</filename>) to denote executable
+        files.</para></footnote>  Also, although it has no defined
+        values, Subversion will force its value
+        to <literal>*</literal> when setting this property.  Finally,
+        this property is valid only on files, not on
          directories.</para>

      </sect2>
@@ -1844,16 +1827,15 @@
        also have some unversioned files: the latest
        <filename>calculator</filename> program that you've compiled
        from your source code, a source file named
-      <filename>data.c</filename>, and a set of debugging output logfiles.
-      Now, you know that your build system always results in
-      the <filename>calculator</filename> program being generated.
-      <footnote>
-        <para>Isn't that the whole point of a build system?</para>
-      </footnote>
-      And you know that your test suite always leaves those debugging
-      logfiles lying around.  These facts are true for all working
-      copies of this project, not just your own.  And you know that
-      you aren't interested in seeing those things every time you run
+      <filename>data.c</filename>, and a set of debugging output
+      logfiles.  Now, you know that your build system always results
+      in the <filename>calculator</filename> program being
+      generated.<footnote><para>Isn't that the whole point of a build
+      system?</para></footnote>  And you know that your test suite
+      always leaves those debugging logfiles lying around.  These
+      facts are true for all working copies of this project, not just
+      your own.  And you know that you aren't interested in seeing
+      those things every time you run
        <command>svn status</command>, and you are pretty sure that
        nobody else is interested in them either.  So you use
        <userinput>svn propedit svn:ignore calc</userinput> to add some
@@ -2081,17 +2063,14 @@
        versioned files are being changed regularly in the
        repository.</para>

-    <para>Simply adding keyword anchor text to your file does
-      nothing special.  Subversion will never attempt to perform
-      textual substitutions on your file contents unless
-      explicitly asked to do so.  After all, you might be writing
-      a document
-      <footnote>
-        <para>… or maybe even a section of a book …</para>
-      </footnote>
-      about how to use keywords, and you don't want Subversion to
-      substitute your beautiful examples of unsubstituted keyword
-      anchors!</para>
+    <para>Simply adding keyword anchor text to your file does nothing
+      special.  Subversion will never attempt to perform textual
+      substitutions on your file contents unless explicitly asked to
+      do so.  After all, you might be writing a
+      document<footnote><para>… or maybe even a section of a
+      book …</para></footnote> about how to use keywords, and
+      you don't want Subversion to substitute your beautiful examples
+      of unsubstituted keyword anchors!</para>

      <para>To tell Subversion whether to substitute keywords
        on a particular file, we again turn to the property-related
@@ -2662,27 +2641,24 @@
        a cracked windshield!</para>

      <para>Of course, things would have gone more smoothly if Harry and
-      Sally had serialized their modifications to the image—if, say,
-      Harry had waited to draw his windshield cracks on Sally's
+      Sally had serialized their modifications to the image—if,
+      say, Harry had waited to draw his windshield cracks on Sally's
        now-red car, or if Sally had tweaked the color of a car whose
-      windshield was already cracked.  As is discussed in <xref
-      linkend="svn.basic.vsn-models.copy-merge" />, most of these
-      types of problems go away entirely where perfect communication
-      between Harry and Sally exists.
-      <footnote>
-        <para>Communication wouldn't have been such bad medicine for
-          Harry and Sally's Hollywood namesakes, either, for that
-          matter.</para>
-      </footnote>
-      But as one's version control system is, in fact, one form of
-      communication, it follows that having that software facilitate
-      the serialization of nonparallelizable editing efforts is no
-      bad thing.  This is where Subversion's implementation of the
-      lock-modify-unlock model steps into the spotlight.  This is
-      where we talk about Subversion's <firstterm>locking</firstterm>
-      feature, which is similar to the <quote>reserved
-      checkouts</quote> mechanisms of other version control
-      systems.</para>
+      windshield was already cracked.  As is discussed in
+      <xref linkend="svn.basic.vsn-models.copy-merge" />, most of
+      these types of problems go away entirely where perfect
+      communication between Harry and Sally
+      exists.<footnote><para>Communication wouldn't have been such bad
+      medicine for Harry and Sally's Hollywood namesakes, either, for
+      that matter.</para></footnote>  But as one's version control
+      system is, in fact, one form of communication, it follows that
+      having that software facilitate the serialization of
+      nonparallelizable editing efforts is no bad thing.  This is
+      where Subversion's implementation of the lock-modify-unlock
+      model steps into the spotlight.  This is where we talk about
+      Subversion's <firstterm>locking</firstterm> feature, which is
+      similar to the <quote>reserved checkouts</quote> mechanisms of
+      other version control systems.</para>

      <para>Subversion's locking feature exists ultimately to minimize
        wasted time and effort.  By allowing a user to programmatically
@@ -2699,16 +2675,14 @@

      <para>When referring to Subversion's locking feature, one is
        actually talking about a fairly diverse collection of behaviors,
-      which include the ability to lock a versioned file
-      <footnote>
-        <para>Subversion does not currently allow locks on  
directories.</para>
-      </footnote>
-      (claiming the exclusive right to modify the file), to unlock
-      that file (yielding that exclusive right to modify), to see
-      reports about which files are locked and by whom, to annotate
-      files for which locking before editing is strongly advised, and
-      so on.  In this section, we'll cover all of these facets of the
-      larger locking feature.</para>
+      which include the ability to lock a versioned
+      file<footnote><para>Subversion does not currently allow locks on
+      directories.</para></footnote> (claiming the exclusive right to
+      modify the file), to unlock that file (yielding that exclusive
+      right to modify), to see reports about which files are locked
+      and by whom, to annotate files for which locking before editing
+      is strongly advised, and so on.  In this section, we'll cover
+      all of these facets of the larger locking feature.</para>

      <sidebar id="svn.advanced.locking.meanings">
        <title>The Three Meanings of <quote>Lock</quote></title>
@@ -3271,11 +3245,8 @@
          users to edit and save the file anyway.  There's not much that
          Subversion can do in this situation—at the end of the
          day, there's simply no substitution for good interpersonal
-        communication.
-        <footnote>
-          <para>Except, perhaps, a classic Vulcan mind-meld.</para>
-        </footnote>
-      </para>
+        communication.<footnote><para>Except, perhaps, a classic
+        Vulcan mind-meld.</para></footnote></para>

      </sect2>

@@ -4517,13 +4488,10 @@
        about branches, tags, and merging.  Then you'll have nearly full
        mastery of the Subversion client.  Though our lawyers won't
        allow us to promise you anything, this additional knowledge
-      could make you measurably more cool.
-      <footnote>
-        <para>No purchase necessary.  Certains terms and conditions
-          apply.  No guarantee of coolness—implicit or
-          otherwise—exists.  Mileage may vary.</para>
-      </footnote>
-    </para>
+      could make you measurably more cool.<footnote><para>No purchase
+      necessary.  Certains terms and conditions apply.  No guarantee
+      of coolness—implicit or otherwise—exists.  Mileage
+      may vary.</para></footnote></para>

    </sect1>

=======================================
--- /trunk/src/en/book/ch04-branching-and-merging.xml	Fri Jul  1 07:34:08  
2011
+++ /trunk/src/en/book/ch04-branching-and-merging.xml	Tue Jul  5 09:25:22  
2011
@@ -188,22 +188,18 @@
        <para>This command causes a near-instantaneous commit in the
          repository, creating a new directory in revision 341.  The new
          directory is a copy of <filename>/calc/trunk</filename>.  This
-        is shown in
-        <xref linkend="svn.branchmerge.using.create.dia-1"/>.
-        <footnote>
-        <para>Subversion does not support copying between different
-        repositories.  When using URLs with <command>svn
+        is shown in <xref linkend="svn.branchmerge.using.create.dia-1"
+        />.<footnote><para>Subversion does not support copying between
+        different repositories.  When using URLs with <command>svn
          copy</command> or <command>svn move</command>, you can only
-        copy items within the same repository.</para>
-        </footnote>
-
-        While it's also possible to create a branch by
-        using <command>svn copy</command> to duplicate a directory
-        within the working copy, this technique isn't recommended.  It
-        can be quite slow, in fact!  Copying a directory on the
-        client side is a linear-time operation, in that it actually
-        has to duplicate every file and subdirectory on the local disk.
-        Copying a directory on the server, however, is a constant-time
+        copy items within the same repository.</para></footnote>  While
+        it's also possible to create a branch by using <command>svn
+        copy</command> to duplicate a directory within the working
+        copy, this technique isn't recommended.  It can be quite slow,
+        in fact!  Copying a directory on the client side is a
+        linear-time operation, in that it actually has to duplicate
+        every file and subdirectory on the local disk.  Copying a
+        directory on the server, however, is a constant-time
          operation, and it's the way most people create
          branches.</para>

@@ -1090,15 +1086,12 @@
          information.  Revisions are immutable trees that build upon
          one another.  Removing a revision from history would cause a
          domino effect, creating chaos in all subsequent revisions and
-        possibly invalidating all working copies.
-        <footnote>
-          <para>The Subversion project has plans, however, to someday
-            implement a command that would accomplish the task of
-            permanently deleting information.  In the meantime, see
-            <xref linkend="svn.reposadmin.maint.tk.svndumpfilter"/>
-            for a possible workaround.</para>
-        </footnote>
-      </para>
+        possibly invalidating all working copies.<footnote><para>The
+        Subversion project has plans, however, to someday implement a
+        command that would accomplish the task of permanently deleting
+        information.  In the meantime, see
+        <xref linkend="svn.reposadmin.maint.tk.svndumpfilter"/> for a
+        possible workaround.</para></footnote></para>

      </sect2>

@@ -1388,22 +1381,18 @@
          <para>Did you notice how, in the last example, the merge
            invocation caused two distinct ranges of merges to be
            applied?  The <command>svn merge</command> command applied
-          two independent patches to your working copy to
-          skip over changeset 355, which your branch already
-          contained.  There's nothing inherently wrong with this,
-          except that it has the potential to make conflict resolution
-          trickier.  If the first range of changes creates
-          conflicts, you <emphasis>must</emphasis> resolve them
-          interactively for the merge process to continue and
-          apply the second range of changes.  If you postpone a
-          conflict from the first wave of changes, the whole merge
-          command will bail out with an error message.
-          <footnote>
-            <para>At least, this is true in Subversion 1.5 at the time
-              of this writing.  This behavior may improve in future
-              versions of Subversion.</para>
-          </footnote>
-        </para>
+          two independent patches to your working copy to skip over
+          changeset 355, which your branch already contained.  There's
+          nothing inherently wrong with this, except that it has the
+          potential to make conflict resolution trickier.  If the
+          first range of changes creates conflicts,
+          you <emphasis>must</emphasis> resolve them interactively for
+          the merge process to continue and apply the second range of
+          changes.  If you postpone a conflict from the first wave of
+          changes, the whole merge command will bail out with an error
+          message.<footnote><para>At least, this is true in Subversion
+          1.5 at the time of this writing.  This behavior may improve
+          in future versions of Subversion.</para></footnote></para>
        </warning>

        <para>A word of warning: while <command>svn diff</command> and
@@ -1599,26 +1588,23 @@
          <varlistentry>
            <term>Applying reverse merges to a target's natural  
history</term>
            <listitem>
-            <para>Earlier in this chapter
-                (<xref linkend="svn.branchmerge.basicmerging.undo"/>)
-                we discussed how to use <command>svn merge</command>
-                to apply a <quote>reverse patch</quote> as a way of
-                rolling back changes.  If this technique is used to
-                undo a change to an object's personal history (e.g.,
-                commit r5 to the trunk, then immediately roll back r5
-                using <userinput>svn merge . -c -5</userinput>), this
-                sort of merge doesn't affect the recorded mergeinfo.
-            <footnote>
-              <para>Interestingly, after rolling back a
-                revision like this, we wouldn't be able to reapply
-                the revision using <userinput>svn merge . -c 5</userinput>,
-                since the mergeinfo would already list r5 as being
-                applied.  We would have to use
-                the <option>--ignore-ancestry</option> option to make
-                the merge command ignore the existing
-                mergeinfo!</para>
-            </footnote>
-            </para>
+            <para>Earlier in this chapter
+              (<xref linkend="svn.branchmerge.basicmerging.undo"/>) we
+              discussed how to use <command>svn merge</command> to
+              apply a <quote>reverse patch</quote> as a way of rolling
+              back changes.  If this technique is used to undo a
+              change to an object's personal history (e.g., commit r5
+              to the trunk, then immediately roll back r5
+              using <userinput>svn merge . -c -5</userinput>), this
+              sort of merge doesn't affect the recorded
+              mergeinfo.<footnote><para>Interestingly, after rolling
+              back a revision like this, we wouldn't be able to
+              reapply the revision using <userinput>svn merge . -c
+              5</userinput>, since the mergeinfo would already list r5
+              as being applied.  We would have to use
+              the <option>--ignore-ancestry</option> option to make
+              the merge command ignore the existing
+              mergeinfo!</para></footnote></para>
            </listitem>
          </varlistentry>
        </variablelist>
@@ -2349,16 +2335,13 @@
        mixture of repository locations, these locations must all be
        within the <emphasis>same</emphasis> repository.  Subversion
        repositories aren't yet able to communicate with one another;
-      that feature is planned for the future.
-      <footnote>
-        <para>You <emphasis>can</emphasis>, however, use <command>svn
-          switch</command> with the <option>--relocate</option> option
-          if the URL of your server changes and you don't want to
-          abandon an existing working copy.  See <xref
-          linkend="svn.ref.svn.c.switch"/> for more information and an
-          example.</para>
-      </footnote>
-    </para>
+      that feature is planned for the
+      future.<footnote><para>You <emphasis>can</emphasis>, however,
+      use <command>svn switch</command> with
+      the <option>--relocate</option> option if the URL of your server
+      changes and you don't want to abandon an existing working copy.
+      See <xref linkend="svn.ref.svn.c.switch"/> for more information
+      and an example.</para></footnote></para>

      <sidebar>
        <title>Switches and Updates</title>
@@ -3096,11 +3079,8 @@
          includes a copy of the first vendor drop—and we get to
          work customizing the libcomplex code.  Before we know it, our
          modified version of libcomplex is now completely integrated
-        into our calculator program.
-        <footnote>
-          <para>And is entirely bug-free, of course!</para>
-        </footnote>
-      </para>
+        into our calculator program.<footnote><para>And is entirely
+        bug-free, of course!</para></footnote></para>

        <para>A few weeks later, the developers of libcomplex release a
          new version of their library—version 1.1—which
=======================================
--- /trunk/src/en/book/ch05-repository-admin.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/ch05-repository-admin.xml	Tue Jul  5 09:25:22 2011
@@ -17,18 +17,14 @@
      mistakes and give some suggestions on how to arrange the data in
      the repository.</para>

-  <para>If you plan to access a Subversion repository only in the
-    role of a user whose data is under version control (i.e., via
-    a Subversion client), you can skip this chapter altogether.
+  <para>If you plan to access a Subversion repository only in the role
+    of a user whose data is under version control (i.e., via a
+    Subversion client), you can skip this chapter altogether.
      However, if you are, or wish to become, a Subversion repository
-    administrator,
-    <footnote>
-      <para>This may sound really prestigious and lofty, but we're
-        just talking about anyone who is interested in that
-        mysterious realm beyond the working copy where everyone's
-        data hangs out.</para>
-    </footnote>
-    this chapter is for you.</para>
+    administrator,<footnote><para>This may sound really prestigious
+    and lofty, but we're just talking about anyone who is interested
+    in that mysterious realm beyond the working copy where everyone's
+    data hangs out.</para></footnote> this chapter is for you.</para>


    <!-- =================================================================  
-->
@@ -232,16 +228,13 @@
          like the fact that even though no changes have been made to
          their project lately, the youngest revision number for the
          repository keeps climbing because other projects are actively
-        adding new revisions.
-        <footnote>
-          <para>Whether founded in ignorance or in poorly considered
-            concepts about how to derive legitimate software
-            development metrics, global revision numbers are a silly
-            thing to fear, and <emphasis>not</emphasis> the kind of
-            thing you should weigh when deciding how to arrange your
-            projects and repositories.</para>
-        </footnote>
-      </para>
+        adding new revisions.<footnote><para>Whether founded in
+        ignorance or in poorly considered concepts about how to derive
+        legitimate software development metrics, global revision
+        numbers are a silly thing to fear,
+        and <emphasis>not</emphasis> the kind of thing you should
+        weigh when deciding how to arrange your projects and
+        repositories.</para></footnote></para>

        <para>A middle-ground approach can be taken, too.  For example,
          projects can be grouped by how well they relate to each other.
@@ -273,13 +266,10 @@
          to create various named branches of the main development line;
          and <filename>tags</filename>, which is a collection of tree
          snapshots that are created, and perhaps destroyed, but never
-        changed.
-        <footnote>
-          <para>The <filename>trunk</filename>, <filename>tags</filename>,
-            and <filename>branches</filename> trio is sometimes referred
-            to as <quote>the TTB directories.</quote></para>
-        </footnote>
-        </para>
+        changed.<footnote><para>The <filename>trunk</filename>,
+        <filename>tags</filename>, and <filename>branches</filename>
+        trio is sometimes referred to as <quote>the TTB
+        directories.</quote></para></footnote></para>

        <para>For example, your repository might look like this:</para>

@@ -432,19 +422,18 @@
          repository uses.  One type of data store keeps everything in a
          Berkeley DB (or BDB) database environment; repositories that
          use this type are often referred to as being
-        <quote>BDB-backed.</quote>  The other type stores data in
+        <quote>BDB-backed.</quote> The other type stores data in
          ordinary flat files, using a custom format.  Subversion
          developers have adopted the habit of referring to this latter
-        data storage mechanism as <firstterm>FSFS</firstterm>
-        <footnote>
-          <para>Often pronounced <quote>fuzz-fuzz,</quote> if Jack
-            Repenning has anything to say about it.  (This book,
-            however, assumes that the reader is thinking
-            <quote>eff-ess-eff-ess.</quote>)</para>
-        </footnote>
-        —a versioned filesystem implementation that uses the
-        native OS filesystem directly—rather than via a database
-        library or some other abstraction layer—to store data.</para>
+        data storage mechanism
+        as <firstterm>FSFS</firstterm><footnote><para>Often
+        pronounced <quote>fuzz-fuzz,</quote> if Jack Repenning has
+        anything to say about it.  (This book, however, assumes that
+        the reader is
+        thinking <quote>eff-ess-eff-ess.</quote>)</para></footnote>—a
+        versioned filesystem implementation that uses the native OS
+        filesystem directly—rather than via a database library
+        or some other abstraction layer—to store data.</para>

        <para><xref linkend="svn.reposadmin.basics.backends.tbl-1" />
          gives a comparative overview of Berkeley DB and FSFS
@@ -621,14 +610,12 @@
            Windows 2000 or later.</para>

          <para>While Berkeley DB promises to behave correctly on
-          network shares that meet a particular set of specifications,
-          <footnote>
-            <para>Berkeley DB requires that the underlying filesystem
-              implement strict POSIX locking semantics, and more
-              importantly, the ability to map files directly into
-              process memory.</para>
-          </footnote>
-          most networked filesystem types and appliances do
+          network shares that meet a particular set of
+          specifications,<footnote><para>Berkeley DB requires that the
+          underlying filesystem implement strict POSIX locking
+          semantics, and more importantly, the ability to map files
+          directly into process memory.</para></footnote> most
+          networked filesystem types and appliances do
            <emphasis>not</emphasis> actually meet those requirements.
            And in no case can you allow a BDB-backed repository that
            resides on a network share to be accessed by multiple
@@ -775,22 +762,6 @@
            the repository isn't affected at all.  At worst, some
            transaction data is left behind.</para>

-        <para>The only real argument against FSFS is its relative
-          immaturity compared to Berkeley DB.  Unlike Berkeley DB,
-          which has years of history, its own dedicated development
-          team, and, now, Oracle's mighty name attached to it,
-          <footnote>
-            <para>Oracle bought Sleepycat and its flagship software,
-              Berkeley DB, on Valentine's Day in 2006.</para>
-          </footnote>
-          FSFS is a newer bit of engineering.  Prior to Subversion
-          1.4, it was still shaking out some pretty serious data
-          integrity bugs, which, while triggered in only very rare
-          cases, nonetheless did occur.  That said, FSFS has quickly
-          become the backend of choice for some of the largest public
-          and private Subversion repositories, and it promises a lower
-          barrier to entry for Subversion across the board.</para>
-
        </sect3>
      </sect2>

@@ -802,13 +773,14 @@
    <sect1 id="svn.reposadmin.create">
      <title>Creating and Configuring Your Repository</title>

-    <para>Earlier in this chapter (in <xref  
linkend="svn.reposadmin.planning" />), we
-      looked at some of the important decisions that should be made
-      before creating and configuring your Subversion repository.
-      Now, we finally get to get our hands dirty!  In this section,
-      we'll see how to actually create a Subversion repository and
-      configure it to perform custom actions when special repository
-      events occur.</para>
+    <para>Earlier in this chapter (in
+      <xref linkend="svn.reposadmin.planning" />), we looked at some
+      of the important decisions that should be made before creating
+      and configuring your Subversion repository.  Now, we finally get
+      to get our hands dirty!  In this section, we'll see how to
+      actually create a Subversion repository and configure it to
+      perform custom actions when special repository events
+      occur.</para>

      <!-- ===============================================================  
-->
      <sect2 id="svn.reposadmin.basics.creating">
@@ -1338,12 +1310,10 @@
            into another repository.  And while there are few ways to do
            that, its primary strength is that it can operate
            remotely—the <quote>source</quote> and
-          <quote>sink</quote>
-          <footnote>
-            <para>Or is that, the <quote>sync</quote>?</para>
-          </footnote>
-          repositories may be on different computers from each other
-          and from <command>svnsync</command> itself.</para>
+          <quote>sink</quote><footnote><para>Or is that,
+          the <quote>sync</quote>?</para></footnote> repositories may
+          be on different computers from each other and
+          from <command>svnsync</command> itself.</para>

          <para>As you might expect, <command>svnsync</command> has a
            syntax that looks very much like every other program we've
@@ -1887,15 +1857,14 @@

        <para>If this happens to your repository, don't panic.  The
          Berkeley DB filesystem takes advantage of database
-        transactions, checkpoints, and prewrite journaling to
-        ensure that only the most catastrophic of events
-        <footnote>
-          <para>For example, hard drive + huge electromagnet =  
disaster.</para>
-        </footnote>
-        can permanently destroy a database environment.  A
-        sufficiently paranoid repository administrator will have made
-        off-site backups of the repository data in some fashion, but
-        don't head off to the tape backup storage closet just yet.</para>
+        transactions, checkpoints, and prewrite journaling to ensure
+        that only the most catastrophic of events<footnote><para>For
+        example, hard drive + huge electromagnet =
+        disaster.</para></footnote> can permanently destroy a database
+        environment.  A sufficiently paranoid repository administrator
+        will have made off-site backups of the repository data in some
+        fashion, but don't head off to the tape backup storage closet
+        just yet.</para>

        <para>Instead, use the following recipe to attempt to
          <quote>unwedge</quote> your repository:</para>
@@ -2291,29 +2260,23 @@
          compression (optionally in a completely opaque database
          system), attempting manual tweaks is unwise if not quite
          difficult, and at any rate strongly discouraged.  And once
-        data has been stored in your repository, Subversion
-        generally doesn't provide an easy way to remove that data.
-        <footnote>
-          <para>That's rather the reason you use version control at
-            all, right?</para>
-        </footnote>
-        But inevitably, there will be times when you would like to
-        manipulate the history of your repository.  You might need
-        to strip out all instances of a file that was accidentally
-        added to the repository (and shouldn't be there for whatever
-        reason).
-        <footnote>
-          <para>Conscious, cautious removal of certain bits of
-            versioned data is actually supported by real use cases.
-            That's why an <quote>obliterate</quote> feature has been
-            one of the most highly requested Subversion features,
-            and one which the Subversion developers hope to soon
-            provide.</para>
-        </footnote>
-        Or, perhaps you have multiple projects sharing a
-        single repository, and you decide to split them up into
-        their own repositories.  To accomplish tasks such as these,
-        administrators need a more manageable and malleable
+        data has been stored in your repository, Subversion generally
+        doesn't provide an easy way to remove that
+        data.<footnote><para>That's rather the reason you use version
+        control at all, right?</para></footnote>  But inevitably, there
+        will be times when you would like to manipulate the history of
+        your repository.  You might need to strip out all instances of
+        a file that was accidentally added to the repository (and
+        shouldn't be there for whatever
+        reason).<footnote><para>Conscious, cautious removal of certain
+        bits of versioned data is actually supported by real use
+        cases.  That's why an <quote>obliterate</quote> feature has
+        been one of the most highly requested Subversion features, and
+        one which the Subversion developers hope to soon
+        provide.</para></footnote>  Or, perhaps you have multiple
+        projects sharing a single repository, and you decide to split
+        them up into their own repositories.  To accomplish tasks such
+        as these, administrators need a more manageable and malleable
          representation of the data in their repositories—the
          Subversion repository dump format.</para>

@@ -2531,16 +2494,14 @@
          include leading slashes in the paths you pass to
          <command>svndumpfilter include</command> and
          <command>svndumpfilter exclude</command> (and if they don't,
-        you shouldn't).  Further, if your dump file has an inconsistent
-        usage of leading slashes for some reason,
-        <footnote>
-          <para>While <command>svnadmin dump</command> has a
-            consistent leading slash policy (to not include
-            them), other programs that generate dump data might
-            not be so consistent.</para>
-        </footnote>
-        you should probably normalize those paths so that they all
-        have, or all lack, leading slashes.</para>
+        you shouldn't).  Further, if your dump file has an
+        inconsistent usage of leading slashes for some
+        reason,<footnote><para>While <command>svnadmin dump</command>
+        has a consistent leading slash policy (to not include them),
+        other programs that generate dump data might not be so
+        consistent.</para></footnote> you should probably normalize
+        those paths so that they all have, or all lack, leading
+        slashes.</para>

        <para>Also, copied paths can give you some trouble.
          Subversion supports copy operations in the repository, where
@@ -2631,12 +2592,9 @@
          histories contained in the source and target repositories.
          For this reason, while <command>svnsync</command> cannot
          <emphasis>demand</emphasis> that the target repository be
-        read-only,
-        <footnote>
-          <para>In fact, it can't truly be read-only, or
-            <command>svnsync</command> itself would have a tough time
-            copying revision history into it.</para>
-        </footnote>
+        read-only,<footnote><para>In fact, it can't truly be
+        read-only, or <command>svnsync</command> itself would have a
+        tough time copying revision history into it.</para></footnote>
          allowing the revision history in the target repository to
          change by any mechanism other than the mirroring process is a
          recipe for disaster.</para>
@@ -2832,14 +2790,11 @@
        <para>And now comes the fun part.  With a single subcommand, we
          can tell <command>svnsync</command> to copy all the
          as-yet-unmirrored revisions from the source repository to the
-        target.
-        <footnote>
-          <para>Be forewarned that while it will take only a few
-            seconds for the average reader to parse this paragraph and
-            the sample output that follows it, the actual time
-            required to complete such a mirroring operation is, shall
-            we say, quite a bit longer.</para>
-        </footnote>
+        target.<footnote><para>Be forewarned that while it will take
+        only a few seconds for the average reader to parse this
+        paragraph and the sample output that follows it, the actual
+        time required to complete such a mirroring operation is, shall
+        we say, quite a bit longer.</para></footnote>
          The <command>svnsync synchronize</command> subcommand will
          peek into the special revision properties previously stored on
          the target repository, and determine both what repository it
@@ -3259,22 +3214,20 @@
          <emphasis>inside</emphasis> the repository's virtual versioned
          filesystem are not handled by <command>svnsync</command>.</para>

-      <para>In any backup scenario, repository administrators need
-        to be aware of how modifications to unversioned revision
+      <para>In any backup scenario, repository administrators need to
+        be aware of how modifications to unversioned revision
          properties affect their backups.  Since these changes do not
          themselves generate new revisions, they will not trigger
          post-commit hooks, and may not even trigger the
-        pre-revprop-change and post-revprop-change hooks.
-        <footnote>
-          <para><command>svnadmin setlog</command> can be called in a
-            way that bypasses the hook interface altogether.</para>
-        </footnote>
-        And since you can change revision properties without respect
-        to chronological order—you can change any revision's
-        properties at any time—an incremental backup of the
-        latest few revisions might not catch a property modification
-        to a revision that was included as part of a previous
-        backup.</para>
+        pre-revprop-change and post-revprop-change
+        hooks.<footnote><para><command>svnadmin setlog</command> can
+        be called in a way that bypasses the hook interface
+        altogether.</para></footnote>  And since you can change
+        revision properties without respect to chronological
+        order—you can change any revision's properties at any
+        time—an incremental backup of the latest few revisions
+        might not catch a property modification to a revision that was
+        included as part of a previous backup.</para>

        <para>Generally speaking, only the truly paranoid would need to
          back up their entire repository, say, every time a commit
@@ -3299,12 +3252,10 @@
          delicate balance of convenience with paranoia.  And whatever
          you do, validate your backups from time to time—what
          good is a spare tire that has a hole in it?  While all of this
-        might not save your hardware from the iron fist of Fate,
-        <footnote>
-          <para>You know—the collective term for all of her
-            <quote>fickle fingers.</quote></para>
-        </footnote>
-        it should certainly help you recover from those trying
+        might not save your hardware from the iron fist of
+        Fate,<footnote><para>You know—the collective term for
+        all of her <quote>fickle fingers.</quote></para></footnote> it
+        should certainly help you recover from those trying
          times.</para>

      </sect2>
=======================================
--- /trunk/src/en/book/ch06-server-configuration.xml	Fri Jul  1 07:34:08  
2011
+++ /trunk/src/en/book/ch06-server-configuration.xml	Tue Jul  5 09:25:22  
2011
@@ -749,11 +749,8 @@
        </itemizedlist>

        <para>The <command>svnserve</command> server, by default, knows
-        only how to send a CRAM-MD5
-        <footnote>
-          <para>See RFC 2195.</para>
-        </footnote>
-        authentication challenge.  In essence,
+        only how to send a CRAM-MD5<footnote><para>See RFC
+        2195.</para></footnote> authentication challenge.  In essence,
          the server sends a small amount of data to the client.  The
          client uses the MD5 hash algorithm to create a fingerprint of
          the data and password combined, and then sends the fingerprint
@@ -1210,25 +1207,20 @@
          chapter).  But even in the case of tunneling, you can still use the
          <filename>svnserve.conf</filename> file to block access, by
          simply setting <literal>auth-access = read</literal>
-        or <literal>auth-access = none</literal>.
-        <footnote>
-          <para>Note that using any sort of
-            <command>svnserve</command>-enforced access control at all
-            is a bit pointless; the user already has direct access to
-            the repository database.</para>
-        </footnote>
-      </para>
+        or <literal>auth-access = none</literal>.<footnote><para>Note
+        that using any sort of <command>svnserve</command>-enforced
+        access control at all is a bit pointless; the user already has
+        direct access to the repository
+        database.</para></footnote></para>

        <para>You'd think that the story of SSH tunneling would end
          here, but it doesn't.  Subversion allows you to create custom
          tunnel behaviors in your runtime <filename>config</filename>
          file (see <xref linkend="svn.advanced.confarea"/>.)  For
-        example, suppose you want to use RSH instead of SSH.
-        <footnote>
-          <para>We don't actually recommend this, since RSH
-            is notably less secure than SSH.</para>
-        </footnote>
-        In the <literal>[tunnels]</literal> section of your
+        example, suppose you want to use RSH instead of
+        SSH.<footnote><para>We don't actually recommend this, since
+        RSH is notably less secure than SSH.</para></footnote>  In
+        the <literal>[tunnels]</literal> section of your
          <filename>config</filename> file, simply define it like
          this:</para>

@@ -1447,15 +1439,13 @@
        writing—specifically, versioned
        writing—capabilities.  The result is a standardized,
        robust system that is conveniently packaged as part of the
-      Apache 2.0 software, supported by numerous operating systems
-      and third-party products, and doesn't require network
-      administrators to open up yet another custom port.
-      <footnote>
-        <para>They really hate doing that.</para>
-      </footnote>
-      While an Apache-Subversion server has more features than
-      <command>svnserve</command>, it's also a bit more difficult
-      to set up.  With flexibility often comes more complexity.</para>
+      Apache 2.0 software, supported by numerous operating systems and
+      third-party products, and doesn't require network administrators
+      to open up yet another custom port.<footnote><para>They really
+      hate doing that.</para></footnote>  While an Apache-Subversion
+      server has more features than <command>svnserve</command>, it's
+      also a bit more difficult to set up.  With flexibility often
+      comes more complexity.</para>

      <para>Much of the following discussion includes references to
        Apache configuration directives.  While some examples are given
@@ -1464,7 +1454,8 @@
        excellent documentation, publicly available on their web site at
        <ulink url="http://httpd.apache.org"/>.  For example, a general
        reference for the configuration directives is located at
-      <ulink  
url="http://httpd.apache.org/docs-2.0/mod/directives.html"/>.</para>
+      <ulink url="http://httpd.apache.org/docs-2.0/mod/directives.html"
+      />.</para>

      <para>Also, as you make changes to your Apache setup, it is likely
        that somewhere along the way a mistake will be made.  If you are
@@ -1915,14 +1906,12 @@
            some sort of SSL encryption, so that clients authenticate
            via <literal>https://</literal> instead
            of <literal>http://</literal>; at a bare minimum, you can
-          configure Apache to use a self-signed server certificate.
-          <footnote>
-            <para>While self-signed server certificates are still
-              vulnerable to a <quote>man-in-the-middle</quote> attack,
-              such an attack is much more difficult for a casual
-              observer to pull off, compared to sniffing unprotected
-              passwords.</para>
-          </footnote>
+          configure Apache to use a self-signed server
+          certificate.<footnote><para>While self-signed server
+          certificates are still vulnerable to
+          a <quote>man-in-the-middle</quote> attack, such an attack is
+          much more difficult for a casual observer to pull off,
+          compared to sniffing unprotected passwords.</para></footnote>
            Consult Apache's documentation (and OpenSSL documentation)
            about how to do that.</para>

@@ -2076,13 +2065,10 @@
            <literal>ssl-client-cert-file</literal> and
            <literal>ssl-client-cert-password</literal> variables, the
            Subversion client can automatically respond to a client
-          certificate challenge without prompting you.
-          <footnote>
-            <para>More security-conscious folk might not want to store
-              the client certificate password in the runtime
-              <filename>servers</filename> file.</para>
-          </footnote>
-        </para>
+          certificate challenge without prompting
+          you.<footnote><para>More security-conscious folk might not
+          want to store the client certificate password in the runtime
+          <filename>servers</filename> file.</para></footnote></para>

        </sect3>

@@ -3134,16 +3120,13 @@
          with outside Subversion.</para>

        <para>So, before you begin restricting users' access rights, ask
-        yourself whether there's a real, honest need for this, or whether  
it's
-        just something that <quote>sounds good</quote> to an
-        administrator.  Decide whether it's worth sacrificing some
+        yourself whether there's a real, honest need for this, or
+        whether it's just something that <quote>sounds good</quote> to
+        an administrator.  Decide whether it's worth sacrificing some
          server speed, and remember that there's very little risk
          involved; it's bad to become dependent on technology as a
-        crutch for social problems.
-        <footnote>
-          <para>A common theme in this book!</para>
-        </footnote>
-      </para>
+        crutch for social problems.<footnote><para>A common theme in
+        this book!</para></footnote></para>

        <para>As an example to ponder, consider that the Subversion
          project itself has always had a notion of who is allowed to
=======================================
--- /trunk/src/en/book/ch07-customizing-svn.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/ch07-customizing-svn.xml	Tue Jul  5 09:25:22 2011
@@ -46,25 +46,22 @@
      <sect2 id="svn.advanced.confarea.layout">
        <title>Configuration Area Layout</title>

-      <para>The first time the <command>svn</command>
-        command-line client is executed, it creates a per-user
-        configuration area.  On Unix-like systems, this area appears
-        as a directory named <filename>.subversion</filename> in the
-        user's home directory.  On Win32 systems, Subversion creates a
-        folder named <filename>Subversion</filename>, typically inside
+      <para>The first time the <command>svn</command> command-line
+        client is executed, it creates a per-user configuration area.
+        On Unix-like systems, this area appears as a directory
+        named <filename>.subversion</filename> in the user's home
+        directory.  On Win32 systems, Subversion creates a folder
+        named <filename>Subversion</filename>, typically inside
          the <filename>Application Data</filename> area of the user's
          profile directory (which, by the way, is usually a hidden
          directory).  However, on this platform, the exact location
          differs from system to system and is dictated by the Windows
-        Registry.
-        <footnote>
-          <para>The <literal>APPDATA</literal> environment variable
-            points to the <filename>Application Data</filename> area,
-            so you can always refer to this folder as
-            <filename>%APPDATA%\Subversion</filename>.</para>
-        </footnote>
-        We will refer to the per-user configuration area using its Unix
-        name, <filename>.subversion</filename>.</para>
+        Registry.<footnote><para>The <literal>APPDATA</literal>
+        environment variable points to the <filename>Application
+        Data</filename> area, so you can always refer to this folder
+        as <filename>%APPDATA%\Subversion</filename>.</para></footnote>
+        We will refer to the per-user configuration area using its
+        Unix name, <filename>.subversion</filename>.</para>

        <para>In addition to the per-user configuration area, Subversion
          also recognizes the existence of a system-wide configuration
@@ -634,11 +631,10 @@
            linkend="svn.serverconfig.svnserve.sshauth"/>.</para>

          <para>The <literal>miscellany</literal> section is where
-          everything that doesn't belong elsewhere winds up.
-          <footnote>
-            <para>Anyone for potluck dinner?</para>
-          </footnote>
-          In this section, you can find:</para>
+          everything that doesn't belong elsewhere winds
+          up.<footnote><para>Anyone for potluck
+          dinner?</para></footnote>  In this section, you can
+          find:</para>

          <variablelist>
            <varlistentry>
@@ -1210,24 +1206,22 @@

        <para>Subversion calls external diff programs with parameters
          suitable for the GNU diff utility, and expects only that the
-        external program will return with a successful error code.  For
-        most alternative diff programs, only the sixth and seventh
-        arguments—the paths of the files that represent the left and
-        right sides of the diff, respectively—are of interest.  Note
-        that Subversion runs the diff program once per modified file
-        covered by the Subversion operation, so if your program runs
-        in an asynchronous fashion (or is <quote>backgrounded</quote>),
-        you might have several instances of it all running
-        simultaneously.  Finally, Subversion expects that your program
-        return an error code of 1 if your program detected differences,
-        or 0 if it did not—any other error code is considered a
-        fatal error.
-        <footnote>
-          <para>The GNU diff manual page puts it this way: <quote>An
-            exit status of 0 means no differences were found, 1 means some
-            differences were found, and 2 means trouble.</quote></para>
-        </footnote>
-      </para>
+        external program will return with a successful error code.
+        For most alternative diff programs, only the sixth and seventh
+        arguments—the paths of the files that represent the left
+        and right sides of the diff, respectively—are of
+        interest.  Note that Subversion runs the diff program once per
+        modified file covered by the Subversion operation, so if your
+        program runs in an asynchronous fashion (or
+        is <quote>backgrounded</quote>), you might have several
+        instances of it all running simultaneously.  Finally,
+        Subversion expects that your program return an error code of 1
+        if your program detected differences, or 0 if it did
+        not—any other error code is considered a fatal
+        error.<footnote><para>The GNU diff manual page puts it this
+        way: <quote>An exit status of 0 means no differences were
+        found, 1 means some differences were found, and 2 means
+        trouble.</quote></para></footnote></para>

        <para><xref linkend="svn.advanced.externaldifftools.diff.ex-1"/>
          and <xref linkend="svn.advanced.externaldifftools.diff.ex-2"/>
=======================================
--- /trunk/src/en/book/ch08-embedding-svn.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/ch08-embedding-svn.xml	Tue Jul  5 09:25:22 2011
@@ -308,17 +308,15 @@
          <graphic fileref="images/ch08dia1.png"/>
        </figure>

-      <para>The difference here is that the Subversion filesystem has a
-        nifty third dimension that most filesystems do not
-        have—Time!
-        <footnote>
-          <para>We understand that this may come as a shock to sci-fi
-            fans who have long been under the impression that Time was
-            actually the <emphasis>fourth</emphasis> dimension, and we
-            apologize for any emotional trauma induced by our
-            assertion of a different theory.</para>
-        </footnote>
-        In the filesystem interface, nearly every function that has a
+      <para>The difference here is that the Subversion filesystem has
+        a nifty third dimension that most filesystems do not
+        have—Time!<footnote><para>We understand that this may
+        come as a shock to sci-fi fans who have long been under the
+        impression that Time was actually
+        the <emphasis>fourth</emphasis> dimension, and we apologize
+        for any emotional trauma induced by our assertion of a
+        different theory.</para></footnote>  In the filesystem
+        interface, nearly every function that has a
          <parameter>path</parameter> argument also expects a
          <parameter>root</parameter> argument.  This
          <literal>svn_fs_root_t</literal> argument describes
@@ -750,17 +748,13 @@

      <para>Another good source of information about programming against
        the Subversion APIs is the project's own hacking guidelines,
-      which you can find at <ulink
-      url="http://subversion.tigris.org/hacking.html" />.  This
+      which you can find at
+      <ulink url="http://subversion.tigris.org/hacking.html" />.  This
        document contains useful information, which, while aimed at
        developers and would-be developers of Subversion itself, is
        equally applicable to folks developing against Subversion as a
-      set of third-party libraries.
-      <footnote>
-        <para>After all, Subversion uses Subversion's APIs,
-          too.</para>
-      </footnote>
-    </para>
+      set of third-party libraries.<footnote><para>After all,
+      Subversion uses Subversion's APIs, too.</para></footnote></para>

      <!-- ===============================================================  
-->
      <sect2 id="svn.developer.usingapi.apr">
@@ -784,30 +778,26 @@
          Win32, BeOS, OS/2, and Mac OS X.</para>

        <para>In addition to providing consistent implementations of
-        system calls that differ across operating systems,
-        <footnote>
-          <para>Subversion uses ANSI system calls and datatypes as much
-            as possible.</para>
-        </footnote>
-        APR gives Subversion immediate access to many custom
-        datatypes, such as dynamic arrays and hash tables.  Subversion
-        uses these types extensively.  But
-        perhaps the most pervasive APR datatype, found in nearly every
-        Subversion API prototype, is the
+        system calls that differ across operating
+        systems,<footnote><para>Subversion uses ANSI system calls and
+        datatypes as much as possible.</para></footnote> APR gives
+        Subversion immediate access to many custom datatypes, such as
+        dynamic arrays and hash tables.  Subversion uses these types
+        extensively.  But perhaps the most pervasive APR datatype,
+        found in nearly every Subversion API prototype, is the
          <literal>apr_pool_t</literal>—the APR memory pool.
          Subversion uses pools internally for all its memory allocation
          needs (unless an external library requires a different memory
-        management mechanism for data passed through its API),
-        <footnote>
-          <para>Neon and Berkeley DB are examples of such libraries.</para>
-        </footnote>
-        and while a person coding against the Subversion APIs is not
-        required to do the same, she <emphasis>is</emphasis>
-        required to provide pools to the API functions that need them.
-        This means that users of the Subversion API must also link
-        against APR, must call <function>apr_initialize()</function>
-        to initialize the APR subsystem, and then must create and
-        manage pools for use with Subversion API calls, typically by
+        management mechanism for data passed through its
+        API),<footnote><para>Neon and Berkeley DB are examples of such
+        libraries.</para></footnote> and while a person coding against
+        the Subversion APIs is not required to do the same,
+        she <emphasis>is</emphasis> required to provide pools to the
+        API functions that need them.  This means that users of the
+        Subversion API must also link against APR, must
+        call <function>apr_initialize()</function> to initialize the
+        APR subsystem, and then must create and manage pools for use
+        with Subversion API calls, typically by
          using <function>svn_pool_create()</function>,
          <function>svn_pool_clear()</function>, and
          <function>svn_pool_destroy()</function>.</para>
@@ -970,17 +960,17 @@
            be aware that SVNKit differs from javahl in some significant
            ways.  First, while SVNKit is developed as open source
            software just like Subversion, SVNKit's license is more
-          restrictive than that of Subversion.
-          <footnote><para>Redistributions in any form must be accompanied  
by
-            information on how to obtain complete source code for the
-            software that uses SVNKit and any accompanying software that
-            uses the software that uses SVNKit. See
-            <ulink url="http://svnkit.com/license.html" /> for  
details.</para>
-          </footnote>
-          Finally, by aiming to be a pure Java Subversion library, SVNKit
-          is limited in which portions of Subversion can be reasonably
-          cloned while still keeping up with Subversion's releases.
-          This has already happened once—SVNKit cannot access  
BDB-backed
+          restrictive than that of
+          Subversion.<footnote><para>Redistributions in any form must
+          be accompanied by information on how to obtain complete
+          source code for the software that uses SVNKit and any
+          accompanying software that uses the software that uses
+          SVNKit. See <ulink url="http://svnkit.com/license.html" />
+          for details.</para></footnote>  Finally, by aiming to be a
+          pure Java Subversion library, SVNKit is limited in which
+          portions of Subversion can be reasonably cloned while still
+          keeping up with Subversion's releases.  This has already
+          happened once—SVNKit cannot access BDB-backed
            Subversion repositories via the <literal>file://</literal>
            protocol because there's no pure Java implementation of
            Berkeley DB that is file-format-compatible with the native
=======================================
--- /trunk/src/en/book/ch09-reference.xml	Fri Jul  1 07:34:08 2011
+++ /trunk/src/en/book/ch09-reference.xml	Tue Jul  5 09:25:22 2011
@@ -16,16 +16,13 @@
      <title>The Subversion Command-Line Client: svn</title>

      <para>To use the command-line client, type
-      <command>svn</command>, the subcommand you wish to use,
-      <footnote>
-        <para>Well, you don't need a subcommand to use the
-          <option>--version</option> option, but we'll get to that in
-          just a minute.</para>
-      </footnote>
-      and any options or targets that you wish to operate on—the
-      subcommand and the options need not appear in a specific order.
-      For example, all of the following are valid ways to
-      use <command>svn status</command>:</para>
+      <command>svn</command>, the subcommand you wish to
+      use,<footnote><para>Well, you don't need a subcommand to use the
+      <option>--version</option> option, but we'll get to that in just
+      a minute.</para></footnote> and any options or targets that you
+      wish to operate on—the subcommand and the options need not
+      appear in a specific order.  For example, all of the following
+      are valid ways to use <command>svn status</command>:</para>

      <informalexample>
        <screen>
@@ -5921,14 +5918,12 @@

              <para>Create a new, empty repository at the path provided.
                If the provided directory does not exist, it will be
-              created for you.
-              <footnote>
-                <para>Remember, <command>svnadmin</command> works only
-                  with local <emphasis>paths</emphasis>, not
-                  <emphasis>URLs</emphasis>.</para>
-              </footnote>
-              As of Subversion 1.2, <command>svnadmin</command>
-              creates new repositories with the
+              created for
+              you.<footnote><para>Remember, <command>svnadmin</command>
+              works only with local <emphasis>paths</emphasis>, not
+              <emphasis>URLs</emphasis>.</para></footnote>  As of
+              Subversion 1.2, <command>svnadmin</command> creates new
+              repositories with the
                <literal>FSFS</literal> filesystem backend by
                default.</para>

@@ -9844,14 +9839,10 @@

              <para>If present on a file, indicates that the file is not
                an ordinary file, but a symbolic link or other special
-              object.
-              <footnote>
-                <para>As of this writing, symbolic links are indeed
-                  the only <quote>special</quote> objects.  But there
-                  might be more in future releases of
-                  Subversion.</para>
-              </footnote>
-            </para>
+              object.<footnote><para>As of this writing, symbolic
+              links are indeed the only <quote>special</quote>
+              objects.  But there might be more in future releases of
+              Subversion.</para></footnote></para>

            </listitem>
          </varlistentry>




More information about the svnbook-dev mailing list