[svnbook commit] r3387 - trunk/src/de/book
jmfelderhoff
noreply at red-bean.com
Mon Dec 22 12:39:33 CST 2008
Author: jmfelderhoff
Date: Mon Dec 22 12:39:33 2008
New Revision: 3387
Log:
* trunk/src/de/book/ch04-branching-and-merging.xml
- Ticket #175 (cf. http://www.svnbook.de/report/6).
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 22 12:39:33 2008
@@ -4989,8 +4989,12 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect2 id="svn.branchmerge.commonpatterns.feature">
+<!--
<title>Feature Branches</title>
+-->
+ <title>Funktions-Zweige</title>
+<!--
<para>A <firstterm>feature branch</firstterm> is the sort of
branch that's been the dominant example in this chapter (the
one you've been working on while Sally continues to work on
@@ -5001,7 +5005,20 @@
branches are born, used for a while, merged back to the trunk,
and then ultimately deleted. They have a finite span of
usefulness.</para>
+-->
+ <para>Ein <firstterm>Funktions-Zweig</firstterm> ist die Art von
+ Zweig, wie er im Hauptbeispiel dieses Kapitels vorkam (der
+ Zweig, auf dem Sie gearbeitet haben, während Sally auf
+ <filename>/trunk</filename> arbeitete). Es ist ein
+ vorübergehender Zweig, der angelegt wird, um an einer
+ komplexen Änderung zu arbeiten, ohne
+ <filename>/trunk</filename> zu stören. Anders als
+ Release-Zweige (die vielleicht ewig gepflegt werden müssen),
+ werden Funktions-Zweige erstellt, eine Zeit lang genutzt,
+ zurück in den Stamm integriert und schließlich gelöscht. Sie
+ haben einen zeitlich begrenzten Nutzen.</para>
+<!--
<para>Again, project policies vary widely concerning exactly
when it's appropriate to create a feature branch. Some
projects never use feature branches at all: commits to
@@ -5016,7 +5033,25 @@
the branch is deleted. This system guarantees an
exceptionally stable and usable trunk at all times, but at
the cost of tremendous process overhead.</para>
+-->
+ <para>In Projekten gehen die Meinungen oft auseinander, wann der
+ richtige Zeitpunkt zum Anlegen eines Funktions-Zweiges
+ gekommen ist. Manche Projekte benutzen nie Funktions-Zweige:
+ jeder darf Änderungen in <filename>/trunk</filename>
+ übergeben. Der Vorteil hier ist, dass es einfach ist –
+ niemand benötigt eine Schulung im Verzweigen und
+ Zusammenführen. Der Nachteil ist, dass der Code oft instabil
+ oder nicht nutzbar ist. Andere Projekte verwenden
+ ausschließlich Zweige: Eine Änderung darf
+ <emphasis>niemals</emphasis> direkt in
+ <filename>/trunk</filename> übergeben werden. Selbst die
+ trivialsten Änderungen werden auf einem kurzlebigen Zweig
+ durchgeführt, sorgfältig geprüft und in den Stamm
+ zurückgeführt. Danach wird der Zweig gelöscht. Dieses Vorgehen
+ garantiert einen außerordentlich stabilen und nutzbaren Stamm,
+ jedoch zum Preis eines erheblichen Prozessaufwands.</para>
+<!--
<para>Most projects take a middle-of-the-road approach. They
commonly insist that <filename>/trunk</filename> compile and
pass regression tests at all times. A feature branch is
@@ -5030,7 +5065,24 @@
developed on a feature branch. As the developer commits
incremental changes to the branch, they can be easily reviewed
by peers.</para>
+-->
+ <para>Die meisten Projekte bewegen sich irgendwo dazwischen.
+ Gewöhnlich bestehen sie darauf, dass
+ <filename>/trunk</filename> stets compilierfähig bleibt und
+ Regressionstests besteht. Ein Funktions-Zweig wird nur dann
+ benötigt, falls eine Änderung eine große Anzahl
+ destabilisierender Übergaben erfordert. Eine gute Faustregel
+ ist, diese Frage zu stellen: Wäre, falls ein Entwickler nach Tagen
+ isolierter Entwicklung die große Änderung auf einmal übergäbe
+ (so dass <filename>/trunk</filename> nie instabil würde), die
+ Änderung zu umfangreich zum Überprüfen? Falls die Antwort auf
+ diese Frage <quote>ja</quote> lautet, sollte die Änderung auf
+ einem Funktions-Zweig durchgeführt werden. Während der
+ Entwickler schrittweise Änderungen in den Zweig übergibt,
+ können sie auf einfache Weise von den Kollegen geprüft
+ werden.</para>
+<!--
<para>Finally, there's the issue of how to best keep a feature
branch in <quote>sync</quote> with the trunk as work
progresses. As we mentioned earlier, there's a great risk to
@@ -5038,18 +5090,44 @@
continue to pour in, to the point where the two lines of
development differ so greatly that it may become a nightmare
trying to merge the branch back to the trunk.</para>
+-->
+ <para>Schließlich stellt sich die Frage, wie ein Funktions-Zweig
+ am besten mit dem Stamm <quote>synchron</quote> gehalten
+ werden kann während die Arbeit weitergeht. Wie wir vorher
+ bereits bemerkten, besteht ein großes Risiko, wenn wochen-
+ oder monatelang auf dem Zweig gearbeitet wird; währenddessen
+ ändert sich auch der Stamm, so dass ein Punkt erreicht werden
+ kann, an dem sich die beiden Entwicklungslinien so sehr
+ unterscheiden, dass es zu einem Albtraum ausarten kann, den
+ Zweig zurück auf den Stamm zu führen.</para>
+<!--
<para>This situation is best avoided by regularly merging trunk
changes to the branch. Make up a policy: once a week, merge
the last week's worth of trunk changes to the branch.</para>
+-->
+ <para>Diese Situation wird am besten vermieden, indem regelmäßig
+ Änderungen vom Stamm in den Zweig eingearbeitet werden. Machen
+ Sie es zur Gewohnheit: Arbeiten Sie wöchentlich die Änderungen
+ der vergangenen Woche vom Stamm in den Zweig ein.</para>
+<!--
<para>At some point, you'll be ready to merge the
<quote>synchronized</quote> feature branch back to the trunk.
To do this, begin by doing a final merge of the latest trunk
changes to the branch. When that's done, the latest versions
of branch and trunk will be absolutely identical except for
your branch changes. You would then merge back with
- the <option>--reintegrate</option> option:</para>
+ the <option>- -reintegrate</option> option:</para>
+-->
+ <para>Irgendwann werden Sie dann bereit sein, den
+ <quote>synchronisierten</quote> Funktions-Zweig zurück in den
+ Stamm zu führen. Hierzu arbeiten Sie ein letztes Mal die
+ jüngsten Änderungen vom Stamm in den Zweig ein. Danach werden
+ die letzten Versionen auf dem Stamm und dem Zweig, bis auf Ihre
+ Änderungen auf dem Zweig, absolut gleich sein. Dann werden Sie
+ den Zweig mit der Option <option>--reintegrate</option> wieder
+ mit dem Stamm zusammenführen:</para>
<screen>
$ cd trunk-working-copy
@@ -5067,6 +5145,7 @@
…
</screen>
+<!--
<para>Another way of thinking about this pattern is that your
weekly sync of trunk to branch is analogous to running
<command>svn update</command> in a working copy, while the
@@ -5075,6 +5154,15 @@
<emphasis>is</emphasis> a working copy but a very shallow
private branch? It's a branch that's capable of
storing only one change at a time.</para>
+-->
+ <para>Aus einem anderen Winkel betrachtet ist dieser
+ wöchentliche Abgleich vom Stamm auf den Zweig analog zum
+ Ausführen von <command>svn update</command> in einer
+ Arbeitskopie, wobei das finale Zusammenführen <command>svn
+ commit</command> in einer Arbeitskopie entspricht.
+ <emphasis>Ist</emphasis> denn letztendlich eine Arbeitskopie
+ nicht ein sehr flacher privater Zweig? Es ist ein Zweig, der
+ nur eine Änderung gleichzeitig aufnehmen kann.</para>
</sect2>
More information about the svnbook-dev
mailing list