chapter id="svn-ch-9">
  <title>Subversion - Komplettreferenz</title>
  
  <simplesect>
    <para>Dieses Kapitel hat die Absicht eine komplette Referenz für
      Subversion zur Verfügung zu stellen. Dies umfasst den
      Kommandozeilen-Client (<command>svn</command>) mit seinen
      Subkommandos genauso wie die Administrations-Programme für das
      Projektarchiv (<command>svnadmin</command> und
      <command>svnlook</command>) mit ihren Subkommandos.
    </para>
  </simplesect>
  
  <!-- ================================================================= -->
  <!-- ======================== SECTION 1 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-9-sect-1">
    <title>Der Subversion-Kommandozeilen-Client:
      <command>svn</command></title>
    
    <para>Um den Kommandozeilen-Clienten zu benutzen schreiben sie
      <command>svn</command>, die Subkommandos die sie benutzen wollen
      <footnote><para>Ja, ja, sie brauchen kein Subkommando um den
      <option>--version</option> Optionen zu benutzen, aber zu dem
      kommen wir in einer Minute.</para> </footnote>, und alle
      Optionen oder Ziele mit denen sie arbeiten wollen &mdash; es
      gibt keine spezielle Reihenfolge in der die Subkommandos oder
      Optionen angeordnet sein müssen.  Alle folgenden Beispiele sind
      gültige Möglichkeiten für <command>svn status</command>:</para>
    
    <screen>
$ svn -v status
$ svn status -v 
$ svn status -v myfile
</screen>

    <para>Sie können weitere Beispiele für die meisten Client-Befehle
      in <xref linkend="svn-ch-3"/> und Befehle zum Verwalten der
      Eigenschaften (properties) in <xref linkend="svn-ch-7-sect-2"/>
      finden.</para>

    <sect2 id="svn-ch-9-sect-1.1">
      <title><command>svn</command> Optionen</title> 
      
      <para>Obwohl Subversion verschiedene Optionen für die einzelnen
        Subkommandos hat, sind alle Optionen global &mdash; das heisst
        jede Option hat immer die gleiche Bedeutung, unabhängig vom
        Subkommando mit der sie gerade verwendet wird.  Zum Beispiel
        bedeutet <option>--verbose</option> (<option>-v</option>)
        immer <quote>geschwätzige Ausgabe</quote>, unabhängig vom
        Subkommando mit dem es benutzt wird.</para>
      
      <variablelist>
        
        <varlistentry>
          <term><option>--auto-props</option></term>
          <listitem>
            <para>Schaltet auto-props ein, überschreibt die
            <literal>enable-auto-props</literal> Einstellung der
            <filename>config</filename> Datei.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--config-dir</option>
            <replaceable>DIR</replaceable></term>
          <listitem>
            <para>Weisst Subversion an die Konfiguration vom
            angegebenen Verzeichnis zu lesen statt vom
            Standard-Verzeichnis (<filename>.subversion</filename> im
            Heimatverzeicnis der BenutzerIn).</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--diff-cmd</option>
            <replaceable>CMD</replaceable></term>
          <listitem>
            <para>Gibt ein externes Programm an, das verwendet wird um
            die Unterschiede zwischen Dateien anzuzeigen.  Wenn
            <command>svn diff</command> aufgerufen wird verwendet es
            die interne Unterschieds-Methode von Subversion, welche
            standardmässig das vereinte Format zur Verfügung stellt.
            Wenn sie ein externes Programm benutzen wollen, verwenden
            sie <option>--diff-cmd</option>.  Sie können Optionen an
            dieses externe Programm mit der
            <option>--extensions</option> Option übergeben (mehr dazu
            später in diesem Kapitel).</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--diff3-cmd</option>
            <replaceable>CMD</replaceable></term>
          <listitem>
            <para>Gibt ein externes Programm an, um Dateien
            zusammenzuführen.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--dry-run</option></term>
          <listitem>
            <para>Durchläuft alle Schritte des Kommandos, ohne jedoch
              Änderungen vorzunehmen &mdash; weder lokal noch im
              Projektarchiv. </para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--editor-cmd</option>
            <replaceable>CMD</replaceable></term>
          <listitem>
            <para>Gibt ein externes Programm an, das verwendet wird um
              eine Log-Nachricht oder eine Eigenschaft (property) zu
              bearbeiten.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--encoding</option>
          <replaceable>ENC</replaceable></term>
          <listitem>
            <para>Teilt Subversion den Zeichensatz mit, der für
              Nachrichten verwendet wird.  Standardmässig wird die
              Einstellung des Betriebssystems übernommen.  Sie sollten
              den Zeichensatz angeben, wenn ihre Nachrichten einen
              anderen Zeichensatz verwenden.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--extensions</option> (<option>-x</option>)
          <replaceable>ARGS</replaceable></term>
          <listitem>
            <para>Gibt ein oder mehrere Argumente an, die von
              Subversion an ein externes diff Programm weitergegeben
              werden sollen, wenn Unterschiede zwischen Datein
              festgestellt werden sollen.  Wenn sie mehrere Argumente
              übergeben wollen, müssen sie diese mit Anführungszeichen
              zusammenfassen.  Zum Beispiel <command>svn diff
              --diff-cmd /usr/bin/diff -x "-b -E"</command>).  Diese
              Option kann <emphasis>nur</emphasis> verwendet werden,
              wenn sie auch die <option>--diff-cmd</option> Option
              verwenden.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--file</option> (<option>-F</option>)
            <replaceable>DATEINAME</replaceable>
          </term>
          <listitem>
            <para>Verwendet den Inhalt der Datei, deren Name in dieser
              Option angegeben wird, für das jeweilige
              Subkommando.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--force</option></term>
          <listitem>
            <para>Erzwingt die Ausführung eines bestimmten Kommandos.
              Es gibt einige Operationen, bei welchen Subversion unter
              normalen Umständen eine Ausführung verhindert, aber sie
              können Subversion mitteilen <quote>Ich weiss was ich
              mache und über die möglichen Folgen dessen, also lass
              mich</quote>.  Diese Option entspricht einer Arbeit an
              der Elektrik mit eingeschaltetem Strom &mdash; wenn sie
              nicht wissen, was sie tun werden sie einen
              fürchterlichen Schock bekommen.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--force-log</option></term>
          <listitem>
            <para>Erzwingt die Annahme eines fragwürdigen Parameters,
              welcher an die <option>--message</option>
              (<option>-m</option>) oder <option>--file</option>
              (<option>-F</option>) Option übergeben wird.
              Standardmässig wird Subversion einen Fehler erzeugen
              wenn Parameter an diese Optionen ausschauen, als ob sie
              Ziele des Subkommandos wären.  Zum Beispiel, wenn sie
              eine Datei die unter Versionskontrolle steht an die
              <option>--file</option> (<option>-F</option>) Option,
              übergeben wird Subversion annehmen, dass sie einen
              Fehler gemacht haben und dass die Angabe stattdessen als
              Ziel der Operation gedacht war und dass sie einfach
              vergessen haben eine andere &mdash; nicht unter
              Versionskontrolle stehende &mdash; Datei als
              Eingabequelle für ihre Log-Nachricht anzugeben.  Um ihre
              Absicht zu bekräftigen und um diese Art von
              Fehlermeldung zu umgehen geben sie die
              <option>--force-log</option> Option bei Kommandos an
              welche Log-Nachrichten akzeptieren.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--help</option> (<option>-h</option> or
                <option>-?</option>)
          </term>
          <listitem>
            <para>Wenn diese Option mit einem oder mehreren
              Subkommandos verwendet wird, dann wird die eingebaute
              Hilfe für jedes Subkommando angezeigt.  Wenn sie Option
              alleine benutzt wird, dann wird ein allgemeiner
              Hilfe-Text des Client angezeigt.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--ignore-ancestry</option></term>
          <listitem>
            <para>Ignoriert die Abstammung einer Datei, wenn
              Unterschiede ermittelt werden (zieht nur den Inhalt zur
              Ermittlung der Unterschiede heran).</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--incremental</option></term>
          <listitem>
            <para>Verwendet ein Ausgabeformat, das zur Verkettung
            geeignet ist.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--message</option> (<option>-m</option>)
            <replaceable>MESSAGE</replaceable>
          </term>
          <listitem>
            <para>Erfordert, dass sie eine nach dieser Option eine
              Nachricht auf der Kommandozeile angeben. Zum
              Beispiel:</para>
            
            <screen>
$ svn commit -m "Hier steht eine wichtige Information."
</screen>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--new</option> <replaceable>ARG</replaceable></term>
          <listitem>
            <para>Verwende <replaceable>ARG</replaceable> als neueres Ziel.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--no-auth-cache</option></term>
          <listitem>
            <para>Verhindert das Zwischenspeichern von
              Authentifizierungsinformationen (z.B. Benutzername und
              Passwort) in den administrativen Verzeichnissen von
              Subversion .</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--no-auto-props</option></term>
          <listitem>
            <para>Schaltet auto-props ab.  Überschreibt die
            <literal>enable-auto-props</literal> Direktive aus der
            <filename>config</filename> Datei.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--no-diff-deleted</option></term>
        <listitem>
            <para>Verhindert, dass Subversion Differenzen für
              gelöschte Dateien ausgibt.  Das Standardverhalten für
              <command>svn diff</command> bei gelöschten Dateien ist,
              dass die Unterschiede so ausgegeben werden, als wenn die
              Datei vorhanden, aber leer wäre.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--no-ignore</option></term>
          <listitem>
            <para>Zeigt Dateien in der Statusanzeige, die
              normalerweise weggelassen würden, weil sie auf ein
              Muster in der svn:ignore Eigenschaft passen. Siehe auch
              <xref linkend="svn-ch-7-sect-1.3.2"/>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--non-interactive</option></term>
          <listitem>
            <para>Verhindert im Falle eines Authentifizierungs-Fehlers
              oder unzureichender Berechtigungen dass
              Berechtigungsinformationen (z.B. Benutzername und
              Passwort) angefordert werden.  Das ist hilfreich, wenn
              Subversion in einem automatischen Stapel läuft und ein
              scheitern von Subversion sinnvoller ist, als dass
              zusätzliche Informationen angefordert werden.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--non-recursive</option> (<option>-N</option>)</term>
          <listitem>
            <para>Hält ein Subkommando davon ab die Unterverzeichnisse
              rekursiv abzuarbeiten.  Die meisten Subkommandos
              durchlaufen standardmässig alle Unterverzeichnisse, aber
              einige &mdash; vor allem solche, die möglicherweise
              lokale Änderungen entfernen oder rückgängig machen
              &mdash; tun dies nicht.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--notice-ancestry</option></term>
          <listitem>
            <para>Berücksichtige die Abstammung, wenn Unterschiede
              ermittelt werden.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--old</option> <replaceable>ARG</replaceable></term>
          <listitem>
            <para>Verwende <replaceable>ARG</replaceable> als älteres Ziel.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--password</option>
            <replaceable>PASS</replaceable></term>
          <listitem>
            <para>Erfordert, dass sie ihr Passwort zur
              Authentifizierung auf der Kommandozeile angeben &mdash;
              andernfalls wird Subversion danach fragen.</para>
          </listitem>
        </varlistentry>
      
        <varlistentry>
          <term><option>--quiet</option> (<option>-q</option>)</term>
          <listitem>
            <para>Weist das Programm an nur unverzichtbare
              Infomationen während der Ausführung einer Operationen
              anzuzeigen.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--recursive</option> (<option>-R</option>)</term>
          <listitem>
            <para>Weist ein Subkommando an die Unterverzeichnisse mit
              einzubeziehen.  Die meisten Subkommandos machen dies
              standardmässig.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--relocate</option> <replaceable>FROM TO
          [PATH...]</replaceable></term>
          <listitem>
            <para>Wird mit dem <command>svn switch</command>
              Subkommando benutzt und wechselt die Ortsangabe des
              Projektarchives auf den die Arbeitskopie verweist.  Das
              ist hilfreich, wenn sich der Ort des Projektarchives
              ändert und sie eine bestehende Arbeitskopie haben, die
              sie weiterverwenden wollen.  Siehe Beispiel unter
              <command>svn switch</command>.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--revision</option> (<option>-r</option>)
            <replaceable>REV</replaceable>
          </term>
          <listitem>
            <para>Legt fest, dass sie eine Revision (oder einen
              Bereich von Revisionen) für eine bestimmte Operation
              verwenden wollen.  Sie können Nummern, Schlüsselwörter
              oder Datumsangaben (in geschwungenen Klammern) als
              Argument für die Revisions-Option übergeben.  Wenn sie
              einen Bereich von Revisionen verwenden wollen, können
              sie zwei Revisionen getrennt durch einen Doppelpunkt
              angeben. Zum Beispiel:</para>

            <screen>
$ svn log -r 1729
$ svn log -r 1729:HEAD
$ svn log -r 1729:1744
$ svn log -r {2001-12-04}:{2002-02-17}
$ svn log -r 1729:{2002-02-17}
</screen>

            <para>See <xref linkend="svn-ch-3-sect-3.2"/> for more
              information.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--revprop</option></term>
          <listitem>
            <para>Arbeitet mit einer Eigenschaft für Revisionen
              anstatt mit einer für Dateien oder Verzeichnisse
              spezifischen Eigenschaft.  Diese Option erfordert, dass
              sie auch eine Revision mit der
              <option>--revision</option> (<option>-r</option>) Option
              angeben. Siehe <xref linkend="svn-ch-5-sect-1.2"/> für
              mehr Details über Eigenschaften, die nicht der
              Versionskontrolle unterliegen.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--show-updates</option> (<option>-u</option>)</term>
          <listitem>
            <para>Veranlasst den Client die Dateien der Arbeitskopie
              anzuzeigen, die nicht am neuesten Stand sind.  Es werden
              keine Dateien aktualisiert &mdash; es zeigt nur an,
              welche Dateien aktualisiert werden, wenn sie
              <command>svn update </command> ausführen.
            </para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--stop-on-copy</option></term>
          <listitem>
            <para>Veranlasst ein Subkommando welches die Geschichte
              einer Einheit, die unter Versionskontrolle steht,
              durchläuft das Sammeln der Informationen einzustellen,
              wenn es auf eine Kopie trifft.  Das ist dann, wenn die
              Einheit von einer Stelle im Projektarchiv an eine andere
              Stelle kopiert wurde.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--strict</option></term>
          <listitem>
            <para>Veranlasst Subversion eine strikte Semantik
              einzuhalten &mdash; eine ziemlich unklare Aussage,
              solange wir nicht ein bestimmtes Subkommando
              behandeln.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--targets</option>
            <replaceable>DATEINAME</replaceable></term>
          <listitem>
            <para>Weist Subversion an eine Liste von Dateinamen aus
              der angegebenen Datei zu holen, anstatt die Liste mit
              den Dateinamen auf der Kommandozeile anzuführen.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--username</option>
            <replaceable>NAME</replaceable></term>
          <listitem>
            <para>Damit können sie ihren Benutzernamen für die
              Authentifizierung auf der Kommandozeile angeben &mdash;
              andernfalls wird Subversion sie bei Bedarf danach
              fragen.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--verbose</option> (<option>-v</option>)</term>
          <listitem>
            <para>Weist den Client an so viel Information wie möglich
              bei der Ausführung eines Subkommandos auszugeben.  Dies
              kann bedeuten, dass zusätzliche Felder, detailiertere
              Information über jede Datei oder zusätzliche Information
              abhängig von der jeweiligen Aktion angezeigt
              werden.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--version</option></term>
          <listitem>
            <para>Zeigt die Version des Client an.  Diese Information
              beinhaltet nicht nur die Versionsnummer des Client,
              sondern auch alle Projektarchiv-Zugriffsmodule die das
              Programm beherrscht.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--xml</option></term>
          <listitem>
            <para>Formatiert die Ausgabe als XML.</para>
          </listitem>
        </varlistentry>
        
      </variablelist>
      
    </sect2>
    
    <sect2 id="svn-ch-9-sect-1.2">
      <title><command>svn</command> Subcommands</title>

      <refentry>
        <refnamediv>
          <refname>svn add</refname>
          <refpurpose>Fügt Dateien und Verzeichnisse hinzu</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title> 
          <programlisting>svn add PATH...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>
          
          <para>Fügt Dateien und Verzeichnisse zu ihrer Arbeitskopie
            hinzu und merkt diese für das Hinzufügen zum Projektarchiv
            vor.  Diese Dateien und Verzeichnisse werden beim nächsen
            übertragen in das Projektarchiv eingefügt.  Wenn sie etwas
            hinzugefügt haben und sie ändern ihre Meinung vor dem
            Übertragen können sie dies mittels <command>svn
            revert</command> wieder rückgängig machen.</para>
        </refsect1>
        
        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>
        
        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>
        
        <refsect1>
          <title>Optionen</title>

          <screen>
--targets DATEINAME
--non-recursive (-N)
--quiet (-q)
--config-dir DIR
--auto-props
--no-auto-props
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>
          
          <para>Um eine Datei zu ihrer Arbeitskopie hinzuzugügen:</para>

          <screen>
$ svn add foo.c 
A         foo.c
</screen>

          <para>Wenn sie ein Verzeichnis hinzufügen werden bei
            <command>svn add</command> standardmässig auch die
            Unterverzeichnisse einbezogen:</para>
          
          <screen>
$ svn add testdir
A         testdir
A         testdir/a
A         testdir/b
A         testdir/c
A         testdir/d
</screen>

          <para>Sie können auch ein Verzeichnis ohne dessen Dateien
          hinzufügen:</para>
          
          <screen>
$ svn add --non-recursive anderesverz
A         anderesverz
</screen>
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn blame</refname> <refpurpose>Zeigt Information
            über AutorIn und Revision in einer Zeile mit den
            Dateinamen für die angegebenen Dateien oder
            URLs.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn blame ZIEL...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>
          
          <para>Zeigt Angaben über AutorIn und Revision in der
            Zeileninformation für die angegebenen Dateien oder URLs.
            Jede Textzeile enthält am Beginn die Angabe über AutorIn
            (Benutzername) und die Revisionsnummer der letzten
            Änderung für diese Zeile.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>praise, annotate, ann</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--revision (-r) REV
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Wenn sie die Zuständigkeit für den Text in readme.txt
            in ihrem Projektarchiv test sehen wollen:</para>
          <screen>
$ svn blame http://svn.red-bean.com/repos/test/readme.txt
     3      sally Das ist eine README Datei.
     5      harry Sie sollten das lesen.
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn cat</refname>
          <refpurpose>Gibt den Inhalt der angegebenen Dateien oder
            URLs aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn cat ZIEL...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>
          
          <para>Gibt den Inhalt der angegebenen Dateien oder URLs aus.
            Für den Inhalt von Verzeichnissen siehe <command>svn
            list</command>.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--revision (-r) REV
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Wenn sie die Datei readme.txt in ihrem Projektarchiv
            anschauen wollen, ohne die Datei auszuchecken:</para>
          <screen>
$ svn cat http://svn.red-bean.com/repos/test/readme.txt
Das ist eine README Datei.
Sie sollten das lesen.
</screen>

          <tip>
            <para>Wenn ihre Arbeistkopie nicht am neuesten Stand ist
              (oder sie haben lokale Veränderungen vorgenommen) und
              sie wollen die <literal>HEAD</literal> Revision einer
              Datei aus ihrer Arbeitskopie sehen, dann wird
              <command>svn cat</command> automatisch die
              <literal>HEAD</literal> Revision holen:</para>
          </tip>

          <screen>
$ cat foo.c
Diese Datei ist meine lokale Arbeitskopie
und wurde von mir verändert.

$ svn cat foo.c
Letzte Revision frisch vom Projektarchiv!
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn checkout</refname>
          <refpurpose>Checkt eine Arbeitskopie vom Projektarchiv aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn checkout URL... [PATH]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>
          
          <para>Checkt eine Arbeitskopie vom Projektarchiv aus.  Wenn
            <replaceable>PATH</replaceable> fehlt, wird der Basisname
            (letzter Teil) der URL als Ziel verwendet.  Wenn mehrere
            URLs angegeben werden wird jede in ein eigenes
            Unterverzeichnis von PATH gelegt wobei der Basisnamen der
            URL als Namen für das Unterverzeichnis verwendet
            wird.</para>

        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>co</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Erstellt eine neue Arbeitskopie.</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--revision (-r) REV
--quiet (-q)
--non-recursive (-N)
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>

          <para>Checkt eine Arbeitskopie in das Verzeichnis 'mein' aus:</para>

          <screen>
$ svn checkout file:///tmp/repos/test mein
A  mein/a
A  mein/b
Revision 2 ausgecheckt.
$ ls
mine
</screen>

          <para>Checkt 2 verschiedene Verzeichnisse in zwei getrennte
            Arbeitskopien aus:</para>

          <screen>
$ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz
A  test/a
A  test/b
Revision 2 ausgecheckt.
A  quiz/l
A  quiz/m
Revision 2 ausgecheckt.
$ ls
quiz  test
</screen>

          <para>Checkt 2 verschiedene Verzeichnisse in zwei getrennte
            Arbeitskopien aus und stellt diese in das Verzeichnis
            'arbeitskopien':</para>

          <screen>
$ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz arbeitskopien
A  arbeitskopien/test/a
A  arbeitskopien/test/b
Revision 2 ausgecheckt.
A  arbeitskopien/quiz/l
A  arbeitskopien/quiz/m
Revision 2 ausgecheckt.
$ ls
arbeitskopien
</screen>

          <para>Wenn sie ein auschecken unterbrechen (oder das
            auschecken durch irgendetwas anderes unterbrochen wird,
            wie z.B. ein Zusammenbruch der Verbindung, etc.), können
            sie dieses fortsetzen, indem sie entweder das gleiche
            checkout Kommando wiederholen oder indem sie die
            unvollständige Arbeitskopie mit update auf den letzten
            Stand bringen.</para>

          <screen>
$ svn checkout file:///tmp/repos/test test A test/a A test/b ^C svn:
The operation was interrupted svn: caught SIGINT

$ svn checkout file:///tmp/repos/test test
A  test/c
A  test/d
^C
svn: The operation was interrupted
svn: caught SIGINT

$ cd test
$ svn update
A  test/e
A  test/f
Aktualisiert auf Revision 3.
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn cleanup</refname>
          <refpurpose>Säubert die Arbeitskopie rekursiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn cleanup [PATH...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Säubert die Arbeitskopie rekursiv, entfernt Sperren
            und setzt unvollständige Operationen fort.  Wenn sie
            jemals einen <quote>working copy locked</quote> Fehler
            bekommen, sollten sie dieses Kommando ausführen um
            hängengebliebene Sperren zu beseitigen und um die
            Arbeitskopie wieder in einen brauchbaren Zustand zu
            bringen.  Siehe auch <xref linkend="svn-ap-b"/>.</para>

          <para>Wenn, aus welchem Grund auch immer, ein <command>svn
            update</command> wegen einem Problem mit einem externen
            diff Program (z.B. Eingabefehler oder Netzwerkprobleme)
            fehlgeschlagen ist, dann müssen sie hier die
            <option>--diff3-cmd</option> angeben um cleanup die
            Möglichkeit zu geben das Zusammenführen mit dem externen
            diff Programm fortzusetzen.  Sie können auch jedes
            Konfigurations-Verzeichnis mit der
            <option>--config-dir</option> Option angeben, aber sie
            sollten diese Optionen extrem selten benötigen.</para>

        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nein</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--diff3-cmd CMD
--config-dir DIR
</screen>

        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Nun, da ist nicht viel zu zeigen, weil <command>svn
            cleanup</command> keine Ausgaben erzeugt.  Wenn sie keinen
            PATH angeben wird, <quote><filename>.</filename></quote>
            verwendet.</para>

          <screen>
$ svn cleanup

$ svn cleanup /path/to/working-copy
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn commit</refname>
          <refpurpose>Überträgt Änderungen ihrer Arbeitskopie an das Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn commit [PATH...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Überträgt Änderungen ihrer Arbeitskopie an das
            Projektarchiv.  Wenn sie keine Log-Nachricht angeben,
            indem sie entweder die <option>--file</option> oder
            <option>--message</option> Option benutzen wird
            <command>svn</command> ihren Editor aufrufen und sie
            auffordern eine Log-Nachricht zu erstellen.  Siehe
            Abschnitt <literal>editor-cmd</literal> in <xref
            linkend="svn-ch-7-sect-1.3.2"/>.</para>

          <tip>
            <para>Wenn sie eine Übertragung beginnen und Subversion
              ruft den Editor auf um eine Nachricht zu erstellen,
              können sie noch immer abbrechen, ohne ihre Änderungen zu
              übertragen.  Wenn sie die Übertragung abbrechen wollen,
              dann brauchen sie nur den Editor beenden, ohne ihre
              Log-Nachricht abzuspeichern und Subversion wird
              nachfragen, was sie machen wollen: entweder die
              Übertragung abbrechen, fortsetzen ohne eine
              Log-Nachricht anzugeben oder die Log-Nachricht nochmals
              bearbeiten.</para>
          </tip>

        </refsect1>


        
        <refsect1>
          <title>Alternative Namen</title>
          <para>ci (kurz für <quote>check in</quote> nicht 
            <quote>co</quote>, welches das Kürzel für  
            <quote>checkout</quote> ist)</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--message (-m) TEXT
--file (-F) DATEI
--quiet (-q)
--non-recursive (-N)
--targets DATEINAME
--force-log
--username USER
--password PASS
--no-auth-cache
--non-interactive
--encoding ENC
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Überträgt eine einfache Änderung einer Datei mit der
            Log-Nachricht auf der Kommandozeile und dem aktuellen
            Verzeichnis (<quote><filename>.</filename></quote>) als
            impliziten Ziel:</para>
          
          <screen>
$ svn commit -m "Howto-Abschnitt eingefügt."
Sending        a
Transmitting file data .
Committed revision 3.
</screen>

          <para>Überträgt eine Änderung in der Datei
            <filename>foo.c</filename> (explicit angegeben auf der
            Kommandozeile) mit der Log-Nachricht aus der Datei
            <literal>msg</literal>:</para>

          <screen>
$ svn commit -F msg foo.c
Sending        foo.c
Transmitting file data .
Committed revision 5.
</screen>

          <para>Wenn sie eine Datei, die unter Versionskontrolle steht
            für ihre Log-Nachricht mit der <option>--file</option>
            Option verwenden wollen, müssen sie die
            <option>--force-log</option> Option angeben:</para>

          <screen>
$ svn commit --file datei_unter_vk.txt foo.c
svn: The log message file is under version control
svn: Log message file is a versioned file; use '--force-log' to override

$ svn commit --force-log --file datei_unter_vk.txt foo.c
Sending        foo.c
Transmitting file data .
Committed revision 6.
</screen>

          <para>Um die vorgemerkte Löschung einer Datei zu übertragen:</para>

          <screen>
$ svn commit -m "Ich entfernte Datei 'c'."
Deleting       c

Committed revision 7.
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn copy</refname>
          <refpurpose>Kopiert eine Datei oder Verzeichnis in einer
            Arbeitskopie oder im Projektarchiv.</refpurpose>
        </refnamediv>

        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn copy QUELLE ZIEL</programlisting>
        </refsect1>

        <refsect1>
          <title>Beschreibung</title>
          
          <para>Kopiert eine Datei in einer Arbeitskopie oder im Projektarchiv.
            <replaceable>QUELLE</replaceable> und
            <replaceable>ZIEL</replaceable> können entweder eine
            Arbeitskopie (AK) oder eine URL sein:</para>
            
            <variablelist>

              <varlistentry>
                <term>AK  -&gt; AK</term>
                <listitem>
                  <para>Kopieren und zum Hinzufügen vormerken 
                    (inclusive Historie).</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>AK  -&gt; URL</term>
                <listitem>
                  <para>Sofort eine Kopie von AK nach URL übertragen.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>URL -&gt; AK</term>
                <listitem>
                  <para>Eine Kopie von URL nach AK auschecken und zum Hinzufügen vormerken.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>URL -&gt; URL</term>
                <listitem>
                  <para>Vollständig serverseitige Kopie.  Dies wird
                    üblicherweise für Verzweigung (branch) und
                    Markerung (tag) verwendet.</para>
                </listitem>
              </varlistentry>

            </variablelist>

          <note>
            <para>Sie können Dateien nur innerhalb eines
              Projektarchives kopieren.  Subversion hat keine
              Unterstützung für das Kopieren zwischen
              Projektarchiven.</para>
          </note>

        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>cp</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Projektarchiv, wenn ZIEL eine URL ist.</para>
          <para>Arbeitskopie, wenn Ziel eine Arbeitskopie ist.</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Wenn Quelle oder Ziel im Projektarchiv ist oder wenn es
            erforderlich ist die Quell-Revisionsnummer zu ermitteln.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--message (-m) TEXT
--file (-F) DATEI
--revision (-r) REV
--quiet (-q)
--username USER
--password PASS
--no-auth-cache
--non-interactive
--force-log
--editor-cmd EDITOR
--encoding ENC
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Kopiert ein Objekt innerhalb ihrer Arbeitskopie (die
            lokale Kopie wird sofort erstellt &mdash; für das
            Projektarchiv wird die Aktion nur vorgemerkt und erst
            durchgeführt, wenn sie die lokalen Änderungen
            übertragen):</para>

          <screen>
$ svn copy foo.txt bar.txt
A         bar.txt
$ svn status
A  +   bar.txt
</screen>

          <para>Kopiert ein Objekt von ihrer Arbeitskopie zu einer URL
            im Projektarchiv (wird sofort übertragen, daher muss eine
            Log-Nachricht angegeben werden):</para>

          <screen>
$ svn copy hier.txt file:///tmp/repos/test/weit-weg.txt -m "Langstrecken-Kopie."

Committed revision 8.
</screen>

          <para>Kopiert ein Objket vom Projektarchiv in die lokale
            Arbeitskopie (die lokale Kopie wird sofort erstellt
            &mdash; für das Projektarchiv wird die Aktion nur
            vorgemerkt und erst durchgeführt, wenn sie die lokalen
            Änderungen übertragen):</para>

          <tip>
            <para>Das ist die empfohlene Vorgangsweise um tote Dateien
              im Projektarchiv wiederzubeleben!</para>
          </tip>

          <screen>
$ svn copy file:///tmp/repos/test/weit-weg hier
A         hier
</screen>

          <para>Und zum Abschluss das Kopieren zwischen zwei URLs:</para>

          <screen>
$ svn copy file:///tmp/repos/test/weit-weg file:///tmp/repos/test/da-hinueber -m "Tele-Kopie."

Committed revision 9.
</screen>

          <tip>
            <para>Das ist der einfachste Weg um eine Revision in ihrem
              Projektarchiv mit einer <quote>Marke</quote> (tag) zu
              versehen &mdash; kopieren sie diese Revision
              (üblicherweise <literal>HEAD</literal>) einfach mit
              <command>svn copy</command> in ihr tags
              Verzeichnis.</para>
          </tip>

          <screen>
$ svn copy file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "markierter Zweig"

Committed revision 12.
</screen>

          <para>Und machen sie sich keine Sorgen, wenn sie auf das
            Erstellen der Markierung vergessen haben &mdash; sie
            können immer eine ältere Revision angeben und die
            Markierung jederzeit nachholen:</para>

          <screen>
$ svn copy -r 11 file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "Vergass Marke zu Rev 11"

Committed revision 13.
</screen>
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn delete </refname>
          <refpurpose>Löscht ein Objekt aus der Arbeitskopie oder dem 
            Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn delete PFAD...</programlisting>
          <programlisting>svn delete URL...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Objekte, die über <replaceable>PFAD</replaceable>
            angesprochen werden, werden für das Löschen bei der
            nächsten Übertragung vorgemerkt.  Dateien (und
            Verzeichnisse, die noch nicht übertragen wurden) werden
            sofort von der Arbeitskopie entfernt.  Das Kommando wird
            Datein, die nicht unter Versionskontrolle stehen oder die
            verändert wurden nicht löschen. Verwenden sie die
            <option>--force</option> Option um dieses Verhalten zu
            ändern.</para>

          <para>Objekte die über URL angesprochen werden, werden bei
            der nächsten Übertragung im Projektarchiv entfernt.
            Mehrfache URL Angaben werden jede für sich
            übertragen.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>del, remove, rm</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, wenn die Operation mit Dateiangaben durchgeführt wird.</para>
          <para>Projektarchiv, wenn die Operation mit URLs durchgeführt wird.</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn die Operation mit URLs durchgeführt wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--force
--force-log
--message (-m) TEXT
--file (-F) DATEI
--quiet (-q)
--targets DATEINAME
--username USER
--password PASS
--no-auth-cache
--non-interactive
--editor-cmd EDITOR
--encoding ENC
--config-dir DIR
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>

          <para>Verwenden sie <command>svn delete</command> um eine
            Datei von ihrer Arbeitskopie zu löschen &mdash; für das
            Projektarchiv wird die Aktion nur vorgemerkt und erst
            durchgeführt, wenn sie die lokalen Änderungen
            übertragen.</para>

          <screen>
$ svn delete meinedatei
D         meinedatei

$ svn commit -m "Lösche Datei 'meinedatei'."
Deleting       meinedatei
Transmitting file data .
Committed revision 14.
</screen>

          <para>Das Löschen einer URL jedoch geschieht sofort, sodass
            sie eine Log-Nachricht angeben müssen:</para>

          <screen>
$ svn delete -m "Lösche Datei 'deinedatei'" file:///tmp/repos/test/deinedatei

Committed revision 15.
</screen>

          <para>Hier ein Beispiel wie das Löschen einer geänderten
             Datei durchgesetzt werden kann:</para>

          <screen>
$ svn delete over-there 
svn: Attempting restricted operation for modified resource
svn: Use --force to override this restriction
svn: 'over-there' has local modifications

$ svn delete --force over-there 
D         over-there
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn diff</refname>
          <refpurpose>Zeigt die Unterschiede zwischen zwei Dateien.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn diff [-r N[:M]] [--old ZIEL-ALT] [--new ZIEL-NEU] [PFAD...]</programlisting>
          <programlisting>svn diff -r N:M URL</programlisting>
          <programlisting>svn diff [-r N[:M]] URL1[@N] URL2[@M]</programlisting>

        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die Unterschiede zwischen zwei Dateien.  Die
            drei unterschiedlichen Arten um <command>svn
            diff</command> zu verwenden sind:</para>

          <para><command>svn diff [-r N[:M]] [--old ZIEL-ALT] [--new
            ZIEL-NEU] [PFAD...]</command> zeigt die Unterschiede
            zwischen <replaceable>ZIEL-ALT</replaceable> und
            <replaceable>ZIEL-NEU</replaceable>.  Wenn
            <replaceable>PFAD</replaceable>e angegeben werden, dann
            werden diese relativ zum
            <replaceable>ZIEL-ALT</replaceable> und
            <replaceable>ZIEL-NEU</replaceable> behandelt und die
            Ausgabe beschränkt sich auf Unterschiede zwischen diesen
            Pfaden.  <replaceable>ZIEL-ALT</replaceable> and
            <replaceable>ZIEL-NEU</replaceable> können Pfade in der
            Arbeitskopie oder
            <replaceable>URL</replaceable><literal>[@</literal><replaceable>REV</replaceable><literal>]</literal>
            sein.  <replaceable>ZIEL-ALT</replaceable> nutzt
            standardmässig das aktuelle Arbeitsverzeichnis und
            <replaceable>ZIEL-NEU</replaceable> nutzt standardmässig
            <replaceable>ZIEL-ALT</replaceable>.
            <replaceable>N</replaceable> nutzt standardmässig
            <literal>BASE</literal> oder wenn
            <replaceable>ZIEL-ALT</replaceable> eine URL ist, dann
            <literal>HEAD</literal>.  <replaceable>M</replaceable>
            nutzt standardmässig das aktuelle Arbeitsverzeichnis.
            Wenn <replaceable>ZIEL-NEU</replaceable> eine URL ist,
            dann wird standardmässig <literal>HEAD</literal> benutzt.
            <command>svn diff -r N</command> setzt die Revision von
            <replaceable>ZIEL-ALT</replaceable> auf
            <replaceable>N</replaceable>, <command>svn diff -r
            N:M</command> setzt ebenfalls die Revision von
            <replaceable>ZIEL-NEU</replaceable> auf
            <replaceable>M</replaceable>.</para>

          <para><command>svn diff -r N:M URL</command> ist die
            Kurzform für <command>svn diff -r N:M --old=URL
            --new=URL</command>.</para>

          <para><command>svn diff [-r N[:M]] URL1[@N]
            URL2[@M]</command> ist die Kurzform für <command>svn diff
            [-r N[:M]] --old=URL1 --new=URL2</command>.</para>

          <para>Wenn <replaceable>ZIEL</replaceable> eine URL ist,
            dann können die Revisionen N und M entweder mittels
            <option>--revision</option> oder über die <quote>@</quote>
            Notation angegeben werden.</para>

          <para>WENN <replaceable>ZIEL</replaceable> eine Arbeitskopie
            ist, dann bedeutet die <option>--revision</option>
            Option:</para>

          <variablelist>

            <varlistentry>
              <term><command>--revision N:M</command></term>
              <listitem>
                <para>Der Server vergleicht
                <replaceable>ZIEL</replaceable>@<replaceable>N</replaceable>
                und
                <replaceable>ZIEL</replaceable>@<replaceable>M</replaceable>.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><command>--revision N</command></term>
              <listitem>
                <para>Der Client vergleicht 
                  <replaceable>ZIEL</replaceable>@<replaceable>N</replaceable>
                  mit der Arbeitskopie.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><command>(keine --revision)</command></term>
              <listitem>
                <para>Der Client vergleicht Basis und Arbeitskopien von
                  <replaceable>ZIEL</replaceable>.</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Wenn die alternate Syntax benutzt wird, vergleicht der
            Server <replaceable>URL1</replaceable> und
            <replaceable>URL2</replaceable> in den Revisionen
            <replaceable>N</replaceable> bzw
            <replaceable>M</replaceable>.  Wenn entweder
            <replaceable>N</replaceable> oder
            <replaceable>M</replaceable> weggelassen werden, wird
            <literal>HEAD</literal> angenommen.</para>

          <para>Standardmässig ignoriert, <command>svn diff</command>
            die Abstammung von Dateien und vergleicht nur den Inhalt
            Wenn sie <option>--notice-ancestry</option> angeben, wird
            die Abstammung der betroffenen Dateien berücksichtigt,
            wenn Revisionen verglichen werden (das ist, wenn sie
            <command>svn diff</command> für zwei Dateien mit gleichem
            Inhalt, aber verschiedener Abstammung verwenden, wird der
            ganze Inhalt der Datei so angezeigt, als ob er zuerst
            gelöscht und dann wieder hinzugefügt worden wäre).</para>

        </refsect1>
        <refsect1>
          <title>Alternative Namen</title>
          <para>di</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Bei Vergleichen mit etwas anderem als der
            <literal>BASIS</literal> Revision in ihrer Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--revision (-r) REV
--old ZIEL-ALT
--new ZIEL-NEU
--extensions (-x) "ARGS"
--non-recursive (-N)
--diff-cmd CMD
--notice-ancestry
--username USER
--password PASS
--no-auth-cache
--non-interactive
--no-diff-deleted
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Vergleicht <literal>BASIS</literal> mit ihrer
            Arbeitskopie (eine der häufigsten Anwendungen von
            <command>svn diff</command>):</para>

          <screen>
$ svn diff COMMITTERS 
Index: COMMITTERS
===================================================================
--- COMMITTERS	(Revision 4404)
+++ COMMITTERS	(Arbeitskopie)
</screen>

          <para>Vergleicht wie sich ihre Arbeitskopie von einer
            älteren Revision unterscheiden:</para>

          <screen>
$ svn diff -r 3900 COMMITTERS 
Index: COMMITTERS
===================================================================
--- COMMITTERS	(Revision 3900)
+++ COMMITTERS	(Arbeitskopie)
</screen>

          <para>Vergleiche Revision 3000 mit Revision 3500 unter
            Verwendung der <quote>@</quote> Syntax:</para>

          <screen>
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500
Index: COMMITTERS
===================================================================
--- COMMITTERS	(Revision 3000)
+++ COMMITTERS	(Revision 3500)
&hellip;
</screen>

          <para>Vergleiche Revision 3000 mit Revision 3500 unter
            Verwendung einer Bereichsangabe (sie übergeben in diesem
            Fall nur eine URL):</para>

          <screen>
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS
Index: COMMITTERS
===================================================================
--- COMMITTERS	(Revision 3000)
+++ COMMITTERS	(Revision 3500)
</screen>


          <para>Vergleiche Revision 3000 mit Revision 3500 für alle
            Dateien in <filename>trunk</filename> unter Verwendung
            einer Bereichsangabe:</para>

          <screen>
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk
          </screen>


          <para>Vergleiche Revision 3000 mit Revision 3500 für nur
            drei Dateien in <filename>trunk</filename> unter
            Verwendung einer Bereichsangabe:</para>

          <screen>
$ svn diff -r 3000:3500 --old http://svn.collab.net/repos/svn/trunk COMMITTERS README HACKING
          </screen>

          <para>Wenn sie eine Arbeitskopie haben, können sie die
            Unterschiede erhalten ohne die langen URLs
            anzugeben:</para>

          <screen>
$ svn diff -r 3000:3500 COMMITTERS 
Index: COMMITTERS
===================================================================
--- COMMITTERS	(Revision 3000)
+++ COMMITTERS	(Revision 3500)
</screen>

          <para>Verwenden sie <option>--diff-cmd</option>
            <replaceable>CMD</replaceable> <option>-x</option> um
            Argumente direkt an das externe diff Programm zu
            übergeben</para>
          
          <screen>
$ svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS 
Index: COMMITTERS
===================================================================
0a1,2
&gt; Das ist ein Text
&gt; 
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn export</refname> <refpurpose>Exportiert einen
            sauberen Verzeichnisbaum.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn export [-r REV] URL [PFAD]</programlisting>
          <programlisting>svn export PFAD1 PFAD2</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Die erste Form exportiert einen sauberen, durch URL
            festgelegten Verzeichnisbaum, vom Projektarchiv und zwar
            in der Revision <replaceable>REV</replaceable> sofern
            angegeben, andernfalls wird <literal>HEAD</literal>
            verwendet, nach <replaceable>PFAD</replaceable>.  Wenn
            <replaceable>PFAD</replaceable> weggelassen wird, dann
            wird die letze Komponente von
            <replaceable>URL</replaceable> als Name für das lokale
            Verzeichnis genommen.</para>

          <para>Die zweite Form exportiert einen sauberen
            Verzeichnisbaum von der Arbeitskopie
            <replaceable>PFAD1</replaceable> nach
            <replaceable>PFAD2</replaceable>.  Alle lokalen Änderungen
            bleiben erhalten, aber Dateien die nicht unter
            Versionskontrolle stehen werden nicht kopiert.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Lokale Platte</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn von einer URL export wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--quiet (-q)
--force
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Exportiert von ihrer Arbeitskopie (zeigt keine Dateien
            und Verzeichnise an):</para>

          <screen>
$ svn export eine-ak mein-export
Export komplett.
</screen>

          <para>Exportiert direkt vom Projektarchiv (zeigt alle
            Dateien und Verzeichnisse an):</para>

          <screen>
$ svn export file:///tmp/repos mein-export
A  mein-export/test
A  mein-export/quiz
&hellip;
Revision 15 exportiert.
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn help</refname>
          <refpurpose>Hilfe!</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn help [SUBKOMMANDO...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Ihr bester Freund wenn sie Subversion benutzen und
            dieses Buch nicht in Reichweite ist!</para>
        </refsect1>
        
        <refsect1>
          <title>Alternative Namen</title>
          <para>?, h</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nein</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--version
--quiet (-q)
</screen>
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn import</refname>
          <refpurpose>Überträgt rekursiv eine Kopie von PFAD nach URL.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn import [PFAD] URL</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Überträgt rekursiv eine Kopie von
            <replaceable>PFAD</replaceable> nach
            <replaceable>URL</replaceable>.  Wenn
            <replaceable>PFAD</replaceable> weggelassen wird, dann
            wird <quote><filename>.</filename></quote> angenommen.
            Fehlende Elternverzeichnisse im Projektarchiv werden
            angelegt.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Projektarchiv</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--message (-m) TEXT
--file (-F) DATEI
--quiet (-q)
--non-recursive (-N)
--username USER
--password PASS
--no-auth-cache
--non-interactive
--force-log
--editor-cmd EDITOR
--encoding ENC
--config-dir DIR
--auto-props
--no-auto-props
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Importiert das lokale Verzeichnis
            <filename>meinproj</filename> in das Basisverzeichnis des
            Projektarchives:</para>

          <screen>
$ svn import -m "Neuer Import" meinproj http://svn.red-bean.com/repos/test
Adding         meinproj/beispiel.txt
&hellip;
Übertrage Daten .........
Revision 16 übertragen.
</screen>

          <para>Importiert das lokale Verzeichnis
            <filename>meinproj</filename> nach
            <filename>trunk/vendors</filename> in ihrem Projektarchiv.
            Das Verzeichnis <filename>trunk/vendors</filename> muss
            vor dem Import nicht existieren &mdash; <command>svn
            import</command> wird fehlende Verzeichnisse rekurisv
            anlegen:</para>
          <screen>
$ svn import -m "Neuer import" meinproj \
    http://svn.red-bean.com/repos/test/trunk/vendors/meinproj
Hinzufügen         meinproj/beispiel.txt
&hellip;
Übertrage Daten .........
Revision 19 übertragen.
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn info</refname>
          <refpurpose>Zeigt Information über PFADe.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn info [PFAD...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt Information über Pfade in ihrer Arbeitskopie,
          inclusive:</para>

          <itemizedlist>
            <listitem><para>Pfad</para></listitem>
            <listitem><para>Name</para></listitem>
            <listitem><para>URL</para></listitem>
            <listitem><para>Revision</para></listitem>
            <listitem><para>Kotentyp</para></listitem>
            <listitem><para>Letzt. AutorIn</para></listitem>
            <listitem><para>Letzte Revision</para></listitem>
            <listitem><para>Letztes Änderungsdatum</para></listitem>
            <listitem><para>Text zuletzt geändert</para></listitem>
            <listitem><para>Eigenschaften zuletzt geändert</para></listitem>
            <listitem><para>Prüfsumme</para></listitem>
          </itemizedlist>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nein</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--targets DATEINAME
--recursive (-R)
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para><command>svn info</command> zeigt alle nützlichen Informationen
            die es von Objekten in ihrer Arbeitskopie hat an.
            Für Dateien wird angezeigt:</para>

          <screen>
$ svn info foo.c
Pfad: foo.c
Name: foo.c
URL: http://svn.red-bean.com/repos/test/foo.c
Revision: 4417
Knotentyp: file
Vorgemerkt: normal
Letzt. AutorIn: sally
Letzte Revision: 20
Letztes Änderungsdatum: 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003)
Text zuletzt geändert: 2003-01-16 21:18:16 -0600 (Thu, 16 Jan 2003)
Eigenschaften zuletzt geändert: 2003-01-13 21:50:19 -0600 (Mon, 13 Jan 2003)
Prüfsumme: /3L38YwzhT93BWvgpdF6Zw==
</screen>

          <para>Für Verzeichnisse wird angezeigt:</para>

          <screen>
$ svn info vendors
Pfad: trunk
URL: http://svn.red-bean.com/repos/test/vendors
Revision: 19
Knotentyp: directory
Vorgemerkt: normal
Letzt. AutorIn: harry
Letzte Revision: 19
Letztes Änderungsdatum: 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003)
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn list</refname>
          <refpurpose>Listet Vereichniseinträge im Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn list [ZIEL...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Listet jede <replaceable>ZIEL</replaceable> Datei und
            den Inhalt von jedem <replaceable>ZIEL</replaceable>
            Verzeichnis so wie sie im Projektarchiv existieren.  Wenn
            <replaceable>ZIEL</replaceable> eine Arbeitskopie ist,
            dann wird die dazugehörige Projektarchiv URL
            benutzt.</para>

          <para>Standardmässig wird <replaceable>ZIEL</replaceable>
            <quote><filename>.</filename></quote> verwendet, also die
            Projektarchiv URL vom aktuellen Verzeichnis der
            Arbeitskopie.</para>

          <para>Mit <option>--verbose</option>, werden folgende
            Statusfelder angezeigt:</para>

          <itemizedlist>
            <listitem><para>Revisionsnumber der letzten Übertragung
            </para></listitem> <listitem><para>AutorIn der letzten
            Übertragung </para></listitem> <listitem><para>Grösse (in
            Bytes)</para></listitem> <listitem><para>Datum und Uhrzeit
            der letzen Übertragung</para></listitem>
          </itemizedlist>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>ls</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--verbose (-v)
--recursive (-R)
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para><command>svn list</command> ist meist dann hilfreich,
            wenn sie sehen wollen welche Dateien ein Projektarchiv hat
            ohne eine Arbeitskopie herunterzuladen:</para>

          <screen>
$ svn list http://svn.red-bean.com/repos/test/support
README.txt
INSTALL
examples/
&hellip;
</screen>

          <para>Im Unterschied zum UNIX <command>ls</command>, können
            sie die <option>--verbose</option> Option für zusätzliche
            Information verwenden:</para>

          <screen>
$ svn list --verbose file:///tmp/repos
     16 sally         28361 Jan 16 23:18 README.txt
     27 sally             0 Jan 18 15:27 INSTALL
     24 harry               Jan 18 11:27 examples/
</screen>

          <para>For further details, see <xref
              linkend="svn-ch-3-sect-5.4"/>.</para>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn log</refname> <refpurpose>Zeigt die
          Log-Nachrichten.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn log [PFAD]</programlisting>
          <programlisting>svn log URL [PFAD...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Standardmässig wird als Ziel das aktuelle Verzeichnis
            genommen.  Wenn keine Argumente angegeben werden, dann
            zeigt <command>svn log</command> die Log-Nachrichten von
            allen Dateien und Verzeichnissen im aktuellen
            Arbeitsverzeichnis ihrer Arbeitskopie.  Sie können das
            Ergebnis verfeinern indem sie einen Pfad, eine oder
            mehrere Revisionen oder jede Kombination von beiden
            angeben.  Der standardmässige Revisionsbereich ist
            <literal>BASE:1</literal>.</para>

          <para>Wenn sie eine einzelne URL angeben, dann werden die
            Log-Nachrichten für alles angezeigt, was in und unterhalb
            dieser URL liegt.  Wenn sie nach der URL auch Pfade
            angeben, dann werden nur die Log-Nachrichten für diese
            Pfade unter der URL angezeigt.  Der standardmässige
            Revisionsbereich für eine URL ist
            <literal>HEAD:1</literal>.</para>

          <para>Mit <option>--verbose</option> wird <command>svn
            log</command> auch alle betroffenen Pfade zu jeder
            Log-Nachricht anzeigen.  Mit <option>--quiet</option> wird
            <command>svn log</command> den eigentlichen
            Nachrichtentext selbst nicht anzeigen (das ist
            kombinierbar mit <option>--verbose</option>).</para>

          <para>Jede Log-Nachricht wird nur einmal ausgegeben, selbst
            dann, wenn expizit mehrere Pfade für eine Revision
            angefordert werden.  Standardmässig erlaubt <command>svn
            log</command> die Verfolgung der Kopier-Historie.
            Benutzen sie <option>--stop-on-copy</option> um dieses
            Verhalten abzustellen, was sinnvoll sein kann um die
            Auflistung bei Abzweigungen (branches) anzuhalten.</para>

        </refsect1>
        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--quiet (-q)
--verbose (-v)
--targets DATEINAME
--stop-on-copy
--incremental
--xml
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Sie können die Log-Nachrichten für alle geänderten
            Pfade in ihrer Arbeitskopie einsehen, indem sie
            <command>svn log</command> im höchsten Verzeichnis
            aufrufen:</para>

          <screen>
$ svn log
------------------------------------------------------------------------
r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line

Tweak.
------------------------------------------------------------------------
r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines
&hellip;
</screen>

          <para>Zeigt alle Log-Nachrichten für eine einzelne Datei
            ihrer Arbeitskopie:</para>

          <screen>
$ svn log foo.c
------------------------------------------------------------------------
r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

Feinheiten hinzugefügt.
------------------------------------------------------------------------
r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
&hellip;
</screen>

          <para>Wenn sie keine Arbeitskopie bei der Hand haben, können
            sie eine URL verwenden:</para>

          <screen>
$ svn log http://svn.red-bean.com/repos/test/foo.c
------------------------------------------------------------------------
r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

Feinheiten hinzugefügt.
------------------------------------------------------------------------
r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
&hellip;
</screen>

          <para>Wenn sie verschiedene Pfade unterhalb der gleichen
            URL, können sie die <literal>URL [PFAD...]</literal>
            Syntax verwenden.</para>

          <screen>
$ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c
------------------------------------------------------------------------
r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

Feinheiten hinzugefügt.
------------------------------------------------------------------------
r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line

Neue Datei bar.c hinzugefügt.
------------------------------------------------------------------------
r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
&hellip;
</screen>

          <para>Das hat den gleichen Effekt wie wenn beide URLs in der
            Kommandozeile angegeben werden:</para>

          <screen>
$ svn log http://svn.red-bean.com/repos/test/foo.c \
          http://svn.red-bean.com/repos/test/bar.c
&hellip;
</screen>

          <para>Wenn sie die Ergebnisse mehrerer Aufrufe verketten
            wollen, dann ist die <option>--incremental</option>
            hilfreich.  <command>svn log</command> zeigt normalerweise
            eine strichlierte Zeile am Beginn der Ausgabe und nach
            jeder einzelnen Log-Nachricht.  Wenn sie <command>svn
            log</command> für den Bereich von zwei Revisionen
            aufrufen, würden sie das erhalten:</para>

          <screen>
$ svn log -r 14:15
------------------------------------------------------------------------
r14 | ... 

------------------------------------------------------------------------
r15 | ... 

------------------------------------------------------------------------
</screen>

          <para>Wenn sie zwei nicht direkt aufeinanderfolgende
            Log-Nachrichten in eine Datei ausgeben wollen, dann machen
            sie das eventuell so:</para>

          <screen>
$ svn log -r 14 &gt; mylog
$ svn log -r 19 &gt;&gt; mylog
$ svn log -r 27 &gt;&gt; mylog
$ cat mylog
------------------------------------------------------------------------
r14 | ... 

------------------------------------------------------------------------
------------------------------------------------------------------------
r19 | ... 

------------------------------------------------------------------------
------------------------------------------------------------------------
r27 | ... 

------------------------------------------------------------------------
</screen>

          <para>Sie können die unnötige zweifache Ausgabe der
            strichlierten Linien vermeiden, indem sie die
            <option>--incremental</option> Option verwenden:</para>


          <screen>
$ svn log --incremental -r 14 &gt; mylog
$ svn log --incremental -r 19 &gt;&gt; mylog
$ svn log --incremental -r 27 &gt;&gt; mylog
$ cat mylog
------------------------------------------------------------------------
r14 | ... 

------------------------------------------------------------------------
r19 | ... 

------------------------------------------------------------------------
r27 | ... 
</screen>

          <para>Die <option>--incremental</option> Option erzeugt eine
            ähnliche Ausgabe, wenn sie die <option>--xml</option>
            Option verwenden.</para>



          <tip>
            <para>Wenn sie <command>svn log</command> auf einen
              bestimmten Pfad und eine bestimmte Revision anwenden und
              sie bekommen überhaupt keine Ausgabe</para>

            <screen>
$ svn log -r 20 http://svn.red-bean.com/untouched.txt
------------------------------------------------------------------------
</screen>

            <para>Dann bedeutet das, dass dieser Pfad in dieser
              Revision nicht verändert wurde.  Wenn sie von der
              höchsten Ebene des Projektarchives oder wenn sie die
              Datei kennen, die sich in dieser Revision geändert hat,
              dann können sie das explizit angeben:</para>
            
            <screen>
$ svn log -r 20 geaendert.txt 
------------------------------------------------------------------------
r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line

Es wurde dies und das geändert.
------------------------------------------------------------------------
</screen>
          </tip>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn merge</refname>
          <refpurpose>Übertrage die Unterschiede zwischen zwei Quellen
            auf einen Pfad in der Arbeitskopie.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn merge QuellURL1[@N] QuellURL2[@M] [AKPFAD]</programlisting>
          <programlisting>svn merge -r N:M QUELLE [PFAD]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>In der ersten Form werden die URLs der Quellen für die
            Revisionen <replaceable>N</replaceable> und
            <replaceable>M</replaceable> angegeben. Das sind die zwei
            Quellen die verglichen werden.  Wenn die Revisionen
            weggelassen werden, dann wird standardmässig
            <literal>HEAD</literal> genommen.</para>

          <para>In der zweiten Form kann
            <replaceable>QUELLE</replaceable> eine URL oder ein Objekt
            aus der Arbeitskopie sein, wofür die korrespondiertende
            URL ermittelt wird.  Diese URL, in den Revisionen
            <replaceable>N</replaceable> und
            <replaceable>M</replaceable> legt fest welche zwei Quellen
            verglichen werden.</para>

          <para><replaceable>AKPFAD</replaceable> ist der Pfad der
            Arbeitskopie, auf welchen die Änderungen übertragen
            werden.  Wenn <replaceable>AKPFAD</replaceable>
            weggelassen wird, dann wird
            <quote><filename>.</filename></quote> angenommen, ausser
            die Quellen haben den gleichen Basisnamen, welcher auf
            eine Datei in <quote><filename>.</filename></quote> passt:
            in diesem Fall werden die Unterschiede auf diese Datei
            übertragen.</para>

          <para>Im Unterschied zu <command>svn diff</command> nimmt
            das merge Kommando beim Zusammenführen Rücksicht auf die
            Abstammung einer Datei.  Das ist sehr wichtig, wenn sie
            Unterschiede von einem Zweig (branch) in einen anderen
            Zweig übertragen und sie haben eine Datei in einem Zweig
            umbenannt und im anderen Zweig aber nicht.</para>

        </refsect1>
        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit URLs gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--non-recursive (-N)
--quiet (-q)
--force
--dry-run
--diff3-cmd CMD
--ignore-ancestry
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Überträgt die Änderungen aus einem Nebenzweig (branch)
            zurück zum offiziellen Hauptzweig (trunk).  Für das
            Beispiel wird angenommen, dass sie eine Arbeitskopie des
            Hauptzweiges haben und dass der Nebenzweig in Revision 250
            erstellt wurde:</para>

          <screen>
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/mein-zweig
U  meinproj/tiny.txt
U  meinproj/thhgttg.txt
U  meinproj/win.txt
U  meinproj/flo.txt
</screen>

          <para>Wenn die Abzweigung bei Revision 23 erfolgte und sie
            wollen die Änderungen aus dem Hauptzweig auf ihren
            Nebenzweig übertragen, dann können sie dies von der
            Arbeitskopie ihres Nebenzweiges aus erledigen:</para>

          <screen>
$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
U  meinproj/thhgttg.txt
&hellip;
</screen>
          
        <para>Um Änderungen einer einzelnen Datei zu
          übertragen:</para>

        <screen>
$ cd meinproj
$ svn merge -r 30:31 thhgttg.txt 
U  thhgttg.txt
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn mkdir</refname>
          <refpurpose>Erzeugt ein neues Verzeichnis unter Versionskontrolle.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn mkdir PFAD...</programlisting>
          <programlisting>svn mkdir URL...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Erzeugt ein Verzeichnis unter Angabe von einem
            <replaceable>PFAD</replaceable> oder einer URL.  Lokale
            Änderungen werden sofort durchgeführt, für das
            Projektarchiv wird die Aktion aber nur vorgemerkt und erst
            durchgeführt, wenn sie die lokalen Änderungen übertragen.
            Ein Verzeichnis, das eine URL im Projektarchiv angegeben
            wurde wird durch eine sofortige Übertragung gleich
            angelegt.  Mehrere URLs werden getrennt übertragen.  In
            beiden Fällen müssen die darüberliegenden Verzeichnisse
            bereits existieren.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, das Projektarchiv wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--message (-m) TEXT
--file (-F) DATEI
--quiet (-q)
--username USER
--password PASS
--no-auth-cache
--non-interactive
--editor-cmd EDITOR
--encoding ENC
--force-log
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Erstellt ein Verzeichnis in ihrer Arbeitskopie:</para>

          <screen>
$ svn mkdir neudir
A         neudir
</screen>

          <para>Erzeugt ein Verzeichnis im Projektarchiv (sofortige
            Übertragung, daher ist eine Log-Nachricht
            erforderlich):</para>

          <screen>
$ svn mkdir -m "Erstelle ein neues Verzeichnis." http://svn.red-bean.com/repos/neudir

Revision 26 übertragen.
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn move</refname>
          <refpurpose>Verschiebt eine Datei oder Verzeichnis.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn move QUELLE ZIEL</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Das Kommando verschiebt eine Datei oder Verzeichnis in ihrer
            Arbeitskopie oder im Projektarchiv.</para>

          <tip>
            <para>Das Kommando hat die gleiche Auswirkung wie ein
              <command>svn copy</command> gefolgt von einem
              <command>svn delete</command>.</para>
          </tip>

          <note>
            <para>Subversion unterstützt nicht das Verschieben
              zwischen Arbeitskopie und URLs.  Zusätzlich können sie
              Dateien nur innerhalb eines einzelnen Projektarchives
              verschieben &mdash; Subversion unterstützt keine
              Verschiebungen über die Grenzen eines Projektarchives
              hinweg.</para>
          </note>

          <variablelist>

            <varlistentry>
              <term>AK  -&gt; AK</term>
              <listitem>
                <para>Verschiebt und merkt eine Datei oder Verzeichnis 
                  zum Hinzufügen vor (mit Historie).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>URL -&gt; URL</term>
              <listitem>
                <para>Ausschliesslich serverseitige Namensänderung.</para>
              </listitem>
            </varlistentry>

          </variablelist>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>mv, rename, ren</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--message (-m) TEXT
--file (-F) DATEI
--Revision (-r) REV
--quiet (-q)
--force
--username USER
--password PASS
--no-auth-cache
--non-interactive
--editor-cmd EDITOR
--encoding ENC
--force-log
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Verschiebt eine Datei in ihrer Arbeitskopie:</para>

          <screen>
$ svn move foo.c bar.c
A         bar.c
D         foo.c
</screen>

          <para>Verschiebt eine Datei im Projektarchiv (sofortige
            Übertragung, daher ist eine Log-Nachricht erforderlich):
            </para>

          <screen>
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c \
                            http://svn.red-bean.com/repos/bar.c

Revision 27 übertragen.
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn propdel</refname>
          <refpurpose>Entferne eine Eigenschaft von einem Objekt.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn propdel PROPNAME [PFAD...]</programlisting>
          <programlisting>svn propdel PROPNAME --revprop -r REV [URL]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Entfernt Eigenschaften von Dateien, Verzeichnissen
            oder Revisionen.  Die erste Form entfernt Eigenschaften
            mit Versionskontrolle in der Arbeitskopie, während die
            zweite Eigenschaften ohne Versionskontrolle in einer
            Revision des Projektarchives entfernt.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>pdel, pd</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--quiet (-q)
--recursive (-R)
--Revision (-r) REV
--revprop
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Löscht eine Eigenschaft von einer Datei in ihrer
            Arbeitskopie.</para>

          <screen>
$ svn propdel svn:mime-type  irgendein-script
Eigenschaft 'svn:mime-type' gelöscht von 'irgendein-script'.
</screen>

          <para>Löscht die Eigenschaft einer Revisions:</para>

          <screen>
$ svn propdel --revprop -r 26 release-date 
Eigenschaft 'release-date' gelöscht von Projektarchiv Revision '26'
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn propedit</refname>
          <refpurpose>Bearbeitet die Eigenschaft von einem oder mehreren
            Objekten unter Versionskontrolle.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn propedit PROPNAME PFAD...</programlisting>
          <programlisting>svn propedit PROPNAME --revprop -r REV [URL]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Bearbeitet eine oder mehrere Eigenschaften unter
            Benutzung ihres bevorzugten Editors.  Die erste Form
            bearbeitet Eigenschaften mit Versionskontrolle in ihrer
            Arbeitskopie, während die zweite Form Eigenschaften ohne
            Versionskontrolle in einer Revision des Projektarchives
            bearbeitet.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>pedit, pe</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--revprop
--username USER
--password PASS
--no-auth-cache
--non-interactive
--encoding ENC
--editor-cmd EDITOR
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para><command>svn propedit</command> macht es leicht
            Änderungen an Eigenschaften, die mehreren Werte halten
            können, vorzunehmen:</para>

          <screen>
$ svn propedit svn:keywords  foo.c 
    &lt;svn wird hier ihren bevorzugten Editor aufrufen und zwar mit
    einem geöffnetem Buffer, welcher die aktuellen Werte der
    svn:keywords Eigenschaft enthält.  Sie können hier mehrere Werte
    zu einer Eigenschaft hinzufügen, indem sie einfach einen Wert pro
    Zeile eingeben.&gt;
Setze neuen Wert für die Eigenschaft 'svn:keywords' von 'foo.c'
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn propget</refname>
          <refpurpose>Zeigt den Wert einer Eigenschaft.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn propget PROPNAME [PFAD...]</programlisting>
          <programlisting>svn propget PROPNAME --revprop -r REV [URL]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt den Wert einer Eigenschaft von Dateien,
            Verzeichnissen oder Revisionen.  Die erste Form zeigt
            Eigenschaften unter Versionskontrolle in ihrer
            Arbeitskopie, während die zweite Form Eigenschaften ohne
            Versionskontrolle in einer Revision des Projektarchives
            zeigt.  Siehe <xref linkend="svn-ch-7-sect-2"/> für mehr
            Information über Eigenschaften.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>pget, pg</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--recursive (-R)
--Revision (-r) REV
--revprop
--strict
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Zeigt eine Eigenschaft von einer Datei in ihrer
            Arbeitskopie:</para>
          
          <screen>
$ svn propget svn:keywords foo.c
Author
Date
Rev
</screen>

          <para>Das gleiche für eine Eigenschaft einer
            Revision:</para>

          <screen>
$ svn propget svn:log --revprop -r 20 
Beginn eines Berichtes.
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn proplist</refname>
          <refpurpose>Zeigt eine Liste aller Eigenschaften.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn proplist [PFAD...]</programlisting>
          <programlisting>svn proplist --revprop -r REV [URL]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt alle Eigenschaften von einer Datei, Verzeichniss
            oder Revision.  Die erste Form zeigt Eigenschaften unter
            Versionskontrolle in ihrer Arbeitskopie, während die
            zweite Form Eigenschaften ohne Versionskontrolle in einer
            Revision des Projektarchives zeigt.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>plist, pl</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--verbose (-v)
--recursive (-R)
--Revision (-r) REV
--quiet (-q)
--revprop
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>

          <para>Sie können proplist verwenden um die Eigenschaften
            eines Objektes in ihrer Arbeitskopie einzusehen:</para>

          <screen>
$ svn proplist foo.c
Properties on 'foo.c':
  svn:mime-type
  svn:keywords
  owner
</screen>

          <para>Aber so richtig nützlich wird svn proplist mit der
            <option>--verbose</option> option, weil es dann auch die
            Werte für die Eigenschaften anzeigt:</para>

          <screen>
$ svn proplist --verbose foo.c
Properties on 'foo.c':
  svn:mime-type : text/plain
  svn:keywords : Author Date Rev
  owner : sally
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn propset</refname>
          <refpurpose>Set PROPNAME to PROPVAL on Dateien, Verzeichnissen, or Revisions.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn propset PROPNAME [PROPWERT | -F WERTDATEI] PFAD...</programlisting>
          <programlisting>svn propset PROPNAME --revprop -r REV [PROPWERT | -F WERTDATEI] [URL]</programlisting>
        </refsect1>

        <refsect1>
          <title>Beschreibung</title>

          <para>Setzt <replaceable>PROPNAME</replaceable> auf
            <replaceable>PROPWERT</replaceable> für Dateien,
            Verzeichnisse oder Revisionen.  Die erste Form erzeugt
            eine Änderung einer Eigenschaft unter Versionskontrolle in
            der Arbeitskopie, während die zweite Form eine Änderung
            einer Eigenschaft ohne Versionskontrolle in einer Revision
            des Projektarchives erzeugt.</para>

          <tip>
            <para>Subversion hat eine Anzahl von
              <quote>Special</quote> Eigenschaften, die das Verhalten
              von svn beeinflussen.  Siehe <xref
              linkend="svn-ch-7-sect-2.3"/> für mehr Informationen zu
              diesen Eigenschaften.</para>
          </tip>

        </refsect1>
        <refsect1>
          <title>Alternative Namen</title>
          <para>pset, ps</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn mit einer URL gearbeitet wird</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--file (-F) DATEI
--quiet (-q)
--Revision (-r) REV
--targets DATEINAME
--recursive (-R)
--revprop
--username USER
--password PASS
--no-auth-cache
--non-interactive
--encoding ENC
--force
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Setzt den Mime-Typ einer Datei:</para>

          <screen>
$ svn propset svn:mime-type image/jpeg foo.jpg 
Eigenschaft 'svn:mime-type' gesetzt für 'foo.jpg'
</screen>

          <para>Auf UNIX Systemen, wenn sie für eine Datei das
            ausführbar Recht setzen wollen:</para>

          <screen>
$ svn propset svn:executable ON irgendeinscript
property 'svn:executable' set on 'irgendeinscript'
</screen>

          <para>Möglicherweise haben sie eine interne Vorschrift, die
            verschiedene Eigenschaften verwendet, um das Leben von
            MitarbeiterInnen an einem Projekt zu erleichtern:</para>

          <screen>
$ svn propset owner sally foo.c
property 'owner' set on 'foo.c'
</screen>

          <para>Wenn sie einen Fehler in einer Log-Nachricht einer
            bestimmten Revision gemacht haben und sie wollen diese
            ändern, dann verwenden sie <option>--revprop</option> und
            setzen svn:log auf die neue Log-Nachricht:</para>

          <screen>
$ svn propset --revprop -r 25 svn:log "Bericht über die Reise nach New York."
Eigenschaft 'svn:log' für Revision '25' im Projektarchiv gesetzt
</screen>

          <para>Wenn sie keine Arbeitskopie haben können sie eine URL
            angeben.</para>
          
          <screen>
$ svn propset --revprop -r 26 svn:log "Zusatz-Dokument." http://svn.red-bean.com/repos
Eigenschaft 'svn:log' für Revision '25' im Projektarchiv gesetzt
</screen>

          <para>Sie können propset anweisen seine Eingaben aus einer
            Datei zu holen.  Sie können das einsetzen um den Inhalt
            einer Eigenschaft mit binären Werte zu versorgen:</para>

          <screen>
$ svn propset owner-pic -F sally.jpg moo.c 
Eigenschaft 'owner-pic' gesetzt für 'moo.c'
</screen>

          <note>
            <para>Standardmässig können sie Eigenschaften einer
              Revision in einem Subversion Projektarchiv nicht ändern.
              Ihr Projektarchiv Administrator muss die Änderung von
              Eigenschaften einer Revision ausdrücklich erlauben,
              indem er einen Haken (hook) mit dem Namen
              <literal>pre-revprop-change</literal> erzeugt.  Siehe
              <xref linkend="svn-ch-5-sect-2.1"/> für mehr Information
              zu Haken-Skripte (hook scripts).</para>
          </note>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn resolved</refname>
          <refpurpose>Entfernt den <quote>conflicted</quote> Status von
            Dateien oder Verzeichnissen in der Arbeitskopie.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn resolved PFAD...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Entfernt den <quote>conflicted</quote> Status von
            Dateien oder Verzeichnissen in der Arbeitskopie.  Dieses
            Subkommando löst weder semantisch Konflikte auf, noch
            entfernt es Konfliktmarken.  Es löscht lediglich zum
            Konflikt gehörende Dateien und ermöglicht es so, dass das
            Verzeichnis wieder übertragen werden kann.  Es teilt
            Subversion also mit, dass der Konflikt
            <quote>resolved</quote> (aufgelöst) wurde.  Siehe <xref
            linkend="svn-ch-3-sect-4.4"/> für einen tieferen Einblick in
            das Auflösen von Konflikten.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nein</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--targets DATEINAME
--recursive (-R)
--quiet (-q)
--config-dir DIR
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>
          
          <para>Wenn sie bei einer Aktualisierung einen Konflikt
            bekommen haben, werden in ihrer Arbeitskopie drei neue
            Dateien erzeugt:</para>

          <screen>
$ svn update
C  foo.c
Aktualisiert auf Revision 31.
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
</screen>

          <para>Dann wenn sie den Konflikt aufgelöst haben und
            <filename>foo.c</filename> wieder bereit zur Übertragung
            ist, dann rufen sie <command>svn resolved</command> auf,
            damit ihre Arbeitskopie weiss, dass sie alles notwendige
            veranlasst haben.</para>

          <warning>
            <para>Sie <emphasis>können</emphasis> auch nur die
              konfliktbezogenen Dateien löschen und eine Übertragung
              durchführen, aber <command>svn resolved</command> bringt
              zusätzlich einige Evidenzdaten im administrativen
              Bereich der Arbeitskopie in Ordnung, sodass wir
              empfehlen dass sie dieses Kommando verwenden.</para>
          </warning>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn revert</refname>
          <refpurpose>Macht alle lokalen Änderungen rückgängig.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn revert PFAD...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Macht alle lokalen Änderungen an einer Datei oder
            einem Verzeichnis rückgängig und löscht alle
            Konfliktmarken.  <command>svn revert</command> macht nicht
            nur Änderungen am Inhalt eines Objektes in ihrer
            Arbeitskopie rückgängig, sondern auch Änderungen an
            Eigenschaften.  Schlussendlich können sie es verwenden um
            vorgemerkte Operationen rückgängig zu machen, die sie
            vielleicht vorbereitet haben (z.B. Dateien, die zum
            hinzufügen oder löschen vorgemerkt wurden, können wieder
            aus der Vormerkung entfernt werden).</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>Keine</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nein</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--targets DATEINAME
--recursive (-R)
--quiet (-q)
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Änderungen einer Datei rückgängig machen:</para>

          <screen>
$ svn revert foo.c
Zurückgenommen foo.c
</screen>

          <para>Wenn sie die Änderungen an allen Dateien eines
            Verzeichnisses rückgängig machen wollen, dann verwenden
            sie die <option>--recursive</option> Option:</para>

          <screen>
$ svn revert --recursive .
Zurückgenommen neudir/afile
Zurückgenommen foo.c
Zurückgenommen bar.txt
</screen>

          <para>Schliesslich können sie alle vorgemerkten Operationen
            rückgängig machen:</para>

          <screen>
$ svn add irrtuemlich.txt hoppala
A         irrtuemlich.txt
A         hoppala
A         hoppala/hopsi.c

$ svn revert irrtuemlich.txt hoppala
Zurückgenommen irrtuemlich.txt
Zurückgenommen hoppala

$ svn status
?      irrtuemlich.txt
?      hoppala
</screen>

          <note>
            <para>Wenn sie keine Ziele für <command>svn
              revert</command> angeben, dann geschieht nichts &mdash;
              um sie davor zu bewahren irrtümlich Änderungen an ihrer
              Arbeitskopie zu verlieren, erfordert <command>svn
              revert</command> die explizite Angabe der Ziele.</para>
          </note>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn status</refname>
          <refpurpose>Zeigt den Status von Dateien und Verzeichnissen in ihrer Arbeitskopie.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn status [PFAD...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt den Status von Dateien und Verzeichnissen in
            ihrer Arbeitskopie.  Ohne Argumente werden nur lokal
            geänderte Objekte angezeigt (kein Zugriff auf das
            Projektarchiv).  Mit <option>--show-updates</option>
            werden Arbeitsrevision und 'veraltet' Informationen
            (out-of-date) hinzugefügt.  Mit
            <option>--verbose</option>, wird die volle
            Revisionsinformation für jedes Objekt angezeigt.</para>

          <para>Die ersten fünf Spalten in der Ausgabe sind jeweils
            einen Buchstaben breit und jede Spalte gibt Auskunft über
            verschiedene Aspekte der Objekte in der
            Arbeitskopie.</para>
          
          <para>Die erste Spalte sagt aus, ob das Objekt hinzugefügt,
            gelöscht, oder in sonstiger Weise verändert wurde.</para>

          <variablelist>
            
            <varlistentry>
              <term>' '</term>
              <listitem>
                <para>Keine Änderungen.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'A'</term>
              <listitem>
                <para>Objekt ist vorgemerkt zum Hinzufügen (Added).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'D'</term>
              <listitem>
                <para>Objekt ist vorgemerkt zum Löschen (Deleted).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'M'</term>
              <listitem>
                <para>Objekt wurde geändert (Modified).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'C'</term>
              <listitem>
                <para>Objekt steht in Konflikt mit Änderungen, die vom
                  Projektarchiv empfangen wurden (Conflicted).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'I'</term>
              <listitem>
                <para>Objekt wird ignoriert (z.B. über die
                  svn:ignore Eigenschaft)</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'?'</term>
              <listitem>
                <para>Objekt steht nicht unter Versionskontrolle.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'!'</term>
              <listitem>
                <para>Objekt fehlt (z.B. weil es verschoben oder
                  gelöscht wurde, ohne, dass dazu die entsprechenden
                  <command>svn</command> Kommandos verwendet wurden).
                  Es kann auch bedeuten, dass ein Verzeichnis
                  unvollständig ist (z.B.  weil ein checkout oder
                  update unterbrochen wurden).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'~'</term>
              <listitem>
                <para>Das Objekt steht als Verzeichnis unter
                  Versionskontrolle und und wurde durch eine Datei
                  ersetzt oder umgekehrt.</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Die zweite Spalte zeigt den Status der Eigenschaften
            von Dateien oder Verzeichnissen an.</para>

          <variablelist>
            
            <varlistentry>
              <term>' '</term>
              <listitem>
                <para>Keine Änderungen.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'M'</term>
              <listitem>
                <para>Eigenschaften für dieses Objekt wurden geändert
                  (Modified).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>'C'</term>
              <listitem>
                <para>Eigenschaften für dieses Objekt stehen im
                  Konflikt mit Eigenschaften die vom Projektarchiv
                  empfangen wurden (Conflicted).</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Die dritte Spalte zeigt an, ob das Objekt in der
            Arbeitskopie gesperrt ist.</para>

          <variablelist>
            
            <varlistentry>
              <term>' '</term>
              <listitem>
                <para>Objekt ist nicht gesperrt.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>
              <term>'L'</term>
              <listitem>
                <para>Objekt ist gesperrt (Locked).</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Die vierte Spalte zeigt an, ob ein Objekt für das
            'Hinzufügen mit Historie' vorgemerkt ist.</para>
          
          <variablelist>
            
            <varlistentry>
              <term>' '</term>
              <listitem>
                <para>Keine Historie für die Übertragung vorgemerkt.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>
              <term>'+'</term>
              <listitem>
                <para>Historie für die Übertragung vorgemerkt.</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Die fünfte Spalte zeigt an, ob das Objekt relativ zu
            seinen Eltern umgestellt wurde (siehe <xref
            linkend="svn-ch-4-sect-5"/>).</para>

          <variablelist>
            
            <varlistentry>
              <term>' '</term>
              <listitem>
                <para>Das Objekt ist ein Kind seines Elternverzeichnisses.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>
              <term>'S'</term>
              <listitem>
                <para>Das Objekt wurde umgestellt (Switched).</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Die 'veraltet' Information erscheint in der in der
            achten Spalte (aber nur, wenn die
            <option>--show-updates</option> Option angegeben
            wurde).</para>

          <variablelist>
            
            <varlistentry>
              <term>' '</term>
              <listitem>
                <para>Das Objekt in der Arbeitskopie ist aktuell.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>
              <term>'*'</term>
              <listitem>
                <para>Am Server existiert eine neuere Revision des
                  Objektes.</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Die restlichen Felder haben eine variable Breite und
            sind durch Leerzeichen getrennt.  Wenn die
            <option>--show-updates</option> oder
            <option>--verbose</option> Option angegeben wurde, dann
            steht im nächsten Feld die Arbeitsrevision.</para>
          
          <para>Wenn die <option>--verbose</option> Option angegeben
            wurde, dann werden Revision und AutorIn der lezten
            Übertragung angezeigt.</para>

          <para>Der Objektname ist immer das letzte Feld und kann daher
            Leerzeichen enthalten.</para>

        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>stat, st</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Nichts</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Nur wenn die <option>--show-updates</option> Option verwendet wird.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--show-updates (-u)
--verbose (-v)
--non-recursive (-N)
--quiet (-q)
--no-ignore
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Das ist der einfachste Weg um herauszufinden, welche
            Änderungen sie an ihrer Arbeitskopie gemacht haben:</para>

          <screen>
$ svn status ak
 M     ak/bar.c
A  +   ak/qax.c
</screen>

          <para>Wenn sie herausfinden wollen, welche Dateien in ihrer
            Arbeitskopie veraltet sind, verwenden sie die
            <option>--show-updates</option> Option (es werden
            <emphasis>keine</emphasis> Änderungen an ihrer
            Arbeitskopie gemacht).  Hier wurde die Datei
            <filename>ak/foo.c</filename> im Projektarchiv geändert,
            nachdem wir unsere Arbeitskopie aktualisiert haben:</para>

          <screen>
$ svn status --show-updates ak
 M           965    ak/bar.c
       *     965    ak/foo.c
A  +         965    ak/qax.c
Status im Vergleich zu Revision:    981
</screen>

          <note>
            <para><option>--show-updates</option> zeigt
              <emphasis>nur</emphasis> einen Stern neben dem Objekt
              das veraltet ist (das heisst, dass das Objekt Änderungen
              vom Projektarchiv empfängt, wenn <command>svn
              update</command> durchgeführt wird).
              <option>--show-updates</option> zeigt
              <emphasis>nicht</emphasis> die Revisionsnummer des
              Objektes im Projektarchiv an.</para>
          </note>

          <para>And finally, the most information you can get out of
            the status subcommand:</para>

          <screen>
$ svn status --show-updates --verbose ak
 M           965       938 sally        ak/bar.c
       *     965       922 harry        ak/foo.c
A  +         965       687 harry        ak/qax.c
             965       687 harry        ak/zig.c
Head Revision:   981
</screen>

          <para>Für weiter Beispiele zu <command>svn status</command>,
            siehe <xref linkend="svn-ch-3-sect-4.3.1"/>.</para>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn switch</refname>
          <refpurpose>Stelle die Arbeitskopie auf eine andere URL um.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn switch URL [PFAD]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Dieses Subkommando stellt ihre Arbeitskopie so um,
            dass sie eine neue URL spielgelt &mdash; üblicherweise hat
            diese URL gemeinsame Vorfahren mit ihrer Arbeitskopie,
            obwohl das nicht erforderlich ist.  Dies ist der typische
            Weg von Subversion um eine Arbeitskopie in einen neuen
            Nebenzweig (branch) zu verschieben.  Siehe <xref
            linkend="svn-ch-4-sect-5"/> für einen tieferen Einblick
            zum Thema Umstellung/Wechsel (switching).</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>sw</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--non-recursive (-N)
--quiet (-q)
--diff3-cmd CMD
--relocate
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>

          <para>Wenn sie im Verzeichnis <filename>vendors</filename>
            stehen, für welches ein Zweig
            <filename>vendors-mit-korr</filename> erstellt wurde,
            können sie ihre Arbeitskopie auf diesen Zweig
            umstellen:</para>

          <screen>
$ svn switch http://svn.red-bean.com/repos/branches/vendors-mit-korr .
U  meinproj/foo.txt
U  meinproj/bar.txt
U  meinproj/baz.c
U  meinproj/qux.c
Aktualisiert auf Revision 31.
</screen>

          <para>Und um zurückzuwechseln geben brauchen sie nur die URL
            angeben von der sie ihre Arbeitskopie ursprünglich
            augecheckt haben:</para>

          <screen>
$ svn switch http://svn.red-bean.com/repos/trunk/vendors .
U  meinproj/foo.txt
U  meinproj/bar.txt
U  meinproj/baz.c
U  meinproj/qux.c
Aktualisiert auf Revision 31.
</screen>

          <tip>
            <para>Sie können auch einzelne Teile ihrer Arbeitskopie
              auf einen Zweig (branch) umstellen, wenn sie nicht die
              ganze Arbeitskopie umstellen wollen.</para>
          </tip>

          <para>Wenn die URL von ihrem Projektarchiv wechselt und sie
             haben eine bestehende Arbeitskopie, die sie
             weiterbenutzen möchten, dann können sie die <command>svn
             switch --relocate</command> Option verwenden, um ihre
             Arbeitskopie von einer URL auf eine andere
             umzustellen:</para>

          <screen>
$ svn checkout file:///tmp/repos test
A  test/a
A  test/b
&hellip;

$ mv repos newlocation
$ cd test/

$ svn update
svn: Unable to open an ra_local session to URL
svn: Unable to open Projektarchiv 'file:///tmp/repos'

$ svn switch --relocate file:///tmp/repos file:///tmp/newlocation .
$ svn update
Bei Revision 3.
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svn update</refname>
          <refpurpose>Aktualisiert ihre Arbeitskopie.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svn update [PFAD...]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para><command>svn update</command> überträgt die Änderungn
            vom Projektarchiv in ihre Arbeitskopie.  Wenn keine
            Revision angegeben wurde, dann wird ihre Arbeitskopie mit
            der <literal>HEAD</literal> Revision aktualisiert.
            Andernfalls wird die Arbeitskopie auf den Stand der
            Revision gebracht, die an die <option>--revision</option>
            Option übergegeben wird.</para>

          <para>Für jedes aktualisierte Objekt wird wird eine Zeile ausgegeben, 
            die mit einem Buchstabn für die durchgeführte Aktion beginnt.
            Diese haben die folgende Bedeutung:</para>

          <variablelist>

            <varlistentry>
              <term>A</term>
              <listitem>
                <para>Hinzugefügt (Added)</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>D</term>
              <listitem>
                <para>Gelöscht (Deleted)</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>U</term>
              <listitem>
                <para>Aktualisiert (Updated)</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>C</term>
              <listitem>
                <para>Konflikt (Conflict)</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>G</term>
              <listitem>
                <para>Zusammengeführt (Merged)</para>
              </listitem>
            </varlistentry>

          </variablelist>

          <para>Ein Buchstabe in der ersten Spalte bedeutet eine
            Aktualisierung der Datei, während Aktualisierungen der
            Dateieigenschaften in der zweiten Spalte angezeigt
            werden.</para>
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>up</para>
        </refsect1>

        <refsect1>
          <title>Ändert</title>
          <para>Arbeitskopie</para>
        </refsect1>

        <refsect1>
          <title>Archivzugriff</title>
          <para>Ja</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) REV
--non-recursive (-N)
--quiet (-q)
--diff3-cmd CMD
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Übernehme Änderungen vom Projektarchiv, die seit der
            letzten Aktualisierung dort vorgenommen wurden:</para>

          <screen>
$ svn update
A  neudir/toggle.c
A  neudir/disclose.c
A  neudir/launch.c
D  neudir/README
Aktualisiert auf Revision 32.
</screen>

          <para>Sie können ihre Arbeitskopie auch mit einer älteren
            Revision aktualisieren (Subversion hat kein Konzept von
            <quote>sticky</quote> (klebrigen) Dateien, so wie CVS dies
            kennt; siehe <xref linkend="svn-ap-a"/>):</para>

          <screen>
$ svn update -r30
A  neudir/README
D  neudir/toggle.c
D  neudir/disclose.c
D  neudir/launch.c
U  foo.c
Aktualisiert auf Revision 30.
</screen>

          <tip>
            <para>Wenn sie eine ältere Revision einer einzelnen Datei
              anschauen wollen, sollten sie <command>svn
              cat</command> benutzen.</para>
          </tip>
          
        </refsect1>
      </refentry>
    </sect2>
    
  </sect1>

  <!-- ================================================================= -->
  <!-- ======================== SECTION 2 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-9-sect-2">
    <title><command>svnadmin</command></title>
    
    <para><command>svnadmin</command> ist das Adminstrations-Werkzeug
      zum Überprüfen und Reparieren des Projektarchives.  Für
      detailiertere Information, siehe <xref
      linkend="svn-ch-5-sect-3.1.2"/>.</para>

    <para>Da <command>svnadmin</command> direkt auf das Projektarchiv
      zugreift (und nur auf der Maschine verwendet werden kann, auf
      der sich das Projektarchiv befindet), wird das Projektarchiv als
      Pfad und nicht als URL angegeben.</para>
      
    <sect2 id="svn-ch-9-sect-2.1">
      <title><command>svnadmin</command> Optionen</title> 
      
      <variablelist>
        
        <varlistentry>
          <term><option>--bdb-log-keep</option></term>
          <listitem>
            <para>(Spezifisch für die Berkeley Datenbank) Schaltet das
              automatische Löschen der Datenbank Logdateien
              ab.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--bdb-txn-nosync</option></term>
          <listitem>
            <para>(Spezifisch für die Berkeley Datenbank) Schaltet
              fsync ab, wenn Datenbank Transaktionen übertragen
              werden.</para>
          </listitem>
        </varlistentry>
        
        <varlistentry>
          <term><option>--bypass-hooks</option></term>
          <listitem>
            <para>Umgehe das Hakensystem des Projektarchivs.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--clean-logs</option></term>
          <listitem>
            <para>Entferne unbenutzte Berkeley DB Logdateien.</para>
          </listitem>
        </varlistentry>

        <!-- TODO config-dir? Is it really used? -->

        <varlistentry>
          <term><option>--force-uuid</option></term>
          <listitem>
            <para>Standardmässig wird <command>svnadmin</command> beim
              Laden von Daten in ein Projektarchiv, das bereits
              Revisionen enthält die <literal>UUID</literal> Angaben
              im importierten 'Dump' ignorieren.  Diese Option
              bewirkt, dass die <literal>UUID</literal> des 'Dump' in
              das Projektarchiv übernommen wird.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--ignore-uuid</option></term>
          <listitem>
            <para>Standardmässig wird <command>svnadmin</command> beim
              Laden in ein leeres Projektarchiv die
              <literal>UUID</literal> vom importierten 'Dump'
              übernehmen.  Diese Option bewirkt, dass diese UUID
              ignoriert wird.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--incremental</option></term>
          <listitem>
            <para>Dump a Revision only as a diff against the
              previous Revision, instead of the usual
              fulltext.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--parent-dir
          <replaceable>DIR</replaceable></option></term>
          <listitem>
            <para>Wenn eine 'Dump' Datei geladen wird, dann wird als
              Basisverzeichnis <replaceable>DIR</replaceable> genommen
              anstatt <replaceable>/</replaceable>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--Revision</option> (<option>-r</option>)
          <replaceable>ARG</replaceable></term>
          <listitem>
            <para>Gibt die zu verwendende Revision an.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--quiet</option></term>
          <listitem>
            <para>Zeige keine normalen Prozessausgaben, sondern nur
              Fehler.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </sect2>

    <!-- ================================================================= -->
    <sect2 id="svn-ch-9-sect-2.2">
      <title><command>svnadmin</command> Subcommands</title>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin create</refname>
          <refpurpose>Erzeugt ein neues, leeres Projektarchiv im
            <replaceable>ARCHIV_PFAD</replaceable>.
          </refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin create ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

            <para>Erzeugt ein neues, leeres Projektarchiv im angegeben
              Pfad.  Wenn das angegebene Verzeichnis nicht existiert,
              wird es angelegt.  <footnote><para>Zur Erinnerung:
              <command>svnadmin</command> arbeitet nur mit lokalen
              <emphasis>Pfadangaben</emphasis> und nicht mit
              <emphasis>URL</emphasis>s.</para></footnote></para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--bdb-txn-nosync
--bdb-log-keep
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Das Erstellen eines neuen Projektarchiv ist sehr
            einfach:</para>

          <screen>
$ svnadmin create /usr/local/svn/repos
</screen>
          
        </refsect1>
      </refentry>


      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin dump</refname>
          <refpurpose>Gibt den Inhalt des Dateienystems im
            'Dump'-Format aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin dump ARCHIV_PFAD [-r VON[:BIS]] [--incremental]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Gibt den Inhalt des Dateisystems in einem portablen
            'Dump'-Format auf die Standardausgabe (stdout) aus.
            Rückmeldungen gehen an die Standardfehlerausgabe (stderr).
            Gibt die Revisionen <replaceable>VON</replaceable>:
            <replaceable>BIS</replaceable> aus.  Wenn keine Revisionen
            angegeben werden, dann werden alle Revisionen ausgegeben.
            Wenn nur <replaceable>VON</replaceable> angegeben wird,
            dann wird nur diese eine Revision ausgegeben.  Siehe <xref
            linkend="svn-ch-5-sect-3.5"/> für praktische
            Beispiele.</para>
        </refsect1>
        <refsect1>
          <title>Optionen</title>
          
          <screen>
--Revision (-r)
--incremental
--quiet
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>

          <para>Gibt das ganze Projektarchiv aus:</para>

          <screen>
$ svnadmin dump /usr/local/svn/repos
SVN-fs-dump-format-version: 1
Revision-number: 0
* Dumped Revision 0.
Prop-content-length: 56
Content-length: 56
&hellip;
</screen>

          <para>Inkrementelle Ausgabe einer einzelnen Transaktion aus
            dem Projektarchiv: </para>

          <screen>
$ svnadmin dump /usr/local/svn/repos -r 21 --incremental 
* Dumped Revision 21.
SVN-fs-dump-format-version: 1
Revision-number: 21
Prop-content-length: 101
Content-length: 101
&hellip;
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin help</refname>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin help [SUBKOMMANDO...]</programlisting>
        </refsect1>

        <refsect1>
          <title>Beschreibung</title>

          <para>Dieses Subkommando ist hilfreich, wenn sie in sich auf
            einer einsamen Insel und weder eine Internetverbindung
            noch dieses Buch zur Verfügung haben.</para>

        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>?, h</para>
        </refsect1>

      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin hotcopy</refname>
          <refpurpose>Erstellt eine Kopie des Projektarchivs im
            laufenden Betrieb.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin hotcopy ALTER_ARCHIV_PFAD NEUER_ARCHIV_PFAD</programlisting>
        </refsect1>

        <refsect1>
          <title>Beschreibung</title>

          <para>Das Subkommando erstellt eine volle Sicherung des
            Projektarchives im <quote>laufenden</quote> Betrieb,
            inklusive aller Haken, Konfigurations-Dateien und
            natürlich der Datenbank-Dateien.  Wenn sie die
            <literal>--clean-logs</literal> Option angeben, wird
            <command>svnadmin</command> die Kopie des Projektarchivs
            erstellen und dann die unbenutzen Berkeley DB Logdateien
            vom ursprünglichen Projektarchiv entfernen.</para>

        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--clean-logs
</screen>
        </refsect1>

      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin list-dblogs</refname>
          <refpurpose>Listet die Berkeley DB Logdateien, die für das angegebene
            Projektarchiv existieren.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin list-dblogs ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

            <para>Die Berkeley Datenbank erzeugt Logdateien über alle
              Änderungen am Projektarchiv, um damit eine
              Wiederherstellung nach einer Katastrophe zu ermöglichen.
              Solange sie nicht <literal>DB_LOGS_AUTOREMOVE</literal>
              einschalten, werden die Logdateien immer mehr werden,
              obwohl die meisten davon nicht mehr benötigt werden und
              gelöscht werden können, um Plattenplatz freizugeben.
              Siehe <xref linkend="svn-ch-5-sect-3.3"/> für weitere
              Informationen.</para> 
        </refsect1>

      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin list-unused-dblogs</refname>
          <refpurpose>Listet die Berkeley DB Logdateien, die gefahrlos
            gelöscht werden können.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin list-unused-dblogs ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

            <para>Die Berkeley Datenbank erzeugt Logdateien über alle
              Änderungen am Projektarchiv, um damit eine
              Wiederherstellung nach einer Katastrophe zu ermöglichen.
              Solange sie nicht <literal>DB_LOGS_AUTOREMOVE</literal>
              einschalten, werden die Logdateien immer mehr werden,
              obwohl die meisten davon nicht mehr benötigt werden und
              gelöscht werden können, um Plattenplatz freizugeben.
              Siehe <xref linkend="svn-ch-5-sect-3.3"/> für weitere
              Informationen.</para> 
          </refsect1>

        <refsect1>
          <title>Beispiele</title>
          
          <para>Entferne alle unbenutzten Logdateien vom Projektarchiv:</para>

        <screen>
$ svnadmin list-unused-dblogs /path/to/repos
/path/to/repos/log.0000000031
/path/to/repos/log.0000000032
/path/to/repos/log.0000000033

$ svnadmin list-unused-dblogs /path/to/repos | xargs rm
## disk space reclaimed!
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin load</refname> <refpurpose>Liest einen Stream im
            <quote>'Dump'-Format</quote> von der Standardeingabe ein.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin load ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Liest einen Stream im <quote>'Dump'-Format</quote> von
            der Standardeingabe (stdin) ein und überträgt neue
            Revisionen in das Dateienystem des Projektarchivs.
            Sendet Prozessinformationen an die Standardausgabe
            (stdout).</para> 
        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--quiet (-q)
--ignore-uuid
--force-uuid
--parent-dir
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Hier wird ein Projektarchiv von einer Sicherungsdatei
            (welche natürlich mit <command>svn dump</command> erstellt
            worden ist) geladen:</para>

          <screen>
$ svnadmin load /usr/local/svn/restored &lt; repos-backup
&lt;&lt;&lt; Started new txn, based on original Revision 1
     * adding path : test ... done.
     * adding path : test/a ... done.
&hellip;
</screen>

          <para>Oder wenn sie in ein Unterverzeichnis laden wollen:</para>

          <screen>
$ svnadmin load --parent-dir neu/unterverz/fuer/project /usr/local/svn/restored &lt; repos-backup
&lt;&lt;&lt; Started new txn, based on original Revision 1
     * adding path : test ... done.
     * adding path : test/a ... done.
&hellip;
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin lstxns</refname>
          <refpurpose>Gibt die Namen aller hängengebliebenen Transaktionen aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin lstxns ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Gibt die Namen aller hängengebliebenen
            Transaktionen aus.  Siehe <xref
            linkend="svn-ch-5-sect-3.2"/> für Informationen wie solche
            hängengebliebenen Transaktionen entstehen und was sie
            damit machen sollten.</para>

        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Listet alle hängengebliebenen Transaktionen für ein
            Projektarchiv.</para>

          <screen>
$ svnadmin lstxns /usr/local/svn/repos/ 
1w
1x
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin recover</refname>
          <refpurpose>Stellt verlorengegangene Statusinformationen im Projektarchiv wieder her.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin recover ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Verwenden sie dieses Kommando, wenn sie eine
            Fehlermeldung bekommen, die darauf hinweist, dass ihr
            Projektarchiv eine Wiederherstellung benötigt.</para>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>
          
          <para>Wiederherstellung eines hängengebliebenen Projektarchivs:</para>

          <screen>
$ svnadmin recover /usr/local/svn/repos/ 
Setze exklusive Sperre für Projektarchiv db.
Wiederherstellung läuft, bitte warten...
Wiederherstellung komplett.
Die aktuellste Revision im Projektarchiv ist 34.
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->

      <refentry>
        <refnamediv>
          <refname>svnadmin rmtxns</refname>
          <refpurpose>Löscht Transaktionen vom Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin rmtxns ARCHIV_PFAD TXN_NAME...</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Löscht hängengebliebene Transaktionen vom Projektarchiv.
            Dies wird im Detail besprochen in <xref
            linkend="svn-ch-5-sect-3.2"/>.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--quiet (-q)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Löscht benannte Transaktionen:</para>

          <screen>
$ svnadmin rmtxns /usr/local/svn/repos/ 1w 1x
</screen>

          <para>Glücklicherweise lässt sich die Ausgabe von
            <command>svn lstxns</command> hervorragend für die EIngabe
            von rmtxns verwenden:</para>

          <screen>
$ svnadmin rmtxns /usr/local/svn/repos/  `svnadmin lstxns /usr/local/svn/repos/`
</screen>

          <para>Womit alle hängengebliebenen Transaktionen vom
            Projektarchiv entfernt werden.</para>

        </refsect1>
      </refentry>


      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin setlog</refname>
          <refpurpose>Set the log-message on a Revision.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin setlog ARCHIV_PFAD -r REVISION DATEI</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Setzt die Log-Nachricht für Revision REVISION auf den
            Inhalt der Datei DATEI.</para>

          <para>Das ist ähnlich wie die Verwendung von <command>svn
            propset --revprop</command> um die
            <literal>svn:log</literal> Eigenschaft für eine Revision
            zu setzen, mit dem Unterschied, dass sie auch die Option
            <option>--bypass-hooks</option> verwenden können, um zu
            verhindern, dass irgendwelche pre- oder post-commit Haken
            ausgeführt werden, was nützlich ist, wenn die Änderung von
            Eigenschaften der Revision nicht mittels
            pre-revprop-change Haken ermöglicht wurde.</para>

          <warning> 
            <para>Eigenschaften einer Revision stehen nicht unter
              Versionskontrolle, sodass die vorherige Log-Nachricht
              verlorengeht.</para>
          </warning>

        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r) ARG
--bypass-hooks
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Setzt Die Log-Nachricht für die Revision 19 auf den
            Inhalt der Datei <filename>msg</filename>:</para>

          <screen>
$ svnadmin setlog /usr/local/svn/repos/ -r 19 msg
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnadmin verify</refname>
          <refpurpose>Überprüft die Daten im Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnadmin verify ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Lassen sie dieses Kommando laufen, wenn sie die
            Integrität des Projektarchivs überprüfen wollen.  Intern
            geschieht dies, indem alle Revisionen im Projektarchiv wie
            bei der Ausgbe des 'Dump'-Formats behandelt werden, die
            Ausgabe jedoch unterdrückt wird.</para>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>
          
          <para>Überprüft ein hängengebliebenes Projektarchiv:</para>

          <screen>
$ svnadmin verify /usr/local/svn/repos/ 
* Revision 1729 überprüft.
</screen>

        </refsect1>
      </refentry>

    </sect2>

  </sect1>
  
  <!-- ================================================================= -->
  <!-- ======================== SECTION 3 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-9-sect-3">
    <title><command>svnlook</command></title>
    
    <para><command>svnlook</command> ist ein Kommandozeilen-Werkzeug
      um verschiedene Aspekte eines Subversion Projektarchives zu
      untersuchen.  Es macht keine Änderunge am Projektarchiv &mdash;
      es dient nur zum <quote>Nachschauen</quote>.
      <command>svnlook</command> wird typischerweise bei Haken im
      Projektarchiv verwendet, kann aber auch für Diagnosezwecke bei
      der Administration des Projektarchives nützlich sein.</para>

    <para>Da <command>svnlook</command> direkt auf das Projektarchiv
      zugreift (und nur auf der Maschine verwendet werden kann, auf
      der sich das Projektarchiv befindet), wird das Projektarchiv als
      Pfad und nicht als URL angegeben.</para>

    <para>Wenn keine Revision oder Transaktion angegeben wird, dann
      verwendet <command>svnlook</command> die aktuellste Revision im
      Projektarchiv.</para>
    
    <sect2 id="svn-ch-9-sect-3.1">
      <title><command>svnlook</command>Optionen</title>
      
      <para>Optionen für <command>svnlook</command> sind global, so
        wie bei <command>svn</command> und
        <command>svnadmin</command>, obwohl die meisten Optionen nur
        bei einem einzigen Subkommando angewendet werden können, da
        <command>svnlook</command> (absichtlich) in seinem Rahmen
        eingeschränkt ist.</para>

      <variablelist>

        <varlistentry>
          <term><option>--no-diff-deleted</option></term>
          <listitem>
            <para>Verhindert, dass <command>svnlook</command>
              Unterschiede für gelöschte Dateien ausgibt.
              Standardmässig werden für eine Datei, die in einer
              Transaktion/Revision gelöscht wurde, die gleichen
              Unterschiede ausgegeben, als wie wenn die Datei weiter
              bestehen würde, jedoch der ganze Inhalt gelöscht worden
              wäre.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--Revision</option>
            (<option>-r</option>)</term>
          <listitem>
            <para>Gibt eine bestimmte Revision an, die untersucht
              werden soll.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--Transaktion</option>
            (<option>-t</option>)</term>
          <listitem>
            <para>Gibt eine bestimmte Transaktions-ID an, die
              untersucht werden soll. </para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--show-ids</option></term>
          <listitem>
            <para>Zeigt die Dateienystemknoten Revisions-IDs für jeden
              Pfad im Dateienystembaum.</para>
          </listitem>
        </varlistentry>

      </variablelist>

    </sect2>

    <!-- ================================================================= -->
    <sect2 id="svn-ch-9-sect-3.2">
      <title><command>svnlook</command></title>

      <refentry>
        <refnamediv>
          <refname>svnlook author</refname>
          <refpurpose>Gibt den/die AutorIn aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook author ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Gibt die Autorenschaft einer Revision oder Transaktion im
            Projektarchiv aus.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

        <para><command>svnlook author</command> ist nützlich, aber
          nicht sehr spannend:</para>

          <screen>
$ svnlook author -r 40 /usr/local/svn/repos 
sally
</screen>            

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook cat</refname>
          <refpurpose>Gibt den Inhalt einer Datei aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook cat ARCHIV_PFAD PFAD_IM_ARCHIV</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Gibt den Inhalt einer Datei aus.</para>

          </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt den Inhalt der Datei
            <filename>/trunk/README</filename> in der Transaktion
            <literal>ax8</literal>:</para>

          <screen>
$ svnlook cat -t ax8 /usr/local/svn/repos /trunk/README

               Subversion, a version control system.
               =====================================

$LastChangedDate: 2003-07-17 10:45:25 -0500 (Thu, 17 Jul 2003) $

Contents:

     I. A FEW POINTERS
    II. DOCUMENTATION
   III. PARTICIPATING IN THE SUBVERSION COMMUNITY
&hellip;
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook changed</refname>
          <refpurpose>Zeigt die Pfade an die geändert wurden.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook changed ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die Pfande an, die in einer bestimmten Revision
            oder Transaktion geändert wurden, sowie einen Buchstaben
            im Stil der <quote>svn update</quote> Statuskennungen in
            der ersten Spalte: <literal>A</literal> für hinzugefügt
            (added), <literal>D</literal> für gelöscht (deleted) und
            <literal>U</literal> für geändert (updated).</para>

          </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt eine Liste mit allen Dateien, die in
            Revision 39 im Projektarchiv geändert wurden:</para>

          <screen>
$ svnlook changed -r 39 /usr/local/svn/repos
A   trunk/vendors/deli/
A   trunk/vendors/deli/chips.txt
A   trunk/vendors/deli/sandwich.txt
A   trunk/vendors/deli/pickle.txt
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook date</refname>
          <refpurpose>Gibt den Zeitstempel aus.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook date ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Gibt den Zeitstempel einer Revision oder Transaktion 
            im Projektarchiv aus.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>
          
          <para>Dies zeigt Datum und Uhrzeit der Revision 40 
            aus dem Projektarchiv:</para>

          <screen>            
$ svnlook date -r 40 /tmp/repos/
2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook diff</refname>
          <refpurpose>Zeigt Unterschiede von geänderten Dateien und Eigenschaften.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook diff ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt Unterschiede von geänderten Dateien und Eigenschaften
            aus dem Projektarchiv im GNU-Stil.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--Revision (-r)
--Transaktion (-t)
--no-diff-deleted
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>
          
          <para>Dies zeigt eine neu hinzugefügte (leere) Datei, eine
            gelöschte und eine kopierte Datei:</para>

          <screen>
$ svnlook diff -r 40 /usr/local/svn/repos/
Copied: egg.txt (from rev 39, trunk/vendors/deli/pickle.txt)

Hinzugefügt: trunk/vendors/deli/soda.txt
==============================================================================

Geändert: trunk/vendors/deli/sandwich.txt
==============================================================================
--- trunk/vendors/deli/sandwich.txt	(original)
+++ trunk/vendors/deli/sandwich.txt	2003-02-22 17:45:04.000000000 -0600
@@ -0,0 +1 @@
+Don't forget the mayo!

Gelöscht: trunk/vendors/deli/chips.txt
==============================================================================

Gelöscht: trunk/vendors/deli/pickle.txt
==============================================================================
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook dirs-changed</refname>
          <refpurpose>Zeigt geänderte Verzeichnissen an.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook dirs-changed ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt Verzeichnissen an, die geändert wurden
            (bearbeitete Eigenschaften) oder deren Dateien geändert
            wurden.</para> </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt die Verzeichnisse, die in der Revision 40
            in unserem einfachen Projektarchiv geändert wurden:</para>

          <screen>
$ svnlook dirs-changed -r 40 /usr/local/svn/repos
trunk/vendors/deli/
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook help </refname>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>Auch svnlook -h oder svnlook -?.</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt den Helptext für svnlook.  Dieses Kommando ist,
            ebenso wie <command>svn help</command>, ihr bester Freund,
            auch wenn sie ihn nie anrufen oder zu ihrer Party
            einladen.</para> 
        </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>?, h</para>
        </refsect1>

      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook history</refname>
          <refpurpose>Zeigt Informationen über die Historie von einem
            Pfad im Projektarchiv (oder vom Basisverzeichnis wenn kein
            Pfad angegeben wird).
          </refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook history ARCHIV_PFAD 
            [PFAD_IN_REPOS]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt Informationen über die Historie von einem Pfad
            im Projektarchiv (oder vom Basisverzeichnis wenn kein Pfad
            angegeben wird).</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--show-ids
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt die Historie für den Pfad
            <filename>/tags/1.0</filename> ab Revision 20 in unserem
            einfachen Projektarchiv.</para>

          <screen>
$ svnlook history -r 20 /usr/local/svn/repos /tags/1.0 --show-ids
REVISION   PFAD &lt;ID&gt;
--------   ---------
      19   /tags/1.0 &lt;1.2.12&gt;
      17   /branches/1.0-rc2 &lt;1.1.10&gt;
      16   /branches/1.0-rc2 &lt;1.1.x&gt;
      14   /trunk &lt;1.0.q&gt;
      13   /trunk &lt;1.0.o&gt;
      11   /trunk &lt;1.0.k&gt;
       9   /trunk &lt;1.0.g&gt;
       8   /trunk &lt;1.0.e&gt;
       7   /trunk &lt;1.0.b&gt;
       6   /trunk &lt;1.0.9&gt;
       5   /trunk &lt;1.0.7&gt;
       4   /trunk &lt;1.0.6&gt;
       2   /trunk &lt;1.0.3&gt;
       1   /trunk &lt;1.0.2&gt;
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook info</refname>
          <refpurpose>Zeigt AutorIn, Datumstempel, Grösse der
            Log-Nachricht und Log-Nachricht.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook info ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt AutorIn, Datumstempel, Grösse der Log-Nachricht
            und Log-Nachricht.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt die Information über die Revision 40 in
            unserem einfachen Projektarchiv.</para>

          <screen>
$ svnlook info -r 40 /usr/local/svn/repos
sally
2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)
15
Menü umgekrempelt.
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook log</refname>
          <refpurpose>Zeigt die Log-Nachricht.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook log ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die Log-Nachricht.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>
          
          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>
        
        <refsect1>
          <title>Beispiele</title>
          
          <para>Dies zeigt die Log-Nachricht für die Revision 40 in
            unserem einfachen Projektarchiv:</para>

          <screen>
$ svnlook log /tmp/repos/
Menü umgekrempelt.
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook propget</refname>
          <refpurpose>Zeigt den Wert einer Eigenschaft für einen
            Pfad im Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook propget ARCHIV_PFAD PROPNAME PFAD_IM_ARCHIV</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt den Wert einer Eigenschaft für einen Pfad im
            Projektarchiv.</para>

          </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>pg, pget</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt den Wert der Eigenschaft 'Gewuerz' für die
            Datei <filename>/trunk/sandwich</filename> in der
            <literal>HEAD</literal> Revision:</para>

          <screen>
$ svnlook pg /usr/local/svn/repos Gewuerz /trunk/sandwich
Senf
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook proplist</refname>
          <refpurpose>Zeigt Namen und Werte von Eigenschaften für
            Dateien und Verzeichnisse im Projektarchiv.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook proplist ARCHIV_PFAD PFAD_IM_ARCHIV</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die Namen der Eigenschaften eines Pfades im
            Projektarchiv.  Mit <option>--verbose</option> wird auch
            der Wert der Eigenschaft angezeigt.</para>

          </refsect1>

        <refsect1>
          <title>Alternative Namen</title>
          <para>pl, plist</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
--verbose (-v)
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <para>Dies zeigt die Namen der Eigenschaften für die Datei
            <filename>/trunk/README</filename> in der
            <literal>HEAD</literal> Revision:</para>

          <screen>
$ svnlook proplist /usr/local/svn/repos /trunk/README
  original-author
  svn:mime-type
</screen>

          <para>Dies ist das gleiche Kommando wie im vorigen Beispiel,
            aber diesmal werden die Werte der Eigenschaften auch
            angezeigt:</para>

          <screen>
$ svnlook proplist --verbose /usr/local/svn/repos /trunk/README
  original-author : fitz
  svn:mime-type : text/plain
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook tree</refname>
          <refpurpose>Zeigt die Baumstruktur</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook tree ARCHIV_PFAD [PFAD_IM_ARCHIV]</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die Baumstruktur des Projektarchives beginnend
            mit <replaceable>PFAD_IM_ARCHIV</replaceable> (wenn
            angegeben, andernfalls an der Basis), sowie optional die
            Knoten-IDs der Revisionen.</para>
        </refsect1>

        <refsect1>
          <title>Optionen</title>

          <screen>
--Revision (-r)
--Transaktion (-t)
--show-ids
</screen>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>
          
          <para>Dies zeigt die Baumstruktur (mit Knoten-IDs) für die
            Revision 40 in unserem einfachen Projektarchiv:</para>

          <screen>
$ svnlook tree -r 40 /usr/local/svn/repos --show-ids
/ &lt;0.0.2j&gt;
 trunk/ &lt;p.0.2j&gt;
  vendors/ &lt;q.0.2j&gt;
   deli/ &lt;1g.0.2j&gt;
    egg.txt &lt;1i.e.2j&gt;
    soda.txt &lt;1k.0.2j&gt;
    sandwich.txt &lt;1j.0.2j&gt;
</screen>
          
        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook uuid</refname>
          <refpurpose>Zeigt die <literal>UUID</literal> des
          Projektarchives.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook uuid ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die <literal>UUID</literal> des Projektarchives.
            Die UUID ist die <emphasis>U</emphasis>niversal
            <emphasis>U</emphasis>nique
            <emphasis>ID</emphasis>entifier des Projektarchives.  Der
            Subversion Client benutzt diese Identifier um verschiedene
            Projektarchiven voneinander zu unterscheiden.</para>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

          <screen>          
$ svnlook uuid /usr/local/svn/repos
e7fe1b91-8cd5-0310-98dd-2f12e793c5e8
</screen>

        </refsect1>
      </refentry>

      <!-- ================================================================= -->
      <refentry>
        <refnamediv>
          <refname>svnlook youngest</refname>
          <refpurpose>Zeigt die neueste Revisionsnumber.</refpurpose>
        </refnamediv>
        <refsect1>
          <title>Übersicht</title>
          <programlisting>svnlook youngest ARCHIV_PFAD</programlisting>
        </refsect1>
        <refsect1>
          <title>Beschreibung</title>

          <para>Zeigt die neueste Revisionsnumber eines Projektarchives.</para>
        </refsect1>

        <refsect1>
          <title>Beispiele</title>

        <para>Dies zeigt die neueste Revisionsnummer für unser
            einfaches Projektarchiv:</para>

          <screen>          
$ svnlook youngest /tmp/repos/ 
42
</screen>

        </refsect1>
      </refentry>

    </sect2>
  </sect1>
</chapter>

<!--
local variables: 
sgml-parent-document: ("book.xml" "chapter")
end:
-->
