[svnbook] r4518 committed - Translation up to "Mergeinfo and Previews".
svnbook at googlecode.com
svnbook at googlecode.com
Tue Jul 2 14:54:43 CDT 2013
Revision: 4518
Author: jmfelderhoff at gmx.eu
Date: Tue Jul 2 12:54:31 2013
Log: Translation up to "Mergeinfo and Previews".
http://code.google.com/p/svnbook/source/detail?r=4518
Modified:
/branches/1.6/de/book/ch04-branching-and-merging.xml
=======================================
--- /branches/1.6/de/book/ch04-branching-and-merging.xml Mon Aug 2
11:28:16 2010
+++ /branches/1.6/de/book/ch04-branching-and-merging.xml Tue Jul 2
12:54:31 2013
@@ -96,15 +96,22 @@
Dingen.</para>
<!--
- <para>This is the basic concept of a
- <firstterm>branch</firstterm>—namely, a line of
- development that exists independently of another line, yet still
- shares a common history if you look far enough back in time. A
- branch always begins life as a copy of something, and moves on
- from there, generating its own history (see <xref
- linkend="svn.branchmerge.whatis.dia-1"/>).</para>
+ <para>
+ <indexterm>
+ <primary>branches</primary>
+ </indexterm>
+ This is the basic concept of a branch—namely,
+ a line of development that exists independently of another line,
+ yet still shares a common history if you look far enough back in
+ time. A branch always begins life as a copy of something, and
+ moves on from there, generating its own history (see
+ <xref linkend="svn.branchmerge.whatis.dia-1"/>).</para>
-->
- <para>Das ist das Grundkonzept eines <firstterm>Zweigs</firstterm>
+ <para>
+ <indexterm>
+ <primary>Zweige</primary>
+ </indexterm>
+ Das ist das Grundkonzept eines <firstterm>Zweigs</firstterm>
(Branch) – nämlich eine Entwicklungslinie, die unabhängig
von einer anderen existiert, jedoch über eine gemeinsame
Geschichte verfügt, wenn lang genug in der Zeit zurück gegangen
@@ -113,13 +120,13 @@
Geschichte erzeugt (siehe <xref
linkend="svn.branchmerge.whatis.dia-1"/>).</para>
- <figure id="svn.branchmerge.whatis.dia-1">
+ <figure id="svn.branchmerge.whatis.dia-1">
<!--
- <title>Branches of development</title>
+ <title>Branches of development</title>
-->
- <title>Entwicklungszweige</title>
- <graphic fileref="images/ch04dia1.png"/>
- </figure>
+ <title>Entwicklungszweige</title>
+ <graphic fileref="images/ch04dia1.png"/>
+ </figure>
<!--
<para>Subversion has commands to help you maintain parallel
@@ -155,15 +162,15 @@
<!--
<para>At this point, you should understand how each commit creates
- an entirely new filesystem tree (called a <quote>revision</quote>)
+ a new state of the filesystem tree (called a <quote>revision</quote>)
in the repository. If you don't, go back and read about revisions in
<xref linkend="svn.basic.in-action.revs"/>.</para>
-->
<para>An dieser Stelle sollten Sie verstehen, wie jede Übergabe an
- das Projektarchiv dort einen völlig neuen Dateibaum
- (<quote>Revision</quote> genannt) erzeugt. Wenn nicht, blättern
- Sie zurück und lesen Sie in <xref
- linkend="svn.basic.in-action.revs"/> über Revisionen
+ das Projektarchiv dort einen neuen Zustand des Dateibaums
+ (genannt <quote>Revision</quote>) erzeugt. Wenn nicht, blättern
+ Sie zurück und lesen Sie in
+ <xref linkend="svn.basic.in-action.revs"/> über Revisionen
nach.</para>
<!--
@@ -187,13 +194,13 @@
<filename>trunk</filename> und <filename>branches</filename>
beinhaltet. Der Grund hierfür wird bald klar sein.</para>
- <figure id="svn.branchmerge.using.dia-1">
+ <figure id="svn.branchmerge.using.dia-1">
<!--
- <title>Starting repository layout</title>
+ <title>Starting repository layout</title>
-->
- <title>Projektarchiv-Struktur zu Beginn</title>
- <graphic fileref="images/ch04dia2.png"/>
- </figure>
+ <title>Projektarchiv-Struktur zu Beginn</title>
+ <graphic fileref="images/ch04dia2.png"/>
+ </figure>
<!--
<para>As before, assume that Sally and you both have working
@@ -228,13 +235,13 @@
<para>Sagen wir mal, dass Sie die Aufgabe bekommen haben, ein
großes Stück Software umzusetzen. Die Erstellung benötigt eine
lange Zeit und berührt alle Dateien im Projekt. Das Problem,
- dass sofort auftaucht ist, dass Sie nicht Sally in die Quere
+ dass sofort auftaucht ist, dass Sie Sally nicht in die Quere
kommen möchten, die gerade hier und da kleinere Fehler
- beseitigt. Sie ist abhängig von der Tatsache, dass die letzte
- Version des Projektes (in <filename>/calc/trunk</filename>)
- stets benutzbar ist. Wenn Sie nun damit beginnen, Stück für
- Stück Ihre Änderungen zu übergeben, werden Sie gewiss die Dinge
- für Sally (und auch für andere Teammitglieder) in Unordnung
+ beseitigt. Sie ist davon abhängig, dass die letzte Version des
+ Projektes (in <filename>/calc/trunk</filename>) stets benutzbar
+ ist. Wenn Sie nun damit beginnen, Stück für Stück Ihre
+ Änderungen zu übergeben, werden Sie die Dinge für Sally (und
+ auch für andere Teammitglieder) bestimmt in Unordnung
bringen.</para>
<!--
@@ -364,68 +371,66 @@
einen anderen:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
Committed revision 341.
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Privaten Zweig von /calc/trunk angelegt."
Revision 341 übertragen.
</screen>
+ </informalexample>
<!--
<para>This command causes a near-instantaneous commit in the
repository, creating a new directory in revision 341. The new
directory is a copy of <filename>/calc/trunk</filename>. This
- is shown in
- <xref linkend="svn.branchmerge.using.create.dia-1"/>.
- <footnote>
- <para>Subversion does not support copying between different
- repositories. When using URLs with <command>svn
+ is shown in <xref linkend="svn.branchmerge.using.create.dia-1"
+ />.<footnote><para>Subversion does not support copying between
+ different repositories. When using URLs with <command>svn
copy</command> or <command>svn move</command>, you can only
- copy items within the same repository.</para>
- </footnote>
-
- While it's also possible to create a branch by
- using <command>svn copy</command> to duplicate a directory
- within the working copy, this technique isn't recommended. It
- can be quite slow, in fact! Copying a directory on the
- client side is a linear-time operation, in that it actually
- has to duplicate every file and subdirectory on the local disk.
- Copying a directory on the server, however, is a constant-time
- operation, and it's the way most people create
- branches.</para>
+ copy items within the same repository.</para></footnote> While
+ it's also possible to create a branch by using <command>svn
+ copy</command> to duplicate a directory within the working
+ copy, this technique isn't recommended. It can be quite slow,
+ in fact! Copying a directory on the client side is a
+ linear-time operation, in that it actually has to duplicate
+ every file and subdirectory within that working copy directory
+ on the local disk. Copying a directory on the server,
+ however, is a constant-time operation, and it's the way most
+ people create branches.</para>
-->
<para>Dieser Befehl bewirkt eine fast sofortige Übergabe im
Projektarchiv, wobei in Revision 341 ein neues Verzeichnis
erzeugt wird. Das neue Verzeichnis ist eine Kopie von
<filename>/calc/trunk</filename>. Dies wird in <xref
linkend="svn.branchmerge.using.create.dia-1"/> gezeigt.
- <footnote>
- <para>Subversion unterstützt nicht das Kopieren zwischen
- verschiedenen Projektarchiven. Wenn Sie mit <command>svn
- copy</command> oder <command>svn move</command> URLs
- verwenden, können Sie nur Objekte innerhalb desselben
- Projektarchivs kopieren oder verschieben.</para>
- </footnote>
-
+ <footnote> <para>Subversion unterstützt nicht das Kopieren
+ zwischen verschiedenen Projektarchiven. Wenn Sie mit
+ <command>svn copy</command> oder <command>svn move</command>
+ URLs verwenden, können Sie nur Objekte innerhalb desselben
+ Projektarchivs kopieren oder verschieben.</para></footnote>
Obwohl es auch möglich ist, einen Zweig zu erzeugen, indem
<command>svn copy</command> verwendet wird, um ein Verzeichnis
innerhalb der Arbeitskopie zu duplizieren, wird dieses
Vorgehen nicht empfohlen. Es kann in der Tat sehr langsam
sein! Das client-seitige Kopieren eines Verzeichnisses besitzt
einen linearen Zeitaufwand, da wirklich jede Datei und jedes
- Verzeichnis auf der lokalen Platte dupliziert werden muss. Das
- Kopieren eines Verzeichnisses auf dem Server jedoch besitzt
- einen konstanten Zeitaufwand und ist die Art und Weise, auf
- die die meisten Leute Zweige erstellen.</para>
+ Verzeichnis innerhalb dieser Arbeitskopie auf der lokalen
+ Platte dupliziert werden muss. Das Kopieren eines
+ Verzeichnisses auf dem Server jedoch besitzt einen konstanten
+ Zeitaufwand und ist die Art und Weise, auf die die meisten
+ Leute Zweige erstellen.</para>
<figure id="svn.branchmerge.using.create.dia-1">
<!--
@@ -501,8 +506,9 @@
copies of trees. The main point here is that copies are
cheap, both in time and in space. If you create a branch
entirely within the repository (by running <userinput>svn copy
- <replaceable>URL1</replaceable>
<replaceable>URL2</replaceable></userinput>), it's a quick, constant-time
operation.
- Make branches as often as you want.</para>
+ <replaceable>URL1</replaceable>
<replaceable>URL2</replaceable></userinput>),
+ it's a quick, constant-time operation. Make branches as
+ often as you want.</para>
-->
<para>Natürlich sind diese internen Mechanismen des Kopierens
und Teilens vor dem Benutzer verborgen, der lediglich Kopien
@@ -534,21 +540,27 @@
benutzen:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A my-calc-branch/Makefile
A my-calc-branch/integer.c
A my-calc-branch/button.c
Checked out revision 341.
+$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A my-calc-branch/Makefile
A my-calc-branch/integer.c
A my-calc-branch/button.c
Ausgecheckt, Revision 341.
+$
</screen>
+ </informalexample>
<!--
<para>There's nothing special about this working copy; it simply
@@ -578,37 +590,37 @@
folgenden Übergaben stattfinden:</para>
<itemizedlist>
- <listitem><para>
+ <listitem>
<!--
- You make a change to
- <filename>/calc/branches/my-calc-branch/button.c</filename>,
- which creates revision 342.</para>
+ <para>You make a change to
+ <filename>/calc/branches/my-calc-branch/button.c</filename>,
+ which creates revision 342.</para>
-->
- Sie machen eine Änderung an
- <filename>/calc/branches/my-calc-branch/button.c</filename>,
+ <para>Sie machen eine Änderung an
+ <filename>/calc/branches/my-calc-branch/button.c</filename>,
die die Revision 342 erzeugt.</para>
</listitem>
- <listitem><para>
+ <listitem>
<!--
- You make a change to
- <filename>/calc/branches/my-calc-branch/integer.c</filename>,
- which creates revision 343.</para>
+ <para>You make a change to
+ <filename>/calc/branches/my-calc-branch/integer.c</filename>,
+ which creates revision 343.</para>
-->
- Sie machen eine Änderung an
- <filename>/calc/branches/my-calc-branch/integer.c</filename>,
- die die Revision 343 erzeugt.</para>
+ <para>Sie machen eine Änderung an
+ <filename>/calc/branches/my-calc-branch/integer.c</filename>,
+ die die Revision 343 erzeugt.</para>
</listitem>
- <listitem><para>
+ <listitem>
<!--
- Sally makes a change to
- <filename>/calc/trunk/integer.c</filename>, which creates
- revision 344.</para>
+ <para>Sally makes a change to
+ <filename>/calc/trunk/integer.c</filename>, which creates
+ revision 344.</para>
-->
- Sally macht eine Änderung an
- <filename>/calc/trunk/integer.c</filename>, die die Revision
- 344 erzeugt.</para>
+ <para>Sally macht eine Änderung an
+ <filename>/calc/trunk/integer.c</filename>, die die Revision
+ 344 erzeugt.</para>
</listitem>
</itemizedlist>
@@ -631,15 +643,15 @@
<!--
<para>Things get interesting when you look at the history of
- changes made to your copy of
- <filename>integer.c</filename>:</para>
+ changes made to your copy of <filename>integer.c</filename>:</para>
-->
<para>Es wird interessant, wenn Sie die Geschichte der
Änderungen an Ihrer Kopie von <filename>integer.c</filename>
betrachten:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ pwd
/home/user/my-calc-branch
@@ -674,8 +686,10 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ pwd
/home/user/my-calc-branch
@@ -710,6 +724,7 @@
------------------------------------------------------------------------
</screen>
+ </informalexample>
<!--
<para>Notice that Subversion is tracing the history of your
@@ -732,34 +747,68 @@
wurde. Sehen Sie nun, was passiert, wenn Sally den gleichen
Befehl auf Ihre Arbeitskopie der Datei anwendet:</para>
- <screen>
+<!--
+ <informalexample>
+ <screen>
$ pwd
/home/sally/calc
$ svn log -v integer.c
-------------------------------------------------------------------------
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
r344 | sally | 2002-11-07 15:27:56 -0600 (Thu, 07 Nov 2002) | 2 lines
Changed paths:
M /calc/trunk/integer.c
* integer.c: fix a bunch of spelling errors.
-------------------------------------------------------------------------
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
r303 | sally | 2002-10-29 21:14:35 -0600 (Tue, 29 Oct 2002) | 2 lines
Changed paths:
M /calc/trunk/integer.c
* integer.c: changed a docstring.
-------------------------------------------------------------------------
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
r98 | sally | 2002-02-22 15:35:29 -0600 (Fri, 22 Feb 2002) | 2 lines
Changed paths:
A /calc/trunk/integer.c
* integer.c: adding this file to the project.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+</screen>
+ </informalexample>
+-->
+ <informalexample>
+ <screen>
+$ pwd
+/home/sally/calc
+
+$ svn log -v integer.c
+------------------------------------------------------------------------
+r344 | sally | 2002-11-07 15:27:56 -0600 (Thu, 07 Nov 2002) | 2 lines
+Changed paths:
+ M /calc/trunk/integer.c
+
+* integer.c: Ein paar Rechtschreibfehler behoben.
+
+------------------------------------------------------------------------
+r303 | sally | 2002-10-29 21:14:35 -0600 (Tue, 29 Oct 2002) | 2 lines
+Changed paths:
+ M /calc/trunk/integer.c
+
+* integer.c: Einen Docstring geändert.
+
+------------------------------------------------------------------------
+r98 | sally | 2002-02-22 15:35:29 -0600 (Fri, 22 Feb 2002) | 2 lines
+Changed paths:
+ A /calc/trunk/integer.c
+
+* integer.c: Diese Datei dem Projekt hinzugefügt.
+
------------------------------------------------------------------------
</screen>
+ </informalexample>
<!--
<para>Sally sees her own revision 344 change, but not the change
@@ -775,13 +824,13 @@
<para>Sally sieht ihre eigene Änderung in Revision 344, aber
nicht die Änderung, die Sie in Revision 343 gemacht haben. Was
Subversion angeht, hatten diese beiden Übergaben Auswirkungen
- auf unterschiedliche Dateien an unterschiedlichen
- Projektarchiv-Orten. Dennoch zeigt Subversion
- <emphasis>doch</emphasis>, dass die beiden Dateien einen Teil
- der Geschichte gemeinsam haben. Bevor die Kopie des Zweiges in
- Revision 341 gemacht wurde, waren die Dateien dieselbe
- Datei. Deshalb sehen sowohl Sie als auch Sally die Änderungen,
- die in den Revisionen 303 und 98 gemacht wurden.</para>
+ auf unterschiedliche Dateien an unterschiedlichen Stellen im
+ Projektarchiv. <emphasis>Glwichwohl</emphasis> zeigt
+ Subversion, dass die beiden Dateien einen Teil der Geschichte
+ gemeinsam haben. Bevor die Kopie des Zweiges in Revision 341
+ gemacht wurde, waren die Dateien dieselbe Datei. Deshalb
+ sehen sowohl Sie als auch Sally die Änderungen, die in den
+ Revisionen 303 und 98 gemacht wurden.</para>
</sect2>
@@ -856,8 +905,7 @@
<!--
<para>Now you and Sally are working on parallel branches of the
project: you're working on a private branch, and Sally is
- working on the <firstterm>trunk</firstterm>, or main line of
- development.</para>
+ working on the trunk, or main line of development.</para>
-->
<para>Nun arbeiten Sie und Sally auf parallelen Zweigen des
Projektes: Sie arbeiten auf einem privaten Zweig, und Sally
@@ -872,12 +920,12 @@
private branch and commit changes there until all the work is
complete.</para>
-->
- <para>Bei Projekten mit einer großen Zahl von Mitarbeitern haben
- die meisten gewöhnlich Arbeitskopien vom Stamm. Sobald jemand
- eine langwierige Änderung machen muss, die wahrscheinlich den
- Stamm stören würde, ist die Standardvorgehensweise, einen Zweig
- zu erzeugen und die Änderungen bis zum Abschluss der Arbeiten
- nach dorthin zu übergeben.</para>
+ <para>Bei Projekten mit einer großen Zahl von Mitarbeitern
+ besitzen die meisten gewöhnlich Arbeitskopien vom Stamm. Sobald
+ jemand eine langwierige Änderung machen muss, die wahrscheinlich
+ den Stamm stören würde, ist es Standard, einen Zweig zu erzeugen
+ und die Änderungen bis zum Abschluss der Arbeiten nach dorthin
+ zu übergeben.</para>
<!--
<para>So, the good news is that you and Sally aren't interfering
@@ -892,8 +940,8 @@
in die Quere kommen. Die schlechte Nachricht ist, dass es sehr
leicht ist, <emphasis>zu</emphasis> weit auseinander zu treiben.
Erinnern Sie sich, dass eins der Probleme bei der Strategie
- <quote>sich in ein Loch zu verkriechen</quote> war, dass es zu
- dem Zeitpunkt, an dem Sie mit dem Zweig fertig sind, fast
+ <quote>sich in ein Loch verkriechen</quote> darin bestand, dass
+ es zu dem Zeitpunkt, an dem Sie mit dem Zweig fertig sind, fast
unmöglich sein kann, Ihre Änderungen ohne eine riesige Zahl an
Konflikten auf den Stamm zurückzuführen.</para>
@@ -953,7 +1001,7 @@
sicherzustellen, dass Ihr Client und Server mindestens die
Version 1.5 haben.</para>
- <!-- =============================================================== -->
+ <!-- ===============================================================
-->
<sect2 id="svn.branchmerge.changesets">
<!--
<title>Changesets</title>
@@ -1001,15 +1049,18 @@
einem Namen, auf den Sie sich beziehen können.</para>
<!--
- <para>In Subversion, a global revision number N names a tree in
- the repository: it's the way the repository looked after the
- Nth commit. It's also the name of an implicit changeset: if
- you compare tree N with tree N−1, you can derive the exact
+ <para>In Subversion, a global revision
+ number <replaceable>N</replaceable> names a tree in the
+ repository: it's the way the repository looked after the
+ <replaceable>N</replaceable>th commit. It's also the name of
+ an implicit changeset: if you compare
+ tree <replaceable>N</replaceable> with
+ tree <replaceable>N</replaceable>-1, you can derive the exact
patch that was committed. For this reason, it's easy to think
- of revision N as not just a tree, but a changeset as well. If
- you use an issue tracker to manage bugs, you can use the
- revision numbers to refer to particular patches that fix
- bugs—for example,
+ of revision <replaceable>N</replaceable> as not just a tree,
+ but a changeset as well. If you use an issue tracker to
+ manage bugs, you can use the revision numbers to refer to
+ particular patches that fix bugs—for example,
<quote>this issue was fixed by r9238.</quote> Somebody
can then run <userinput>svn log -r 9238</userinput> to read about
the exact changeset that fixed the bug, and run
@@ -1018,36 +1069,40 @@
Subversion's <command>svn merge</command> command is able to use
revision numbers. You can merge specific changesets from one
branch to another by naming them in the merge
- arguments: passing <userinput>-c 9238</userinput> to <command>svn
merge</command> would merge
- changeset r9238 into your working copy.</para>
+ arguments: passing <userinput>-c 9238</userinput>
+ to <command>svn merge</command> would merge changeset r9238
+ into your working copy.</para>
-->
- <para>In Subversion bezeichnet eine globale Revisionsnummer N
- einen Baum im Projektarchiv: Sie beschreibt das Aussehen des
- Projektarchivs nach der N-ten Übergabe. Sie ist auch der Name
- einer impliziten Änderungsmenge: Wenn Sie den Baum N mit dem
- Baum N−1 vergleichen, können Sie genau den Patch
- ableiten, der übergeben wurde. Daher ist es einfach, sich
- Revision N nicht nur als Baum sondern auch als Änderungsmenge
- vorzustellen. Falls Sie ein Fehlerverwaltungssystem verwenden,
- können Sie die Revisionsnummern benutzen, um auf bestimmte
- Patches zu verweisen, die Fehler beheben – zum Beispiel:
+ <para>In Subversion bezeichnet eine globale Revisionsnummer
+ <replaceable>N</replaceable> einen Baum im Projektarchiv: Sie
+ beschreibt das Aussehen des Projektarchivs nach der
+ <replaceable>N</replaceable>-ten Übergabe. Sie ist auch der
+ Name einer impliziten Änderungsmenge: Wenn Sie den Baum
+ <replaceable>N</replaceable> mit dem Baum
+ <replaceable>N</replaceable>-1 vergleichen, können Sie genau
+ den Patch ableiten, der übergeben wurde. Daher ist es einfach,
+ sich Revision <replaceable>N</replaceable> nicht nur als Baum
+ sondern auch als Änderungsmenge vorzustellen. Falls Sie ein
+ Fehlerverwaltungssystem verwenden, können Sie die
+ Revisionsnummern benutzen, um auf bestimmte Patches zu
+ verweisen, die Fehler beheben – zum Beispiel:
<quote>Dieser Fehler wurde durch r9238 behoben</quote>. Dann
kann jemand <userinput>svn log -r 9238</userinput> aufrufen,
um den Protokolleintrag zu genau der Änderungsmenge zu lesen,
die den Fehler behoben hat, und sich mit <userinput>svn diff
- -c 9238</userinput> den eigentlichen Patch ansehen. Und auch
- (wie Sie bald sehen werden) der Subversion Befehl <command>svn
- merge</command> kann Revisionsnummern verwenden. Sie können
- bestimmte Änderungsmengen von einem Zweig mit einem anderen
- zusammenführen, indem sie in den Argumenten zum entsprechenden
- Kommando benannt werden: Die Übergabe von <userinput>-c
- 9238</userinput> an <command>svn merge</command> würde das
- Änderungsmenge r9238 mit Ihrer Arbeitskopie
+ -c 9238</userinput> den eigentlichen Patch ansehen. Und
+ auch (wie Sie bald sehen werden) der Subversion Befehl
+ <command>svn merge</command> kann Revisionsnummern verwenden.
+ Sie können bestimmte Änderungsmengen von einem Zweig mit einem
+ anderen zusammenführen, indem sie in den Argumenten zum
+ entsprechenden Kommando benannt werden: Die Übergabe von
+ <userinput>-c 9238</userinput> an <command>svn merge</command>
+ würde das Änderungsmenge r9238 mit Ihrer Arbeitskopie
zusammenführen.</para>
- </sect2>
+ </sect2>
- <!-- =============================================================== -->
+ <!-- ===============================================================
-->
<sect2 id="svn.branchemerge.basicmerging.stayinsync">
<!--
<title>Keeping a Branch in Sync</title>
@@ -1062,11 +1117,14 @@
make important changes in the
project's <filename>/trunk</filename>. It's in your best
interest to replicate those changes to your own branch, just
- to make sure they mesh well with your changes. In fact, this
- is a best practice: frequently keeping your branch in sync
- with the main development line helps
- prevent <quote>surprise</quote> conflicts when it comes time
- for you to fold your changes back into the trunk.</para>
+ to make sure they mesh well with your changes.</para>
+
+ <tip>
+ <para>Frequently keeping your branch in sync with the main
+ development line helps prevent <quote>surprise</quote>
+ conflicts when the time comes for you to fold your changes
+ back into the trunk.</para>
+ </tip>
-->
<para>Machen wir mit unserem Beispiel weiter und nehmen an, dass
eine Woche vergangen ist seitdem Sie begonnen haben, auf
@@ -1076,12 +1134,14 @@
<filename>/trunk</filename> des Projektes gemacht haben. Es
ist in Ihrem Interesse, diese Änderungen in Ihren Zweig zu
übernehmen, um sicherzustellen, dass sie sich gut mit Ihren
- Änderungen vertragen. Dies ist tatsächlich eine der besten
- Vorgehensweisen: Ihren Zweig regelmäßig mit der
- Hauptentwicklungslinie zu synchronisieren hilft,
- <quote>überraschende</quote> Konflikte zu vermeiden, wenn es
- an der Zeit ist, Ihre Änderungen zurück auf den Stamm zu
- bringen.</para>
+ Änderungen vertragen.</para>
+
+ <tip>
+ <para>Ihren Zweig regelmäßig mit der Hauptentwicklungslinie zu
+ synchronisieren hilft, <quote>überraschende</quote>
+ Konflikte zu vermeiden, wenn es an der Zeit ist, Ihre
+ Änderungen zurück auf den Stamm zu bringen.</para>
+ </tip>
<!--
<para>Subversion is aware of the history of your branch and
@@ -1102,52 +1162,71 @@
folgenden Befehle auf:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ pwd
/home/user/my-calc-branch
-$ svn merge http://svn.example.com/repos/calc/trunk
+$ svn merge ^/calc/trunk
- - - Merging r345 through r356 into '.':
U button.c
U integer.c
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ pwd
/home/user/my-calc-branch
-$ svn merge http://svn.example.com/repos/calc/trunk
+$ svn merge ^/calc/trunk
--- Zusammenführen von r345 bis r356 in ».«:
U button.c
U integer.c
</screen>
+ </informalexample>
<!--
<para>This basic syntax—<userinput>svn merge
- <replaceable>URL</replaceable></userinput>—tells Subversion
to merge all recent
- changes from the URL to the current working directory (which
- is typically the root of your working copy). After running
- the prior example, your branch working copy now contains new
- local modifications, and these edits are duplications of all
- of the changes that have happened on the trunk since you first
- created your branch:</para>
+ <replaceable>URL</replaceable></userinput>—tells
+ Subversion to merge all recent changes from the URL to the
+ current working directory (which is typically the root of your
+ working copy). Also notice that we're using the caret
+ (<literal>^</literal>) syntax<footnote><para>This was
+ introduced in svn 1.6.</para></footnote> to avoid having to
+ type out the entire <filename>/trunk</filename> URL.</para>
-->
<para>Diese einfache Syntax – <userinput>svn merge
<replaceable>URL</replaceable></userinput> – fordert
Subversion auf, alle neuen Änderungen von dem URL mit dem
aktuellen Arbeitsverzeichnis (welches typischerweise das
Wurzelverzeichnis Ihrer Arbeitskopie ist)
- zusammenzuführen. Nach dem Ausführen des vorangegangenen
- Beispiels enthält Ihre Arbeitskopie nun neue lokale
- Änderungen, die Nachbildungen all der Änderungen auf dem Stamm
- seit der Erstellung Ihres Zweiges sind:</para>
+ zusammenzuführen. Beachten Sie auch, dass wir die Syntax mit
+ dem Zirkumflex (<literal>^</literal>)
+ verwenden<footnote><para>Diese wurde in svn 1.6
+ eingeführt,</para></footnote>, um nicht den vollständigen
+ <filename>/trunk</filename>-URL tippen zu müssen.</para>
- <screen>
+<!--
+ <para>After running the prior example, your branch working copy
+ now contains new local modifications, and these edits are
+ duplications of all of the changes that have happened on the
+ trunk since you first created your branch:</para>
+-->
+ <para>Nach dem Ausführen des vorangegangenen Beispiels enthält
+ Ihre Arbeitskopie nun neue lokale Änderungen, die
+ Nachbildungen all der Änderungen auf dem Stamm seit der
+ Erstellung Ihres Zweiges sind:</para>
+
+ <informalexample>
+ <screen>
$ svn status
- M .
-M button.c
-M integer.c
+ M .
+M button.c
+M integer.c
+$
</screen>
+ </informalexample>
<!--
<para>At this point, the wise thing to do is look at the changes
@@ -1205,16 +1284,20 @@
können Sie die Änderungen an das Projektarchiv übergeben:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svn commit -m "Merged latest trunk changes to my-calc-branch."
Sending .
Sending button.c
Sending integer.c
Transmitting file data ..
Committed revision 357.
+$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svn commit -m "Die letzten Änderungen von trunk mit my-calc-branch
zusammengeführt."
Sende .
Sende button.c
@@ -1222,6 +1305,7 @@
Übertrage Daten ..
Revision 357 übertragen.
</screen>
+ </informalexample>
<!--
<para>At this point, your private branch is now <quote>in
@@ -1254,9 +1338,10 @@
dieselbe Aufgabe nicht mit dem Betriebssystembefehl
<command>patch</command> lösen? Zum Beispiel:</para>
- <screen>
+ <informalexample>
+ <screen>
$ cd my-calc-branch
-$ svn diff -r 341:HEAD http://svn.example.com/repos/calc/trunk >
patchfile
+$ svn diff -r 341:HEAD ^/calc/trunk > patchfile
$ patch -p0 < patchfile
Patching file integer.c using Plan A...
Hunk #1 succeeded at 147.
@@ -1264,7 +1349,9 @@
Hunk #3 succeeded at 241.
Hunk #4 succeeded at 249.
done
+$
</screen>
+ </informalexample>
<!--
<para>In this particular example, there really isn't much
@@ -1307,7 +1394,7 @@
this command records the changes that have been duplicated
to your branch so that Subversion is aware of exactly which
changes exist in each location (see
- <xref linkend="svn.branchmerge.basicmerging.mergeinfo"/>.)
+ <xref linkend="svn.branchmerge.basicmerging.mergeinfo"/>).
This is a critical feature that makes branch management
usable; without it, users would have to manually keep notes
on which sets of changes have or haven't been merged
@@ -1345,21 +1432,27 @@
<command>svn merge</command>-Befehl!</para>
<!--
- <screen>
-$ svn merge http://svn.example.com/repos/calc/trunk
+ <informalexample>
+ <screen>
+$ svn merge ^/calc/trunk
- - - Merging r357 through r380 into '.':
U integer.c
U Makefile
A README
+$
</screen>
+ </informalexample>
-->
- <screen>
-$ svn merge http://svn.example.com/repos/calc/trunk
+ <informalexample>
+ <screen>
+$ svn merge ^/calc/trunk
--- Zusammenführen von r357 bis r380 in ».«:
U integer.c
U Makefile
A README
+$
</screen>
+ </informalexample>
<!--
<para>Subversion knows which trunk changes you've already
@@ -1375,6 +1468,15 @@
Ihren Zweig mit <command>svn commit</command>
übergeben.</para>
+ </sect2>
+
+ <!-- ===============================================================
-->
+ <sect2 id="svn.branchemerge.basicmerging.reintegrate">
+<!--
+ <title>Reintegrating a Branch</title>
+-->
+ <title>Reintegration eines Zweigs</title>
+
<!--
<para>What happens when you finally finish your work, though?
Your new feature is done, and you're ready to merge your
@@ -1392,13 +1494,14 @@
Sie es bisher gemacht haben:</para>
<!--
- <screen>
-$ svn merge http://svn.example.com/repos/calc/trunk
+ <informalexample>
+ <screen>
+$ svn merge ^/calc/trunk
- - - Merging r381 through r385 into '.':
U button.c
U README
-$ # bauen, testen, ...
+$ # build, test, ...
$ svn commit -m "Final merge of trunk changes to my-calc-branch."
Sending .
@@ -1407,9 +1510,11 @@
Transmitting file data ..
Committed revision 390.
</screen>
+ </informalexample>
-->
- <screen>
-$ svn merge http://svn.example.com/repos/calc/trunk
+ <informalexample>
+ <screen>
+$ svn merge ^/calc/trunk
--- Zusammenführen von r381 bis r385 in ».«:
U button.c
U README
@@ -1423,42 +1528,40 @@
Übertrage Daten ..
Revision 390 übertragen.
</screen>
+ </informalexample>
<!--
- <para>Now, you use <command>svn merge</command> to replicate
- your branch changes back into the trunk. You'll need an
- up-to-date working copy of <filename>/trunk</filename>. You
- can do this by either doing an <command>svn
- checkout</command>, dredging up an old trunk working copy from
- somewhere on your disk, or using <command>svn
- switch</command> (see
- <xref linkend="svn.branchmerge.switchwc"/>.) However you get a
- trunk working copy, remember that it's a best practice to do
- your merge into a working copy that
- has <emphasis>no</emphasis> local edits and has been recently
- updated (i.e., is not a mixture of local revisions). If your
- working copy isn't <quote>clean</quote> in these ways, you can
- run into some unnecessary conflict-related headaches
- and <command>svn merge</command> will likely return an
- error.</para>
+ <para>Now, you use <command>svn merge</command> with the
+ <option>- -reintegrate</option> option to replicate your
+ branch changes back into the trunk. You'll need a working
+ copy of <filename>/trunk</filename>. You can do this by
+ either doing an <command>svn checkout</command>, dredging up
+ an old trunk working copy from somewhere on your disk, or
+ using <command>svn switch</command>
+ (see <xref linkend="svn.branchmerge.switchwc"/>).
+ Your trunk working copy cannot have any local edits or be at
+ mixed-revisions
+ (see <xref linkend="svn.basic.in-action.mixedrevs"/>). While
+ these are typically best practices for merging, they are
+ <emphasis>required</emphasis> when using the
+ <option>- -reintegrate</option> option.</para>
-->
- <para>Nun verwenden Sie <command>svn merge</command>, um Ihre
+ <para>Nun verwenden Sie <command>svn merge</command> mit der
+ Option <option>--reintegrate</option> , um Ihre
Änderungen vom Zweig zurück auf den Stamm zu überführen. Sie
- benötigen eine aktuelle Arbeitskopie von
- <filename>/trunk</filename>. Sie bekommen sie entweder durch
- <command>svn checkout</command>, indem Sie von irgendwo auf
- Ihrer Platte eine alte Arbeitskopie vom Stamm hervorholen,
- oder den Befehl <command>svn switch</command> (siehe <xref
- linkend="svn.branchmerge.switchwc"/>) verwenden. Wie auch
- immer Sie Ihre Arbeitskopie bereitstellen, denken Sie daran,
- dass Sie die Überführung in einer Arbeitskopie durchführen,
- die <emphasis>keine</emphasis> lokalen Änderungen beinhaltet
- und jüngst aktualisiert wurde (d.h., keine Mischung aus
- lokalen Revisionen ist). Falls Ihre Arbeitskopie nicht
- <quote>sauber</quote> in diesem Sinn ist, könnte es Ihnen
- einige unnötige konfliktbezogene Kopfschmerzen bereiten, und
- <command>svn merge</command> wird wahrscheinlich einen Fehler
- ausgeben.</para>
+ benötigen eine Arbeitskopie von <filename>/trunk</filename>.
+ Sie bekommen sie entweder durch <command>svn
+ checkout</command>, indem Sie von irgendwo auf Ihrer Platte
+ eine alte Arbeitskopie vom Stamm hervorholen, oder den Befehl
+ <command>svn switch</command>
+ (siehe <xref linkend="svn.branchmerge.switchwc"/>) verwenden.
+ Ihre Arbeitskopie darf keine lokalen Änderungen beinhalten
+ oder aus gemischten Revisionen bestehen
+ (siehe <xref linkend="svn.basic.in-action.mixedrevs"/>).
+ Obwohl es sich dabei normalerweise um die bewährten
+ Vorgehensweisen beim Zusammenführen handelt, sind sie bei der
+ Verwendung der Option <option>--reintegrate</option> zwingend
+ notwendig.</para>
<!--
<para>Once you have a clean working copy of the trunk, you're
@@ -1468,21 +1571,22 @@
sind Sie bereit, Ihren Zweig damit zusammenzuführen:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ pwd
/home/user/calc-trunk
-$ svn update # (stellen Sie sicher, dass die Arbeitskopie aktuell ist)
+$ svn update # (make sure the working copy is up to date)
At revision 390.
-$ svn merge - -reintegrate
http://svn.example.com/repos/calc/branches/my-calc-branch
+$ svn merge - -reintegrate ^/calc/branches/my-calc-branch
- - - Merging differences between repository URLs into '.':
U button.c
U integer.c
U Makefile
U .
-$ # bauen, testen, überprüfen, ...
+$ # build, test, verify, ...
$ svn commit -m "Merge my-calc-branch back into trunk!"
Sending .
@@ -1492,15 +1596,17 @@
Transmitting file data ..
Committed revision 391.
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ pwd
/home/user/calc-trunk
$ svn update # (stellen Sie sicher, dass die Arbeitskopie aktuell ist)
Revision 390.
-$ svn merge --reintegrate
http://svn.example.com/repos/calc/branches/my-calc-branch
+$ svn merge --reintegrate ^/calc/branches/my-calc-branch
-- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in ».«:
U button.c
U integer.c
@@ -1509,7 +1615,7 @@
$ # bauen, testen, überprüfen, ...
-$ svn commit -m "Merge my-calc-branch back into trunk!"
+$ svn commit -m "my-calc-branch mit Stamm zusammenführen!"
Sende .
Sende button.c
Sende integer.c
@@ -1517,6 +1623,7 @@
Übertrage Daten ..
Revision 391 übertragen.
</screen>
+ </informalexample>
<!--
<para>Congratulations, your branch has now been remerged back
@@ -1559,7 +1666,7 @@
<!--
<para>When merging your branch back to the trunk, however, the
underlying mathematics is quite different. Your feature
- branch is now a mishmosh of both duplicated trunk changes and
+ branch is now a mishmash of both duplicated trunk changes and
private branch changes, so there's no simple contiguous range
***The diff for this file has been truncated for email.***
More information about the svnbook-dev
mailing list