Può una sovversione repository essere spostato, ma il suo specchio rimane lo stesso?
Domanda
Sto cercando di spostare un repository Subversion su un nuovo server, ma lasciare il suo specchio dove si trova. Ho fatto quanto segue:
- Dump vecchia repo
- load dump in un nuovo repo
- Impostazione del nuovo repo post-commit hook per svnsync allo specchio esistente
Il gancio:
#!/bin/sh
svnsync --non-interactive sync https://mirror.example.com:443/svn/iaw \
--sync-username svnsyncuser --sync-password svnsyncpass \
--source-username svnsyncuser --source-password svnsyncpass &
exit 0
Come prevedibile, quando si tenta di eseguire questo gancio dal nuovo repo ottengo il seguente:
svnsync: OPZIONI di 'http: //oldrepo.url/svn/iaw': Impossibile risolvere il nome host `oldrepo.url ': Host not found (http: //oldrepo.url)
Il problema è che lo specchio è stato inizializzato con l'url del vecchio pronti contro termine. Qualcuno sa se questo può essere cambiato, o ho bisogno di ricominciare da zero con un nuovo specchio?
Molte grazie
Soluzione
È possibile utilizzare Subversion per modificare le proprietà di revisione sulla rev 0 del repository specchio. Cioè:.
svn propset --revprop -r0 svn:sync-from-url http://newrepo.url/svn/iaw \
https://mirror.example.com:443/svn/iaw
vedere il riquadro intitolato "svnsync Contabilità" nel sezione Repository la replica del SVN libro .
Altri suggerimenti
Tutte le informazioni di sincronizzazione di svn specchio è memorizzato nella directory / repo / db / revprops. Nella directory, è possibile visualizzare i file come: 0, 1, 2,
grep -R "http: //oldrepo.url" / repo / db / revprops
e dopo a trovarlo, modificarlo per nuovo indirizzo di pronti contro termine, e può funzionare ora.