Errore di svn switch - non è lo stesso repository
-
06-09-2019 - |
Domanda
Ho recentemente spostato il server SVN e ora sto Tring per spostare le copie di lavoro dal mio computer al nuovo server. Ma ottengo l'errore più strano. faccio:
svn switch http://99.99.99.new/svn/company/project/trunk/web
ma ottengo
svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'
la mossa è stata fatta con il deposito e l'importazione ... e la radice dei pronti contro termine è in http: / /99.99.99.new/svn/company/project
voi ragazzi avete qualche idea di quello che potrebbe essere sbagliato? grazie mille
Soluzione
Prova a usare
svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
Come notato da Sporino nei commenti, dal momento che Subversion 1.7, c'è un comando separato relocate
:
svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
Altri suggerimenti
Inoltre, in TortoiseSVN c'è l'opzione "Trasferimento", che si dovrebbe usare in situazioni come queste (anziché l'opzione "Switch").
Il mio modo migliore per farlo una delocalizzazione SVN è questo:
svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
new_url_or_repository
In questo modo, utilizzando il diritto vecchio URL dal comando svn info
, si è sicuri di non entrare in un quella sbagliata, che è uno dei erros comuni.
Se tutto è corretto, verrà richiesto con i dettagli auth per la nuova posizione, se sono differenti.
Dopo l'emissione del comando, assicurarsi di verificare che la modifica è stata applicata guardando il parametro URL, il rilascio
svn info
Dopo essersi trasferito, aggiornare la copia di lavoro, per verificare che tutto è ok:
svn update
Il mio 2c ..
Utilizzare il parametro di riga di comando relocate
al comando switch
.
svn interruttore documentazione
A volte un amministratore potrebbe cambiare la "posizione di base" del repository - in altre parole, il contenuto del repository non cambia, ma l'URL principale utilizzato per raggiungere la radice del repository fa. Ad esempio, il nome host può cambiare, o lo schema URL, o forse solo il sentiero che porta al repository. Invece di checkout una nuova copia di lavoro, si può avere il comando svn switch "riscrivere" le gli inizi di tutti gli URL nella copia di lavoro. Utilizzare il comando --relocate di fare la sostituzione. Nessun contenuto del file vengono modificati, né è il repository contattato. E 'simile a esecuzione di uno script perl sopra propria copia di lavoro svn / directory che corre s / OldRoot / NewRoot /.
È necessario utilizzare l'opzione --relocate:
svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web
svnbook per ulteriori dettagli.