[svnbook] r4830 committed - Translation: Migrating Repository Data Elsewhere
svnbook at googlecode.com
svnbook at googlecode.com
Fri May 30 04:51:16 CDT 2014
Revision: 4830
Author: jmfelderhoff at gmx.eu
Date: Fri May 30 09:50:54 2014 UTC
Log: Translation: Migrating Repository Data Elsewhere
http://code.google.com/p/svnbook/source/detail?r=4830
Modified:
/branches/1.7/de/book/ch05-repository-admin.xml
=======================================
--- /branches/1.7/de/book/ch05-repository-admin.xml Thu May 29 09:29:10
2014 UTC
+++ /branches/1.7/de/book/ch05-repository-admin.xml Fri May 30 09:50:54
2014 UTC
@@ -3991,8 +3991,8 @@
modification—between repositories. And Subversion
provides the tools necessary for creating and loading these
dump streams: the <command>svnadmin dump</command> and
- <command>svnadmin load</command> subcommands,
- respectively.</para>
+ <command>svnadmin load</command> subcommands, respectively,
+ and the <command>svnrdump</command> program.</para>
-->
<para>Subversion stellt solche Funktionen durch
<firstterm>Projektarchiv-Auszugs-Datenströme</firstterm>
@@ -4008,7 +4008,7 @@
Projektarchiven. Und Subversion stellt die Werkzeuge zum Erzeugen
und Laden dieser Datenströme zur Verfügung: die Unterbefehle
<command>svnadmin dump</command> bzw. <command>svnadmin
- load</command>.</para>
+ load</command> und das Programm <command>svnrdump</command>.</para>
<warning>
<!--
@@ -4028,7 +4028,8 @@
Binärformat, das sehr empfindlich gegenüber Herumgepfusche
ist. Beispielsweise würden viele Texteditoren die Datei
beschädigen, indem sie automatisch die Zeilenenden
- umformen.</para> </warning>
+ umformen.</para>
+ </warning>
<!--
<para>There are many reasons for dumping and loading Subversion
@@ -4093,33 +4094,73 @@
Hook-Skripten) usw.</para></note>
<!--
- <para>Whatever your reason for migrating repository history,
- using the <command>svnadmin dump</command> and
- <command>svnadmin load</command> subcommands is
- straightforward. <command>svnadmin dump</command> will output
- a range of repository revisions that are formatted using
- Subversion's custom filesystem dump format. The dump format
- is printed to the standard output stream, while informative
- messages are printed to the standard error stream. This
- allows you to redirect the output stream to a file while
- watching the status output in your terminal window. For
- example:</para>
+ <para>The Subversion repository dump format also enables
+ conversion from a different storage mechanism or version
+ control system altogether. Because the dump file format is,
+ for the most part, human-readable, it should be relatively
+ easy to describe generic sets of changes—each of which
+ should be treated as a new revision—using this file
+ format. In fact, the <command>cvs2svn</command> utility (see
+ <xref linkend="svn.forcvs.convert" />) uses the dump format to
+ represent the contents of a CVS repository so that those
+ contents can be copied into a Subversion repository.</para>
-->
- <para>Welche Gründe für den Umzug der Projektarchiv-Historie für
- Sie auch immer eine Rolle spielen, die Verwendung der
- Unterbefehle <command>svnadmin dump</command> und
- <command>svnadmin load</command> sind der direkte Weg.
- <command>svnadmin dump</command> gibt ein Intervall von
- Projektarchiv-Revisionen im speziellen Subversion-Auszugsformat
- aus. Der Auszug wird zur Standardausgabe geschrieben, während
- Mitteilungen an die Standardfehlerausgabe gehen. Das erlaubt
- Ihnen, den Ausgabestrom in eine Datei umzuleiten, während Sie
- Statusausgaben im Terminalfenster verfolgen können. Zum
- Beispiel:</para>
+ <para>Das Auszugsformat eines Subversion Projektarchivs erlaubt
+ ebenfalls die Umwandlung aus einem vollständig
+ unterschiedlichen Speichermechanismus oder
+ Versionskontrollsystem. Da das Format der Auszugsdatei
+ größtenteils menschenlesbar ist, sollte es relativ einfach
+ sein, in diesem Dateiformat generische Änderungsmengen zu
+ beschreiben, wobei jede als neue Revision behandelt werden
+ sollte. Tatsächlich verwendet das Werkzeug
+ <command>cvs2svn</command> (siehe
+ <xref linkend="svn.forcvs.convert" />) das Auszugsformat, um den
+ Inhalt eines CVS Projektarchivs zu repräsentieren, so dass
+ dieser Inhalt in ein Subversion Projektarchiv kopiert werden
+ kann.</para>
<!--
- <informalexample>
- <screen>
+ <para>For now, we'll concern ourselves only with migration of
+ repository data between Subversion repositories, which we'll
+ describe in detail in the sections which follow.</para>
+-->
+ <para>Momentan beschäftigen wir uns lediglich mit der Migration
+ von Projektarchiv-Daten zwischen Subversion Projektarchiven,
+ die wir detailliert in den folgenden Abschnitten beschreiben
+ werden.</para>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <sect3 id="svn.reposadmin.maint.migrate.svnadmin">
+ <title>Repository data migration using svnadmin</title>
+
+<!--
+ <para>Whatever your reason for migrating repository history,
+ using the <command>svnadmin dump</command> and
+ <command>svnadmin load</command> subcommands is
+ straightforward. <command>svnadmin dump</command> will output
+ a range of repository revisions that are formatted using
+ Subversion's custom filesystem dump format. The dump format
+ is printed to the standard output stream, while informative
+ messages are printed to the standard error stream. This
+ allows you to redirect the output stream to a file while
+ watching the status output in your terminal window. For
+ example:</para>
+-->
+ <para>Welche Gründe für den Umzug der Projektarchiv-Historie für
+ Sie auch immer eine Rolle spielen, die Verwendung der
+ Unterbefehle <command>svnadmin dump</command> und
+ <command>svnadmin load</command> sind der direkte Weg.
+ <command>svnadmin dump</command> gibt ein Intervall von
+ Projektarchiv-Revisionen im speziellen Subversion-Auszugsformat
+ aus. Der Auszug wird zur Standardausgabe geschrieben, während
+ Mitteilungen an die Standardfehlerausgabe gehen. Das erlaubt
+ Ihnen, den Ausgabestrom in eine Datei umzuleiten, während Sie
+ Statusausgaben im Terminalfenster verfolgen können. Zum
+ Beispiel:</para>
+
+<!--
+ <informalexample>
+ <screen>
$ svnlook youngest myrepos
26
$ svnadmin dump myrepos > dumpfile
@@ -4130,10 +4171,10 @@
* Dumped revision 25.
* Dumped revision 26.
</screen>
- </informalexample>
+ </informalexample>
-->
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnlook youngest myrepos
26
$ svnadmin dump myrepos > dumpfile
@@ -4144,45 +4185,45 @@
* Revision 25 ausgegeben.
* Revision 26 ausgegeben.
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>At the end of the process, you will have a single file
- (<filename>dumpfile</filename> in the previous example) that
- contains all the data stored in your repository in the
- requested range of revisions. Note that <command>svnadmin
- dump</command> is reading revision trees from the repository
- just like any other <quote>reader</quote> process would
- (e.g., <command>svn checkout</command>), so it's safe
- to run this command at any time.</para>
+ <para>At the end of the process, you will have a single file
+ (<filename>dumpfile</filename> in the previous example) that
+ contains all the data stored in your repository in the
+ requested range of revisions. Note that <command>svnadmin
+ dump</command> is reading revision trees from the repository
+ just like any other <quote>reader</quote> process would
+ (e.g., <command>svn checkout</command>), so it's safe
+ to run this command at any time.</para>
-->
- <para>Am Ende haben Sie eine einzelne Datei (im vorangegangenen
- Beispiel <filename>dumpfile</filename>), die alle im
- Projektarchiv gespeicherten Daten aus dem gewählten Intervall von
- Revisionen beinhaltet. Beachten Sie, dass <command>svnadmin
- dump</command> wie jeder andere <quote>lesende</quote> Prozess
- (z.B. <command>svn checkout</command>) Revisionsbäume aus dem
- Projektarchiv liest, so dass Sie diesen Befehl jederzeit aufrufen
- können.</para>
+ <para>Am Ende haben Sie eine einzelne Datei (im vorangegangenen
+ Beispiel <filename>dumpfile</filename>), die alle im
+ Projektarchiv gespeicherten Daten aus dem gewählten Intervall von
+ Revisionen beinhaltet. Beachten Sie, dass <command>svnadmin
+ dump</command> wie jeder andere <quote>lesende</quote> Prozess
+ (z.B. <command>svn checkout</command>) Revisionsbäume aus dem
+ Projektarchiv liest, so dass Sie diesen Befehl jederzeit aufrufen
+ können.</para>
<!--
- <para>The other subcommand in the pair, <command>svnadmin
- load</command>, parses the standard input stream as a
- Subversion repository dump file and effectively replays those
- dumped revisions into the target repository for that
- operation. It also gives informative feedback, this time
- using the standard output stream:</para>
+ <para>The other subcommand in the pair, <command>svnadmin
+ load</command>, parses the standard input stream as a
+ Subversion repository dump file and effectively replays those
+ dumped revisions into the target repository for that
+ operation. It also gives informative feedback, this time
+ using the standard output stream:</para>
-->
- <para>Der andere Unterbefehl dieses Paars, <command>svnadmin
- load</command>, liest den Standardeingabestrom als eine
- Subversion-Projektarchiv-Auszugsdatei und spielt diese Revisionen
- aus dem Auszug gewissermaßen neu in das Ziel-Projektarchiv. Auch
- dieser Befehl erzeugt Meldungen, dieses Mal aber über die
- Standardausgabe:</para>
+ <para>Der andere Unterbefehl dieses Paars, <command>svnadmin
+ load</command>, liest den Standardeingabestrom als eine
+ Subversion-Projektarchiv-Auszugsdatei und spielt diese Revisionen
+ aus dem Auszug gewissermaßen neu in das Ziel-Projektarchiv. Auch
+ dieser Befehl erzeugt Meldungen, dieses Mal aber über die
+ Standardausgabe:</para>
<!--
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin load newrepos < dumpfile
<<< Started new txn, based on original revision 1
* adding path : A ... done.
@@ -4210,10 +4251,10 @@
- - - - Committed new rev 26 (loaded from original rev 26) >>>
</screen>
- </informalexample>
+ </informalexample>
-->
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin load newrepos < dumpfile
<<< Neue Transaktion basierend auf Originalrevision 1 gestartet
* Füge Pfad hinzu: A ... erledigt.
@@ -4241,319 +4282,309 @@
------- Neue Revision 26 übertragen (geladen aus Original 26) >>>
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>The result of a load is new revisions added to a
- repository—the same thing you get by making commits
- against that repository from a regular Subversion client.
- Just as in a commit, you can use hook programs to perform
- actions before and after each of the commits made during a
- load process. By passing the
- <option>- -use-pre-commit-hook</option> and
- <option>- -use-post-commit-hook</option> options to
- <command>svnadmin load</command>, you can instruct Subversion
- to execute the pre-commit and post-commit hook programs,
- respectively, for each loaded revision. You might use these,
- for example, to ensure that loaded revisions pass through the
- same validation steps that regular commits pass through. Of
- course, you should use these options with care—if your
- post-commit hook sends emails to a mailing list for each new
- commit, you might not want to spew hundreds or thousands of
- commit emails in rapid succession at that list! You can read
- more about the use of hook scripts in
- <xref linkend="svn.reposadmin.create.hooks"/>.</para>
+ <para>The result of a load is new revisions added to a
+ repository—the same thing you get by making commits
+ against that repository from a regular Subversion client.
+ Just as in a commit, you can use hook programs to perform
+ actions before and after each of the commits made during a
+ load process. By passing the
+ <option>- -use-pre-commit-hook</option> and
+ <option>- -use-post-commit-hook</option> options to
+ <command>svnadmin load</command>, you can instruct Subversion
+ to execute the pre-commit and post-commit hook programs,
+ respectively, for each loaded revision. You might use these,
+ for example, to ensure that loaded revisions pass through the
+ same validation steps that regular commits pass through. Of
+ course, you should use these options with care—if your
+ post-commit hook sends emails to a mailing list for each new
+ commit, you might not want to spew hundreds or thousands of
+ commit emails in rapid succession at that list! You can read
+ more about the use of hook scripts in
+ <xref linkend="svn.reposadmin.create.hooks"/>.</para>
-->
- <para>Das Ergebnis eines Ladevorgangs sind neue Revisionen, die
- dem Projektarchiv hinzugefügt wurden – dasselbe, was Sie
- erhalten, wenn Sie mit einem normalen Subversion-Client
- Übergaben an das Projektarchiv machen. Ebenso wie bei einer
- Übergabe können können Sie Hook-Programme verwenden, um
- Aktionen vor und nach jeder Übergabe während des Ladevorgangs
- auszuführen. Indem Sie die Optionen
- <option>--use-pre-commit-hook</option> und
- <option>--use-post-commit-hook</option> an <command>svnadmin
- load</command> übergeben, können Sie Subversion befehlen, für
- jede zu ladende Revision die Hook-Programme pre-commit bzw.
- post-commit auszuführen. Sie könnten diese beispielsweise
- verwenden, um sicherzustellen, dass die geladenen Revisionen
- dieselben Validierungsschritte durchlaufen müssen wie reguläre
- Übergaben. Natürlich sollten Sie diese Optionen mit Sorgfalt
- verwenden – wenn Ihr post-commit-Hook für jede neue
- Übergabe E-Mails an eine Mailing-Liste verschickt, wollen Sie
- bestimmt nicht, das innerhalb kürzester Zeit hunderte oder
- tausende Übergabe-E-Mails in diese Liste hineinhageln! Sie
- können mehr über Hook-Skripte in
- <xref linkend="svn.reposadmin.create.hooks"/> lesen.</para>
+ <para>Das Ergebnis eines Ladevorgangs sind neue Revisionen, die
+ dem Projektarchiv hinzugefügt wurden – dasselbe, was Sie
+ erhalten, wenn Sie mit einem normalen Subversion-Client
+ Übergaben an das Projektarchiv machen. Ebenso wie bei einer
+ Übergabe können können Sie Hook-Programme verwenden, um
+ Aktionen vor und nach jeder Übergabe während des Ladevorgangs
+ auszuführen. Indem Sie die Optionen
+ <option>--use-pre-commit-hook</option> und
+ <option>--use-post-commit-hook</option> an <command>svnadmin
+ load</command> übergeben, können Sie Subversion befehlen, für
+ jede zu ladende Revision die Hook-Programme pre-commit bzw.
+ post-commit auszuführen. Sie könnten diese beispielsweise
+ verwenden, um sicherzustellen, dass die geladenen Revisionen
+ dieselben Validierungsschritte durchlaufen müssen wie reguläre
+ Übergaben. Natürlich sollten Sie diese Optionen mit Sorgfalt
+ verwenden – wenn Ihr post-commit-Hook für jede neue
+ Übergabe E-Mails an eine Mailing-Liste verschickt, wollen Sie
+ bestimmt nicht, das innerhalb kürzester Zeit hunderte oder
+ tausende Übergabe-E-Mails in diese Liste hineinhageln! Sie
+ können mehr über Hook-Skripte in
+ <xref linkend="svn.reposadmin.create.hooks"/> lesen.</para>
<!--
- <para>Note that because <command>svnadmin</command> uses
- standard input and output streams for the repository dump and
- load processes, people who are feeling especially saucy can try
- things such as this (perhaps even using different versions of
- <command>svnadmin</command> on each side of the pipe):</para>
+ <para>Note that because <command>svnadmin</command> uses
+ standard input and output streams for the repository dump and
+ load processes, people who are feeling especially saucy can try
+ things such as this (perhaps even using different versions of
+ <command>svnadmin</command> on each side of the pipe):</para>
-->
- <para>Beachten Sie, dass Menschen, die sich besonders gewitzt
- fühlen, weil <command>svnadmin</command> für den Auszug und
- den Ladevorgang den Standardeingabe- und den
- Standardausgabestrom benutzt, Dinge wie dieses ausprobieren
- können (vielleicht sogar unterschiedliche Versionen von
- <command>svnadmin</command> auf jeder Seite der Pipe):</para>
+ <para>Beachten Sie, dass Menschen, die sich besonders gewitzt
+ fühlen, weil <command>svnadmin</command> für den Auszug und
+ den Ladevorgang den Standardeingabe- und den
+ Standardausgabestrom benutzt, Dinge wie dieses ausprobieren
+ können (vielleicht sogar unterschiedliche Versionen von
+ <command>svnadmin</command> auf jeder Seite der Pipe):</para>
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin create newrepos
$ svnadmin dump oldrepos | svnadmin load newrepos
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>By default, the dump file will be quite large—much
- larger than the repository itself. That's because by default
- every version of every file is expressed as a full text in the
- dump file. This is the fastest and simplest behavior, and
- it's nice if you're piping the dump data directly into some other
- process (such as a compression program, filtering program, or
- loading process). But if you're creating a dump file
- for longer-term storage, you'll likely want to save disk space
- by using the <option>- -deltas</option> option. With this
- option, successive revisions of files will be output as
- compressed, binary differences—just as file revisions
- are stored in a repository. This option is slower, but it
- results in a dump file much closer in size to the original
- repository.</para>
+ <para>By default, the dump file will be quite large—much
+ larger than the repository itself. That's because by default
+ every version of every file is expressed as a full text in the
+ dump file. This is the fastest and simplest behavior, and
+ it's nice if you're piping the dump data directly into some other
+ process (such as a compression program, filtering program, or
+ loading process). But if you're creating a dump file
+ for longer-term storage, you'll likely want to save disk space
+ by using the <option>- -deltas</option> option. With this
+ option, successive revisions of files will be output as
+ compressed, binary differences—just as file revisions
+ are stored in a repository. This option is slower, but it
+ results in a dump file much closer in size to the original
+ repository.</para>
-->
- <para>Im Normalfall wird die Auszugsdatei ziemlich groß –
- viel größer als das Projektarchiv selbst. Das liegt daran, dass
- standardmäßig jede Version jeder Datei als vollständiger Text
- in der Auszugsdatei dargestellt wird. Dies ist das schnellste
- und einfachste Verhalten, und es ist nett, wenn Sie die
- Auszugsdaten über eine Pipe direkt an einen weiteren Prozess
- weiterleiten (etwa ein Komprimierprogramm, ein Filterprogramm
- oder einen Prozess zum Laden). Wenn Sie jedoch eine
- Auszugsdatei für die Langzeitspeicherung erzeugen, möchten Sie
- wahrscheinlich Plattenplatz sparen, indem Sie die Option
- <option>--deltas</option> verwenden. Mit dieser Option werden
- aufeinanderfolgende Revisionen von Dateien als komprimierte
- binäre Unterschiede ausgegeben – so wie Dateirevisionen
- im Projektarchiv gespeichert werden. Diese Option ist langsamer,
- führt jedoch zu einer Größe der Auszugsdatei, die der Größe
- des Original-Projektarchivs näher kommt.</para>
+ <para>Im Normalfall wird die Auszugsdatei ziemlich groß –
+ viel größer als das Projektarchiv selbst. Das liegt daran, dass
+ standardmäßig jede Version jeder Datei als vollständiger Text
+ in der Auszugsdatei dargestellt wird. Dies ist das schnellste
+ und einfachste Verhalten, und es ist nett, wenn Sie die
+ Auszugsdaten über eine Pipe direkt an einen weiteren Prozess
+ weiterleiten (etwa ein Komprimierprogramm, ein Filterprogramm
+ oder einen Prozess zum Laden). Wenn Sie jedoch eine
+ Auszugsdatei für die Langzeitspeicherung erzeugen, möchten Sie
+ wahrscheinlich Plattenplatz sparen, indem Sie die Option
+ <option>--deltas</option> verwenden. Mit dieser Option werden
+ aufeinanderfolgende Revisionen von Dateien als komprimierte
+ binäre Unterschiede ausgegeben – so wie Dateirevisionen
+ im Projektarchiv gespeichert werden. Diese Option ist langsamer,
+ führt jedoch zu einer Größe der Auszugsdatei, die der Größe
+ des Original-Projektarchivs näher kommt.</para>
<!--
- <para>We mentioned previously that <command>svnadmin
- dump</command> outputs a range of revisions. Use the
- <option>- -revision</option> (<option>-r</option>) option to
- specify a single revision, or a range of revisions, to dump.
- If you omit this option, all the existing repository revisions
- will be dumped.</para>
+ <para>We mentioned previously that <command>svnadmin
+ dump</command> outputs a range of revisions. Use the
+ <option>- -revision</option> (<option>-r</option>) option to
+ specify a single revision, or a range of revisions, to dump.
+ If you omit this option, all the existing repository revisions
+ will be dumped.</para>
-->
- <para>Wir haben eben erwähnt, dass <command>svnadmin
- dump</command> einen Bereich von Revisionen ausgibt. Verwenden
- Sie die Option <option>--revision</option>
- (<option>-r</option>), um eine einzelne Revision oder einen
- Bereich von Revisionen für den Auszug anzugeben. Wenn Sie
- diese Option weglassen, wird ein Auszug aller
- Projektarchiv-Revisionen erstellt.</para>
+ <para>Wir haben eben erwähnt, dass <command>svnadmin
+ dump</command> einen Bereich von Revisionen ausgibt. Verwenden
+ Sie die Option <option>--revision</option>
+ (<option>-r</option>), um eine einzelne Revision oder einen
+ Bereich von Revisionen für den Auszug anzugeben. Wenn Sie
+ diese Option weglassen, wird ein Auszug aller
+ Projektarchiv-Revisionen erstellt.</para>
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin dump myrepos -r 23 > rev-23.dumpfile
$ svnadmin dump myrepos -r 100:200 > revs-100-200.dumpfile
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>As Subversion dumps each new revision, it outputs only
- enough information to allow a future loader to re-create that
- revision based on the previous one. In other words, for any
- given revision in the dump file, only the items that were
- changed in that revision will appear in the dump. The only
- exception to this rule is the first revision that is dumped
- with the current <command>svnadmin dump</command>
- command.</para>
+ <para>As Subversion dumps each new revision, it outputs only
+ enough information to allow a future loader to re-create that
+ revision based on the previous one. In other words, for any
+ given revision in the dump file, only the items that were
+ changed in that revision will appear in the dump. The only
+ exception to this rule is the first revision that is dumped
+ with the current <command>svnadmin dump</command>
+ command.</para>
-->
- <para>Beim Erstellen eines Auszugs jeder Revision gibt
- Subversion gerade soviel Information aus, dass später ein
- Ladeprozess in der Lage ist, diese Revision auf der Basis der
- Vorgängerrevision wiederherzustellen. Mit anderen Worten: Für
- jede Revision befinden sich nur die Dinge in der Auszugsdatei,
- die sich in dieser Revision geändert haben. Die einzige
- Ausnahme von dieser Regel ist die erste Revision, die mit dem
- aktuellen <command>svnadmin dump</command> erstellt
- wird.</para>
+ <para>Beim Erstellen eines Auszugs jeder Revision gibt
+ Subversion gerade soviel Information aus, dass später ein
+ Ladeprozess in der Lage ist, diese Revision auf der Basis der
+ Vorgängerrevision wiederherzustellen. Mit anderen Worten: Für
+ jede Revision befinden sich nur die Dinge in der Auszugsdatei,
+ die sich in dieser Revision geändert haben. Die einzige
+ Ausnahme von dieser Regel ist die erste Revision, die mit dem
+ aktuellen <command>svnadmin dump</command> erstellt
+ wird.</para>
<!--
- <para>By default, Subversion will not express the first dumped
- revision as merely differences to be applied to the previous
- revision. For one thing, there is no previous revision in the
- dump file! And second, Subversion cannot know the state of
- the repository into which the dump data will be loaded (if it
- ever is). To ensure that the output of each
- execution of <command>svnadmin dump</command> is
- self-sufficient, the first dumped revision is, by default, a
- full representation of every directory, file, and property in
- that revision of the repository.</para>
+ <para>By default, Subversion will not express the first dumped
+ revision as merely differences to be applied to the previous
+ revision. For one thing, there is no previous revision in the
+ dump file! And second, Subversion cannot know the state of
+ the repository into which the dump data will be loaded (if it
+ ever is). To ensure that the output of each
+ execution of <command>svnadmin dump</command> is
+ self-sufficient, the first dumped revision is, by default, a
+ full representation of every directory, file, and property in
+ that revision of the repository.</para>
-->
- <para>Standardmäßig wird Subversion den Auszug der ersten
- Revision nicht bloß als Unterschied ausdrücken, der auf die
- Vorgängerrevision anzuwenden ist. Zum Ersten gibt es keine
- Vorgängerrevision in der Auszugsdatei. Und zum Zweiten kann
- Subversion den Zustand des Projektarchivs, in das der Auszug
- (falls überhaupt) geladen werden soll, nicht kennen. Um
- sicherzustellen, dass die Ausgabe jedes Aufrufs von
- <command>svnadmin dump</command> unabhängig ist, ist der
- Auszug der ersten Revision standardmäßig eine vollständige
- Darstellung jedes Verzeichnisses, jeder Datei und jeder
- Eigenschaft aus dieser Revision im Projektarchiv.</para>
+ <para>Standardmäßig wird Subversion den Auszug der ersten
+ Revision nicht bloß als Unterschied ausdrücken, der auf die
+ Vorgängerrevision anzuwenden ist. Zum Ersten gibt es keine
+ Vorgängerrevision in der Auszugsdatei. Und zum Zweiten kann
+ Subversion den Zustand des Projektarchivs, in das der Auszug
+ (falls überhaupt) geladen werden soll, nicht kennen. Um
+ sicherzustellen, dass die Ausgabe jedes Aufrufs von
+ <command>svnadmin dump</command> unabhängig ist, ist der
+ Auszug der ersten Revision standardmäßig eine vollständige
+ Darstellung jedes Verzeichnisses, jeder Datei und jeder
+ Eigenschaft aus dieser Revision im Projektarchiv.</para>
<!--
- <para>However, you can change this default behavior. If you add
- the <option>- -incremental</option> option when you dump your
- repository, <command>svnadmin</command> will compare the first
- dumped revision against the previous revision in the
- repository—the same way it treats every other revision that
- gets dumped. It will then output the first revision exactly
- as it does the rest of the revisions in the dump
- range—mentioning only the changes that occurred in that
- revision. The benefit of this is that you can create several
- small dump files that can be loaded in succession, instead of
- one large one, like so:</para>
+ <para>However, you can change this default behavior. If you add
+ the <option>- -incremental</option> option when you dump your
+ repository, <command>svnadmin</command> will compare the first
+ dumped revision against the previous revision in the
+ repository—the same way it treats every other revision that
+ gets dumped. It will then output the first revision exactly
+ as it does the rest of the revisions in the dump
+ range—mentioning only the changes that occurred in that
+ revision. The benefit of this is that you can create several
+ small dump files that can be loaded in succession, instead of
+ one large one, like so:</para>
-->
- <para>Sie können dieses Standardverhalten jedoch ändern. Falls
- Sie die Option <option>--incremental</option> angeben,
- vergleicht <command>svnadmin</command> die erste Revision für
- die ein Auszug erstellt werden soll mit der vorhergehenden
- Revision im Projektarchiv – auf dieselbe Art und Weise, wie
- jede andere Revision behandelt wird, für die ein Auszug
- erstellt werden soll – indem lediglich die Änderungen
- aus dieser Revision erwähnt werden. Der Vorteil dabei ist,
- dass Sie mehrere kleinere Auszugsdateien erstellen können, die
- hintereinander geladen werden können, anstatt eine
- große:</para>
+ <para>Sie können dieses Standardverhalten jedoch ändern. Falls
+ Sie die Option <option>--incremental</option> angeben,
+ vergleicht <command>svnadmin</command> die erste Revision für
+ die ein Auszug erstellt werden soll mit der vorhergehenden
+ Revision im Projektarchiv – auf dieselbe Art und Weise, wie
+ jede andere Revision behandelt wird, für die ein Auszug
+ erstellt werden soll – indem lediglich die Änderungen
+ aus dieser Revision erwähnt werden. Der Vorteil dabei ist,
+ dass Sie mehrere kleinere Auszugsdateien erstellen können, die
+ hintereinander geladen werden können, anstatt eine
+ große:</para>
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin dump myrepos -r 0:1000 > dumpfile1
$ svnadmin dump myrepos -r 1001:2000 --incremental > dumpfile2
$ svnadmin dump myrepos -r 2001:3000 --incremental > dumpfile3
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>These dump files could be loaded into a new repository
- with the following command sequence:</para>
+ <para>These dump files could be loaded into a new repository
+ with the following command sequence:</para>
-->
- <para>Diese Auszugsdateien können mit der folgenden Befehlsfolge
- in ein neues Projektarchiv geladen werden:</para>
+ <para>Diese Auszugsdateien können mit der folgenden Befehlsfolge
+ in ein neues Projektarchiv geladen werden:</para>
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin load newrepos < dumpfile1
$ svnadmin load newrepos < dumpfile2
$ svnadmin load newrepos < dumpfile3
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>Another neat trick you can perform with this
- <option>- -incremental</option> option involves appending to an
- existing dump file a new range of dumped revisions. For
- example, you might have a <literal>post-commit</literal> hook
- that simply appends the repository dump of the single revision
- that triggered the hook. Or you might have a script that runs
- nightly to append dump file data for all the revisions that
- were added to the repository since the last time the script
- ran. Used like this, <command>svnadmin dump</command> can be
- one way to back up changes to your repository over time in case
- of a system crash or some other catastrophic event.</para>
+ <para>Another neat trick you can perform with this
+ <option>- -incremental</option> option involves appending to an
+ existing dump file a new range of dumped revisions. For
+ example, you might have a <literal>post-commit</literal> hook
+ that simply appends the repository dump of the single revision
+ that triggered the hook. Or you might have a script that runs
+ nightly to append dump file data for all the revisions that
+ were added to the repository since the last time the script
+ ran. Used like this, <command>svnadmin dump</command> can be
+ one way to back up changes to your repository over time in case
+ of a system crash or some other catastrophic event.</para>
-->
- <para>Ein weiterer toller Trick, den Sie mit der Option
- <option>--incremental</option> anwenden können besteht darin,
- einen neuen Bereich von Revisionsauszügen an eine existierende
- Revisionsdatei anzuhängen. Beispielsweise könnten Sie einen
- <literal>post-commit</literal>-Hook haben, der der Datei einen
- Auszug derjenigen Revision anfügt, die den Hook ausgelöst hat.
- Oder Sie haben ein Skript, das jede Nacht läuft, um Auszüge
- sämtlicher Revisionen seit dem letzten Lauf anzufügen. Wenn es
- auf diese Weise verwendet wird, stellt <command>svnadmin
- dump</command> eine Möglichkeit dar, laufend die Änderungen an
- Ihrem Projektarchiv für den Fall eines Systemabsturzes oder eines
- anderen katastrophalen Ereignisses zu sichern.</para>
-<!--
- <para>The dump format can also be used to merge the contents of
- several different repositories into a single repository. By
- using the <option>- -parent-dir</option> option of
- <command>svnadmin load</command>, you can specify a new
- virtual root directory for the load process. That means if
- you have dump files for three repositories—say
- <filename>calc-dumpfile</filename>,
- <filename>cal-dumpfile</filename>, and
- <filename>ss-dumpfile</filename>—you can first create a new
- repository to hold them all:</para>
+ <para>Ein weiterer toller Trick, den Sie mit der Option
+ <option>--incremental</option> anwenden können besteht darin,
+ einen neuen Bereich von Revisionsauszügen an eine existierende
+ Revisionsdatei anzuhängen. Beispielsweise könnten Sie einen
+ <literal>post-commit</literal>-Hook haben, der der Datei einen
+ Auszug derjenigen Revision anfügt, die den Hook ausgelöst hat.
+ Oder Sie haben ein Skript, das jede Nacht läuft, um Auszüge
+ sämtlicher Revisionen seit dem letzten Lauf anzufügen. Wenn es
+ auf diese Weise verwendet wird, stellt <command>svnadmin
+ dump</command> eine Möglichkeit dar, laufend die Änderungen an
+ Ihrem Projektarchiv für den Fall eines Systemabsturzes oder eines
+ anderen katastrophalen Ereignisses zu sichern.</para>
+<!--
+ <para>The dump format can also be used to merge the contents of
+ several different repositories into a single repository. By
+ using the <option>- -parent-dir</option> option of
+ <command>svnadmin load</command>, you can specify a new
+ virtual root directory for the load process. That means if
+ you have dump files for three repositories—say
+ <filename>calc-dumpfile</filename>,
+ <filename>cal-dumpfile</filename>, and
+ <filename>ss-dumpfile</filename>—you can first create a new
+ repository to hold them all:</para>
-->
- <para>Das Auszugsformat kann auch dazu verwendet werden, um die
- Inhalte mehrerer verschiedener Projektarchive in ein Projektarchiv
- zusammenzuführen. Indem Sie die Option
- <option>--parent-dir</option> von <command>svnadmin
- load</command> benutzen, können Sie ein neues virtuelles
- Wurzelverzeichnis für den Ladevorgang angeben. Das heißt,
- falls Sie beispielsweise die Auszugsdateien von drei
- Projektarchiven haben – etwa
- <filename>calc-dumpfile</filename>,
- <filename>cal-dumpfile</filename> und
- <filename>ss-dumpfile</filename> – können Sie zunächst
- ein Projektarchiv anlegen, das alle beherbergt:</para>
+ <para>Das Auszugsformat kann auch dazu verwendet werden, um die
+ Inhalte mehrerer verschiedener Projektarchive in ein
Projektarchiv
+ zusammenzuführen. Indem Sie die Option
+ <option>--parent-dir</option> von <command>svnadmin
+ load</command> benutzen, können Sie ein neues virtuelles
+ Wurzelverzeichnis für den Ladevorgang angeben. Das heißt,
+ falls Sie beispielsweise die Auszugsdateien von drei
+ Projektarchiven haben – etwa
+ <filename>calc-dumpfile</filename>,
+ <filename>cal-dumpfile</filename> und
+ <filename>ss-dumpfile</filename> – können Sie zunächst
+ ein Projektarchiv anlegen, das alle beherbergt:</para>
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin create /var/svn/projects
$
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>Then, make new directories in the repository that will
- encapsulate the contents of each of the three previous
- repositories:</para>
+ <para>Then, make new directories in the repository that will
+ encapsulate the contents of each of the three previous
+ repositories:</para>
-->
- <para>Erstellen Sie dann neue Verzeichnisse im Projektarchiv, die
- den Inhalt der vorherigen drei Projektarchive aufnehmen
- werden:</para>
+ <para>Erstellen Sie dann neue Verzeichnisse im Projektarchiv, die
+ den Inhalt der vorherigen drei Projektarchive aufnehmen
+ werden:</para>
-<!--
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svn mkdir -m "Initial project roots" \
- file:///var/svn/projects/calc \
- file:///var/svn/projects/calendar \
- file:///var/svn/projects/spreadsheet
+ file:///var/svn/projects/calc \
+ file:///var/svn/projects/calendar \
+ file:///var/svn/projects/spreadsheet <!--
Committed revision 1.
-$
-</screen>
- </informalexample>
-->
- <informalexample>
- <screen>
-$ svn mkdir -m "Initial project roots" \
- file:///var/svn/projects/calc \
- file:///var/svn/projects/calendar \
- file:///var/svn/projects/spreadsheet
Revision 1 übertragen.
$
</screen>
- </informalexample>
+ </informalexample>
<!--
- <para>Lastly, load the individual dump files into their
- respective locations in the new repository:</para>
+ <para>Lastly, load the individual dump files into their
+ respective locations in the new repository:</para>
-->
- <para>Laden Sie schließlich die Auszugsdateien an ihren
- jeweiligen Ort im neuen Projektarchiv:</para>
+ <para>Laden Sie schließlich die Auszugsdateien an ihren
+ jeweiligen Ort im neuen Projektarchiv:</para>
- <informalexample>
- <screen>
+ <informalexample>
+ <screen>
$ svnadmin load /var/svn/projects --parent-dir calc < calc-dumpfile
…
$ svnadmin load /var/svn/projects --parent-dir calendar < cal-dumpfile
@@ -4562,34 +4593,152 @@
…
$
</screen>
- </informalexample>
+ </informalexample>
+ </sect3>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <sect3 id="svn.reposadmin.maint.migrate.svnrdump">
<!--
- <para>We'll mention one final way to use the Subversion
- repository dump format—conversion from a different
- storage mechanism or version control system altogether.
- Because the dump file format is, for the most part,
- human-readable, it should be relatively easy to describe
- generic sets of changes—each of which should be treated
- as a new revision—using this file format. In fact, the
- <command>cvs2svn</command> utility (see <xref
- linkend="svn.forcvs.convert"/>) uses the dump format to
- represent the contents of a CVS repository so that those
- contents can be copied into a Subversion repository.</para>
+ <title>Repository data migration using svnrdump</title>
-->
- <para>Zum Schluss erwähnen wir noch einen Anwendungsfall für
- das Auszugsformat – die Umwandlung aus einem
- unterschiedlichen Speicherverfahren oder gar aus einem
- unterschiedlichen Versionskontrollsystem. Da das Format der
- Auszugsdatei größtenteils menschenlesbar ist, sollte es
- einfach sein, gewöhnliche Änderungsmengen – von denen
- jede als Revision behandelt werden sollte – mit diesem
- Format zu beschreiben. Tatsächlich verwendet das
- Dienstprogramm <command>cvs2svn</command> (siehe <xref
- linkend="svn.forcvs.convert"/>) dieses Auszugsformat, um den
- Inhalt eines CVS-Projektarchivs darzustellen, so dass er in ein
- Subversion-Projektarchiv kopiert werden kann.</para>
+ <title>Projektarchiv-Daten-Migration mit svnrdump</title>
+<!--
+ <para>In Subversion 1.7, <command>svnrdump</command> joined
+ the set of stock Subversion tools. It offers fairly
+ specialized functionality, essentially as a network-aware
+ version of the <command>svnadmin dump</command>
+ and <command>svnadmin load</command> commands which we
+ discuss in depth in
+ <xref linkend="svn.reposadmin.maint.migrate.svnadmin"
+ />. <command>svnrdump dump</command> will generate a dump
+ stream from a remote repository, spewing it to standard
+ output; <command>svnrdump load</command> will read a dump
+ stream from standard input and load it into a remote
+ repository. Using <command>svnrdump</command>, you can
+ generate incremental dumps just as you might
+ with <command>svnadmin dump</command>. You can even dump a
+ subtree of the repository—something
+ that <command>svnadmin dump</command> cannot do.</para>
+-->
+ <para>In Subversion 1.7 kam <command>svnrdump</command> zu der
+ Menge von mitgelieferten Subversion-Werkzeugen hinzu. Es
+ bietet eine ziemlich spezialisierte Funktionalität, im
+ Wesentlichen als netzwerkfähige Version der Befehle
+ <command>svnadmin dump</command> und <command>svnadmin
+ load</command>, die wir im Detail in
+ <xref linkend="svn.reposadmin.maint.migrate.svnadmin"
+ /> erörtern. <command>svnrdump dump</command> erzeugt einen
+ Auszugsztrom eines Fern-Projektarchivs und schreibt ihn in
+ den Standard-Ausgabekanal; <command>svnrdump load</command>
+ liest einen Auszugsstrom aus dem Standard-Eingabekanal und
+ lädt ihn in ein Fern-Projektarchiv. Mit
+ <command>svnrdump</command> können Sie inkrementelle Auszüge
+ erstellen, wie mit <command>svnadmin dump</command>. Sie
+ können sogar einen Auszug eines Teilbaums des Projektarchivs
+ erstellen, was <command>svnadmin dump</command> nicht
+ kann.</para>
+
+<!--
+ <para>The primary difference is that instead of requiring
+ direct access to the repository, <command>svnrdump</command>
+ operates remotely, using the very same Repository Access
+ (RA) protocols that the Subversion client does. As such,
+ you might need to provide authentication credentials. Also,
+ your remote interations are subject to any authorization
+ limitations configured on the Subversion server.</para>
+-->
+ <para>Der Hauptunterschied besteht darin, dass
+ <command>svnrdump</command> ohne einen Direktzugriff auf
+ das Projektarchiv zu benötigen, aus der Ferne arbeitet,
+ wobei es die selben Repository Access (RA) Protokolle
+ verwendet wie der Subversion-Client. Daher kann es sein,
+ dass Sie Authentifizierungs-Informationen bereitstellen
+ müssen. Darüber hinaus unterliegen Ihre Aktionen aus der
+ Ferne den konfigurierten Autorisierungs-Einschränkungen des
+ Subversion-Servers.</para>
+
+ <note>
+<!--
+ <para><command>svnrdump dump</command> requires that the
+ remote server be running Subversion 1.4 or newer. It
+ currently generates dump streams only of the sort which
+ are created when you pass the <option>- -deltas</option>
+ option to <command>svnadmin dump</command>. This isn't
+ interesting in the typical use-cases, but might impact
+ specific types of custom transformations you might wish to
+ apply to the resulting dump stream.</para>
+-->
+ <para><command>svnrdump dump</command> erfordert einen
+ Fern-Server mit Subversion 1.4 oder neuer. Gegenwärtig
+ erzeugt es nur Auszugsströme der Art wie Sie sie bekommen,
+ wenn Sie <command>svnadmin dump</command> die Option
+ <option>--deltas</option> mitgeben. In den typischen
+ Anwendungsfällen ist das nicht von Interesse, jedoch kann
+ es Auswirkungen auf bestimmte Arten besonderer
+ Transformationen haben, die Sie auf den Auszugsstrom
+ anwenden möchten.</para>
+ </note>
+
+ <note>
+<!--
+ <para>Because it modifies revision properties after
+ committing new revisions, <command>svnrdump load</command>
+ requires that the target repository have revision property
+ changes enabled via the pre-revprop-change hook. See
+ <xref linkend="svn.ref.reposhooks.pre-revprop-change" /> in
+ <xref linkend="svn.ref"/> for details.</para>
+-->
+ <para>Da es nach der Übergabe neuer Revisionen die
+ Revisions-Eigenschaften ändert, verlangt <command>svnrdump
+ load</command>, dass im Ziel-Projektarchiv Änderungen an
+ Revisions-Eigenschaften mittels des Hooks
+ pre-revprop-change ermöglicht sind. Zu Details, siehe
+ <xref linkend="svn.ref.reposhooks.pre-revprop-change" /> in
+ <xref linkend="svn.ref"/>.</para>
+ </note>
+
+<!--
+ <para>As you might expect, you can use
+ <command>svnadmin</command> and <command>svnrdump</command>
+ in concert. You can, for example, use <command>svnrdump
+ dump</command> to generate a dump stream from a remote
+ repository, and pipe the results thereof through
+ <command>svnadmin load</command> to copy all that repository
+ history into a local repository. Or you can do the reverse,
+ copying history from a local repository into a remote
+ one.</para>
+-->
+ <para>Wie Sie wohl erwartet haben, können Sie
+ <command>svnadmin</command> und <command>svnrdump</command>
+ in Verbindung verwenden. Sie können beispielsweise
+ <command>svnrdump dump</command> verwenden, um einen
+ Auszugsstrom eines Fern-Projektarchivs zu erstellen und das
+ Ergebnis an <command>svnadmin load</command> weiterleiten,
+ um die Historie jenes Projektarchivs in das lokale
+ Projektarchiv zu kopieren. Oder Sie können im Gegenzug die
+ Historie eines lokalen Projektarchivs in ein fernes
+ kopieren.</para>
+
+ <tip>
+<!--
+ <para>By using <literal>file://</literal>
+ URLs, <command>svnrdump</command> can also access local
+ repositories, but it will be doing so via Subversion's
+ Repository Access (RA) abstraction layer—you'll get
+ better performance out of <command>svnadmin</command> in
+ such situations.</para>
+-->
+ <para>Durch die Verwendung von <literal>file://</literal>
+ URLs kann <command>svnrdump</command> auch auf lokale
+ Projektarchive zugreifen, allerdings wird hierfür auf
+ Subversions Abstraktionsebene Repository Access (RA)
+ zugegriffen; mit <command>svnadmin</command> ist in
+ solchen Fällen der Durchsatz besser.</para>
+ </tip>
+
+ </sect3>
</sect2>
<!-- ===============================================================
-->
More information about the svnbook-dev
mailing list