[svnbook commit] r2763 - in trunk/src/nb: . book

sunny256 noreply at red-bean.com
Wed Mar 28 11:52:23 CDT 2007


Author: sunny256
Date: Wed Mar 28 11:52:22 2007
New Revision: 2763

Log:
Sync the Norwegian and English book at r2575.

* src/nb/book/app-quickstart.xml
* src/nb/book/ch-advanced-topics.xml
* src/nb/book/ch-developer-info.xml
* src/nb/book/ch-preface.xml
* src/nb/book/ch-repository-admin.xml
  Merged r2572:r2575 (r2573, r2574) from the ora-2e-reorg branch.

* src/nb/LAST_UPDATED
  Updated by "make sync HEAD=2575".


Modified:
   trunk/src/nb/LAST_UPDATED
   trunk/src/nb/book/app-quickstart.xml
   trunk/src/nb/book/ch-advanced-topics.xml
   trunk/src/nb/book/ch-developer-info.xml
   trunk/src/nb/book/ch-preface.xml
   trunk/src/nb/book/ch-repository-admin.xml

Modified: trunk/src/nb/LAST_UPDATED
==============================================================================
--- trunk/src/nb/LAST_UPDATED	(original)
+++ trunk/src/nb/LAST_UPDATED	Wed Mar 28 11:52:22 2007
@@ -1 +1 @@
-2572
+2575

Modified: trunk/src/nb/book/app-quickstart.xml
==============================================================================
--- trunk/src/nb/book/app-quickstart.xml	(original)
+++ trunk/src/nb/book/app-quickstart.xml	Wed Mar 28 11:52:22 2007
@@ -115,11 +115,8 @@
       libraries).  But optional portions of Subversion have many other
       dependencies, such as Berkeley DB and possibly Apache httpd.  If
       you want to do a complete build, make sure you have all of the
-      packages documented in the <filename>INSTALL</filename> file.
-      If you plan to work on Subversion itself, you can use your
-      client program to grab the latest, bleeding-edge source code.
-      This is documented in <xref
-      linkend="svn.developer.contrib.get-code"/>.</para>
+      packages documented in the <filename>INSTALL</filename>
+      file.</para>
     @ENGLISH }}} -->
     <para>Du kan også bygge Subversion direkte fra kildekode.
       Siste versjon av programmet kan hentes fra Subversions hjemmeside.
@@ -132,11 +129,80 @@
       Men valgfrie deler av Subversion har mange andre avhengigheter, 
       som Berkeley DB og muligens Apache httpd.
       Hvis du vil foreta en komplett kompilering, vær sikker på at du 
-      har alle pakkene dokumentert i <filename>INSTALL</filename>-fila.
-      Hvis du planlegger å arbeide på selve Subversion, kan du bruke 
-      svn-klienten din for å hente den siste rykende ferske kildekoden.
-      Dette er dokumentert i <xref 
-      linkend="svn.developer.contrib.get-code"/>.</para>
+      har alle pakkene dokumentert i 
+      <filename>INSTALL</filename>-fila.</para>
+
+    <!-- @ENGLISH {{{
+    <para>If you're one of those folks that likes to use bleeding-edge
+      software, you can also get the Subversion source code from the
+      Subversion repository in which it lives.  Obviously, you'll need
+      to already have a Subversion client on hand to do this.  But
+      once you do, you can checkout a working copy of the Subversion source
+      repository from <ulink url="http://svn.collab.net/repos/svn/trunk/"/>:
+      <footnote>
+        <para>Note that the URL checked out in the example above
+          ends not with <literal>svn</literal>, but with a
+          subdirectory thereof called <literal>trunk</literal>.  See
+          our discussion of Subversion's branching and tagging model
+          for the reasoning behind this.</para>
+      </footnote></para>
+    @ENGLISH }}} -->
+    <para>Hvis du er av den typen som liker å bruke rykende fersk 
+      programvare, kan du også hente kildekoden for Subversion fra 
+      Subversion-depotet hvor den er lagret.
+      For å gjøre dette, trenger du en Subversion-klient.
+      Med den kan du hente ut en arbeidskopi av Subversion-depotet fra 
+      <ulink url="http://svn.collab.net/repos/svn/trunk/"/>:<footnote>
+        <para>Legg merke til at URLen som hentes ut i eksempelet ovenfor 
+          ikke ender med <literal>svn</literal>, men med en underkatalog 
+          fra den kalt <literal>trunk</literal>.
+          Se diskusjonen vår om Subversions forgrenings- og merkemodell 
+          for begrunnelsen for dette.</para>
+      </footnote></para>
+
+    <!-- @ENGLISH {{{
+    <screen>
+$ svn checkout http://svn.collab.net/repos/svn/trunk subversion
+A    subversion/HACKING
+A    subversion/INSTALL
+A    subversion/README
+A    subversion/autogen.sh
+A    subversion/build.conf
+…
+</screen>
+    @ENGLISH }}} -->
+    <screen>
+$ svn checkout http://svn.collab.net/repos/svn/trunk subversion
+A    subversion/HACKING
+A    subversion/INSTALL
+A    subversion/README
+A    subversion/autogen.sh
+A    subversion/build.conf
+…
+</screen>
+
+    <!-- @ENGLISH {{{
+    <para>The above command will checkout the bleeding-edge, latest
+      version of the Subversion source code into a subdirectory
+      named <filename>subversion</filename> in your current working
+      directory.  Obviously, you can adjust that last argument as
+      you see fit.  Regardless of what you call the new working copy
+      directory, though, after this operation completes, you will
+      now have the Subversion source code.  Of course, you will
+      still need to fetch a few helper libraries (apr, apr-util,
+      etc.)—see the <filename>INSTALL</filename> file in the
+      top level of the working copy for details.</para>
+    @ENGLISH }}} -->
+    <para>Kommandoen ovenfor vil hente ut den rykende ferske og nyeste 
+      versjonen av kildekoden for Subversion inn i en underkatalog kalt 
+      <filename>subversion</filename>.
+      Du kan selvfølgelig forandre det siste parameteret til det du syns 
+      passer.
+      Men, uansett hva du kaller den nye arbeidskopien, etter at denne 
+      operasjonen er fullført, vil du ha kildekoden til Subversion.
+      Du vil også trenge å hente en del programbiblioteker (apr, 
+      apr-util og så videre) – se <filename>INSTALL</filename>-fila i 
+      toppkatalogen i arbeidskopien for detaljene.</para>
 
   </sect1>
 

Modified: trunk/src/nb/book/ch-advanced-topics.xml
==============================================================================
--- trunk/src/nb/book/ch-advanced-topics.xml	(original)
+++ trunk/src/nb/book/ch-advanced-topics.xml	Wed Mar 28 11:52:22 2007
@@ -94,6 +94,14 @@
     @ENGLISH }}} -->
     <title>Egenskaper</title>
 
+    <!-- ¤ Vi oversetter vel ikke sånt? Sikkert ikke. -->
+    <!-- @ENGLISH {{{
+    <para>### TODO:  This section needs love.  It needs to not devolve
+      into a property-by-property reference keyed on property names,
+      but should instead remain high-level and functionally-keyed.
+      Let the Reference be the by-propname lookup. ###</para>
+    @ENGLISH }}} -->
+
     <!-- @ENGLISH {{{
     <para>We've already covered in detail how Subversion stores and
       retrieves various versions of files and directories in its

Modified: trunk/src/nb/book/ch-developer-info.xml
==============================================================================
--- trunk/src/nb/book/ch-developer-info.xml	(original)
+++ trunk/src/nb/book/ch-developer-info.xml	Wed Mar 28 11:52:22 2007
@@ -2,26 +2,26 @@
   <title>Developer Information</title>
   
   <simplesect>
-    <para>Subversion is an open-source software project developed
-      under an Apache-style software license.  The project is
-      financially backed by CollabNet, Inc., a California-based
-      software development company.  The community that has formed
-      around the development of Subversion always welcomes new members
-      who can donate their time and attention to the project.
-      Volunteers are encouraged to assist in any way they can, whether
-      that means finding and diagnosing bugs, refining existing source
-      code, or fleshing out whole new features.</para>
-    
-    <para>This chapter is for those who wish to assist in the
-      continued evolution of Subversion by actually getting their
-      hands dirty with the source code.  We will cover some of the
-      software's more intimate details, the kind of technical
-      nitty-gritty that those developing Subversion itself—or
-      writing entirely new tools based on the Subversion
-      libraries—should be aware of.  If you don't foresee
-      yourself participating with the software at such a level, feel
-      free to skip this chapter with confidence that your experience
-      as a Subversion user will not be affected.</para>
+
+    <para>Subversion has a modular design, implemented as a collection
+      of C libraries.  Each library has a well-defined purpose and
+      interface, and those interfaces are available not only for
+      Subversion itself to use, but for any software that wishes to
+      embed or otherwise programmatically control Subversion.  Most of
+      those interfaces are available not only in C, but also in
+      higher-level languages such as Python or Java.</para>
+
+    <para>This chapter is for those who wish to interact with
+      Subversion through its public Application Programming Interface
+      (API) or various language bindings.  If you wish to write robust
+      wrapper scripts around Subversion functionality to simplify your
+      own life, are trying to develop more complex integrations
+      between Subversion and other pieces of software, or just have an
+      interest in Subversion's various library modules and what they
+      offer, this chapter is for you.  If, however, you don't foresee
+      yourself participating with Subversion at such a level, feel
+      free to skip this chapter with the confidence that your
+      experience as a Subversion user will not be affected.</para>
 
   </simplesect>
 
@@ -31,14 +31,13 @@
   <sect1 id="svn.developer.layerlib">
     <title>Layered Library Design</title>
 
-    <para>Subversion has a modular design, implemented as a collection
-      of C libraries.  Each library has a well-defined purpose and
-      interface, and most modules are said to exist in one of three
-      main layers—the Repository Layer, the Repository Access
-      (RA) Layer, or the Client Layer.  We will examine these layers
-      shortly, but first, see our brief inventory of Subversion's
-      libraries in <xref linkend="svn.developer.layerlib.tbl-1"/>.  For the sake
-      of consistency, we will refer to the libraries by their
+    <para>Each of Subversion's core libraries can be said to exist in
+      one of three main layers—the Repository Layer, the
+      Repository Access (RA) Layer, or the Client Layer.  We will
+      examine these layers shortly, but first, see our brief inventory
+      of Subversion's libraries in <xref
+      linkend="svn.developer.layerlib.tbl-1"/>.  For the sake of
+      consistency, we will refer to the libraries by their
       extensionless Unix library names (e.g.: libsvn_fs, libsvn_wc,
       mod_dav_svn).</para>
 
@@ -881,9 +880,11 @@
         pools to the API functions that need them.  This means that
         users of the Subversion API must also link against APR, must
         call <function>apr_initialize()</function> to initialize the
-        APR subsystem, and then must acquire a pool for use with
-        Subversion API calls.  See <xref linkend="svn.developer.pools"/>
-        for more information.</para>
+        APR subsystem, and then must create and manage pools for use with
+        Subversion API calls, typically by using
+        <function>svn_pool_create()</function>,
+        <function>svn_pool_clear()</function>, and 
+        <function>svn_pool_destroy()</function>.</para>
 
     </sect2>
 
@@ -1423,396 +1424,6 @@
       clients.</para>
   </sect1>
 
-  <!-- ================================================================= -->
-  <!-- ================================================================= -->
-  <!-- ================================================================= -->
-  <sect1 id="svn.developer.pools">
-    <title>Programming with Memory Pools</title>
-
-    <para>Almost every developer who has used the C programming
-      language has at some point sighed at the daunting task of
-      managing memory usage.  Allocating enough memory to use, keeping
-      track of those allocations, freeing the memory when you no
-      longer need it—these tasks can be quite complex.  And of
-      course, failure to do those things properly can result in a
-      program that crashes itself, or worse, crashes the computer.
-      Fortunately, the APR library that Subversion depends on for
-      portability provides the <structname>apr_pool_t</structname>
-      type, which represents a pool from which the application may
-      allocate memory.</para>
-
-    <para>A memory pool is an abstract representation of a chunk of
-      memory allocated for use by a program.  Rather than requesting
-      memory directly from the OS using the standard
-      <function>malloc()</function> and friends, programs that link
-      against APR can simply request that a pool of memory be created
-      (using the <function>apr_pool_create()</function> function).
-      APR will allocate a moderately sized chunk of memory from the
-      OS, and that memory will be instantly available for use by the
-      program.  Any time the program needs some of the pool memory, it
-      uses one of the APR pool API functions, like
-      <function>apr_palloc()</function>, which returns a generic
-      memory location from the pool.  The program can keep requesting
-      bits and pieces of memory from the pool, and APR will keep
-      granting the requests.  Pools will automatically grow in size to
-      accommodate programs that request more memory than the original
-      pool contained, until of course there is no more memory
-      available on the system.</para>
-
-    <para>Now, if this were the end of the pool story, it would hardly
-      have merited special attention.  Fortunately, that's not the
-      case.  Pools can not only be created; they can also be cleared
-      and destroyed, using <function>apr_pool_clear()</function> and
-      <function>apr_pool_destroy()</function> respectively.  This
-      gives developers the flexibility to allocate several—or
-      several thousand—things from the pool, and then clean up
-      all of that memory with a single function call!  Further, pools
-      have hierarchy.  You can make <quote>subpools</quote> of any
-      previously created pool.  When you clear a pool, all of its
-      subpools are destroyed; if you destroy a pool, it and its
-      subpools are destroyed.</para>
-
-    <para>Before we go further, developers should be aware that they
-      probably will not find many calls to the APR pool functions we
-      just mentioned in the Subversion source code.  APR pools offer
-      some extensibility mechanisms, like the ability to have custom
-      <quote>user data</quote> attached to the pool, and mechanisms
-      for registering cleanup functions that get called when the pool
-      is destroyed.  Subversion makes use of these extensions in a
-      somewhat non-trivial way.  So, Subversion supplies (and most of
-      its code uses) the wrapper functions
-      <function>svn_pool_create()</function>,
-      <function>svn_pool_clear()</function>, and
-      <function>svn_pool_destroy()</function>.</para>
-
-    <para>While pools are helpful for basic memory management, the
-      pool construct really shines in looping and recursive scenarios.
-      Since loops are often unbounded in their iterations, and
-      recursions in their depth, memory consumption in these areas of
-      the code can become unpredictable.  Fortunately, using nested
-      memory pools can be a great way to easily manage these
-      potentially hairy situations.  The following example
-      demonstrates the basic use of nested pools in a situation that
-      is fairly common—recursively crawling a directory tree,
-      doing some task to each thing in the tree.</para>
-
-    <example id="svn.developer.pools.ex-1">
-      <title>Effective Pool Usage</title>
-      <programlisting>
-/* Recursively crawl over DIRECTORY, adding the paths of all its file
-   children to the FILES array, and doing some task to each path
-   encountered.  Use POOL for the all temporary allocations, and store
-   the hash paths in the same pool as the hash itself is allocated in.  */
-static apr_status_t 
-crawl_dir (apr_array_header_t *files,
-           const char *directory,
-           apr_pool_t *pool)
-{
-  apr_pool_t *hash_pool = files->pool;  /* array pool */
-  apr_pool_t *subpool = svn_pool_create (pool);  /* iteration pool */
-  apr_dir_t *dir;
-  apr_finfo_t finfo;
-  apr_status_t apr_err;
-  apr_int32_t flags = APR_FINFO_TYPE | APR_FINFO_NAME;
-
-  apr_err = apr_dir_open (&dir, directory, pool);
-  if (apr_err)
-    return apr_err;
-
-  /* Loop over the directory entries, clearing the subpool at the top of
-     each iteration.  */
-  for (apr_err = apr_dir_read (&finfo, flags, dir);
-       apr_err == APR_SUCCESS;
-       apr_err = apr_dir_read (&finfo, flags, dir))
-    {
-      const char *child_path;
-
-      /* Clear the per-iteration SUBPOOL.  */
-      svn_pool_clear (subpool);
-
-      /* Skip entries for "this dir" ('.') and its parent ('..').  */
-      if (finfo.filetype == APR_DIR)
-        {
-          if (finfo.name[0] == '.'
-              && (finfo.name[1] == '\0'
-                  || (finfo.name[1] == '.' && finfo.name[2] == '\0')))
-            continue;
-        }
-
-      /* Build CHILD_PATH from DIRECTORY and FINFO.name.  */
-      child_path = svn_path_join (directory, finfo.name, subpool);
-
-      /* Do some task to this encountered path. */
-      do_some_task (child_path, subpool);
-
-      /* Handle subdirectories by recursing into them, passing SUBPOOL
-         as the pool for temporary allocations.  */
-      if (finfo.filetype == APR_DIR)
-        {
-          apr_err = crawl_dir (files, child_path, subpool);
-          if (apr_err)
-            return apr_err;
-        }
-
-      /* Handle files by adding their paths to the FILES array.  */
-      else if (finfo.filetype == APR_REG)
-        {
-          /* Copy the file's path into the FILES array's pool.  */
-          child_path = apr_pstrdup (hash_pool, child_path);
-
-          /* Add the path to the array.  */
-          (*((const char **) apr_array_push (files))) = child_path;
-        }
-    }
-
-  /* Destroy SUBPOOL.  */
-  svn_pool_destroy (subpool);
-
-  /* Check that the loop exited cleanly. */
-  if (apr_err)
-    return apr_err;
-
-  /* Yes, it exited cleanly, so close the dir. */
-  apr_err = apr_dir_close (dir);
-  if (apr_err)
-    return apr_err;
-
-  return APR_SUCCESS;
-}
-</programlisting>
-    </example>
-
-    <para>The previous example demonstrates effective pool usage in
-      <emphasis>both</emphasis> looping and recursive situations.
-      Each recursion begins by making a subpool of the pool passed to
-      the function.  This subpool is used for the looping region, and
-      cleared with each iteration.  The result is memory usage is
-      roughly proportional to the depth of the recursion, not to total
-      number of file and directories present as children of the
-      top-level directory.  When the first call to this recursive
-      function finally finishes, there is actually very little data
-      stored in the pool that was passed to it.  Now imagine the extra
-      complexity that would be present if this function had to
-      <function>alloc()</function> and <function>free()</function>
-      every single piece of data used!</para>
-    
-    <para>Pools might not be ideal for every application, but they are
-      extremely useful in Subversion.  As a Subversion developer,
-      you'll need to grow comfortable with pools and how to wield them
-      correctly.  Memory usage bugs and bloating can be difficult to
-      diagnose and fix regardless of the API, but the pool construct
-      provided by APR has proven a tremendously convenient,
-      time-saving bit of functionality.</para>
-
-  </sect1>
-
-  <!-- ================================================================= -->
-  <!-- ================================================================= -->
-  <!-- ================================================================= -->
-  <sect1 id="svn.developer.contrib">
-    <title>Contributing to Subversion</title>
-    
-    <para>The official source of information about the Subversion
-      project is, of course, the project's website at
-      <ulink url="http://subversion.tigris.org/"/>.  There you can
-      find information about getting access to the source code and
-      participating on the discussion lists.  The Subversion community
-      always welcomes new members.  If you are interested in
-      participating in this community by contributing changes to the
-      source code, here are some hints on how to get started.</para>
-
-    <!-- =============================================================== -->
-    <sect2 id="svn.developer.contrib.join">
-      <title>Join the Community</title>
-      
-      <para>The first step in community participation is to find a way
-        to stay on top of the latest happenings.  To do this most
-        effectively, you will want to subscribe to the main developer
-        discussion list (<email>dev at subversion.tigris.org</email>) and
-        commit mail list (<email>svn at subversion.tigris.org</email>).
-        By following these lists even loosely, you will have access
-        to important design discussions, be able to see actual changes
-        to Subversion source code as they occur, and be able to
-        witness peer reviews of those changes and proposed changes.
-        These email based discussion lists are the primary
-        communication media for Subversion development.  See the
-        Mailing Lists section of the website for other
-        Subversion-related lists you might be interested in.</para>
-
-      <para>But how do you know what needs to be done?  It is quite
-        common for a programmer to have the greatest intentions of
-        helping out with the development, yet be unable to find a good
-        starting point.  After all, not many folks come to the
-        community having already decided on a particular itch they
-        would like to scratch.  But by watching the developer
-        discussion lists, you might see mentions of existing bugs or
-        feature requests fly by that particularly interest you.  Also,
-        a great place to look for outstanding, unclaimed tasks is the
-        Issue Tracking database on the Subversion website.  There you
-        will find the current list of known bugs and feature requests.
-        If you want to start with something small, look for issues
-        marked as <quote>bite-sized</quote>.</para>
-      
-    </sect2>
-    
-    <!-- =============================================================== -->
-    <sect2 id="svn.developer.contrib.get-code">
-      <title>Get the Source Code</title>
-      
-      <para>To edit the code, you need to have the code.  This means
-        you need to check out a working copy from the public
-        Subversion source repository.  As straightforward as that
-        might sound, the task can be slightly tricky.  Because
-        Subversion's source code is versioned using Subversion itself,
-        you actually need to <quote>bootstrap</quote> by getting a
-        working Subversion client via some other method.  The most
-        common methods include downloading the latest binary
-        distribution (if such is available for your platform), or
-        downloading the latest source tarball and building your own
-        Subversion client.  If you build from source, make sure to
-        read the <filename>INSTALL</filename> file in the top level of
-        the source tree for instructions.</para>
-
-      <para>After you have a working Subversion client, you are now
-        poised to checkout a working copy of the Subversion source
-        repository from <ulink
-         url="http://svn.collab.net/repos/svn/trunk/"/>:
-        <footnote>
-          <para>Note that the URL checked out in the example above
-            ends not with <literal>svn</literal>, but with a
-            subdirectory thereof called <literal>trunk</literal>.  See
-            our discussion of Subversion's branching and tagging model
-            for the reasoning behind this.</para>
-        </footnote></para>
-
-      <screen>
-$ svn checkout http://svn.collab.net/repos/svn/trunk subversion
-A    subversion/HACKING
-A    subversion/INSTALL
-A    subversion/README
-A    subversion/autogen.sh
-A    subversion/build.conf
-…
-</screen>
-
-      <para>The above command will checkout the bleeding-edge, latest
-        version of the Subversion source code into a subdirectory
-        named <filename>subversion</filename> in your current working
-        directory.  Obviously, you can adjust that last argument as
-        you see fit.  Regardless of what you call the new working copy
-        directory, though, after this operation completes, you will
-        now have the Subversion source code.  Of course, you will
-        still need to fetch a few helper libraries (apr, apr-util,
-        etc.)—see the <filename>INSTALL</filename> file in the
-        top level of the working copy for details.</para>
-
-    </sect2>
-
-    <!-- =============================================================== -->
-    <sect2 id="svn.developer.contrib.hacking">
-      <title>Become Familiar with Community Policies</title>
-      
-      <para>Now that you have a working copy containing the latest
-        Subversion source code, you will most certainly want to take a
-        cruise through the <quote>Hacker's Guide to Subversion</quote>,
-        which is available either as the
-        <filename>www/hacking.html</filename> file in the working copy,
-        or on the Subversion website at <ulink
-          url="http://subversion.tigris.org/hacking.html"/>.  This guide
-        contains general instructions for contributing to Subversion,
-        including how to properly format your source code for
-        consistency with the rest of the codebase, how to describe your
-        proposed changes with an effective change log message, how to
-        test your changes, and so on.  Commit privileges on the
-        Subversion source repository are earned—a government by
-        meritocracy.
-        <footnote>
-          <para>While this may superficially appear as some sort of
-            elitism, this <quote>earn your commit privileges</quote>
-            notion is about efficiency—whether it costs more in
-            time and effort to review and apply someone else's changes
-            that are likely to be safe and useful, versus the
-            potential costs of undoing changes that are
-            dangerous.</para>
-        </footnote>
-        The <quote>Hacker's Guide</quote> is an invaluable resource when
-        it comes to making sure that your proposed changes earn the
-        praises they deserve without being rejected on
-        technicalities.</para>
-
-    </sect2>
-
-    <!-- =============================================================== -->
-    <sect2 id="svn.developer.contrib.code-and-test">
-      <title>Make and Test Your Changes</title>
-      
-      <para>With the code and community policy understanding in hand,
-        you are ready to make your changes.  It is best to try to make
-        smaller but related sets of changes, even tackling larger
-        tasks in stages, instead of making huge, sweeping
-        modifications.  Your proposed changes will be easier to
-        understand (and therefore easier to review) if you disturb
-        the fewest lines of code possible to accomplish your task
-        properly.  After making each set of proposed changes, your
-        Subversion tree should be in a state in which the software
-        compiles with no warnings.</para>
-
-      <para>Subversion has a fairly thorough
-        <footnote>
-          <para>You might want to grab some popcorn.
-            <quote>Thorough</quote>, in this instance, translates to
-            somewhere in the neighborhood of thirty minutes of
-            non-interactive machine churn.</para>
-        </footnote>
-        regression test suite, and your proposed changes are expected
-        to not cause any of those tests to fail.  By running
-        <command>make check</command> (in Unix) from the top of the
-        source tree, you can sanity-check your changes.  The fastest
-        way to get your code contributions rejected (other than
-        failing to supply a good log message) is to submit changes
-        that cause failure in the test suite.</para>
-
-      <!-- ### TODO: Describe building and testing on Windows. -->
-
-      <para>In the best-case scenario, you will have actually added
-        appropriate tests to that test suite which verify that your
-        proposed changes work as expected.  In fact,
-        sometimes the best contribution a person can make is solely
-        the addition of new tests.  You can write regression tests for
-        functionality that currently works in Subversion as a way to
-        protect against future changes that might trigger failure in
-        those areas.  Also, you can write new tests that demonstrate
-        known failures.  For this purpose, the Subversion test suite
-        allows you to specify that a given test is expected to fail
-        (called an <literal>XFAIL</literal>), and so long as
-        Subversion fails in the way that was expected, a test result
-        of <literal>XFAIL</literal> itself is considered a success.
-        Ultimately, the better the test suite, the less time wasted on
-        diagnosing potentially obscure regression bugs.</para>
-
-    </sect2>
-
-    <!-- =============================================================== -->
-    <sect2 id="svn.developer.contrib.submit">
-      <title>Donate Your Changes</title>
-      
-      <para>After making your modifications to the source code,
-        compose a clear and concise log message to describe those
-        changes and the reasons for them.  Then, send an email to the
-        developers list containing your log message and the output of
-        <command>svn diff</command> (from the top of your Subversion
-        working copy).  If the community members consider your changes
-        acceptable, someone who has commit privileges (permission to
-        make new revisions in the Subversion source repository) will
-        add your changes to the public source code tree.  Recall that
-        permission to directly commit changes to the repository is
-        granted on merit—if you demonstrate comprehension of
-        Subversion, programming competency, and a <quote>team
-        spirit</quote>, you will likely be awarded that
-        permission.</para>
-
-    </sect2>
-  </sect1>
 </chapter>
 
 <!--

Modified: trunk/src/nb/book/ch-preface.xml
==============================================================================
--- trunk/src/nb/book/ch-preface.xml	(original)
+++ trunk/src/nb/book/ch-preface.xml	Wed Mar 28 11:52:22 2007
@@ -743,17 +743,13 @@
           you wish—it's under a free license.  Of course,
           rather than distribute your own private version of this
           book, we'd much rather you send feedback and patches to the
-          Subversion developer community.  See <xref
-          linkend="svn.developer.contrib"/> to learn about joining this
-          community.</para>
+          Subversion developer community.</para>
         @ENGLISH }}} -->
         <para>Du kan distribuere og gjøre forandringer til denne boka så 
           mye du ønsker – den er under en fri lisens.
           Selvfølgelig, istedenfor at du distribuerer din egen private 
           versjon av boka, vil vi heller at du sender respons og patcher 
-          til utviklermiljøet for Subversion.
-          Se <xref linkend="svn.developer.contrib"/> for å lære hvordan 
-          du deltar i dette fellesskapet.</para>
+          til utviklermiljøet for Subversion.</para>
       </listitem>
     </itemizedlist>
     

Modified: trunk/src/nb/book/ch-repository-admin.xml
==============================================================================
--- trunk/src/nb/book/ch-repository-admin.xml	(original)
+++ trunk/src/nb/book/ch-repository-admin.xml	Wed Mar 28 11:52:22 2007
@@ -6,6 +6,11 @@
 
   <simplesect>
 
+    <!-- ¤ Oversettes ikke, men fjernes fra den norske. -->
+    <!-- @ENGLISH {{{
+    <para>### TODO:  Heavy (re-)construction will be happenin' here! ###</para>
+    @ENGLISH }}} -->
+
     <!-- @ENGLISH {{{
     <para>The Subversion repository is the central storehouse of
       versioned data for any number of projects.  As such, it becomes




More information about the svnbook-dev mailing list