[svnbook commit] r3423 - trunk/src/de/book
codesite-noreply at google.com
codesite-noreply at google.com
Mon Feb 9 03:05:02 CST 2009
Author: jmfelderhoff at gmx.eu
Date: Sun Feb 8 23:02:44 2009
New Revision: 3423
Modified:
trunk/src/de/book/ch05-repository-admin.xml
Log:
* trunk/src/de/book/ch05-repository-admin.xml
- Fixes ticket #207 (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 Feb 8 23:02:44 2009
@@ -1666,8 +1666,12 @@
<!-- ===============================================================
-->
<sect2 id="svn.reposadmin.create.hooks">
+<!--
<title>Implementing Repository Hooks</title>
+-->
+ <title>Erstellen von Repository Hooks</title>
+<!--
<para>A <firstterm>hook</firstterm> is a program triggered by
some repository event, such as the creation of a new revision
or the modification of an unversioned property. Some hooks
@@ -1681,11 +1685,33 @@
information to tell what that event is (or was), the specific
repository changes proposed (or completed), and the username
of the person who triggered the event.</para>
-
+-->
+ <para>Ein <firstterm>Hook</firstterm> (Haken) ist ein Programm,
+ das durch einige Repository-Ereignisse gestartet wird, wie
+ etwa die Erzeugung einer neuen Revision oder die Veränderung
+ eines unversionierten Propertys. Einige Hooks (die sogenannten
+ <quote>Pre-Hooks</quote>) starten vor einer
+ Repository-Operation und bieten eine Möglichkeit sowohl zu
+ berichten, was passieren wird, als auch zu verhindern, dass es
+ überhaupt passiert. Andere Hooks (die
+ <quote>Post-Hooks</quote>) starten nach Abschluss eines
+ Repository-Ereignisses und sind nützlich für Aufgaben, die das
+ Repository inspizieren – aber nicht verändern. Jedem
+ Hook werden ausreichende Informationen übergeben, um
+ festzustellen, um welches Ereignis es sich handelt (oder
+ handelte), welche genauen Änderungen am Repository
+ beabsichtigt sind (oder durchgeführt wurden) und der Name des
+ Benutzers, der das Ereignis ausgelöst hat.</para>
+
+<!--
<para>The <filename>hooks</filename> subdirectory is, by
default, filled with templates for various repository
hooks:</para>
-
+-->
+ <para>Das Verzeichnis für die <filename>Hooks</filename> ist
+ standardmäßig mit Vorlagen für verschiedene Repository-Hooks
+ gefüllt:</para>
+
<screen>
$ ls repos/hooks/
post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
@@ -1693,7 +1719,8 @@
post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl
$
</screen>
-
+
+<!--
<para>There is one template for each hook that the Subversion
repository supports; by examining the contents of those
template scripts, you can see what triggers each script
@@ -1706,7 +1733,21 @@
which can be executed as the name (such as
<command>start-commit</command> or
<command>post-commit</command>) of the hook.</para>
+-->
+ <para>Es gibt eine Vorlage für jeden Hook, den Subversion
+ unterstützt. Sie können sehen, wodurch jedes dieser Scripte
+ gestartet wird und welche Daten übergeben werden, indem Sie
+ den Inhalt der Scripte inspizieren. In vielen dieser Vorlagen
+ befinden sich auch Beispiele dafür, wie dieses Script zusammen
+ mit anderen Programmen aus dem Lieferumfang von Subversion
+ verwendet werden, um häufige, nützliche Aufgaben zu erledigen.
+ Um einen funktionierenden Hook zu installieren, brauchen Sie
+ nur ein ausführbares Programm oder Script im Verzeichnis
+ <filename>repos/hooks</filename> abzulegen, das unter dem
+ Namen des Hooks (etwa <command>start-commit</command> oder
+ <command>post-commit</command>) gestartet werden kann.</para>
+<!--
<para>On Unix platforms, this means supplying a script or
program (which could be a shell script, a Python program, a
compiled C binary, or any number of other things) named
@@ -1723,7 +1764,26 @@
recognized by Windows for executable programs, such as
<filename>.exe</filename> for programs and
<filename>.bat</filename> for batch files.</para>
+-->
+ <para>Auf Unix Plattformen bedeutet das, ein Script oder
+ Programm bereitzustellen (welches ein Shell-Script, ein
+ Python-Programm, ein übersetztes C-Binärprogramm oder
+ sonstetwas sein kann), das genauso heißt wie der Hook.
+ Natürlich sind die Vorlagen nicht nur zur Information da
+ – die einfachste Möglichkeit, unter Unix einen Hook zu
+ installieren, ist es, einfach die passende Vorlagedatei in
+ eine Datei zu kopieren, der die Dateiendung
+ <filename>.tmpl</filename> fehlt, den Inhalt anzupassen und
+ sicherzustellen, dass das Script ausführbar ist. Unter Windows
+ werden jedoch Dateiendungen verwendet, um festzustellen, ob
+ ein Programm ausführbar ist, so dass Sie ein Programm zur
+ Verfügung stellen müssen, dessen Basisname dem Hook entspricht
+ und dessen Endung einer derjenigen entspricht, die Windows für
+ ausführbare Programme hält, etwa <filename>.exe</filename> für
+ Programme und <filename>.bat</filename> für
+ Batch-Dateien.</para>
+<!--
<tip>
<para>For security reasons, the Subversion repository executes
hook programs with an empty environment—that is, no
@@ -1735,7 +1795,21 @@
set any necessary environment variables in your hook program
and/or use absolute paths to programs.</para>
</tip>
+-->
+ <tip>
+ <para>Aus Sicherheitsgründen führt Subversion Hook-Programme
+ in einer leeren Umgebung aus – d.h., es sind überhaupt
+ keine Umgebungsvariablen gesetzt, nicht einmal
+ <literal>$PATH</literal> (oder <literal>%PATH%</literal>
+ unter Windows). Deshalb sind viele Administratoren verwirrt,
+ wenn deren Hook-Programme normal starten, wenn sie manuell
+ aufgerufen werden, aber nicht laufen, wenn sie Subversion
+ startet. Stellen Sie sicher, dass Sie entweder alle
+ notwendigen Umgebungsvariablen in Ihren Hook-Programmen
+ ausdrücklich setzen und/oder absolute Pfade zu Programmen
+ verwenden.</para> </tip>
+<!--
<para>Subversion executes hooks as the same user who owns the
process that is accessing the Subversion repository. In most
cases, the repository is being accessed via a Subversion
@@ -1748,7 +1822,23 @@
In other words, be alert to potential permission-related
problems that could prevent the hook from performing the tasks
it is designed to perform.</para>
+-->
+ <para>Subversion führt die Hooks unter der Benutzerkennung aus,
+ die auch der Prozess besitzt, der auf das Repository zugreift.
+ Meistens wird auf das Repository über einen Subversion-Server
+ zugegriffen, so dass die Benutzerkennung der des
+ Serverprozesses entspricht. Die Hooks müssen deshalb mit den
+ entsprechenden Berechtigungen des Betriebssystems versehen
+ werden, damit diese Benutzerkennung sie ausführen kann. Das
+ bedeutet auch, dass der direkte oder indirekte Zugriff auf
+ irgendwelche Programme oder Dateien (einschließlich des
+ Subversion-Repositorys) durch den Hook auch unter derselben
+ Kennung erfolgt. Mit anderen Worten: Achten Sie auf mögliche
+ Probleme im Zusammenhang mit Zugriffsrechten, die den Hook
+ daran hindern könnten, die Ihm zugeteilten Aufgaben
+ wahrzunehmen.</para>
+<!--
<para>There are serveral hooks implemented by the Subversion
repository, and you can get details about each of them in
<xref linkend="svn.ref.reposhooks" />. As a repository
@@ -1761,7 +1851,22 @@
to determine which users are permitted to commit
changes to your repository, you don't need to do this
sort of access control via the hook system.</para>
+-->
+ <para>Es gibt mehrere im Subversion-Repository implementierte
+ Hooks; Details zu jedem können Sie in <xref
+ linkend="svn.ref.reposhooks" /> nachlesen. Als
+ Repository-Administrator müssen Sie entscheiden, welche Hooks
+ sie einrichten wollen (indem Sie ein entsprechend benanntes
+ und mit den nötigen Zugriffsrechten versehenes Hook-Programm
+ bereitstellen) und wie das geht. Wenn Sie diese Entscheidung
+ treffen, dann behalten Sie das Gesamtbild der
+ Repository-Einsatzes im Auge. Wenn Sie beispielsweise die
+ Konfiguration des Servers verwenden, um festzustellen, welche
+ Benutzer Änderungen an Ihr Repository übergeben dürfen,
+ benötigen Sie für diese Zugriffskontrolle nicht das
+ Hook-System.</para>
+<!--
<para>There is no shortage of Subversion hook programs and
scripts that are freely available either from the Subversion
community
itself or elsewhere. These scripts cover a wide range of
@@ -1769,7 +1874,18 @@
issue tracker integration, email- or syndication-based commit
notification, and beyond. Or, if you wish to write your own,
see <xref linkend="svn.developer" />.</para>
+-->
+ <para>Es gibt keinen Mangel an Subversion-Hook-Programmen und
+ Scripten, die frei verfügbar sind, entweder von der
+ Subversion-Gemeinschaft oder von woanders her. Diese Scripte
+ decken ein breites Spektrum ab – grundlegende
+ Zugriffskontrolle, Kontrolle der Prozesstreue,
+ Fehlersystemanbindung, E-Mail-basierte oder syndizierte
+ Benachrichtigungen bei Übergaben und noch viel mehr. Oder,
+ falls Sie Ihren eigenen schreiben wollen, siehe <xref
+ linkend="svn.developer" />.</para>
+<!--
<warning>
<para>While hook scripts can do almost
anything, there is one dimension in which hook script
@@ -1788,6 +1904,29 @@
if it does not meet the desired requirements. As a
bonus, your users will learn the value of careful,
compliance-minded work habits.</para>
+ </warning>
+-->
+ <warning>
+ <para>Obwohl Hook-Scripts fast alles machen können, gibt es
+ eine Dimension, in der sich Hook-Script-Autoren zurückhalten
+ sollten: Ändern Sie <emphasis>keine</emphasis>
+ Übergabe-Transaktion mithilfe von Hook-Scripten. Trotz der
+ Verlockung, Hook-Scripte zur automatischen Korrektur von
+ Fehlern, Unzulänglichkeiten oder Prozessverletzungen
+ innerhalb der zu übergebenden Dateien einzusetzen, kann das
+ zu Problemen führen. Subversion hält bestimmte
+ Repository-Daten in clientseitigen Caches vor, und wenn Sie
+ auf diese Art eine Übergabe-Transaktion verändern, werden
+ die im Cache befindlichen Informationen ungültig, ohne dass
+ jemand etwas merkt. Diese Inkonsistenz kann zu
+ überraschenden und unerwarteten Verhalten führen. Statt die
+ Transaktion zu verändern, sollten Sie sie einfach im
+ <filename>pre-commit</filename>-Hook auf
+ <emphasis>Gültigkeit </emphasis> prüfen und die Übergabe
+ ablehnen, falls sie den Anforderungen nicht entspricht. Als
+ Nebeneffekt werden Ihre Benutzer lernen, wie wertvoll eine
+ sorgfältige, sich an den Vorgaben orientierende Arbeitsweise
+ ist.</para>
</warning>
</sect2>
More information about the svnbook-dev
mailing list