[svnbook] r4543 committed - Translation: Blocking Merge-Unaware Clients

svnbook at googlecode.com svnbook at googlecode.com
Thu Sep 19 16:21:52 CDT 2013


Revision: 4543
Author:   jmfelderhoff at gmx.eu
Date:     Thu Sep 19 20:20:30 2013 UTC
Log:      Translation: Blocking Merge-Unaware Clients

http://code.google.com/p/svnbook/source/detail?r=4543

Modified:
  /branches/1.6/de/book/ch04-branching-and-merging.xml

=======================================
--- /branches/1.6/de/book/ch04-branching-and-merging.xml	Thu Sep 19  
19:18:47 2013 UTC
+++ /branches/1.6/de/book/ch04-branching-and-merging.xml	Thu Sep 19  
20:20:30 2013 UTC
@@ -4627,11 +4627,40 @@
          client reports itself as having <literal>mergeinfo</literal>
          capabilities, the hook script can allow the commit to start.
          If the client doesn't report that capability, have the hook
-        deny the commit.  We'll learn more about hook scripts in the
-        next chapter; see
-        <xref linkend="svn.reposadmin.create.hooks"/> and
-        <xref linkend="svn.ref.reposhooks.start-commit"/> for
-        details.</para>
+        deny the commit.
+        <xref linkend="svn.branchmerge.advanced.hook-ex1" /> gives an
+        example of such a hook script:</para>
+
+      <example id="svn.branchmerge.advanced.hook-ex1">
+        <title>Merge-tracking gatekeeper start-commit hook script</title>
+
+        <programlisting>
+#!/usr/bin/env python
+import sys
+
+# The start-commit hook is invoked before a Subversion txn is created
+# in the process of doing a commit.  Subversion runs this hook
+# by invoking a program (script, executable, binary, etc.) named
+# 'start-commit' (for which this file is a template)
+# with the following ordered arguments:
+#
+#   [1] REPOS-PATH   (the path to this repository)
+#   [2] USER         (the authenticated user attempting to commit)
+#   [3] CAPABILITIES (a colon-separated list of capabilities reported
+#                     by the client; see note below)
+
+capabilities = sys.argv[3].split(':')
+if "mergeinfo" not in capabilities:
+  sys.stderr.write("Commits from merge-tracking-unaware clients are "
+                   "not permitted.  Please upgrade to Subversion 1.5 "
+                   "or newer.\n")
+  sys.exit(1)
+sys.exit(0)
+</programlisting>
+      </example>
+
+      <para>For more information about hook scripts, see
+        <xref linkend="svn.reposadmin.create.hooks"/>.</para>
  -->
        <para>Wenn Sie und Ihr Team auf die Zusammenführungs-Verfolgung
          von Subversion angewiesen sind, sollten Sie Ihr Projektarchiv
@@ -4642,11 +4671,44 @@
          Wenn der Client meldet, dass er mit
          <literal>mergeinfo</literal> umgehen kann, kann das Skript den
          Beginn der Übergabe erlauben.  Wenn der Client diese Fähigkeit
-        nicht meldet, wird die Übergabe abgelehnt. Wir werden mehr
-        über Hook-Skripte im nächsten Kapitel erfahren; siehe <xref
-        linkend="svn.reposadmin.create.hooks"/> und <xref
-        linkend="svn.ref.reposhooks.start-commit"/> für
-        Details.</para>
+        nicht meldet, wird die Übergabe abgelehnt.
+        <xref linkend="svn.branchmerge.advanced.hook-ex1" /> zeigt ein
+        Beispiel für ein solches Hook-Skript:</para>
+
+      <example id="svn.branchmerge.advanced.hook-ex1">
+        <title>Hook-Skript zum Start der Übertragung als Torwächter für  
die Zusammenführungs-Verfolgung</title>
+
+        <programlisting>
+#!/usr/bin/env python
+import sys
+
+# Dieser Start-Commit-Hook wird aufgerufen, bevor eine
+# Subversion-Transaktion im Zuge einer Übergabe begonnen wird.
+# Subversion führt diesen Hook aus, indem ein Programm (Skript,
+# ausführbare Datei, Binärdatei, etc.) namens "start-commit" (für die
+# diese Datei als Vorlage dient) mit den folgenden geordneten Argumenten
+# aufgerufen wird:
+#
+#   [1] REPOS-PATH   (der Pfad zu diesem Projektarchiv)
+#   [2] USER         (der authentisierte Anwender, der übergeben möchte)
+#   [3] CAPABILITIES (eine vom Client durch Doppelpunkte getrennte
+#                     Liste von Leistungsmerkmalen; siehe Anmerkung
+#                     unten)
+
+capabilities = sys.argv[3].split(':')
+if "mergeinfo" not in capabilities:
+  sys.stderr.write("Übertragungen von Clients, die keine"
+                   "Zusammenführungs-Verfolgung unterstützen,"
+                   "sind nicht erlaubt. Bitte auf Subversion 1.5 "
+                   "oder neuer aktualisieren.\n")
+  sys.exit(1)
+sys.exit(0)
+</programlisting>
+      </example>
+
+      <para>Für weitergehende Informationen zu Hook-Skripten, siehe
+        nächsten Kapitel erfahren; siehe
+        <xref linkend="svn.reposadmin.create.hooks"/>.</para>

      </sect2>



More information about the svnbook-dev mailing list