[svnbook commit] r3500 - * trunk/src/de/book/ch08-embedding-svn.xml

codesite-noreply at google.com codesite-noreply at google.com
Mon May 4 15:03:46 CDT 2009


Author: jmfelderhoff at gmx.eu
Date: Mon May  4 11:15:41 2009
New Revision: 3500

Modified:
    trunk/src/de/book/ch08-embedding-svn.xml

Log:
* trunk/src/de/book/ch08-embedding-svn.xml
   - Fixes ticket #246 (cf. http://www.svnbook.de/report/6).


Modified: trunk/src/de/book/ch08-embedding-svn.xml
==============================================================================
--- trunk/src/de/book/ch08-embedding-svn.xml	(original)
+++ trunk/src/de/book/ch08-embedding-svn.xml	Mon May  4 11:15:41 2009
@@ -54,8 +54,12 @@
    <!-- =================================================================  
-->
    <!-- =================================================================  
-->
    <sect1 id="svn.developer.layerlib">
+<!--
      <title>Layered Library Design</title>
+-->
+    <title>Schichtenmodell der Bibliotheken</title>

+<!--
      <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 (see <xref
@@ -65,89 +69,163 @@
        will refer to the libraries by their extensionless Unix library
        names (<filename>libsvn_fs</filename>,  
<filename>libsvn_wc</filename>,
        <filename>mod_dav_svn</filename>, etc.).</para>
+-->
+    <para>Jede der Kernbibliotheken von Subversion gehört zu einer von
+      drei Schichten – der Repository-Schicht, der
+      Repository-Zugriffs-Schicht oder der Client-Schicht (siehe <xref
+      linkend="svn.intro.architecture.dia-1" /> im Vorwort). Wir
+      werden diese Schichten gleich untersuchen, doch zunächst wollen
+      wir eine kurze Zusammenfassung der verschiedenen Bibliotheken
+      präsentieren. Aus Konsistenzgründen beziehen wir uns auf die
+      Bibliotheken mit ihren Unix-Namen ohne Dateiendung
+      (<filename>libsvn_fs</filename>, <filename>libsvn_wc</filename>,
+      <filename>mod_dav_svn</filename>, usw.).</para>

      <variablelist>
        <varlistentry>
          <term>libsvn_client</term>
+<!--
          <listitem><para>Primary interface for client
            programs</para></listitem>
+-->
+        <listitem><para>Hauptschnittstelle für
+          Client-Programme</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_delta</term>
+<!--
          <listitem><para>Tree and byte-stream differencing
            routines</para></listitem>
+-->
+        <listitem><para>Prozeduren zum Vergleichen von Bäumen und
+          Byte-Strömen</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_diff</term>
+<!--
          <listitem><para>Contextual differencing and merging
            routines</para></listitem>
+-->
+        <listitem><para>Prozeduren für kontextuelle Vergleiche und
+          Zusammenführungen</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_fs</term>
+<!--
          <listitem><para>Filesystem commons and module
            loader</para></listitem>
+-->
+        <listitem><para>Gemeinsame Dateisystemprozeduren und
+          Modullader</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_fs_base</term>
+<!--
          <listitem><para>The Berkeley DB filesystem
            backend</para></listitem>
+-->
+        <listitem><para>Das Berkeley-DB-Dateisystem</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_fs_fs</term>
+<!--
          <listitem><para>The native filesystem (FSFS)
            backend</para></listitem>
+-->
+        <listitem><para>Das FSFS-Dateisystem</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_ra</term>
+<!--
          <listitem><para>Repository Access commons and module
            loader</para></listitem>
+-->
+        <listitem><para>Gemeinsame Prozeduren für den
+          Repository-Zugriff und Modullader</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_ra_local</term>
+<!--
          <listitem><para>The local Repository Access
            module</para></listitem>
+-->
+        <listitem><para>Modul für den lokalen
+          Repository-Zugriff</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_ra_neon</term>
+<!--
          <listitem><para>The WebDAV Repository Access
            module</para></listitem>
+-->
+        <listitem><para>Modul für den
+          WebDAV-Repository-Zugriff</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_ra_serf</term>
+<!--
          <listitem><para>Another (experimental) WebDAV Repository
            Access module</para></listitem>
+-->
+        <listitem><para>Ein weiteres (experimentelles) Modul für den
+          WebDAV-Repository-Zugriff</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_ra_svn</term>
+<!--
          <listitem><para>The custom protocol Repository Access
            module</para></listitem>
+-->
+        <listitem><para>Repository-Zugriff über das spezielle
+          Protokoll</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_repos</term>
+<!--
          <listitem><para>Repository interface</para></listitem>
+-->
+        <listitem><para>Repository-Schnittstelle</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_subr</term>
+<!--
          <listitem><para>Miscellaneous helpful
            subroutines</para></listitem>
+-->
+        <listitem><para>Verschiedene nützliche
+          Prozeduren</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>libsvn_wc</term>
+<!--
          <listitem><para>The working copy management
            library</para></listitem>
+-->
+        <listitem><para>Die Bibliothek zur Verwaltung der
+          Arbeitskopie</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>mod_authz_svn</term>
+<!--
          <listitem><para>Apache authorization module for Subversion
            repositories access via WebDAV</para></listitem>
+-->
+        <listitem><para>Apache-Authorisierungs-Modul für den
+          Subversion-Zugriff über WebDAV</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>mod_dav_svn</term>
+<!--
          <listitem><para>Apache module for mapping WebDAV operations to
            Subversion ones</para></listitem>
+-->
+        <listitem><para>Apache-Modul, zur Abbildung von
+          WebDAV-Operationen auf solche von
+          Subversion</para></listitem>
        </varlistentry>
      </variablelist>

+<!--
      <para>The fact that the word <quote>miscellaneous</quote>
        appears only once in the previous list is a good sign.  The
        Subversion development team is serious about making sure that
@@ -157,7 +235,19 @@
        you can quickly formulate that kind of <quote>big
        picture</quote> that allows you to pinpoint the location of
        certain pieces of functionality with relative ease.</para>
+-->
+    <para>Die Tatsache, dass das Wort <quote>verschiedene</quote> nur
+      einmal in der obigen Liste auftaucht, ist ein gutes Zeichen. Das
+      Entwicklerteam von Subversion nimmt es ernst damit, dass
+      Funktionen in den richtigen Schichten und Bibliotheken
+      untergebracht werden. Der vielleicht größte Vorteil des
+      modularen Entwurfs liegt aus Sicht eines Entwicklers in der
+      Abwesenheit von Komplexität. Als Entwickler können Sie sich
+      schnell das <quote>große Bild</quote> vorstellen, das es Ihnen
+      erlaubt, bestimmte Funktionsbereiche relativ einfach zu
+      lokalisieren.</para>

+<!--
      <para>Another benefit of modularity is the ability to replace a
        given module with a whole new library that implements the same
        API without affecting the rest of the code base.  In some sense,
@@ -175,7 +265,28 @@
        libraries that implement the same functionality in different
        ways—both are plug-ins to the common
        <filename>libsvn_fs</filename> library.</para>
+-->
+    <para>Ein weiterer Vorteil der Modularität ist die Möglichkeit,
+      ein gegebenes Modul durch eine völlig neue Bibliothek zu
+      ersetzen, die dieselbe Programmierschnittstelle implementiert,
+      ohne den Rest der Code-Basis zu beeinflussen. Eigentlich
+      passiert das bereits mit Subversion. Die Bibliotheken
+      <filename>libsvn_ra_local</filename>,
+      <filename>libsvn_ra_neon</filename>,
+      <filename>libsvn_ra_serf</filename> und
+      <filename>libsvn_ra_svn</filename> implementieren alle die
+      gleiche Schnittstelle und funktionieren als Plug-In für
+      <filename>libsvn_ra</filename>.  Alle vier kommunizieren mir der
+      Repository-Schicht – <filename>libsvn_ra_local</filename>
+      verbindet sich direkt mit dem Repository; die drei anderen
+      machen das über das Netz. Die Bibliotheken
+      <filename>libsvn_fs_base</filename> und
+      <filename>libsvn_fs_fs</filename> sind noch ein Paar, das die
+      gleiche Funktion auf verschiedene Art implementiert –
+      beide sind Plug-Ins der gemeinsamen Bibliothek
+      <filename>libsvn_fs</filename>.</para>

+<!--
      <para>The client itself also highlights the benefits of modularity
        in the Subversion design.  Subversion's
        <filename>libsvn_client</filename> library is a one-stop shop
@@ -190,6 +301,22 @@
        proliferation of available Subversion clients and IDE
        integrations and, by extension, to the tremendous adoption rate
        of Subversion itself.</para>
+-->
+    <para>Auch der Client selber unterstreicht die Vorteile der
+      Modularität beim Entwurf von Subversion. Die meisten Funktionen,
+      die für den Entwurf eines Subversion-Clients benötigt werden,
+      sind in der Bibliothek <filename>libsvn_client</filename>
+      vorhanden (siehe <xref
+      linkend="svn.developer.layerlib.client"/>). Obwohl das
+      Subversion-Paket lediglich das Kommandozeilenprogramm
+      <command>svn</command> mitbringt, stellen mehrere Programme von
+      Drittanbietern verschiedene Spielarten graphischer
+      Benutzeroberflächen zur Verfügung, die die gleichen APIs wie der
+      Standard-Kommandozeilen-Client verwenden. Diese Art der
+      Modularität hat eine große Rolle bei der Verbreitung verfügbarer
+      Subversion-Clients sowie Integrationen in Entwicklungsumgebungen
+      gespielt und durch Erweiterungen zur enormen Akzeptanzrate von
+      Subversion selbst beigetragen.</para>

      <!-- ===============================================================  
-->
      <sect2 id="svn.developer.layerlib.repos">


More information about the svnbook-dev mailing list