Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.
svnmucc — Eine oder mehrere URL-basierte AKTIONen am Subversion-Projektarchiv vornehmen und das Ergebnis als eine (einzelne) neue Revision übertragen.
          svnmucc 
        AKTION...
svnmucc ist ein Programm zum Ändern von
        durch Subversion versionierter Daten, ohne dabei eine
        Arbeitskopie zu verwenden. Es erlaubt die Ausführung von
        Operationen direkt auf den Projektarchiv-URLs der Dateien und
        Verzeichnisse, die der Anwender ändern möchte. Jeder Aufruf
        von svnmucc versucht, eine oder mehrere
        AKTIONen, wobei die Ergebnisse
        dieser kombinierten ACTIONen atomar
        als eine einzelne neue Revision übertragen werden.
svnmucc unterstützt die folgenden Aktionen (und damit zusammenhängende Argumente), die auf der Kommandozeile in geordneten Aneinanderreihungen kombiniert werden können:
REV
            SRC-URL 
            DST-URL
            Kopiere die Datei oder das Verzeichnis an der Stelle
              SRC-URL in Revision
              REV nach
              DST-URL.
URL
            Erstelle ein neues Verzeichnis unter
              URL. Das Elternverzeichnis
              von URL muss bereits
              existieren (oder durch eine frühere Aktion von
              svnmucc erstellt worden sein), da
              dieser Befehl es nicht erlaubt, automatisch fehlende
              Zwischenverzeichnisse anzulegen.
SRC-URL 
            DST-URL
            Verschiebe die Datei oder das Verzeichnis von
              SRC-URL nach
              DST-URL.
URL
            Lösche die Datei oder das Verzeichnis bei
              URL.
SRC-FILE
            URL
            Hinzufügen einer neuen Datei – oder Ändern
              einer existierenden – an der Stelle
              URL, wobei der Inhalt der
              lokalen Datei SRC-FILE als
              Inhalt der Erstellten oder geänderten Datei verwendet
              wird. Als Sonderfall kann
              SRC-FILE -
              sein, was svnmucc dazu veranlasst,
              von der Standardeingabe als aus einer lokalen Datei im
              Dateisystem zu lesen.
NAME
            VALUE
            URL
            Setzt den Wert der Eigenschaft
              NAME beim Zielobjekt
              URL
              auf VALUE.
NAME
            FILE
            URL
            Setzt den Wert der Eigenschaft
              NAME beim Zielobjekt
              URL auf den Inhalt der Datei
              FILE.
NAME
            URL
            Löscht die Eigenschaft NAME
              vom Zielobjekt URL.
Die in der Kommandozeile von svnmucc angegebenen Optionen sind global für alle Aktionen, die durch diese Kommandozeile ausgelöst werden. Im Folgenden eine Liste der von diesem Werkzeug unterstützten Optionen:
--config-dir
            DIR
            Konfigurationsinformationen aus dem angegebenen
              Verzeichnis lesen, anstatt aus dem standardmäßigen Ort
              (.subversion im Heimatverzeichnis
              des Anwenders.
--config-option
            CONFSPEC
            Setzt für die Dauer des Kommandos den Wert einer
              Laufzeit-Konfigurationsoption.
              CONFSPEC ist eine
              Zeichenkette, die von der Konfigurationsoption den
              Namensraum, Namen und Wert angibt, den Sie zuweisen
              möchten, im Format
              DATEI:ABSCHNITT:OPTION=[WERT].
              In dieser Syntax bedeuten
              DATEI und
              ABSCHNITT jeweils die
              Laufzeit-Konfigurationsdatei (entweder
              config oder
              servers) und der Abschnitt darin, der
              die Option beinhaltet, dessen Wert Sie ändern möchten.
              OPTION ist natürlich die
              Option selbst und WERT der
              Wert (falls vorhanden), den Sie der Option zuweisen
              möchten. Um beispielsweise vorübergehend die Verwendung
              der Kompression im HTTP-Protokoll zu
              unterbinden, verwenden Sie
              --config-option=config:global:http-compression=no.
              Sie können diese Option mehrfach verwenden, um
              gleichzeitig mehrere Optionswerte zu ändern.
--extra-args (-X)
            ARGFILE
            Zusätzliche Kommandozeilenargumente aus der Datei
              ARGFILE lesen, wobei ein
              Argument pro Zeile angegeben ist. Als Sonderfall kann
              ARGFILE
              - sein, um anzugeben, das zusätzliche
              Argumente von der Standardeingabe zu lesen sind.
--file (-F)
            MSGFILE
            Den Inhalt der Datei
               MSGFILE als
               Protokollnachricht für die Übertragung
               verwenden.
--help (-h,
            -?)
            Zeige den Programmaufruf, danach beenden.
--message (-m)
            MSG
            MSG als
               Protokollnachricht für die Übertragung
               verwenden.
--no-auth-cache
              
            Das Zwischenspeichern von Authentisierungsinformationen (etwa Anwendernamen und Passwort) in den Laufzeitkonfigurationsverzeichnissen von Subversion verhindern.
--non-interactive
              
            Sämtliche interaktiven Rückfragen (etwa nach Zugangsdaten) unterbinden.
--revision (-r)
            REV
            Revision REV als
              Baseline-Revision für alle Änderungen durch die Aktionen
              von svnmucc machen. Dies ist eine
              wichtige Option, deren Verwendung sich Anwender
              angewöhnen sollten, sobald sie existierende versionierte
              Objekte ändern, um zu verhindern, dass ungewollt
              zeitgleiche Änderungen von Kollegen rückgängig gemacht
              werden.
--root-url (-U)
            ROOT-URL
            ROOT-URL als Basis-URL
              verwenden, zu denen alle anderen URL-Ziele relativ sind.
              Dieser URL muss nicht der Wurzel-URL des Projektarchivs
              sein (wie er etwa von svn info
              angezeigt wird). Es kann irgend ein URL sein, den die
              verschiedenen bei den
              svnmucc-Aktionen angegebenen Ziele
              gemein haben.
--password (-p)
            PASSWD
            PASSWD als Passwort bei
              der Authentisierung gegenüber einem  Subversion-Server
              verwenden. Wird es nicht angegeben oder ist es nicht
              korrekt, wird Subversion gegebenenfalls
              nachfragen.
--username
            NAME
            USERNAME als
              Anwendernamen bei der Authentisierung gegenüber einem
              Subversion-Server verwenden.  Wird er nicht angegeben
              oder ist es nicht korrekt, wird Subversion
              gegebenenfalls nachfragen.
--version
              
            Die Versionsinformation des Programms anzeigen und beenden.
--with-revprop
            NAME=VALUE
            Den Wert der Revisionseigenschaft
              NAME bei der übertragenen
              Revision auf VALUE
              setzen.
Um den Inhalt einer Datei (sicher) ohne eine Arbeitskopie zu ändern, verwenden Sie svn cat, um den aktuellen Inhalt der Datei anzufordern und svnmucc put, um den geänderten Inhalt davon zu übertragen.
$ # Ein paar Hilfsvariablen setzen.
$ export FILEURL=http://svn.example.com/projects/sandbox/README
$ export BASEREV=`svn info ${FILEURL} | \
                  grep '^Last Changed Rev' | cut -d ' ' -f 2`
$ # Eine Kopie des aktuellen Inhalts holen.
$ svn cat ${FILEURL}@${BASEREV} > /tmp/README.tmpfile
$ # Bearbeiten der (kopierten) Datei.
$ vi /tmp/README.tmpfile
$ # Den neuen Inhalt unserer Datei übertragen.
$ svnmucc -r ${BASEREV} put README.tmpfile ${FILEURL} \
          -m "Tweak the README file."
r24 committed by harry at 2013-01-21T16:21:23.100133Z
# Aufräumen.
$ rm /tmp/README.tmpfile
        Einen ähnlichen Ansatz zum Ändern der Eigenschaft einer Datei oder eines Verzeichnisses verfolgen. Verwenden Sie einfach svn propget und svnmucc propsetf statt svn cat bzw. svnmucc put.
$ # Ein paar Hilfsvariablen setzen.
$ export PROJURL=http://svn.example.com/projects/sandbox
$ export BASEREV=`svn info ${PROJURL} | \
                  grep '^Last Changed Rev' | cut -d ' ' -f 2`
$ # Eine Kopie des Werts der Verzeichniseigenschaft "license" holen.
$ svn -r ${BASEREV} propget license ${PROJURL} > /tmp/prop.tmpfile
$ # Die Eigenschaft ändern.
$ vi /tmp/prop.tmpfile
$ # Den neuen Wert der Eigenschaft übertragen.
$ svnmucc -r ${BASEREV} propsetf prop.tmpfile ${PROJURL} \
          -m "Tweak the project directory 'license' property."
r25 committed by harry at 2013-01-21T16:24:11.375936Z
# Aufräumen.
$ rm /tmp/prop.tmpfile
        Lassen Sie uns nun ein paar Beispiele mit Mehrfachoperationen ansehen.
Um eine „wanderndes Tag“ zu implementieren, bei dem ein einzelner Tag-Name zur Bezeichnung verschiedener Momentaufnahmen einer Code-Basis wiederverwendet wird (z.B., die letzte, aktuelle stabile Version), verwenden Sie svnmucc rm und svnmucc cp:
$ svnmucc -U http://svn.example.com/projects/doohickey \
          rm tags/latest-stable \
          cp HEAD trunk tags/latest-stable \
          -m "Das 'latest-stable' Tag weiterschieben."
r134 committed by harry at 2013-01-12T11:02:16.142536Z
$ 
        Im vorigen Beispiel haben wir listigerweise die Verwendung
        der Option --root-url (-U) vorgestellt.
        Verwenden Sie diese Option, um einen Basis-URL anzugeben, zu
        dem alle anderen URLs der Operanden relativ sind (und ersparen
        Sie sich dadurch etwas Schreibarbeit).
Das Folgende zeigt ein Beispiel, wie svnmucc verwendet wird, um in einer einzelnen Revision Ihrem Projekt ein neues Tag hinzuzufügen, die eine frisch erzeugte Beschreibungsdatei beinhaltet, und ein Verzeichnis entfernt, das etwa nicht in eine Lieferung gehört.
$ echo "Dies ist Release 1.2.0." | \
       svnmucc -U http://svn.example.com/projects/doohickey \
               -m "Release 1.2.0 mit Tag versehen." \
               -- \
               cp HEAD trunk tags/1.2.0 \
               rm tags/1.2.0/developer-notes \
               put - tags/1.2.0/README.tag
r164 committed by cmpilato at 2013-01-22T05:26:15.563327Z
$ svn log -c 164 -v http://svn.example.com/projects/doohickey
------------------------------------------------------------------------
r164 | cmpilato | 2013-01-22 00:26:15 -0500 (Tue, 22 Jan 2013) | 1 line
Geänderte Pfade:
   A /tags/1.2.0 (from /trunk:163)
   A /tags/1.2.0/README.tag
   D /tags/1.2.0/developer-notes
Release 1.2.0 mit Tag versehen.
$ 
        Das vorangegangene Beispiel zeigt nicht nur, wie mehrere
        unterschiedliche Dinge mit einem einzelnen Aufruf von
        svnmucc bewerkstelligt werden können,
        sondern auch, wie die Standardeingabe als Quelle für den
        Inhalt einer neuen Datei dienen kann. Beachten Sie das
        Vorhandensein von --, um anzuzeigen, dass
        keine weiteren Optionen auf der Kommandozeile folgen. Das wird
        benötigt, damit das nackte - der Aktion
        svnmucc put nicht als fehlerhafter
        Optionsindikator interpretiert wird.