[svnbook commit] r3377 - trunk/src/de/book

jmfelderhoff noreply at red-bean.com
Mon Dec 15 13:54:22 CST 2008


Author: jmfelderhoff
Date: Mon Dec 15 13:54:17 2008
New Revision: 3377

Log:
* trunk/src/de/book/ch04-branching-and-merging.xml
  - Tickets ## 168--169 (cf. http://www.svnbook.de/report/6).
  - Expanded tabs.


Modified:
   trunk/src/de/book/ch04-branching-and-merging.xml

Modified: trunk/src/de/book/ch04-branching-and-merging.xml
==============================================================================
--- trunk/src/de/book/ch04-branching-and-merging.xml	(original)
+++ trunk/src/de/book/ch04-branching-and-merging.xml	Mon Dec 15 13:54:17 2008
@@ -2317,8 +2317,8 @@
 
 Index: integer.c
 ===================================================================
---- integer.c	(revision 354)
-+++ integer.c	(revision 355)
+--- integer.c   (revision 354)
++++ integer.c   (revision 355)
 @@ -147,7 +147,7 @@
      case 6:  sprintf(info->operating_system, "HPFS (OS/2 or NT)"); break;
      case 7:  sprintf(info->operating_system, "Macintosh"); break;
@@ -3400,11 +3400,11 @@
         object is said to be an ancestor of the other.</para>
 -->
       <para>Wenn Sie sich mit einem Subversion-Entwickler unterhalten,
-	wird wahrscheinlich auch der Begriff
-	<firstterm>Abstammung</firstterm> erwähnt. Dieses Wort wird
-	verwendet, um die Beziehung zwischen zwei Objekten im
-	Repository zu beschreiben: Wenn sie in Beziehung zueinander
-	stehen, heißt es, dass ein Objekt vom anderen abstammt.</para>
+        wird wahrscheinlich auch der Begriff
+        <firstterm>Abstammung</firstterm> erwähnt. Dieses Wort wird
+        verwendet, um die Beziehung zwischen zwei Objekten im
+        Repository zu beschreiben: Wenn sie in Beziehung zueinander
+        stehen, heißt es, dass ein Objekt vom anderen abstammt.</para>
 
 <!--
       <para>For example, suppose you commit revision 100, which
@@ -3421,18 +3421,18 @@
         or <quote>ancestry.</quote></para>
 -->
       <para>Nehmen wir an, Sie übergeben Revision 100, die eine
-	Änderung an der Datei <filename>foo.c</filename> beinhaltet.
-	Dann ist  <filename>foo.c at 99</filename> ein
-	<quote>Vorfahre</quote> von <filename>foo.c at 100</filename>.
-	Wenn Sie dagegen in Revision 101 die Löschung von
-	<filename>foo.c</filename> übergeben und in Revision 102 eine
-	neue Datei mit demselben Namen hinzufügen, hat es zwar den
-	Anschein, dass <filename>foo.c at 99</filename> und
-	<filename>foo.c at 102</filename> in Beziehung zueinander stehen
-	(sie haben denselben Pfad), es handelt sich allerdings um
-	völlig unterschiedliche Objekte im Repository. Sie haben weder
-	eine gemeinsame Geschichte noch
-	<quote>Abstammung</quote>.</para>
+        Änderung an der Datei <filename>foo.c</filename> beinhaltet.
+        Dann ist  <filename>foo.c at 99</filename> ein
+        <quote>Vorfahre</quote> von <filename>foo.c at 100</filename>.
+        Wenn Sie dagegen in Revision 101 die Löschung von
+        <filename>foo.c</filename> übergeben und in Revision 102 eine
+        neue Datei mit demselben Namen hinzufügen, hat es zwar den
+        Anschein, dass <filename>foo.c at 99</filename> und
+        <filename>foo.c at 102</filename> in Beziehung zueinander stehen
+        (sie haben denselben Pfad), es handelt sich allerdings um
+        völlig unterschiedliche Objekte im Repository. Sie haben weder
+        eine gemeinsame Geschichte noch
+        <quote>Abstammung</quote>.</para>
 
 <!--
       <para>The reason for bringing this up is to point out an
@@ -3449,18 +3449,18 @@
         indicate a deletion followed by an add:</para>
 -->
       <para>Wir erwähnen das, um auf einen wichtigen Unterschied
-	zwischen den Befehlen <command>svn diff</command> und
-	<command>svn merge</command> hinzuweisen. Der erstere Befehl
-	ignoriert die Abstammung, wohingegen letzterer diese beachtet.
-	Wenn Sie beispielsweise mit <command>svn diff</command> die
-	Revisionen 99 und 102 von <filename>foo.c</filename>
-	vergleichen, werden Sie zeilenbasierte Unterschiede sehen; der
-	Befehl <command>diff</command> vergleicht blind zwei Pfade.
-	Wenn Sie aber dieselben Objekte mit <command>svn
-	merge</command> vergleichen, wird es feststellen, dass sie
-	nicht in Beziehung stehen und versuchen, die alte Datei zu
-	löschen und dann die neue hinzuzufügen; die Ausgabe wird eine
-	Löschung gefolgt von einer Hinzufügung anzeigen:</para>
+        zwischen den Befehlen <command>svn diff</command> und
+        <command>svn merge</command> hinzuweisen. Der erstere Befehl
+        ignoriert die Abstammung, wohingegen letzterer diese beachtet.
+        Wenn Sie beispielsweise mit <command>svn diff</command> die
+        Revisionen 99 und 102 von <filename>foo.c</filename>
+        vergleichen, werden Sie zeilenbasierte Unterschiede sehen; der
+        Befehl <command>diff</command> vergleicht blind zwei Pfade.
+        Wenn Sie aber dieselben Objekte mit <command>svn
+        merge</command> vergleichen, wird es feststellen, dass sie
+        nicht in Beziehung stehen und versuchen, die alte Datei zu
+        löschen und dann die neue hinzuzufügen; die Ausgabe wird eine
+        Löschung gefolgt von einer Hinzufügung anzeigen:</para>
 
       <screen>
 D    foo.c
@@ -3489,27 +3489,27 @@
         <command>svn merge</command> command.)</para>
 -->
       <para>Die meisten Zusammenführungen vergleichen Bäume, die von
-	der Abstammung  her miteinander in Beziehung stehen, deshalb
-	verhält sich <command>svn merge</command> auf diese Weise.
-	Gelegentlich möchten Sie jedoch mit dem
-	<command>merge</command>-Befehl zwei Bäume vergleichen, die
-	nicht miteinander in Beziehung stehen. Es kann z.B. sein, dass
-	Sie zwei Quelltext-Bäume importiert haben, die unterschiedliche
-	Lieferantenstände eines Software-Projektes repräsentieren
-	(siehe <xref linkend="svn.advanced.vendorbr"/>).  Falls Sie 
+        der Abstammung  her miteinander in Beziehung stehen, deshalb
+        verhält sich <command>svn merge</command> auf diese Weise.
+        Gelegentlich möchten Sie jedoch mit dem
+        <command>merge</command>-Befehl zwei Bäume vergleichen, die
+        nicht miteinander in Beziehung stehen. Es kann z.B. sein, dass
+        Sie zwei Quelltext-Bäume importiert haben, die unterschiedliche
+        Lieferantenstände eines Software-Projektes repräsentieren
+        (siehe <xref linkend="svn.advanced.vendorbr"/>).  Falls Sie 
         <command>svn merge</command> dazu aufforderten, die beiden Bäume
-	miteinander zu vergleichen, würden Sie sehen, dass der
-	vollständige erste Baum gelöscht und anschliessend der
-	vollständige zweite Baum hinzugefügt würde! In diesen
-	Situationen möchten Sie, dass <command>svn merge</command>
-	lediglich einen pfadbasierten Vergleich vornimmt und
-	Beziehungen zwischen Dateien und Verzeichnissen ausser Acht
-	lässt. Fügen Sie die Option <option>--ignore-ancestry</option>
-	dem <command>merge</command>-Befehl hinzu, und er wird sich
-	verhalten wie <command>svn diff</command>.  (Auf der anderen
-	Seite wird die Option <option>--notice-ancestry</option> den
-	Befehl <command>svn diff</command> dazu veranlassen, sich wie
-	<command>svn merge</command> zu verhalten.</para>
+        miteinander zu vergleichen, würden Sie sehen, dass der
+        vollständige erste Baum gelöscht und anschliessend der
+        vollständige zweite Baum hinzugefügt würde! In diesen
+        Situationen möchten Sie, dass <command>svn merge</command>
+        lediglich einen pfadbasierten Vergleich vornimmt und
+        Beziehungen zwischen Dateien und Verzeichnissen ausser Acht
+        lässt. Fügen Sie die Option <option>--ignore-ancestry</option>
+        dem <command>merge</command>-Befehl hinzu, und er wird sich
+        verhalten wie <command>svn diff</command>.  (Auf der anderen
+        Seite wird die Option <option>--notice-ancestry</option> den
+        Befehl <command>svn diff</command> dazu veranlassen, sich wie
+        <command>svn merge</command> zu verhalten.</para>
 
     </sect2>
 
@@ -3530,13 +3530,13 @@
         trunk, right?</para>
 -->
       <para>Es ist ein verbreiteter Wunsch, Software zu refaktorieren,
-	besonders in Java-basierten Software-Projekten. Dateien und
-	Verzeichnisse werden hin und her geschoben und umbenannt, was
-	häufig zu erheblichen Beeinträchtigungen für alle
-	Projektmitarbeiter führt. Das hört sich an, als sei das der
-	klassische Fall, um nach einem Zweig zu greifen, nicht wahr?
-	Sie erzeugen einfach einen Zweig, schieben das Zeug herum und
-	führen anschließend den Zweig mit dem Stamm zusammen.</para>
+        besonders in Java-basierten Software-Projekten. Dateien und
+        Verzeichnisse werden hin und her geschoben und umbenannt, was
+        häufig zu erheblichen Beeinträchtigungen für alle
+        Projektmitarbeiter führt. Das hört sich an, als sei das der
+        klassische Fall, um nach einem Zweig zu greifen, nicht wahr?
+        Sie erzeugen einfach einen Zweig, schieben das Zeug herum und
+        führen anschließend den Zweig mit dem Stamm zusammen.</para>
 
 <!--
       <para>Alas, this scenario doesn't work so well right now and
@@ -3546,11 +3546,11 @@
         dealing with copy and move operations.</para>
 -->
       <para>Leider funktioniert dieses Szenario im Augenblick noch
-	nicht so richtig und gilt als einer der Schwachpunkte von
-	Subversion. Das Problem ist, das der Subversion-Befehl
-	<command>svn update</command> nicht so stabil ist, wie er sein
-	sollte, besonders wenn es um Kopier- und Verschiebeoperationen
-	geht.</para>
+        nicht so richtig und gilt als einer der Schwachpunkte von
+        Subversion. Das Problem ist, das der Subversion-Befehl
+        <command>svn update</command> nicht so stabil ist, wie er sein
+        sollte, besonders wenn es um Kopier- und Verschiebeoperationen
+        geht.</para>
 
 <!--
       <para>When you use <command>svn copy</command> to duplicate a
@@ -3568,19 +3568,19 @@
         delete</command>.</para>
 -->
       <para>Wenn Sie <command>svn copy</command> zum Duplizieren einer
-	Datei verwenden, merkt sich das Repository, woher die neue
-	Datei kam, versäumt aber, diese Information an den Client zu
-	senden, der <command>svn update</command> oder <command>svn
-	merge</command> ausführt. Statt dem Client mitzuteilen:
-	<quote>Kopiere die Datei, die du bereits hast an diesen neuen
-	Ort</quote>, sendet es eine völlig neue Datei. Das kann zu
-	Problemen führen, besonders, weil dasselbe mit umbenannten
-	Dateien passiert. Eine weniger bekannte Tatsache über
-	Subversion ist, dass es keine <quote>echten
-	Umbenennungen</quote> hat – der Befehl <command>svn
-	move</command> ist witer nichts als eine Verbindung von
-	<command>svn copy</command> und <command>svn
-	delete</command>.</para>
+        Datei verwenden, merkt sich das Repository, woher die neue
+        Datei kam, versäumt aber, diese Information an den Client zu
+        senden, der <command>svn update</command> oder <command>svn
+        merge</command> ausführt. Statt dem Client mitzuteilen:
+        <quote>Kopiere die Datei, die du bereits hast an diesen neuen
+        Ort</quote>, sendet es eine völlig neue Datei. Das kann zu
+        Problemen führen, besonders, weil dasselbe mit umbenannten
+        Dateien passiert. Eine weniger bekannte Tatsache über
+        Subversion ist, dass es keine <quote>echten
+        Umbenennungen</quote> hat – der Befehl <command>svn
+        move</command> ist witer nichts als eine Verbindung von
+        <command>svn copy</command> und <command>svn
+        delete</command>.</para>
 
 <!--
       <para>For example, suppose that while working on your private
@@ -3593,14 +3593,14 @@
         decide to merge your branch to the trunk:</para>
 -->
       <para>Nehmen wir beispielsweise an, dass Sie während Ihrer
-      Arbeit auf Ihrem privaten Zweig <filename>integer.c</filename>
-      in <filename>whole.c</filename> umbenennen. Tatsächlich haben
-      Sie eine neue Datei auf Ihrem Zweig erzeugt, die eine Kopie der
-      ursprünglichen Datei ist, und letztere gelöscht.
-      Zwischenzeitlich hat Sally einige Verbesserungen an
-      <filename>integer.c</filename> in <filename>trunk</filename>
-      übergeben. Nun entscheiden Sie sich, Ihren Zweig mit dem Stamm
-      zusammenzuführen:</para>
+        Arbeit auf Ihrem privaten Zweig <filename>integer.c</filename>
+        in <filename>whole.c</filename> umbenennen. Tatsächlich haben
+        Sie eine neue Datei auf Ihrem Zweig erzeugt, die eine Kopie
+        der ursprünglichen Datei ist, und letztere gelöscht.
+        Zwischenzeitlich hat Sally einige Verbesserungen an
+        <filename>integer.c</filename> in <filename>trunk</filename>
+        übergeben. Nun entscheiden Sie sich, Ihren Zweig mit dem Stamm
+        zusammenzuführen:</para>
 
       <screen>
 $ cd calc/trunk
@@ -3625,16 +3625,16 @@
         Sally's recent changes from the latest revision!</para>
 -->
       <para>Auf den ersten Blick sieht es gar nicht schlecht aus,
-	jedoch ist es nicht das, was Sie und Sally erwartet hätten.
-	Die Zusammenführung hat die letzte Version der Datei
-	<filename>integer.c</filename> gelöscht (diejenige, die Sallys
-	Änderungen beinhaltet) und blindlings Ihre neue Datei
-	<filename>whole.c</filename> hinzugefügt – die ein
-	Duplikat der <emphasis>älteren</emphasis> Version von
+        jedoch ist es nicht das, was Sie und Sally erwartet hätten.
+        Die Zusammenführung hat die letzte Version der Datei
+        <filename>integer.c</filename> gelöscht (diejenige, die Sallys
+        Änderungen beinhaltet) und blindlings Ihre neue Datei
+        <filename>whole.c</filename> hinzugefügt – die ein
+        Duplikat der <emphasis>älteren</emphasis> Version von
         <filename>integer.c</filename> ist. Das Endergebnis ist, dass
-	durch die Zusammenführung Ihrer <quote>Umbenennung</quote> auf
-	dem Zweig mit dem Stamm Sallys jüngste Änderungen aus der
-	letzten Revision entfernt wurden.</para>
+        durch die Zusammenführung Ihrer <quote>Umbenennung</quote> auf
+        dem Zweig mit dem Stamm Sallys jüngste Änderungen aus der
+        letzten Revision entfernt wurden.</para>
 
 <!--
       <para>This isn't true data loss.  Sally's changes are still in
@@ -3645,13 +3645,13 @@
         another.</para>
 -->
       <para>Es ist kein echter Datenverlust. Sallys Änderungen
-	befinden sich noch immer in der Geschichte des Repositorys,
-	allerdings mag es nicht sofort ersichtlich sein, dass es
-	passiert ist. Die Lehre, die es aus dieser Geschichte zu
-	ziehen gilt, lautet, dass Sie sehr vorsichtig mit dem
-	Zusammenführen von Kopien und Umbenennungen zwischen Zweigen
-	sein sollten, solange sich Subversion an dieser Stelle nicht
-	verbessert hat.</para>
+        befinden sich noch immer in der Geschichte des Repositorys,
+        allerdings mag es nicht sofort ersichtlich sein, dass es
+        passiert ist. Die Lehre, die es aus dieser Geschichte zu
+        ziehen gilt, lautet, dass Sie sehr vorsichtig mit dem
+        Zusammenführen von Kopien und Umbenennungen zwischen Zweigen
+        sein sollten, solange sich Subversion an dieser Stelle nicht
+        verbessert hat.</para>
 
     </sect2>
 
@@ -3661,7 +3661,7 @@
       <title>Blocking Merge-Unaware Clients</title>
 -->
       <title>Abblocken von Clients, die Zusammenführungen nicht
-	ausreichend unterstützen</title>
+        ausreichend unterstützen</title>
 
 <!--
       <para>If you've just upgraded your server to Subversion 1.5 or
@@ -3678,19 +3678,19 @@
         resulting from repeated merges.</para>
 -->
       <para>Wenn Sie gerade Ihren Server auf Subversion 1.5 oder
-	größer umgestellt haben, besteht ein signifikantes Risiko,
-	dass Subversion-Clients einer kleineren Version als 1.5 Ihre
-	automatische Zusammenführungs-Verfolgung durcheinander bringen
-	können. Warum? Wenn ein älterer Subversion-Client <command>svn
+        größer umgestellt haben, besteht ein signifikantes Risiko,
+        dass Subversion-Clients einer kleineren Version als 1.5 Ihre
+        automatische Zusammenführungs-Verfolgung durcheinander bringen
+        können. Warum? Wenn ein älterer Subversion-Client <command>svn
         merge</command> ausführt, modifiziert er nicht den Wert des
-	Propertys <literal>svn:mergeinfo</literal>.  Obwohl die
-	anschließende Übergabe das Ergebnis einer Zusammenführung ist,
-	wird dem Repository nichts über die duplizierten Änderungen
-	mitgeteilt – diese Information ist verloren. Wenn später
-	Clients, die Zusammenführungsinformationen auswerten,
-	automatische Zusammenführungen versuchen, werden Sie
-	wahrscheinlich in alle möglichen Konflikte laufen, die durch
-	wiederholte Zusammenführungen hervorgerufen wurden.</para>
+        Propertys <literal>svn:mergeinfo</literal>.  Obwohl die
+        anschließende Übergabe das Ergebnis einer Zusammenführung ist,
+        wird dem Repository nichts über die duplizierten Änderungen
+        mitgeteilt – diese Information ist verloren. Wenn später
+        Clients, die Zusammenführungsinformationen auswerten,
+        automatische Zusammenführungen versuchen, werden Sie
+        wahrscheinlich in alle möglichen Konflikte laufen, die durch
+        wiederholte Zusammenführungen hervorgerufen wurden.</para>
 
 <!--
       <para>If you and your team are relying on the merge-tracking
@@ -3709,18 +3709,19 @@
         details.</para>
 -->
       <para>Wenn Sie und Ihr Team auf die Zusammenführungs-Verfolgung
-      von Subversion angewiesen sind, sollten Sie Ihr Repository
-      dergestalt konfigurieren, dass ältere Clients daran gehindert
-      werden, Änderungen zu übergeben. Die einfache Methode hierfür
-      ist es, den <quote>Fähigkeiten</quote>-Parameter im
-      <literal>start-commit</literal> Hook-Skript zu untersuchen.
-      Wenn der Client meldet, dass er mit <literal>mergeinfo</literal>
-      umgehen kann, kann das Skript den Beginn der Übergabe erlauben.
-      Wenn der Client diese Fähigkeit nicht meldet, wird die Übergabe
-      abgelehnt. Wir werden mehr über Hook-Skripte im nächsten Kapitel
-      erfahren; siehe <xref linkend="svn.reposadmin.create.hooks"/>
-      und <xref linkend="svn.ref.reposhooks.start-commit"/> für
-      Details.</para>
+        von Subversion angewiesen sind, sollten Sie Ihr Repository
+        dergestalt konfigurieren, dass ältere Clients daran gehindert
+        werden, Änderungen zu übergeben. Die einfache Methode hierfür
+        ist es, den <quote>Fähigkeiten</quote>-Parameter im
+        <literal>start-commit</literal> Hook-Skript zu untersuchen.
+        Wenn der Client meldet, dass er mit
+        <literal>mergeinfo</literal> umgehen kann, kann das Skript den
+        Beginn der Übergabe erlauben.  Wenn der Client diese Fähigkeit
+        nicht meldet, wird die Übergabe abgelehnt. Wir werden mehr
+        über Hook-Skripte im nächsten Kapitel erfahren; siehe <xref
+        linkend="svn.reposadmin.create.hooks"/> und <xref
+        linkend="svn.ref.reposhooks.start-commit"/> für
+        Details.</para>
 
     </sect2>
 
@@ -3740,12 +3741,12 @@
         possible unexpected behaviors may pop up.</para>
 -->
       <para>Unter dem Strich bedeutet das, dass die Fähigkeit von
-	Subversion zur Zusammenführungs-Verfolgung eine höchst
-	komplexe interne Implementierung besitzt und das Property
-	<literal>svn:mergeinfo</literal> das einzige Fenster zu diesem
-	Räderwerk ist. Da diese Fähigkeit relativ neu ist, kann eine
-	Anzahl von Randfällen und mögliche unerwartete
-	Verhaltensweisen auftauchen.</para>
+        Subversion zur Zusammenführungs-Verfolgung eine höchst
+        komplexe interne Implementierung besitzt und das Property
+        <literal>svn:mergeinfo</literal> das einzige Fenster zu diesem
+        Räderwerk ist. Da diese Fähigkeit relativ neu ist, kann eine
+        Anzahl von Randfällen und mögliche unerwartete
+        Verhaltensweisen auftauchen.</para>
 
 <!--
       <para>For example, sometimes mergeinfo will be generated when
@@ -3763,19 +3764,19 @@
         directories.</para>
 -->
       <para>So kann zum Beispiel Mergeinfo manchmal durch einen
-	einfachen <command>svn copy</command>- oder <command>svn
-	move</command>-Befehl erzeugt werden. Manchmal wird Mergeinfo
-	an Dateien auftauchen, von denen Sie nicht erwartet hätten,
-	dass sie durch die Operation berührt worden wären. Manchmal
-	wird Mergeinfo überhaupt nicht erzeugt, obwohl Sie es erwartet
-	hätten. Darüberhinaus umgibt die Verwaltung der
-	Mergeinfo-Metadaten eine ganze Menge von Systematiken und
-	Verhalten, wie <quote>explizite</quote> gegenüber
-	<quote>implizite</quote> Mergeinfo, <quote>operative</quote>
-	gegenüber <quote>inoperativen</quote> Revisionen, besondere
-	Mechanismen von  Mergeinfo-<quote>Auslassung</quote> und sogar
-	<quote>Vererbung</quote> von Eltern- zu
-	Kindverzeichnissen.</para>
+        einfachen <command>svn copy</command>- oder <command>svn
+        move</command>-Befehl erzeugt werden. Manchmal wird Mergeinfo
+        an Dateien auftauchen, von denen Sie nicht erwartet hätten,
+        dass sie durch die Operation berührt worden wären. Manchmal
+        wird Mergeinfo überhaupt nicht erzeugt, obwohl Sie es erwartet
+        hätten. Darüberhinaus umgibt die Verwaltung der
+        Mergeinfo-Metadaten eine ganze Menge von Systematiken und
+        Verhalten, wie <quote>explizite</quote> gegenüber
+        <quote>implizite</quote> Mergeinfo, <quote>operative</quote>
+        gegenüber <quote>inoperativen</quote> Revisionen, besondere
+        Mechanismen von  Mergeinfo-<quote>Auslassung</quote> und sogar
+        <quote>Vererbung</quote> von Eltern- zu
+        Kindverzeichnissen.</para>
 
 <!--
       <para>We've chosen not to cover these detailed topics in this
@@ -3791,18 +3792,18 @@
         />.</para>
 -->
       <para>Wir haben uns entschieden, diese detaillierten Themen aus
-	einer Reihe von Gründen nicht in diesem Buch zu behandeln.
-	Erstens ist der Detaillierungsgrad für einen normalen
-	Benutzer absolut erdrückend. Zweitens glauben wir, dass das
-	Verständnis diese Konzepte für einen typischen Benutzer nicht
-	unbedigt erforderlich sein <emphasis>sollte</emphasis> während
-	Subversion sich verbessert; letztendlich werden sie als
-	nervige Implementierugsdetails in den Hintergrund treten. Wenn
-	Sie, nachdem dies gesagt ist, diese Dinge mögen, können Sie
-	einen fantastischen Überblick in einer Arbeit nachlesen, die
-	auf der Webseite von CollabNet veröffentlicht ist:<ulink
-	url="http://www.collab.net/community/subversion/articles/merge-info.html"
-	/>.</para>
+        einer Reihe von Gründen nicht in diesem Buch zu behandeln.
+        Erstens ist der Detaillierungsgrad für einen normalen
+        Benutzer absolut erdrückend. Zweitens glauben wir, dass das
+        Verständnis diese Konzepte für einen typischen Benutzer nicht
+        unbedigt erforderlich sein <emphasis>sollte</emphasis> während
+        Subversion sich verbessert; letztendlich werden sie als
+        nervige Implementierugsdetails in den Hintergrund treten. Wenn
+        Sie, nachdem dies gesagt ist, diese Dinge mögen, können Sie
+        einen fantastischen Überblick in einer Arbeit nachlesen, die
+        auf der Webseite von CollabNet veröffentlicht ist:<ulink
+        url="http://www.collab.net/community/subversion/articles/merge-info.html"
+        />.</para>
 
 <!--
       <para>For now, if you want to steer clear of bugs and odd
@@ -3810,9 +3811,9 @@
         recommends that you stick to these simple best practices:</para>
 -->
       <para>Fürs Erste empfiehlt CollabNet, sich an die folgenden
-	bewährten Praktiken zu halten, wenn Sie Fehler und
-	merkwürdiges Verhalten bei automatischen Zusammenführungen
-	vermeiden wollen:</para>
+        bewährten Praktiken zu halten, wenn Sie Fehler und
+        merkwürdiges Verhalten bei automatischen Zusammenführungen
+        vermeiden wollen:</para>
 
       <itemizedlist>
         <listitem>
@@ -3821,9 +3822,9 @@
             procedure described throughout
             <xref linkend="svn.branchmerge.basicmerging"/>.</para>
 -->
-	  <para>Wenden Sie für kurzlebige Arbeitszweige das Verfahren
-	    an, das in <xref linkend="svn.branchmerge.basicmerging"/>
-	    beschrieben wird.</para>
+          <para>Wenden Sie für kurzlebige Arbeitszweige das Verfahren
+            an, das in <xref linkend="svn.branchmerge.basicmerging"/>
+            beschrieben wird.</para>
         </listitem>
         <listitem>
 <!--
@@ -3833,10 +3834,10 @@
             subdirectories.</para>
 -->
           <para>Machen Sie Zusammenführungen langlebiger
-	    Release-Zweige (wie in  <xref
-	    linkend="svn.branchmerge.commonpatterns"/> beschrieben)
-	    nur im Wurzelverzeichnis des Zweigs und nicht in
-	    Unterverzeichnissen.</para>
+            Release-Zweige (wie in  <xref
+            linkend="svn.branchmerge.commonpatterns"/> beschrieben)
+            nur im Wurzelverzeichnis des Zweigs und nicht in
+            Unterverzeichnissen.</para>
         </listitem>
         <listitem>
 <!--
@@ -3849,13 +3850,13 @@
             at a single point in time.</para>
 -->
           <para>Machen Sie Zusammenführungen in Arbeitsverzeichnisse
-	    niemals mit einer Mischung aus Arbeitsrevisionsnummern oder
-	    <quote>umgeschalteten</quote> Unterverzeichnissen (wie als
-	    Nächstes in <xref linkend="svn.branchmerge.switchwc"/>
-	    beschrieben). Das Ziel einer Zusammenführung sollte eine
-	    Arbeitskopie sein, die einen <emphasis>einzigen</emphasis>
-	    Ort zu einem einzelnen Zeitpunkt im Repository
-	    repräsentiert.</para>
+            niemals mit einer Mischung aus Arbeitsrevisionsnummern oder
+            <quote>umgeschalteten</quote> Unterverzeichnissen (wie als
+            Nächstes in <xref linkend="svn.branchmerge.switchwc"/>
+            beschrieben). Das Ziel einer Zusammenführung sollte eine
+            Arbeitskopie sein, die einen <emphasis>einzigen</emphasis>
+            Ort zu einem einzelnen Zeitpunkt im Repository
+            repräsentiert.</para>
         </listitem>
         <listitem>
 <!--
@@ -3866,12 +3867,12 @@
             <xref linkend="svn.branchmerge.advanced.blockchanges"/>).</para>
 -->
           <para>Editieren Sie niemals direkt das Property
-	    <literal>svn:mergeinfo</literal>; verwenden Sie
-	    <command>svn merge</command> mit der Option
-	    <option>--record-only</option>, um eine gewünschte
-	    Änderung an den Metadaten zu bewirken (wie in <xref
-	    linkend="svn.branchmerge.advanced.blockchanges"/>
-	    gezeigt).</para>
+            <literal>svn:mergeinfo</literal>; verwenden Sie
+            <command>svn merge</command> mit der Option
+            <option>--record-only</option>, um eine gewünschte
+            Änderung an den Metadaten zu bewirken (wie in <xref
+            linkend="svn.branchmerge.advanced.blockchanges"/>
+            gezeigt).</para>
         </listitem>
         <listitem>
 <!--
@@ -3880,9 +3881,9 @@
             copy has no sparse directories.</para>
 -->
           <para>Stellen Sie jederzeit sicher, dass Sie vollständigen
-	    Lesezugriff auf die Quellen für die Zussammenführung haben
-	    und dass Ihre Ziel-Arbeitskopie keine dünn besetzten
-	    Verzeichnisse besitzt.</para>
+            Lesezugriff auf die Quellen für die Zussammenführung haben
+            und dass Ihre Ziel-Arbeitskopie keine dünn besetzten
+            Verzeichnisse besitzt.</para>
         </listitem>
       </itemizedlist>
 
@@ -3986,7 +3987,7 @@
             new branch directory.</para>
 -->
           <para>Kopiere den vollständigen <quote>Stamm</quote> des
-	    Projektes in ein neues Zweig-Verzeichnis.</para>
+            Projektes in ein neues Zweig-Verzeichnis.</para>
         </listitem>
         <listitem>
 <!--
@@ -3994,7 +3995,7 @@
             working copy to mirror the branch.</para>
 -->
           <para>Schalte nur einen <emphasis>Teil</emphasis> der
-	    Arbeitskopie vom Stamm auf den Zweig um.</para>
+            Arbeitskopie vom Stamm auf den Zweig um.</para>
         </listitem>
       </orderedlist>
 
@@ -4066,11 +4067,11 @@
       kommunizieren; diese Möglichkeit ist für die Zukunft geplant
       <footnote>
         <para>Sie <emphasis>können</emphasis> jedoch <command>svn
-	  switch</command> mit der Option <option>--relocate</option>
-	  verwenden, falls sich der URL Ihres Servers geändert hat,
-	  und Sie die bestehende Arbeitskopie nicht aufgeben wollen.
-	  Siehe <xref linkend="svn.ref.svn.c.switch"/> für weitere
-	  Informationen und ein Beispiel.</para>
+          switch</command> mit der Option <option>--relocate</option>
+          verwenden, falls sich der URL Ihres Servers geändert hat,
+          und Sie die bestehende Arbeitskopie nicht aufgeben wollen.
+          Siehe <xref linkend="svn.ref.svn.c.switch"/> für weitere
+          Informationen und ein Beispiel.</para>
       </footnote>.
     </para>
 
@@ -4088,8 +4089,8 @@
 -->
       <para>Ist Ihnen aufgefallen, dass die Ausgaben von <command>svn
         switch</command> und <command>svn update</command> gleich
-	aussehen? Der switch-Befehl ist tatsächlich eine Obermenge des
-	update-Befehls.</para>
+        aussehen? Der switch-Befehl ist tatsächlich eine Obermenge des
+        update-Befehls.</para>
 
 <!--
       <para>When you run <command>svn update</command>, you're asking
@@ -4101,12 +4102,12 @@
         paths.</para>
 -->
       <para>Wenn Sie <command>svn update</command> aufrufen, fordern
-	Sie das Repository auf, zwei Bäume zu vergleichen. Das
-	Repository macht es und schickt eine Beschreibung der
-	Unterschiede zurück an den Client. Der einzige Unterschied
-	zwischen <command>svn switch</command> und <command>svn
-	update</command> ist, dass letzterer Befehl stets zwei
-	identische Repository-Pfade miteinander vergleicht.</para>
+        Sie das Repository auf, zwei Bäume zu vergleichen. Das
+        Repository macht es und schickt eine Beschreibung der
+        Unterschiede zurück an den Client. Der einzige Unterschied
+        zwischen <command>svn switch</command> und <command>svn
+        update</command> ist, dass letzterer Befehl stets zwei
+        identische Repository-Pfade miteinander vergleicht.</para>
 
 <!--
       <para>That is, if your working copy is a mirror of
@@ -4122,16 +4123,16 @@
         <literal>HEAD</literal> revision.</para>
 -->
       <para>Das heisst, falls Ihre Arbeitskopie
-	<filename>/calc/trunk</filename> wiederspiegelt, wird
-	<command>svn update</command> automatisch Ihre Arbeitskopie
-	von <filename>/calc/trunk</filename> mit
-	<filename>/calc/trunk</filename> in der Revision
-	<literal>HEAD</literal> vergleichen. Falls Sie Ihre
-	Arbeitskopie auf einen Zweig umschalten, wird <command>svn
-	switch</command> Ihre Arbeitskopie von
+        <filename>/calc/trunk</filename> wiederspiegelt, wird
+        <command>svn update</command> automatisch Ihre Arbeitskopie
+        von <filename>/calc/trunk</filename> mit
+        <filename>/calc/trunk</filename> in der Revision
+        <literal>HEAD</literal> vergleichen. Falls Sie Ihre
+        Arbeitskopie auf einen Zweig umschalten, wird <command>svn
+        switch</command> Ihre Arbeitskopie von
         <filename>/calc/trunk</filename> mit einem
-	<emphasis>anderen</emphasis> Zweig-Verzeichnis in der
-	<literal>HEAD</literal>-Revision vergleichen.</para>
+        <emphasis>anderen</emphasis> Zweig-Verzeichnis in der
+        <literal>HEAD</literal>-Revision vergleichen.</para>
 
 <!--
       <para>In other words, an update moves your working copy through
@@ -4139,9 +4140,9 @@
         <emphasis>and</emphasis> space.</para>
 -->
       <para>In anderen Worten: Eine Aktualisierung bewegt Ihre
-	Arbeitskopie durch die Zeit. Eine Umschaltung bewegt Ihre
-	Arbeitskopie durch die Zeit <emphasis>und</emphasis> den
-	Raum.</para>
+        Arbeitskopie durch die Zeit. Eine Umschaltung bewegt Ihre
+        Arbeitskopie durch die Zeit <emphasis>und</emphasis> den
+        Raum.</para>
     </sidebar>
 
 <!--
@@ -4165,11 +4166,11 @@
           be summarized in two steps:</para>
 -->
         <para>Haben Sie sich jemals dabei ertappt, dass Sie (in Ihrer
-	  <filename>/trunk</filename>-Arbeitskopie) komplexe
-	  Änderungen gemacht haben und plötzlich feststellen:
-	  <quote>Verdammt, diese Änderungen sollten auf einen eigenen
-	  Zweig!</quote> Eine gute Technik, um das zu bewerkstelligen,
-	  lässt sich in zwei Schritten zusammmenfassen:</para>
+          <filename>/trunk</filename>-Arbeitskopie) komplexe
+          Änderungen gemacht haben und plötzlich feststellen:
+          <quote>Verdammt, diese Änderungen sollten auf einen eigenen
+          Zweig!</quote> Eine gute Technik, um das zu bewerkstelligen,
+          lässt sich in zwei Schritten zusammmenfassen:</para>
 
           <screen>
 $ svn copy http://svn.example.com/repos/calc/trunk \
@@ -4189,11 +4190,11 @@
           there.</para> </tip>
 -->
         <para>Der Befehl <command>svn switch</command>
-	  bewahrt wie <command>svn update</command> Ihre lokalen
-	  Änderungen. An dieser Stelle spiegelt Ihre Arbeitskopie den
-	  neu erzeugten Zweig wieder, und Ihr nächster Aufruf von
-	  <command>svn commit</command> wird Ihre Änderungen dorthin
-	  senden.</para> </tip>
+          bewahrt wie <command>svn update</command> Ihre lokalen
+          Änderungen. An dieser Stelle spiegelt Ihre Arbeitskopie den
+          neu erzeugten Zweig wieder, und Ihr nächster Aufruf von
+          <command>svn commit</command> wird Ihre Änderungen dorthin
+          senden.</para> </tip>
 
   </sect1>
 
@@ -4239,12 +4240,22 @@
 
     <!-- =============================================================== -->
     <sect2 id="svn.branchmerge.tags.mksimple">
+<!--
       <title>Creating a Simple Tag</title>
+-->
+      <title>Erzeugen eines einfachen Tags</title>
 
+<!--
       <para>Once again, <command>svn copy</command> comes to the
         rescue.  If you want to create a snapshot of
         <filename>/calc/trunk</filename> exactly as it looks in the
         <literal>HEAD</literal> revision, make a copy of it:</para>
+-->
+      <para>Wieder einmal hilft Ihnen <command>svn copy</command> bei
+        der Arbeit. Wenn Sie eine Momentaufnahme von
+        <filename>/calc/trunk</filename> machen wollen, genau so, wie
+        es in der Revision <literal>HEAD</literal> aussieht, machen
+        Sie davon eine Kopie:</para>
 
       <screen>
 $ svn copy http://svn.example.com/repos/calc/trunk \
@@ -4254,6 +4265,7 @@
 Committed revision 902.
 </screen>
 
+<!--
       <para>This example assumes that a
         <filename>/calc/tags</filename> directory already exists.  (If
         it doesn't, you can create it using <command>svn
@@ -4268,7 +4280,24 @@
         <filename>/calc/trunk</filename> is exactly the snapshot you
         want, you can specify it by passing <option>-r 901</option> to
         the <command>svn copy</command> command.</para>
+-->
+      <para>Dieses Beispiel geht davon aus, dass ein Verzeichnis
+        <filename>/calc/tags</filename> bereits besteht. (Falls nicht,
+        können Sie es mit <command>svn mkdir</command> erstellen.)
+        Nach Abschluss der Kopie ist das neue Verzeichnis
+        <filename>release-1.0</filename> für immer eine Momentaufnahme
+        des Verzeichnisses <filename>/trunk</filename> in der Revision
+        <literal>HEAD</literal> zum Zeitpunkt, an dem Sie die Kopie
+        erstellt haben. Natürlich können Sie auch angeben, welche
+        Revision Sie genau kopieren möchten, für den Fall, dass jemand
+        anderes Änderungen an das Projekt übergeben haben könnte,
+        während Sie nicht hingeschaut haben. Wenn Sie also wissen,
+        dass Revision 901 von <filename>/calc/trunk</filename> genau
+        die Momentaufnahme ist, die Sie möchten, können Sie sie mit
+        der Option <option>-r 901</option> an den Befehl <command>svn
+        copy</command> übergeben.</para>
 
+<!--
       <para>But wait a moment: isn't this tag creation procedure the
         same procedure we used to create a branch?  Yes, in fact, it
         is.  In Subversion, there's no difference between a tag and a
@@ -4279,7 +4308,20 @@
         as long as nobody ever commits to the directory, it forever
         remains a snapshot.  If people start committing to it, it
         becomes a branch.</para>
+-->
+      <para>Moment mal: ist die Erstellung eines Tags nicht dasselbe
+        Vorgehen wie bei der Erstellung eines Zweigs? Ja, es ist es
+        tatsächlich. In Subversion gibt es keinen Unterschied zwischen
+        einem Tag und einem Zweig. Beides sind gewöhnliche
+        Verzeichnisse, die durch Kopieren erzeugt werden. Genauso wie
+        bei Zweigen, ist der einzige Grund warum ein kopiertes
+        Verzeichnis ein <quote>Tag</quote> ist, weil
+        <emphasis>Menschen</emphasis> sich entschieden haben, es so zu
+        betrachten: Solange niemand etwas an das Verzeichnis übergibt,
+        bleibt es für immer eine Momentaufnahme. Wenn jemand damit
+        beginnt, etwas dorthin zu übergeben, wird es ein Zweig.</para>
 
+<!--
       <para>If you are administering a repository, there are two
         approaches you can take to managing tags.  The first approach
         is <quote>hands off</quote>: as a matter of project policy,
@@ -4294,17 +4336,45 @@
         commits a change to a tag directory, you can simply undo the
         change as discussed in the previous section.  This is version
         control, after all!</para>
+-->
+      <para>Wenn Sie ein Repository verwalten, gibt es zwei Ansätze
+        für den Umgang mit Tags. Der erste Ansatz ist <quote>Hände
+        weg</quote>: Als Vereinbarung im Projekt entscheiden Sie, wohin
+        Sie Ihre Tags kopieren möchten; stellen Sie sicher, dass alle
+        Benutzer wissen, wie sie ihre zu kopierenden Verzeichnisse
+        behandeln sollen, d.h., stellen Sie sicher, dass sie nichts
+        dorthin übergeben. Der zweite Ansatz ist etwas paranoider: Sie
+        können eins der Zugriffskontrollskripte verwenden, die mit
+        Subversion ausgeliefert werden, um zu verhindern, dass
+        irgendjemand etwas anderes im Tag-Bereich macht, als dort neue
+        Kopien zu erzeugen (siehe <xref linkend="svn.serverconfig"/>).
+        Der paranoide Ansatz ist normalerweise nicht notwendig. Falls
+        ein Benutzer versehentlich eine Änderung an ein
+        Tag-Verzeichnis übergeben hat, können Sie die Änderung einfach
+        rückgängig machen, wie im vorhergehenden Abschnitt
+        beschrieben. Schließlich handelt es sich um
+        Versionskontrolle!</para>
 
     </sect2>
 
-    <!-- =============================================================== -->
+      <!-- =============================================================== -->
     <sect2 id="svn.branchmerge.tags.mkcomplex">
+<!--
       <title>Creating a Complex Tag</title>
+-->
+      <title>Erzeugen eines komplexen Tags</title>
 
+<!--
       <para>Sometimes you may want your <quote>snapshot</quote> to be
         more complicated than a single directory at a single
         revision.</para>
+-->
+      <para>Manchmal möchten Sie vielleicht eine
+        <quote>Momentaufnahme</quote> machen, die komplizierter ist
+        als ein einzelnes Verzeichnis mit einer einzigen
+        Revision.</para>
 
+<!--
       <para>For example, pretend your project is much larger than our
         <filename>calc</filename> example: suppose it contains a
         number of subdirectories and many more files.  In the course
@@ -4319,7 +4389,26 @@
         of repository locations from different revisions.  But after
         testing, you know it's the precise combination of data you
         need to tag.</para>
+-->
+      <para>Stellen Sie sich beispielsweise vor, Ihr Projekt sei viel
+        größer als unser <filename>calc</filename> Beispiel: Nehmen
+        wir an, es enthalte eine große Zahl von Unterverzeichnissen
+        und viel mehr Dateien. Während Ihrer Arbeit könnte es sein,
+        dass Sie sich entscheiden, eine Arbeitskopie anzulegen, die
+        bestimmte Merkmale und Fehlerbehebungen beinhaltet. Sie können
+        dies hinbekommen, indem Sie selektiv Dateien oder
+        Verzeichnisse auf bestimmte Revisionen zurückdatieren (unter
+        Verwendung von <command>svn update</command> mit der Option
+        <option>-r</option>), indem Sie Dateien und Verzeichnisse auf
+        bestimmte Zweige umschalten (mit <command>svn
+        switch</command>) oder sogar, indem Sie ein paar lokale
+        Änderungen vornehmen. Wenn Sie fertig sind, ist Ihre
+        Arbeitskopie ein Mischmasch aus Repository-Quellen
+        verschiedener Revisionen. Nach dem Testen wissen Sie jedoch,
+        dass das genau die Kombination ist, die Sie mit einem Tag
+        versehen möchten.</para>
 
+<!--
       <para>Time to make a snapshot.  Copying one URL to another won't
         work here.  In this case, you want to make a snapshot of your
         exact working copy arrangement and store it in the repository.
@@ -4327,6 +4416,16 @@
         different uses (which you can read about in <xref
         linkend="svn.ref"/>), including the ability to copy a
         working copy tree to the repository:</para>
+-->
+      <para>Nun ist es an der Zeit, eine Momentaufnahme zu machen.
+        Einen URL auf einen anderen zu kopieren hilft hier nicht
+        weiter. In diesem Fall möchten Sie eine Momentaufnahme der
+        exakten Anordnung Ihrer Arbeitskopie machen und sie im
+        Reository speichern. Glücklicherweise besitzt <command>svn
+        copy</command> vier verschiedene Anwendungsfälle (über die Sie
+        in <xref linkend="svn.ref"/> nachlesen können), zu denen auch
+        die Fähigkeit gehört, einen Arbeitskopie-Baum ins Repository
+        zu kopieren:</para>
 
       <screen>
 $ ls
@@ -4339,11 +4438,18 @@
 Committed revision 940.
 </screen>
 
+<!--
       <para>Now there is a new directory in the repository,
         <filename>/calc/tags/mytag</filename>, which is an exact
         snapshot of your working copy—mixed revisions, URLs,
         local changes, and all.</para>
+-->
+      <para>Nun gibt es ein neues Verzeichnis im Repository,
+        <filename>/calc/tags/mytag</filename>, das eine exakte
+        Momentaufnahme Ihrer Arbeitskopie ist – gemischte
+        Revisionen, URLs, lokale Änderungen, usw.</para>
 
+<!--
       <para>Other users have found interesting uses for this feature.
         Sometimes there are situations where you have a bunch of local
         changes made to your working copy, and you'd like a
@@ -4355,7 +4461,22 @@
         collaborator can then either check out a verbatim copy of your
         working copy or use <command>svn merge</command> to receive
         your exact changes.</para>
+-->
+      <para>Andere Benutzer haben interessante Anwendungsfälle für
+        diese Fähigkeit von Subversion gefunden. Manchmal gibt es
+        Situationen, in denen Sie ein paar lokale Änderungen in Ihrer
+        Arbeitskopie gemacht haben, die ein Mitarbeiter sehen soll.
+        Statt <command>svn diff</command> aufzurufen und eine
+        Patch-Datei zu versenden (die allerdings weder Änderungen an
+        Verzeichnissen, symbolischen Links oder Propertys beinhaltet),
+        können Sie <command>svn copy</command> verwenden, um Ihre
+        Arbeitskopie in einen privaten Bereich des Repositrorys
+        <quote>abzulegen</quote>. Ihr Mitarbeiter kann dann entweder
+        eine exakte Kopie Ihrer Arbeitskopie auschecken oder
+        <command>svn merge</command> verwenden, um genau Ihre
+        Änderungen zu empfangen.</para>
 
+<!--
       <para>While this is a nice method for uploading a quick snapshot
         of your working copy, note that this is <emphasis>not</emphasis>
         a good way to initially create a branch.  Branch creation should
@@ -4363,6 +4484,17 @@
         of a branch with extra changes to files, all within a single revision.
         This makes it very difficult (later on) to identify a single
         revision number as a branch point.</para>
+-->
+      <para>Obwohl dies eine nette Methode ist, schnell eine
+        Momentaufnahme Ihrer Arbeitskopie anzulegen, sollten Sie
+        beachten, dass es <emphasis>keine</emphasis> gute
+        Vorgehensweise ist, einen Zweig zu erstellen. Die Erzeugung
+        eines Zweigs sollte ein Ereignis für sich sein, wohingegen
+        diese Methode die Erzeugung eines Zweigs mit zusätzlichen
+        Änderungen an Dateien innerhalb einer einzelnen Revision
+        verbindet. Das macht es später sehr schwer, eine einzelne
+        Revisionsnummer als Verzweigungspunkt zu
+        identifizieren.</para>
 
     </sect2>
 




More information about the svnbook-dev mailing list