2014-06-10 4 views
0

J'ai configuré un serveur Edge Subversion sous Windows dans le cadre d'un exercice de migration. Actuellement, je suis aux prises avec svnsync.
Lorsque vous essayez d'exécuter la commande (sur le serveur principal):Subversion Edge svnsync: Echec de la requête DAV & erreur de modification pre-revprop

svnsync initialize https://main.subversion.server/svn/main.svn https://mirror.subversion.server/svn/main.svn --disable-locking --username=svnsync --password=SubversionEdge 

il me donne les 2 erreurs suivantes:

svnsync: E175002: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent 

et

svnsync: E175002: Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook 

J'ai essayé plusieurs différents crochets pré-revprop-change, mais sans aucun succès, y compris "exit /b 1". J'ai également essayé s'il s'agissait d'un problème de droits (utilisateur modifié que le service utilise pour s'exécuter et vérifié que le compte avait accès à tous les fichiers nécessaires) Est-ce que quelqu'un a une idée de comment réparer (ou contourner) cela?

Répondre

1

Il doit être exit 0, pas exit 1, voir SVNBook | pre-revprop-change hook reference:

Le crochet doit exister réellement et retourner une valeur de sortie zéro avant une modification de la propriété de révision peut se produire.

Par exemple, il suffit de mettre à exit 0 avant revprop changement crochet du référentiel cible. Cependant, tout utilisateur authentifié et autorisé peut modifier les propriétés de révision. Ce n'est pas ce que tu veux, je suppose.

Vous pouvez mettre en œuvre une certaine logique dans le script de crochet pour permettre que l'utilisateur 'svnsync' pour modifier les propriétés de révision:

IF "%3" == "svnsync" (goto :label1) else (echo "Only svnsync user can change revision properties" >&2) 

exit 1 
goto :eof 

:label1 
exit 0 
0

Pour les fenêtres, s'il vous plaît utiliser pré-revprop-changement hook.bat

Et vérifiez si le compte, par exemple 'svnsync' dans votre cas, a l'autorisation d'écriture sur le repo cible.

Questions connexes