2010-08-23 6 views
9

Ich versuche, ein benutztes Repository mithilfe von svnsync zu kopieren (Ich mache es auf diese Weise, um eine optimale Nutzung meines Repository zu gewährleisten, solange es Maschine funktioniert), aber es scheint nicht zu funktionieren.svnsync funktioniert nicht: Revprop-Änderung blockiert durch pre-revprop-change-Hook

Ich habe zwei Maschinen (ich habe die Namen geändert, aber nicht die anderen Infos)

  • INITIAL: benutzerdefinierte Linux mit Subversion 1.4.5 (r25188) (wie von svnadmin berichtete). Von diesem Computer aus versuche ich, ein Repository namens SOURCE zu synchronisieren. Auf dieses Repository kann über das http-Protokoll zugegriffen werden, und ein svnsync-Benutzer wurde erstellt. In SOURCE/hooks ist nur eine ausführbare Datei vorhanden: pre-revprops-change.
  • ENDGÜLTIG: Ubuntu mit Subversion 1.6.6 (r40053) (wie von svnadmin gemeldet). Auf diesem Computer werde ich auf einem Repository namens svn16 synchronisieren. Auf dieses Repository kann über das http-Protokoll zugegriffen werden, und ein svnsync-Benutzer wurde erstellt. In svn16/hooks sind ausführbare Dateien pre-revprop-change und start-commit. Auf dieser Maschine enthält dav_svn.confSVNParentPath /var/svn Richtlinie, so dass alle Repositories zugänglich unter http://FINAL/svn

Ich habe URLs und Login sichergestellt/PWD korrekt sind, indem jedes Repository-URL in meinem Browser und Ausgabe von Authentifizierungsdialoge, die immer zu funktionieren schien .

Ich versuche, den folgenden Befehl

svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE 

Aber es immer

Authentication realm: <http://FINAL:80> All Subversion Repositories hosted on FINAL 
Password for 'ubunut-user': 
Authentication realm: <http://FINAL.fr:80> All Subversion Repositories hosted on FINAL 
Username: svnsync 
Password for 'svnsync': 
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent 
svnsync: At least one property change failed; repository is unchanged 
svnsync: Error setting property 'sync-lock': 
Revprop change blocked by pre-revprop-change hook (exit code 255) with no output. 

Ich denke, es zeigt am Ende auszuführen, ist eine Art von Konfigurationsproblem somewhere§. Aber was ? Und wo ? Ich habe meine Grenzen erreicht, und das Web scheint hier keine Hilfe zu sein, da die verschiedenen Dokumente, die ich vorgeschlagen habe, Haken zu machen, die vom gesamten Universum ausführbar sind, eine effiziente Lösung sind (was in meinem Fall nicht der Fall ist).

Antwort

13

Stellt sich heraus, ich war dümmer als dumm.

In solch einem Fehlerfall ist der einfachste Weg, um sicherzustellen, dass alles korrekt funktioniert, der Aufruf verschiedener Hooks von Hand.

Es zeigte meine pre-revprop-change Haken falsch mit

"#!/bin/sh" 
exit 0 

Offensichtlich geschrieben wurde, die " das Problem gelöst zu entfernen.

+0

Für Windows nur eine leere bat-Datei für die \ Haken \ pre-revprop-change.bat' –

12

Nur eine kleine Notiz, um sehr oft Fehler zu vermeiden.

Im Falle eines solchen Fehlers zuerst sicher sein, dass pre-revprops-change Datei ausführbar ist. Wenn nicht, führen Sie:

chmod +x $DEST_SVN_REPO/hooks/pre-revprops-change,

wo $ DEST_SVN_REPO - Pfad zum Ziel-Repository.

+0

Mit Samba, die Datei nicht ausführbar 'Echo rem Dummy>% -Spiegel% Haken erstellen. Es ausführbar zu machen, indem ich die Optionen auf meinem 'mount'-Befehl änderte, löste mein Problem. Vielen Dank. –

+0

das sollte pre-revprop-change lesen, nicht dass irgendjemand anderes als ich noch svn benutzt –

1

siehe hier: https://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt

Sie Ziel Config fehlgeschlagen ist.INIT-Phase (Kopieren von Attributen) muss durchgeführt werden. Innerhalb vor-revprops-Änderung Skript sollten Sie Code-Benutzername erlaubt zu aktualisieren. Andernfalls wird das Ziel von Benutzern beschädigt. svn kann nicht als aktiv-aktive Knoten arbeiten. Normalerweise konfigurieren Sie ein Hook-Skript, um Änderungen durch Benutzer zu verhindern. Sie sollten nur reaad Zugriff bekommen haben.

gehen Sie in der Regel zum Superuser-Web-Service. da ist das nicht Thema.