[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