svnsync non funziona: cambia revprop bloccata gancio pre-revprop-change
Domanda
Sto cercando di copiare un repository utilizzato utilizzando svnsync (sto facendo in questo modo al fine di garantire un uso ottimale del mio repository finché la sua macchina è in funzione), ma non sembra funzionare.
Ho due macchine (ho cambiato i nomi, ma non le altre informazioni)
- INIZIALE: custom di Linux con Subversion 1.4.5 (r25188) (come riportato da svnadmin). Da questa macchina, sto cercando di sincronizzazione su un repository chiamato SOURCE. Questo repository è possibile accedere utilizzando il protocollo HTTP, e un utente svnsync è stato creato. In
SOURCE/hooks
, solo un file eseguibile esiste:.pre-revprops-change
- FINALE: Ubuntu con Subversion 1.6.6 (r40053) (come riportato da svnadmin). Su questa macchina, io sincronizzare su un repository chiamato svn16. Questo repository è possibile accedere utilizzando il protocollo HTTP, e un utente svnsync è stato creato. In
svn16/hooks
, file eseguibili sonopre-revprop-change
estart-commit
. Su questa macchina,dav_svn.conf
contieneSVNParentPath /var/svn
direttiva, rendendo tutti i repository accessibile sotto http: // FINALE / svn
Ho assicurato URL e accesso / PWD sono corrette con l'apertura di ciascun URL del repository nel mio browser e l'emissione di finestre di dialogo di autenticazione, che sembravano sempre al lavoro.
Sto cercando di eseguire il seguente comando
svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE
Ma è sempre finiscono per mostrare
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.
Credo che ci sia un qualche tipo di problema di configurazione somewhere§. Ma cosa ? E dove ? Ho raggiunto i miei limiti, e il web sembra di nessun aiuto qui, come i vari documenti che ho visto Suggerisco di fare ganci eseguibile l'intero universo è una soluzione efficiente (cosa che non è nel mio caso).
Soluzione
Si scopre che ero stupido di stupido.
In un tale caso di errore, il modo più semplice per garantire tutto funzioni correttamente è invocando vari ganci mano.
E 'rivelato il mio gancio pre-revprop-change
è stato erroneamente scritto con
"#!/bin/sh"
exit 0
Ovviamente, rimuovendo il "
risolto il problema.
Altri suggerimenti
Solo una piccola nota, per evitare molto spesso errore.
In caso di tale errore prima essere sicuri che pre-revprops-cambi il tempo del file è eseguibile. In caso contrario, eseguire:
chmod +x $DEST_SVN_REPO/hooks/pre-revprops-change
,
dove $ DEST_SVN_REPO -. Percorso di repository di destinazione
vedere qui: https://svn.apache.org/repos/asf/subversion /trunk/notes/svnsync.txt
destinazione config è fallito. fase di INIT (la copia di attributi) deve essere fatto. All'interno pre-revprops cambio di script si dovrebbe codice nome utente permesso di aggiornamento. altrimenti destinazione sarà danneggiato dagli utenti. svn non può funzionare come nodi active-active. di solito si configurano gancio copione per impedire qualsiasi modifica da parte degli utenti. essi dovrebbero avere accesso solo Reaad ottenuto.
in generale vai al servizio web superutente. c'è questo è fuori discussione.