svnsync - non poteva ottenere il blocco su pronti contro termine di destinazione
Domanda
Utilizzando svnsync
$ svnsync --non-interactive sync ${REPO}
dopo un'interruzione del processo c'era questo messaggio di errore con tentativi
Failed to get lock on destination repos, currently held by 'svn.test.com:0e4e0d98-631d-0410-9a00-9330a90920b3'
...
Failed to get lock on destination repos, currently held by 'svn.test.com:0e4e0d98-631d-0410-9a00-9330a90920b3'
svnsync: Couldn't get lock on destination repos after 10 attempts
C'è un modo per risolvere questo problema?
Soluzione
In realtà, v'è una certa funzionalità incorporata in svnsync in grado di "rubare" il blocco.
svnsync help sync
Spettacoli:
--steal-lock : Steal locks as necessary. Use, with caution,
if your mirror repository contains stale locks
and is not being concurrently accessed by another
svnsync instance.
e quando l'eseguo, ottengo un bel:
Stole lock previously held by '[hostname]'
Quindi, non è necessario la cosa propdel dopo tutto
Altri suggerimenti
È necessario rimuovere la proprietà di blocco sul repository remoto tramite linea di comando svn sul sito remoto che è stato lasciato da un guasto durante la sincronizzazione.
svn propdel --revprop -r0 svn:sync-lock file:///path/to/the/repository
Tecnicamente, è il repository di destinazione che è necessario eliminare la proprietà da, non necessariamente il repository remoto, come la destinazione potrebbe essere locale. Quindi, per questa specifica domanda:
svn propdel --revprop -r0 svn:sync-lock ${REPO}
La rimozione del blocco ha funzionato per me. Tuttavia, ho dovuto utilizzare un comando leggermente diverso, come ho bisogno di inviare il nome utente e la password dell'account da utilizzare per sbloccare l'account.
svn pdel --revprop -r 0 --username ??? --password ??? svn:sync-lock file:///path/to/the/repository
I ha avuto anche per eseguire questo comando dall'unità che il repository era su. (Modifica d: nel prompt dei comandi prima di eseguire il comando, se la mia Repository era in d:)
Prima di entrare il nome utente e la password, quando ho eseguito il comando che ho ottenuto il seguente errore:
revprop change blocked by pre-revprop-change hook (exit code 255)
ho trovato e aperto il file gancio pre-revprop-change
, e aveva il codice in là messa in vendita solo un certo nome utente che potrebbe apportare le modifiche necessarie. Utilizzando tale nome utente e password nel comando sopra rimosso il gancio.
Per confermare la presenza di blocco (anche se l'err ovviamente lo dice), a conduzione proplist con -verbose
svn pl --revprop -v -r 0 file:///svn/slave
quindi eliminare l'elica, se necessario!
Si deve fare due cose per risolvere il problema. Uno è soppressa la serratura come indicato in precedenza. Poi è necessario modificare il file di pre-revprop-change.tmpl ad essere vuoto, e renderlo eseguibile. Utilizzare chmod + x su Linux / Unix / Mac, ma cambiare il nome del file di pre-revprop-change.bat su Windows. Dopo questo è possibile caricare file di dump nel repository e quindi specchio è dove mai è necessario.