2015-01-23 8 views
10

La posizione del nostro repository svn è stata modificata in un altro URL e inoltre i percorsi relativi di trunk, branches e tag sono stati spostati un po '. Ora quando provo a svn relocate, ottengo questo messaggio.svn errore di riposizionamento - destinazione di riposizionamento non valida

Invalid relocation destination: 'https://my-repo-server/new-proj-name/branches/my-branch' (does not point to target)

Ho provato trasferirsi al URL del repository, e provato di nuovo con l'URL del ramo volevo passare. Non ho provato con switch --relocate dato che è deprecato nella mia versione di svn.

Credo che avrebbe funzionato se la struttura della cartella non fosse stata modificata.

+0

È in realtà lo stesso repository in una nuova posizione o un nuovo repository con lo stesso codice? Gli UUID sono gli stessi con 'svn info'? – Ben

+0

È un nuovo repository con lo stesso codice e la stessa cronologia. Essenzialmente, abbiamo diviso il repository in due; uno per il codice di front-end e uno per il back-end. – AlexMA

+0

Ecco perché "riposizionare" non funziona. Il riposizionamento funziona solo quando si sposta l'hosting dello * stesso * repository in una nuova posizione; uno dei controlli che esegue prima di consentire al trasloco di procedere (dettagliato nel [svn book] (http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.relocate.html)) , consiste nel confrontare l'UUID del vecchio repository con il nuovo repository. – Ben

risposta

10

risolto con una soluzione di ripiego - dall'interno della radice della copia di lavoro, cancellato la cartella Svn e corse svn checkout <new-url-of-branch> .

Se qualcuno ha una risposta migliore che non comporta l'eliminazione della cartella svn, Lo selezionerò.

+0

http://stackoverflow.com/questions/14656527/svn-switch-from-trunk-to-branch –

+0

Ho dovuto usare il parametro --force. – ATorras

0

(Questo è stato inteso come commento alla propria risposta @ di AlexMA, ma alcuni ha finito per conto suo.)

Forse si può modificare il wc.db all'interno .svn directory con sqlite3 CLI. Ma prima bisogna scoprire la struttura del database per modificare direttamente le tabelle rilevanti tramite SQL - semplicemente scaricando wc.db, modificando il file di dump, caricando di nuovo come con il repository si ottiene una copia funzionante non più riconosciuta come tale. Ma questo potrebbe aprire ulteriori problemi. Dopo tutto, la copia di lavoro è considerata dispensabile dagli sviluppatori SVN, quindi è meglio aggiornare il WC all'ultima revisione del vecchio repository, controllare un nuovo WC dal nuovo repository con la stessa revisione, quindi copiare tutte le modifiche non modificate dal vecchio al nuovo WC e ricreare eventuali changelists.

Problemi correlati