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

codesite-noreply at google.com codesite-noreply at google.com
Thu May 21 11:18:48 CDT 2009


Author: jmfelderhoff at gmx.eu
Date: Thu May 21 09:17:54 2009
New Revision: 3508

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

Log:
* trunk/src/de/book/ch08-embedding-svn.xml
   - Fixes ticket #249 (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	Thu May 21 09:17:54 2009
@@ -210,7 +210,7 @@
          <listitem><para>Apache authorization module for Subversion
            repositories access via WebDAV</para></listitem>
  -->
-        <listitem><para>Apache-Authorisierungs-Modul für den
+        <listitem><para>Apache-Autorisierung-Modul für den
            Subversion-Zugriff über WebDAV</para></listitem>
        </varlistentry>
        <varlistentry>
@@ -394,7 +394,7 @@
          bestanden, künftigen Versionen von Subversion die Fähigkeit zu
          verleihen, andere Datenbanksysteme zu verwenden, etwa über
          einen Mechanismus wie Open Database Connectivity (ODBC).
-        Tatsächlich hat Google etwas ähliches gemacht, bevor der
+        Tatsächlich hat Google etwas ähnliches gemacht, bevor der
          Dienst Google Code Project Hosting gestartet wurde: Mitte 2006
          wurde angekündigt, dass Mitarbeiter des Open-Source-Teams ein
          neues proprietäres Dateisystem-Plug-In für Subversion
@@ -504,7 +504,7 @@
            other processes acting on the data.</para>
  -->
          <para>Der Begriff einer Subversion-Transaktion kann leicht mit
-          der Transaktionsunterstützung der darunterliegenden
+          der Transaktionsunterstützung der darunter liegenden
            Datenbank verwechselt werden, besonders bei der großen Nähe
            der ersteren zum Berkeley-DB-Datenbank-Code in
            <filename>libsvn_fs_base</filename>. Beide Transaktionstypen
@@ -559,7 +559,7 @@
  -->
          <para>Glücklicherweise bleibt den Benutzern der
            Dateisystem-API die Transaktionsunterstützung des
-          Datrenbanksystems fast vollständig verborgen (wie es von
+          Datenbanksystems fast vollständig verborgen (wie es von
            einem ordentlich modularisierten Bibliotheksschema auch
            erwartet werden kann). Nur wenn Sie anfangen, in der
            Implementierung des Dateisystems herumzuwühlen, werden diese
@@ -722,7 +722,7 @@
          Funktionen zur Verfügung, die über die grundlegende Logik
          eines versionierten Dateisystem hinausgehen. Sie umhüllt nicht
          alle Dateisystemfunktionen vollständig – lediglich
-        bestimmte größere Scritte im allgemeinen Zyklus der
+        bestimmte größere Schritte im allgemeinen Zyklus der
          Dateisystemaktivität. Einige dieser Schritte umfassen die
          Erzeugung und den Abschluss von Subversion-Transaktionen und
          die Änderung von Revision-Propertys. Diese besonderen
@@ -983,8 +983,12 @@

      <!-- ===============================================================  
-->
      <sect2 id="svn.developer.layerlib.client">
+<!--
        <title>Client Layer</title>
-
+-->
+      <title>Client-Schicht</title>
+
+<!--
        <para>On the client side, the Subversion working copy is where
          all the action takes place.  The bulk of functionality
          implemented by the client-side libraries exists for the sole
@@ -993,7 +997,18 @@
          editable <quote>reflection</quote> of one or more repository
          locations—and propagating changes to and from the
          Repository Access layer.</para>
+-->
+      <para>Auf der Client-Seite finden alle Aktionen in der
+        Subversion-Arbeitskopie statt. Der größte Teil der in den
+        Client-Bibliotheken implementierten Funktionen dient dem
+        alleinigen Zweck, die Arbeitskopien zu verwalten –
+        Verzeichnisse voller Dateien und anderer Unterverzeichnisse,
+        die als eine Art lokaler, editierbarer
+        <quote>Spiegelung</quote> einer oder mehrere Orte im
+        Repository dienen – und Änderungen an die RA-Schicht
+        weiterzugeben oder von ihr zu empfangen.</para>

+<!--
        <para>Subversion's working copy library,
          <filename>libsvn_wc</filename>, is directly responsible for
          managing the data in the working copies.  To accomplish this,
@@ -1009,7 +1024,26 @@
          about the <filename>.svn</filename> administrative area, see
          <xref linkend="svn.developer.insidewc"/> later in this
          chapter.</para>
+-->
+      <para>Die Bibliothek für die Arbeitskopie von Subversion,
+        <filename>libsvn_wc</filename>, ist direkt dafür
+        verantwortlich, die Daten in den Arbeitskopien zu verwalten.
+        Hierzu speichert die Bibliothek Verwaltungsinformationen zu
+        jedem Verzeichnis der Arbeitskopie in einem besonderen
+        Unterverzeichnis. Dieses Unterverzeichnis namens
+        <filename>.svn</filename> kommt in jedem Unterverzeichnis der
+        Arbeitskopie vor und beinhaltet zahlreiche weitere Dateien und
+        Verzeichnisse, in denen der Zustand aufgezeichnet wird und die
+        einen privaten Arbeitsbereich für Verwaltungsaufgaben liefern.
+        Für diejenigen, die CVS kennen, ist der Zweck des
+        Unterverzeichnisses <filename>.svn</filename> ähnlich den in
+        CVS-Arbeitskopien zu findenden Verwaltungsverzeichnissen
+        <filename>CVS</filename>. Weiter gehende Informationen zum
+        <filename>.svn</filename>-Verwaltungsbereich finden sie später
+        in diesem Kapitel unter <xref
+        linkend="svn.developer.insidewc"/>.</para>

+<!--
        <para>The Subversion client library,
          <filename>libsvn_client</filename>, has the broadest
          responsibility; its job is to mingle the functionality of the
@@ -1024,7 +1058,25 @@
          into the working copy library, which then writes a full
          working copy to disk (<filename>.svn</filename> directories
          and all).</para>
+-->
+      <para>Die Subversion-Client-Bibliothek,
+        <filename>libsvn_client</filename>, besitzt die weitestgehende
+        Verantwortlichkeit; ihre Aufgabe ist es, die Funktionen der
+        Arbeitskopie-Bibliothek mit denen der RA-Schicht zu vermischen
+        und eine API auf höchster Ebene für Anwendungen zur Verfügung
+        zu stellen, die allgemeine Versionskontrollaktionen
+        durchführen wollen. Beispielsweise erwartet die Funktion
+        <function>svn_client_checkout()</function> einen URL als
+        Argument. Sie leitet diesen URL an die RA-Schicht weiter und
+        startet eine authentifizierte Sitzung mit einem bestimmten
+        Repository. Dann fragt sie das Repository nach einem
+        bestimmten Baum und schickt diesen Baum an die
+        Arbeitskopie-Bibliothek, die dann die gesamte Arbeitskopie auf
+        die Platte schreibt (samt
+        <filename>.svn</filename>-Verzeichnissen und allem Drum und
+        Dran).</para>

+<!--
        <para>The client library is designed to be used by any
          application.  While the Subversion source code includes a
          standard command-line client, it should be very easy to write
@@ -1039,10 +1091,31 @@
          <filename>tools/examples/minimal_client.c</filename>) that
          exemplifies how to wield the Subversion API to create a simple
          client program.</para>
+-->
+      <para>Die Client-Bibliothek ist so aufgebaut, dass sie von jeder
+        Anwendung verwendet werden kann. Obwohl der Quelltext von
+        Subversion einen Standard-Kommandozeilen-Client enthält,
+        sollte es sehr einfach sein, eine beliebige Anzahl von
+        graphischen Clients zu schreiben, die auf die
+        Client-Bibliothek aufsetzen. Neue graphische Oberflächen (oder
+        eigentlich jeder neue Client) für Subversion brauchen keine
+        sperrigen Hüllen um den enthaltenen Kommandozeilen-Client zu
+        sein – sie haben über die API von
+        <filename>libsvn_client</filename> vollen Zugriff auf die
+        Funktionen, Daten und Rückrufmechanismen die der
+        Kommandozeilen-Client benutzt. Tatsächlich enthält der
+        Quelltext von Subversion ein kleines C-Programm (das Sie unter
+        <filename>tools/examples/minimal_client.c</filename> finden)
+        welches beispielhaft zeigt, wie die Subversion API verwendet
+        wird, um ein einfaches Client-Programm zu erzeugen.</para>

        <sidebar>
+<!--
          <title>Binding Directly—A Word About Correctness</title>
+-->
+        <title>Direkte Bindung – Ein Wort zur Genauigkeit</title>

+<!--
          <para>Why should your GUI program bind directly with a
            <filename>libsvn_client</filename> instead of acting as a
            wrapper around a command-line program?  Besides simply being
@@ -1055,7 +1128,22 @@
            display all of the information harvested from the API or may
            combine bits of information for compact
            representation.</para>
+-->
+        <para>Warum sollte Ihr graphisches Programm direkt mit
+          <filename>libsvn_client</filename> gebunden werden, statt
+          als Umhüllung eines Kommandozeilenprogramms zu fungieren?
+          Außer dass es einfach effizienter ist, kann es auch genauer
+          sein. Ein Kommandozeilenprogramm (wie das von Subversion
+          mitgelieferte), das mit der Bibliothek gebunden ist, muss
+          gewissermaßen Rückmeldungen und abgefragte Daten aus
+          C-Datentypen in menschenlesbare Ausgaben übersetzen. Diese
+          Art der Übersetzung kann verlustbehaftet sein. Das heißt, es
+          kann sein, dass das Programm nicht unbedingt alle
+          Informationen anzeigt, die es von der API erhält, oder es
+          könnte Teile von Informationen der kompakten Wiedergabe
+          halber kombinieren.</para>

+<!--
          <para>If you wrap such a command-line program with yet another
            program, the second program has access only to
            already interpreted (and as we mentioned, likely incomplete)
@@ -1065,7 +1153,19 @@
            original data is potentially tainted more and more, much
            like the result of making a copy of a copy (of a copy…)
            of a favorite audio or video cassette.</para>
-
+-->
+        <para>Falls Sie ein solches Kommandozeilenprogramm mit noch
+          einem anderen Programm umhüllen, hat das zweite Programm nur
+          Zugriff auf bereits aufbereitete (und, wie wir bemerkten,
+          wahrscheinlich unvollständige) Informationen, die es
+          <emphasis>noch</emphasis> einmal in
+          <emphasis>sein</emphasis> Format umwandeln muss. Mit jeder
+          neuen Umhüllung wird die Integrität der Originaldaten
+          potentiell mehr und mehr verfälscht, ähnlich wie das
+          Ergebnis einer Kopie einer Kopie (einer Kopie…) einer
+          beliebten Audio- oder Videokassette.</para>
+
+<!--
          <para>But the most compelling argument for binding directly to
            the APIs instead of wrapping other programs is that the
            Subversion project makes compatibility promises regarding
@@ -1079,6 +1179,22 @@
            compatibility promises do not exist for Subversion
            command-line program output, which is subject to change from
            release to release.</para>
+-->
+        <para>Das überzeugendste Argument für das direkte Binden im
+          Gegensatz zum Einhüllen anderer Programme ist jedoch, dass
+          das Subversion-Projekt Kompatibilitätsversprechen bezüglich
+          seiner APIs macht. Über Zwischenversionen dieser APIs hinweg
+          (etwa zwischen 1.3 und 1.4) wird sich kein Prototyp einer
+          Funktion ändern. Mit anderen Worten: Sie sind nicht
+          gezwungen, den Quelltext Ihres Programms einfach aus dem
+          Grund zu aktualisieren, weil Sie auf eine neue Version von
+          Subversion umgestiegen sind. Von der Benutzung bestimmter
+          Funktionen mag abgeraten worden sein, jedoch funktionieren
+          sie noch, so dass Sie einen Zeitpuffer erhalten, um
+          schließlich neuere APIs zu integrieren. Diese Art des
+          Kompatibilitätsversprechens gilt nicht für die Ausgaben der
+          Kommandozeilenprogramme von Subversion, die sich von Version
+          zu Version ändern kann.</para>

        </sidebar>



More information about the svnbook-dev mailing list