[svnbook] r4573 committed - Translation: Repository Replication
svnbook at googlecode.com
svnbook at googlecode.com
Wed Dec 25 08:36:43 CST 2013
Revision: 4573
Author: jmfelderhoff at gmx.eu
Date: Wed Dec 25 13:43:17 2013 UTC
Log: Translation: Repository Replication
http://code.google.com/p/svnbook/source/detail?r=4573
Modified:
/branches/1.6/de/book/ch05-repository-admin.xml
=======================================
--- /branches/1.6/de/book/ch05-repository-admin.xml Mon Dec 23 22:11:28
2013 UTC
+++ /branches/1.6/de/book/ch05-repository-admin.xml Wed Dec 25 13:43:17
2013 UTC
@@ -5088,9 +5088,8 @@
Server zu verteilen, zum sanften Aufrüsten usw.</para>
<!--
- <para>As of version 1.4, Subversion provides a program for
- managing scenarios such as
- these—<command>svnsync</command>. This works by
+ <para>Subversion provides a program for managing scenarios such
+ as these—<command>svnsync</command>. This works by
essentially asking the Subversion server to
<quote>replay</quote> revisions, one at a time. It then uses
that revision information to mimic a commit of the same to
@@ -5102,19 +5101,19 @@
repository and read/write access to the destination
repository.</para>
-->
- <para>Seit Version 1.4 stellt Subversion ein Programm zur
- Handhabung solcher Szenarien zur Verfügung –
- <command>svnsync</command>. Im Wesentlichen funktioniert das,
- indem der Subversion-Server aufgefordert wird, Revisionen zu
- <quote>wiederholen</quote>, eine nach der anderen. Dann wird
- die Information dieser Revision benutzt, um eine Übergabe
- derselben an ein anderes Projektarchiv zu imitieren. Keins der
- Projektarchive muss lokal auf der Maschine liegen, auf der
+ <para>Subversion stellt ein Programm zur Handhabung solcher
+ Szenarien zur Verfügung – <command>svnsync</command>. Im
+ Wesentlichen funktioniert das, indem der Subversion-Server
+ aufgefordert wird, Revisionen zu <quote>wiederholen</quote>,
+ eine nach der anderen. Dann wird die Information dieser
+ Revision benutzt, um eine Übergabe derselben an ein anderes
+ Projektarchiv zu imitieren. Keins der Projektarchive muss
+ lokal auf der Maschine liegen, auf der
<command>svnsync</command> läuft – seine Parameter sind
- Projektarchiv-URLs, und es verrichtet seine gesamte Arbeit über
- die Projektarchiv-Access-Schnittstellen (RA) von Subversion. Das
- Einzige, was benötigt wird, ist Lesezugriff auf das
- Quell-Projektarchiv und Lese-/Schreibzugriff auf das
+ Projektarchiv-URLs, und es verrichtet seine gesamte Arbeit
+ über die Projektarchiv-Access-Schnittstellen (RA) von
+ Subversion. Das Einzige, was benötigt wird, ist Lesezugriff
+ auf das Quell-Projektarchiv und Lese-/Schreibzugriff auf das
Ziel-Projektarchiv.</para>
<note>
@@ -5142,12 +5141,9 @@
histories contained in the source and target repositories.
For this reason, while <command>svnsync</command> cannot
<emphasis>demand</emphasis> that the target repository be
- read-only,
- <footnote>
- <para>In fact, it can't truly be read-only, or
- <command>svnsync</command> itself would have a tough time
- copying revision history into it.</para>
- </footnote>
+ read-only,<footnote><para>In fact, it can't truly be
+ read-only, or <command>svnsync</command> itself would have a
+ tough time copying revision history into it.</para></footnote>
allowing the revision history in the target repository to
change by any mechanism other than the mirroring process is a
recipe for disaster.</para>
@@ -5156,24 +5152,22 @@
gerne spiegeln möchten. Als nächstes brauchen Sie ein leeres
Ziel-Projektarchiv, das als Spiegel dienen soll. Dieses
Projektarchiv kann eins der verfügbaren Speicherverfahren
- benutzen (siehe <xref
- linkend="svn.reposadmin.basics.backends" />), doch es darf
- noch keine Versionshistorie enthalten. Das von
+ benutzen (siehe
+ <xref linkend="svn.reposadmin.basics.backends" />), doch es
+ darf noch keine Versionshistorie enthalten. Das von
<command>svnsync</command> verwendete Protokoll zur
Übermittlung der Revisionsinformation ist sehr empfindlich
gegenüber nicht übereinstimmenden Versionshistorien im
Quell- und Ziel-Projektarchiv. Aus dem Grund, dass
<command>svnsync</command> nicht
- <emphasis>verlangen</emphasis> kann, dass das Ziel-Projektarchiv
- nur lesbar ist,
- <footnote>
- <para>Tatsächlich kann es gar nicht nur lesbar sein, denn
- sonst hätte <command>svnsync</command> ein echtes Problem,
- die Versionshistorie hineinzukopieren.</para>
- </footnote>
- ist die Katastrophe programmiert, wenn erlaubt wird, die
- Revisions-Historie im Ziel-Projektarchiv mit anderen Mitteln als
- durch das Spiegeln zu verändern.</para>
+ <emphasis>verlangen</emphasis> kann, dass das
+ Ziel-Projektarchiv nur lesbar ist,<footnote><para>Tatsächlich
+ kann es gar nicht nur lesbar sein, denn sonst hätte
+ <command>svnsync</command> ein echtes Problem, die
+ Versionshistorie hineinzukopieren.</para></footnote> ist die
+ Katastrophe programmiert, wenn erlaubt wird, die
+ Revisions-Historie im Ziel-Projektarchiv mit anderen Mitteln
+ als durch das Spiegeln zu verändern.</para>
<warning>
<!--
@@ -5251,12 +5245,11 @@
nicht passend sind.</para>
<!--
- <para>As a service to the fine developers of our favorite
- version control system, we will be mirroring the public
- Subversion source code repository and exposing that mirror
- publicly on the Internet, hosted on a different machine than
- the one on which the original Subversion source code
- repository lives. This remote host has a global configuration
+ <para>We will be mirroring the public Subversion repository
+ which houses the source code for this very book and exposing
+ that mirror publicly on the Internet, hosted on a different
+ machine than the one on which the original Subversion source
+ code repository lives. This remote host has a global configuration
that permits anonymous users to read the contents of
repositories on the host, but requires users to authenticate
to modify those repositories. (Please forgive us for
@@ -5267,15 +5260,15 @@
the replication process from a third machine—the one that
we currently find ourselves using.</para>
-->
- <para>Als Dienst an den ausgezeichneten Entwicklern unseres
- Lieblings-Versionskontrollsystems wollen wir das öffentliche
- Subversion-Quelltext-Projektarchiv spiegeln und diesen Spiegel
- von einer anderen Maschine als der, auf der das ursprüngliche
- Subversion-Quelltext-Projektarchiv untergebracht ist, im Internet
- veröffentlichen. Dieser entfernt liegende Rechner besitzt eine
- globale Konfiguration, die es anonymen Benutzern erlaubt, den
- Inhalt von Projektarchivs auf diesem Rechner zu lesen, aber zum
- Ändern dieser Projektarchive eine Authentifizierung der Benutzer
+ <para>Wir wollen das öffentliche Subversion-Projektarchiv
+ spiegeln, das den Quelltext des vorliegenden Buchs beherbergt,
+ und diesen Spiegel von einer anderen Maschine als der, auf der
+ das ursprüngliche Subversion-Quelltext-Projektarchiv
+ untergebracht ist, im Internet veröffentlichen. Dieser
+ entfernt liegende Rechner besitzt eine globale Konfiguration,
+ die es anonymen Benutzern erlaubt, den Inhalt von
+ Projektarchivs auf diesem Rechner zu lesen, aber zum Ändern
+ dieser Projektarchive eine Authentifizierung der Benutzer
erforderlich macht. (Vergeben Sie uns bitte, dass wir für den
Augenblick über die Details der
Subversion-Server-Konfiguration hinwegsehen – sie werden
@@ -5299,12 +5292,13 @@
jedoch konfiguriert ist, sollten wir nicht mehr direkt darauf
zugreifen müssen.</para>
- <screen>
-$ ssh admin at svn.example.com \
- "svnadmin create /var/svn/svn-mirror"
+ <informalexample>
+ <screen>
+$ ssh admin at svn.example.com "svnadmin create /var/svn/svn-mirror"
admin at svn.example.com's password: ********
$
</screen>
+ </informalexample>
<!--
<para>At this point, we have our repository, and due to our
@@ -5389,7 +5383,7 @@
<para>That covers revision property changes. Now we need to
ensure that only the <literal>syncuser</literal> user is
permitted to commit new revisions to the repository. We do
- this using a <filename>start-commit</filename> hook scripts
+ this using a <filename>start-commit</filename> hook script
such as the one in <xref
linkend="svn.reposadmin.maint.replication.start-commit"
/>.</para>
@@ -5452,9 +5446,9 @@
initialize</command> subcommand. The URLs we provide point to
the root directories of the target and source repositories,
respectively. In Subversion 1.4, this is required—only
- full mirroring of repositories is permitted. In Subversion
- 1.5, though, you can use <command>svnsync</command> to mirror
- only some subtree of the repository, too.</para>
+ full mirroring of repositories is permitted. Beginning with
+ Subversion 1.5, though, you can use <command>svnsync</command>
+ to mirror only some subtree of the repository, too.</para>
-->
<para>Das Erste, was wir machen müssen ist, unserem
Ziel-Projektarchiv mit <command>svnsync</command> zu sagen, dass
@@ -5463,12 +5457,13 @@
URLs, die wir mitgeben, zeigen auf die Wurzelverzeichnisse des
Ziel- bzw. Quell-Projektarchivs. In Subversion 1.4 ist das
erforderlich – nur die vollständige Spiegelung von
- Projektarchiven ist erlaubt. In Subversion 1.5 jedoch können Sie
- <command>svnsync</command> auch zum Spiegeln von Teilbäumen
- des Projektarchivs verwenden.</para>
+ Projektarchiven ist erlaubt. Beginnend mit Subversion 1.5
+ jedoch können Sie <command>svnsync</command> auch zum Spiegeln
+ von Teilbäumen des Projektarchivs verwenden.</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svnsync help init
initialize (init): usage: svnsync initialize DEST_URL SOURCE_URL
@@ -5476,13 +5471,15 @@
another repository.
…
$ svnsync initialize http://svn.example.com/svn-mirror \
- http://svn.collab.net/repos/svn \
+ http://svnbook.googlecode.com/svn \
- -sync-username syncuser - -sync-password syncpass
-Copied properties for revision 0.
+Copied properties for revision 0 (svn:sync-* properties skipped).
$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svnsync help init
initialize (init): Aufruf: svnsync initialize ZIEL_URL QUELL_URL
@@ -5490,11 +5487,12 @@
anderen Projektarchiv vor.
…
$ svnsync initialize http://svn.example.com/svn-mirror \
- http://svn.collab.net/repos/svn \
+ http://svnbook.googlecode.com/svn \
--sync-username syncuser --sync-password syncpass
-Eigenschaften für Revision 0 kopiert.
+Eigenschaften für Revision 0 kopiert (svn:sync-* Eigenschaften übergangen).
$
</screen>
+ </informalexample>
<!--
<para>Our target repository will now remember that it is a
@@ -5519,21 +5517,9 @@
repositories. This caused problems when a user's
credentials weren't exactly the same for both repositories,
especially when running in noninteractive mode (with the
- <option>- -non-interactive</option> option).</para>
--->
- <para>In Subversion 1.4 wurden die an die
- Kommandozeilenoptionen <option>--username</option> und
- <option>--password</option> von <command>svnsync</command>
- übergebenen Werte sowohl für die Authentisierung gegenüber
- dem Quell-Projektarchiv als auch gegenüber dem Ziel-Projektarchiv
- verwendet. Das führte zu Problemen, falls die Zugangsdaten
- eines Benutzers nicht für beide Projektarchive identisch waren,
- insbesonders im nicht-interaktiven Modus (mit der Option
- <option>--non-interactive</option>).</para>
-
-<!--
- <para>This has been fixed in Subversion 1.5 with the
- introduction of two new pairs of options. Use
+ <option>- -non-interactive</option> option). This was fixed
+ in Subversion 1.5 with the introduction of two new pairs of
+ options. Use
<option>- -source-username</option> and
<option>- -source-password</option> to provide authentication
credentials for the source repository; use
@@ -5544,16 +5530,24 @@
options still exist for compatibility, but we advise against
using them.)</para>
-->
- <para>Dies ist in Subversion 1.5 mit der Einführung von zwei
- neuen Optionspaaren behoben worden. Benutzen Sie
- <option>--source-username</option> und
+ <para>In Subversion 1.4 wurden die an die
+ Kommandozeilenoptionen <option>--username</option> und
+ <option>--password</option> von <command>svnsync</command>
+ übergebenen Werte sowohl für die Authentisierung gegenüber
+ dem Quell-Projektarchiv als auch gegenüber dem Ziel-Projektarchiv
+ verwendet. Das führte zu Problemen, falls die Zugangsdaten
+ eines Benutzers nicht für beide Projektarchive identisch waren,
+ insbesonders im nicht-interaktiven Modus (mit der Option
+ <option>--non-interactive</option>). Dies ist in Subversion
+ 1.5 mit der Einführung von zwei neuen Optionspaaren behoben
+ worden. Benutzen Sie <option>--source-username</option> und
<option>--source-password</option> für die Zugangsdaten des
- Quell-Projektarchivs sowie <option>--sync-username</option> und
- <option>--sync-password</option> für das Ziel-Projektarchiv.
- (Die alten Optionen <option>--username</option> und
- <option>--password</option> bleiben aus
- Kompatibilitätsgründen bestehen, doch raten wir von deren
- Verwendung ab.)</para>
+ Quell-Projektarchivs sowie <option>--sync-username</option>
+ und <option>--sync-password</option> für das
+ Ziel-Projektarchiv. (Die alten Optionen
+ <option>--username</option> und <option>--password</option>
+ bleiben aus Kompatibilitätsgründen bestehen, doch raten wir
+ von deren Verwendung ab.)</para>
</note>
@@ -5561,14 +5555,11 @@
<para>And now comes the fun part. With a single subcommand, we
can tell <command>svnsync</command> to copy all the
as-yet-unmirrored revisions from the source repository to the
- target.
- <footnote>
- <para>Be forewarned that while it will take only a few
- seconds for the average reader to parse this paragraph and
- the sample output that follows it, the actual time
- required to complete such a mirroring operation is, shall
- we say, quite a bit longer.</para>
- </footnote>
+ target.<footnote><para>Be forewarned that while it will take
+ only a few seconds for the average reader to parse this
+ paragraph and the sample output that follows it, the actual
+ time required to complete such a mirroring operation is, shall
+ we say, quite a bit longer.</para></footnote>
The <command>svnsync synchronize</command> subcommand will
peek into the special revision properties previously stored on
the target repository, and determine both what repository it
@@ -5577,7 +5568,7 @@
repository and determine what the latest revision in that
repository is. Finally, it asks the source repository's
server to start replaying all the revisions between 0 and that
- latest revision. As <command>svnsync</command> get the
+ latest revision. As <command>svnsync</command> gets the
resultant response from the source repository's server, it
begins forwarding those revisions to the target repository's
server as new commits.</para>
@@ -5585,29 +5576,29 @@
<para>Und nun kommt der lustige Teil. Mit einem einfachen
Unterbefehl können wir <command>svnsync</command> auffordern,
alle bislang ungespiegelten Revisionen aus dem
- Quell-Projektarchiv zum Ziel zu kopieren.
- <footnote>
- <para>Seien Sie jedoch vorgewarnt, dass, obwohl der
- durchschnittliche Leser nur ein paar Sekunden benötigt, um
- diesen Absatz und die ihm folgende Beispielausgabe zu
- erfassen, die tatsächlich für eine vollständige Spiegelung
- erforderliche Zeit um Einiges länger ist.</para>
- </footnote>
- Der Unterbefehl <command>svnsync synchronize</command> wird
- die bereits vorher im Ziel-Projektarchiv gespeicherten besonderen
- Revisions-Eigenschaften untersuchen und sowohl ermitteln, welches
- Projektarchiv es spiegelt und dass die zuletzt gespiegelte
- Revision die Revision 0 war. Dann fragt es das Quell-Projektarchiv
- ab, welches die jüngste Revision in diesem Projektarchiv ist.
- Schließlich fordert es den Server des Quell-Projektarchivs auf,
- alle Revisionen zwischen 0 und dieser letzten Revision
- zu wiederholen. Sobald <command>svnsync</command> die
- entsprechende Antwort vom Quell-Projektarchiv-Server erhält,
- leitet es diese Revisionen als neue Übergaben an den Server
- des Ziel-Projektarchivs weiter.</para>
+ Quell-Projektarchiv zum Ziel zu kopieren.<footnote><para>Seien
+ Sie jedoch vorgewarnt, dass, obwohl der durchschnittliche
+ Leser nur ein paar Sekunden benötigt, um diesen Absatz und die
+ ihm folgende Beispielausgabe zu erfassen, die tatsächlich für
+ eine vollständige Spiegelung erforderliche Zeit um Einiges
+ länger ist.</para></footnote> Der Unterbefehl
+ <command>svnsync synchronize</command> wird die bereits vorher
+ im Ziel-Projektarchiv gespeicherten besonderen
+ Revisions-Eigenschaften untersuchen und sowohl ermitteln,
+ welches Projektarchiv es spiegelt und dass die zuletzt
+ gespiegelte Revision die Revision 0 war. Dann fragt es das
+ Quell-Projektarchiv ab, welches die jüngste Revision in diesem
+ Projektarchiv ist. Schließlich fordert es den Server des
+ Quell-Projektarchivs auf, alle Revisionen zwischen 0 und
+ dieser letzten Revision zu wiederholen. Sobald
+ <command>svnsync</command> die entsprechende Antwort vom
+ Quell-Projektarchiv-Server erhält, leitet es diese Revisionen
+ als neue Übergaben an den Server des Ziel-Projektarchivs
+ weiter.</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svnsync help synchronize
synchronize (sync): usage: svnsync synchronize DEST_URL
@@ -5615,90 +5606,87 @@
with which it was initialized.
…
$ svnsync synchronize http://svn.example.com/svn-mirror
-Transmitting file data ........................................
Committed revision 1.
Copied properties for revision 1.
-Transmitting file data ..
Committed revision 2.
Copied properties for revision 2.
-Transmitting file data .....
+Transmitting file data .
Committed revision 3.
Copied properties for revision 3.
…
-Transmitting file data ..
-Committed revision 23406.
-Copied properties for revision 23406.
Transmitting file data .
-Committed revision 23407.
-Copied properties for revision 23407.
+Committed revision 4063.
+Copied properties for revision 4063.
+Transmitting file data .
+Committed revision 4064.
+Copied properties for revision 4064.
Transmitting file data ....
-Committed revision 23408.
-Copied properties for revision 23408.
+Committed revision 4065.
+Copied properties for revision 4065.
$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svnsync help synchronize
-synchronize (sync): Aufruf: svnsync synchronize ZIEL_URL
+synchronize (sync): usage: svnsync synchronize DEST_URL
-Überträgt alle laufenden Revisionen von der Quelle, mit der es
-initialisiert wurde, zum Ziel.
+Transfer all pending revisions to the destination from the source
+with which it was initialized.
…
$ svnsync synchronize http://svn.example.com/svn-mirror
-Übertrage Daten ........................................
Revision 1 übertragen.
Eigenschaften für Revision 1 kopiert.
-Übertrage Daten ..
Revision 2 übertragen.
Eigenschaften für Revision 2 kopiert.
-Übertrage Daten .....
+Übertrage Daten .
Revision 3 übertragen.
Eigenschaften für Revision 3 kopiert.
…
-Übertrage Daten ..
-Revision 23406 übertragen.
-Eigenschaften für Revision 23406 kopiert.
Übertrage Daten .
-Revision 23407 übertragen.
-Eigenschaften für Revision 23407 kopiert.
-Übertrage Daten ....
-Revision 23408 übertragen.
-Eigenschaften für Revision 23408 kopiert.
+Revision 4063 übertragen.
+Eigenschaften für Revision 4063 kopiert.
+Übertrage Daten .
+Revision 4064 übertragen.
+Eigenschaften für Revision 4064 kopiert.
+Übertrage Daten .
+Revision 4065 übertragen.
+Eigenschaften für Revision 4065 kopiert.
$
</screen>
+ </informalexample>
<!--
<para>Of particular interest here is that for each mirrored
revision, there is first a commit of that revision to the
- target repository, and then property changes follow. This is
- because the initial commit is performed by (and attributed to)
- the user <literal>syncuser</literal>, and it is datestamped
- with the time as of that revision's creation. Also,
- Subversion's underlying repository access interfaces don't
- provide a mechanism for setting arbitrary revision properties
- as part of a commit. So <command>svnsync</command> follows up
- with an immediate series of property modifications that copy
- into the target repository all the revision properties found
- for that revision in the source repository. This also has the
- effect of fixing the author and datestamp of the revision to
- match that of the source repository.</para>
+ target repository, and then property changes follow. This
+ two-phase replication is required because the initial commit
+ is performed by (and attributed to) the user
+ <literal>syncuser</literal> and is datestamped with the time
+ as of that revision's creation. <command>svnsync</command>
+ has to follow up with an immediate series of property
+ modifications that copy into the target repository all the
+ original revision properties found for that revision in the
+ source repository, which also has the effect of fixing the
+ author and datestamp of the revision to match that of the
+ source repository.</para>
-->
<para>Von besonderem Interesse ist hier, dass für jede
gespiegelte Revision zunächst eine Übergabe der Revision an
das Ziel-Projektarchiv erfolgt und dann die Änderungen der
- Eigenschaften folgen. Das kommt daher, dass die anfängliche
- Übergabe durch den Benutzer <literal>syncuser</literal>
- durchgeführt (und ihm auch zugeschrieben) wird und mit dem
- Zeitstempel der Erzeugung dieser Revision versehen wird.
- Darüberhinaus erlauben die Subversion zugrundeliegenden
- Projektarchiv-Zugriffs-Schnittstellen nicht das beliebige Setzen
- von Revisions-Eigenschaften als Teil einer Übergabe. Deshalb folgt
- <command>svnsync</command> mit einer unmittelbaren Serie von
- Änderungen an den Eigenschaften, die all die Eigenschaften dieser
- Revision vom Quell-Projektarchiv ins Ziel-Projektarchiv kopieren.
- Das hat auch den Effekt, dass der Autor und der Zeitstempel so
- korrigiert werden, dass diese den entsprechenden Werten im
- Quell-Projektarchiv entsprechen.</para>
+ Eigenschaften folgen. Diese zweiphasige Replizierung ist
+ notwendig, da die anfängliche Übergabe durch den Benutzer
+ <literal>syncuser</literal> durchgeführt (und ihm auch
+ zugeschrieben) wird und mit dem Zeitstempel der Erzeugung
+ dieser Revision versehen wird. <command>svnsync</command> hat
+ hinterher unmittelbaren Serie von Änderungen an den
+ Eigenschaften vorzunehmen, die all die Eigenschaften dieser
+ Revision vom Quell-Projektarchiv ins Ziel-Projektarchiv
+ kopieren, was auch den Effekt hat, dass der Autor und der
+ Zeitstempel so korrigiert werden, dass diese den
+ entsprechenden Werten im Quell-Projektarchiv
+ entsprechen.</para>
<!--
<para>Also noteworthy is that <command>svnsync</command>
@@ -5708,7 +5696,7 @@
repository, simply repeat the <command>svnsync
synchronize</command> command, and it will happily pick up
right where it left off. In fact, as new revisions appear in
- the source repository, this is exactly what you to do
+ the source repository, this is exactly what you do
to keep your mirror up to date.</para>
-->
<para>Bemerkenswert ist ebenfalls, dass
@@ -5796,43 +5784,43 @@
dient.</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svn propdel - -revprop -r0 svn:sync-lock
http://svn.example.com/svn-mirror
property 'svn:sync-lock' deleted from repository revision 0
$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svn propdel --revprop -r0 svn:sync-lock http://svn.example.com/svn-mirror
Eigenschaft »svn:sync-lock« wurde von Revision 0 im Projektarchiv gelöscht
$
</screen>
+ </informalexample>
<!--
<para>That <command>svnsync</command> stores the source
repository URL in a bookkeeping property on the mirror
- repository is the reason why you have to specify that
- URL only once, during <command>svnsync init</command>. Future
+ repository is the reason why you have to specify that URL
+ only once, during <command>svnsync init</command>. Future
synchronization operations against that mirror simply
consult the special <literal>svn:sync-from-url</literal>
- property stored on the mirror itself to know where
- to synchronize from. This value is used literally by the
- synchronization process, though. So while from within
- CollabNet's network you can perhaps access our example
- source URL as <literal>http://svn/repos/svn</literal>
- (because that first <literal>svn</literal> magically gets
- <literal>.collab.net</literal> appended to it by DNS
- voodoo), if you later need to update that mirror from
- another machine outside CollabNet's network, the
- synchronization might fail (because the hostname
- <literal>svn</literal> is ambiguous). For this reason, it's
- best to use fully qualified source repository URLs when
- initializing a mirror repository rather than those that
- refer to only hostnames or IP addresses (which can change
- over time). But here again, if you need an existing mirror
- to start referring to a different URL for the same source
- repository, you can change the bookkeeping property which
- houses that information:</para>
+ property stored on the mirror itself to know where to
+ synchronize from. This value is used literally by the
+ synchronization process, though. Be wary of using
+ non-fully-qualified domain names (such as referring
+ to <literal>svnbook.red-bean.com</literal> as
+ simply <literal>svnbook</literal> because that happens to
+ work when you are connected directly to
+ the <literal>red-bean.com</literal> network), domain names
+ which don't resolve or resolve differently depending on
+ where you happen to be operating from, or IP addresses
+ (which can change over time). But here again, if you need
+ an existing mirror to start referring to a different URL for
+ the same source repository, you can change the bookkeeping
+ property which houses that information:</para>
-->
<para>Dass <command>svnsync</command> den URL des
Quell-Projektarchivs zur Buchhaltung in einer Eigenschaft des
@@ -5843,37 +5831,37 @@
<literal>svn:sync-from-url</literal>, das auf dem Spiegel
gespeichert ist, um zu wissen, woher synchronisiert werden
soll. Dieser Wert wird vom Synchronisierungsprozess jedoch
- wortwörtlich benutzt. Während Sie vielleicht innerhalb des
- Netzes von CollabNet auf unseren Beispiel-URL
- <literal>http://svn/repos/svn</literal> zugreifen können
- (weil das erste <literal>svn</literal> durch
- DNS-Voodoo-Zauber ein <literal>.collab.net</literal>
- angehängt bekommt), kann der Zugriff fehlschlagen, falls Sie
- später einmal den Spiegel von außerhalb des CollabNet-Netzes
- aktualisieren müssen (da der Rechnername
- <literal>svn</literal> mehrdeutig ist). Aus diesem Grund ist
- es am besten, beim Initialisieren von Spiegel-Projektarchivs
- vollqualifizierte Quell-Projektarchiv-URLs zu verwenden,
- anstatt solche, die nur auf Rechnernamen oder IP-Adressen
- verweisen (die sich im Lauf der Zeit ändern können). Aber
- auch hier können Sie die Eigenschaft zur Buchhaltung ändern,
- falls ein bestehender Spiegel einen unterschiedlichen URL
- für dasselbe Quell-Projektarchiv benötigt:</para>
+ wortwörtlich benutzt. Seien Sie vorsichtig, wenn Sie nicht
+ vollqualifizierte Domainnamen verwenden (etwa wenn Sie sich
+ auf <literal>svnbook.red-bean.com</literal> einfach mit
+ <literal>svnbook</literal> beziehen, da das funktioniert,
+ wenn Sie direkt mit dem <literal>red-bean.com</literal>
+ Netz verbunden sind), Domainnamen, die sich nicht auflösen
+ lassen oder sich unterschiedlich auflösen, je nachdem von wo
+ aus Sie arbeiten oder IP-Adressen (die sich im Lauf der Zeit
+ ändern können). Aber auch hier können Sie die Eigenschaft
+ zur Buchhaltung ändern, falls ein bestehender Spiegel einen
+ unterschiedlichen URL für dasselbe Quell-Projektarchiv
+ benötigt:</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svn propset - -revprop -r0 svn:sync-from-url
<replaceable>NEW-SOURCE-URL</replaceable> \
http://svn.example.com/svn-mirror
property 'svn:sync-from-url' set on repository revision 0
$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svn propset --revprop -r0 svn:sync-from-url
<replaceable>NEUER-QUELL-URL</replaceable> \
http://svn.example.com/svn-mirror
Eigenschaft »svn:sync-from-url« wurde für Revision 0 im Projektarchiv
gesetzt
$
</screen>
+ </informalexample>
<!--
<para>Another interesting thing about these special
@@ -5905,6 +5893,48 @@
speziellen Eigenschaften in Revision 0 des Quell-Projektarchivs
entdeckt, ignoriert es sie einfach.</para>
+<!--
+ <para>An <command>svnsync info</command> subcommand was added
+ in Subversion 1.6 to easily display the special bookkeeping
+ properties in the destination repository.</para>
+-->
+ <para>Ein Unterbefehl <command>svnsync info</command> wurde in
+ Subversion 1.6 hinzugefügt, um die besonderen
+ Buchhaltungs-Eigenschaften im Ziel-Projektarchiv anzeigen zu
+ lassen.</para>
+
+<!--
+ <informalexample>
+ <screen>
+$ svnsync help info
+info: usage: svnsync info DEST_URL
+
+Print information about the synchronization destination repository
+located at DEST_URL.
+…
+$ svnsync info http://svn.example.com/svn-mirror
+Source URL: http://svnbook.googlecode.com/svn
+Source Repository UUID: 931749d0-5854-0410-9456-f14be4d6b398
+Last Merged Revision: 4065
+$
+</screen>
+ </informalexample>
+-->
+ <informalexample>
+ <screen>
+$ svnsync help info
+Aufruf: svnsync info ZIEL_URL
+
+Gibt Informationen über das Zielprojektarchiv der Synchronisation aus,
+das sich unter ZIEL_URL befindet.
+…
+$ svnsync info http://svn.example.com/svn-mirror
+Quell-URL: http://svnbook.googlecode.com/svn
+UUID des Quellprojektarchivs: 931749d0-5854-0410-9456-f14be4d6b398
+Letzte zusammengeführte Revision: 4065
+$
+</screen>
+ </informalexample>
</sidebar>
<!--
@@ -5937,7 +5967,8 @@
Revisionsintervalls erneut repliziert.</para>
<!--
- <screen>
+ <informalexample>
+ <screen>
$ svnsync help copy-revprops
copy-revprops: usage: svnsync copy-revprops DEST_URL [REV[:REV2]]
@@ -5948,8 +5979,10 @@
Copied properties for revision 12.
$
</screen>
+ </informalexample>
-->
- <screen>
+ <informalexample>
+ <screen>
$ svnsync help copy-revprops
copy-revprops: Aufruf: svnsync copy-revprops ZIEL_URL [REV[:REV2]]
@@ -5960,6 +5993,7 @@
Eigenschaften für Revision 12 kopiert.
$
</screen>
+ </informalexample>
<!--
<para>That's repository replication in a nutshell. You'll
@@ -6062,21 +6096,22 @@
<!--
<para>Once the two repositories have the same UUID, you can use
- <command>svn switch</command> with the <option>-
-relocate</option> option to point your working
+ <command>svn switch</command> with
+ the <option>- -relocate</option> option to point your working
copy to whichever of the repositories you wish to operate
- against, a process that is described in <xref
- linkend="svn.ref.svn.c.switch" />. There is a possible danger
- here, though, in that if the primary and mirror repositories
- aren't in close synchronization, a working copy up to date
- with, and pointing to, the primary repository will, if
- relocated to point to an out-of-date mirror, become confused
- about the apparent sudden loss of revisions it fully expects
- to be present, and it will throw errors to that effect. If
- this occurs, you can relocate your working copy back to the
- primary repository and then either wait until the mirror
- repository is up to date, or backdate your working copy to a
- revision you know is present in the sync repository, and then
- retry the relocation.</para>
+ against, a process that is described in
+ <xref linkend="svn.ref.svn.c.switch" />. There is a possible
+ danger here, though, in that if the primary and mirror
+ repositories aren't in close synchronization, a working copy
+ up to date with, and pointing to, the primary repository will,
+ if relocated to point to an out-of-date mirror, become
+ confused about the apparent sudden loss of revisions it fully
+ expects to be present, and it will throw errors to that
+ effect. If this occurs, you can relocate your working copy
+ back to the primary repository and then either wait until the
+ mirror repository is up to date, or backdate your working copy
+ to a revision you know is present in the sync repository, and
+ then retry the relocation.</para>
-->
<para>Sobald beide Projektarchive dieselbe UUID haben, können Sie
<command>svn switch</command> mit der Option
More information about the svnbook-dev
mailing list