[svnbook commit] r3439 - trunk/src/de/book

codesite-noreply at google.com codesite-noreply at google.com
Mon Mar 2 01:41:03 CST 2009


Author: jmfelderhoff at gmx.eu
Date: Sun Mar  1 23:40:21 2009
New Revision: 3439

Modified:
    trunk/src/de/book/ch05-repository-admin.xml

Log:
* trunk/src/de/book/ch05-repository-admin.xml
   - Fixes ticket #220 (cf. http://www.svnbook.de/report/6).


Modified: trunk/src/de/book/ch05-repository-admin.xml
==============================================================================
--- trunk/src/de/book/ch05-repository-admin.xml	(original)
+++ trunk/src/de/book/ch05-repository-admin.xml	Sun Mar  1 23:40:21 2009
@@ -2961,8 +2961,12 @@

        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
        <sect3 id="svn.reposadmin.maint.diskspace.deadtxns">
+<!--
          <title>Removing dead transactions</title>
+-->
+        <title>Entfernen unvollendeter Transaktionen</title>

+<!--
          <para>Though they are uncommon, there are circumstances in
            which a Subversion commit process might fail, leaving behind
            in the repository the remnants of the revision-to-be that
@@ -2975,10 +2979,28 @@
            They don't do any real harm, other than consuming disk
            space.  A fastidious administrator may nonetheless wish to
            remove them.</para>
+-->
+        <para>Obwohl es selten vorkommt, gibt es Umstände, unter denen
+          der Übetrgabeprozess mit einem Fehler abbricht und die Reste
+          einer Revision in Spe  hinterlässt – eine unvollendete
+          Transaktion samt aller Datei- und Verzeichnisänderungen, die
+          dazugehören. Dies kann aus verschiedenen Gründen passieren:
+          Vielleicht wurde die Operation des Clients vom Benutzer
+          unsauber beendet oder es trat mittendrin ein Netzfehler auf.
+          Aus welchem Grund auch immer, es können unvollendete
+          Transaktionen auftreten. Sie verursachen keine tatsächlichen
+          Schäden, außer Plattenplatz zu verschwenden. Ein penibler
+          Administrator möchte sie vielleicht dennoch
+          entfernen.</para>

+<!--
          <para>You can use the <command>svnadmin lstxns</command>
            command to list the names of the currently outstanding
            transactions:</para>
+-->
+        <para>Sie können den Befehl <command>svnadmin lstxns</command>
+          verwenden, um die Namen der aktuell ausstehenden
+          Transaktionen anzuzeigen:</para>

          <screen>
  $ svnadmin lstxns myrepos
@@ -2988,9 +3010,10 @@
  $
  </screen>

+<!--
          <para>Each item in the resultant output can then be used with
            <command>svnlook</command> (and its
-          <option>--transaction</option> (<option>-t</option>) option)
+          <option>- -transaction</option> (<option>-t</option>) option)
            to determine who created the transaction, when it was
            created, what types of changes were made in the
            transaction—information that is helpful in determining
@@ -3001,12 +3024,28 @@
            <command>svnadmin rmtxns</command> can take its input
            directly from the output of
            <command>svnadmin lstxns</command>!</para>
+-->
+        <para>Jeder Eintrag der Ausgabe kann dann mit dem Befehl
+          <command>svnlook</command> (und seiner Option
+          <option>--transaction</option> (<option>-t</option>))
+          aufgerufen werden, um festzustellen, wer die Transaktion
+          erzeugt hat, wann sie erzeugt wurde und welche Änderungen
+          sie beinhaltet – Informationen, die bei der
+          Entscheidung helfen können, ob eine Transaktion ein sicherer
+          Kandidat zum Löschen ist! Wenn Sie tatsächlich eine
+          Transaktion löschen wollen, kann deren Name an den Befehl
+          <command>svnadmin rmtxns</command> übergeben werden, der
+          dann die Transaktion aufräumt. <command>svnadmin
+          rmtxns</command> kann seine Eingabe auch direkt aus der
+          Ausgabe von <command>svnadmin lstxns</command>
+          beziehen!</para>

          <screen>
  $ svnadmin rmtxns myrepos `svnadmin lstxns myrepos`
  $
  </screen>

+<!--
          <para>If you use these two subcommands like this, you should
            consider making your repository temporarily inaccessible to
            clients.  That way, no one can begin a legitimate
@@ -3015,10 +3054,25 @@
            contains a bit of shell-scripting that can quickly generate
            information about each outstanding transaction in your
            repository.</para>
+-->
+        <para>Falls Sie auf diese Weise diese beiden Unterbefehle
+          verwenden, sollten Sie vorübergehend das Repository für
+          Clients unzugänglich machen. So kann niemand eine
+          berechtigte Transaktion beginnen, bevor Sie aufgeräumt
+          haben.  <xref
+          linkend="svn.reposadmin.maint.diskspace.deadtxns.ex-1" />
+          enthält ein kleines Shell-Script, das schnell eine Übersicht
+          über jede ausstehende Transaktion in Ihrem Repository
+          erzeugen kann.</para>

+<!--
          <example id="svn.reposadmin.maint.diskspace.deadtxns.ex-1">
            <title>txn-info.sh (reporting outstanding transactions)</title>
+-->
+        <example id="svn.reposadmin.maint.diskspace.deadtxns.ex-1">
+          <title>txn-info.sh (ausstehende Transaktionen anzeigen)</title>

+<!--
            <programlisting>
  #!/bin/sh

@@ -3032,41 +3086,94 @@
  fi

  for TXN in `svnadmin lstxns ${REPOS}`; do
-  echo "---[ Transaction ${TXN}  
]-------------------------------------------"
+  echo "- -[ Transaction ${TXN} ]- - - - - - - - - - - - - - - - - - - - -  
-"
+  svnlook info "${REPOS}" -t "${TXN}"
+done
+</programlisting>
+-->
+          <programlisting>
+#!/bin/sh
+
+### Erzeuge Informationen über alle ausstehenden Transaktionen eines
+### Subversion Repositorys.
+
+REPOS="${1}"
+if [ "x$REPOS" = x ] ; then
+  echo "Aufruf: $0 REPOS_PATH"
+  exit
+fi
+
+for TXN in `svnadmin lstxns ${REPOS}`; do
+  echo "---[ Transaktion ${TXN}  
]-------------------------------------------"
    svnlook info "${REPOS}" -t "${TXN}"
  done
  </programlisting>
          </example>

+<!--
          <para>The output of the script is basically a concatenation of
            several chunks of <command>svnlook info</command> output
            (see <xref linkend="svn.reposadmin.maint.tk.svnlook"/>) and
            will look something like this:</para>
+-->
+        <para>Die Ausgabe des Scriptes ist im Grunde genommen eine
+          Aneinanderreihung mehrerer Teile von <command>svnlook
+          info</command>-Ausgaben (siehe <xref
+          linkend="svn.reposadmin.maint.tk.svnlook"/>) und sieht etwa
+          so aus:</para>

+<!--
          <screen>
  $ txn-info.sh myrepos
----[ Transaction 19 ]-------------------------------------------
+- -[ Transaction 19 ]- - - - - - - - - - - - - - - - - - - - - -
  sally
  2001-09-04 11:57:19 -0500 (Tue, 04 Sep 2001)
  0
----[ Transaction 3a1 ]-------------------------------------------
+- -[ Transaction 3a1 ]- - - - - - - - - - - - - - - - - - - - - -
  harry
  2001-09-10 16:50:30 -0500 (Mon, 10 Sep 2001)
  39
  Trying to commit over a faulty network.
----[ Transaction a45 ]-------------------------------------------
+- -[ Transaction a45 ]- - - - - - - - - - - - - - - - - - - - - -
+sally
+2001-09-12 11:09:28 -0500 (Wed, 12 Sep 2001)
+0
+$
+</screen>
+-->
+        <screen>
+$ txn-info.sh myrepos
+---[ Transaktion 19 ]-------------------------------------------
+sally
+2001-09-04 11:57:19 -0500 (Tue, 04 Sep 2001)
+0
+---[ Transaktion 3a1 ]-------------------------------------------
+harry
+2001-09-10 16:50:30 -0500 (Mon, 10 Sep 2001)
+39
+Versuch, über eine schlechte Netzverbindung abzuliefern.
+---[ Transaktion a45 ]-------------------------------------------
  sally
  2001-09-12 11:09:28 -0500 (Wed, 12 Sep 2001)
  0
  $
  </screen>

+<!--
          <para>A long-abandoned transaction usually represents some
            sort of failed or interrupted commit.  A transaction's
            datestamp can provide interesting information—for
            example, how likely is it that an operation begun nine
            months ago is still active?</para>
+-->
+        <para>Eine vor langer Zeit aufgegebene Transaktion bedeutet
+          normalerweise eine Art fehlgeschlagenen oder unterbrochenen
+          Übergabeversuch. Der Zeitstempel einer Transaktion kann eine
+          interessante Information sein – ist es beispielsweise
+          wahrscheinlich, dass eine vor neun Monaten begonnene
+          Operation immer noch aktiv ist?</para>

+<!--
          <para>In short, transaction cleanup decisions need not be made
            unwisely.  Various sources of information—including
            Apache's error and access logs, Subversion's operational
@@ -3075,6 +3182,19 @@
            administrator can often simply communicate with a seemingly
            dead transaction's owner (via email, e.g.) to verify
            that the transaction is, in fact, in a zombie state.</para>
+-->
+        <para>Kurz gesagt, Entscheidungen zur Bereinigung von
+          Transaktionen sollten klug getroffen werden. Verschiedene
+          Informationsquellen – hierzu gehören die Fehler- und
+          Zugriffsprotokolldateien von Apache, die operativen
+          Protokolldateien von Subversion, die Revisions-Historie von
+          Subversion usw. – können während des
+          Entscheidungsprozesses hinzugezogen werden. Natürlich kann
+          sich ein Administrator auch einfach  mit dem Eigentümer
+          einer anscheinend abgebrochenen Transaktion in Verbindung
+          setzen (z.B. per E-Mail), um sicherzustellen, dass die
+          Transaktion sich tatsächlich in einem Zombiezustand
+          befindet.</para>

        </sect3>



More information about the svnbook-dev mailing list