2010-09-09 21 views
9

ho bisogno di spostare la cartella svn ad un livello alto e mantenere tutta la storiaCome spostare la cartella svn di livello superiore rispetto

Tutti i file e le directory da https://myserver.com/svn/Project/trunk/ in https://myserver/svn/Project/

io uso un comando:

svn move https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/ 

ma dice:

svn: Impossibile spostare percorso ' https://myserver.com/svn/Project/trunk/ ' in sé

che sa come posso risolvere il problema? Grazie!

+0

Il layout del repository sembra ragionevole. Perché vuoi cambiarlo? – zellus

+0

Dai un'occhiata a http://stackoverflow.com/questions/496713/how-do-i-correct-a-subversion-project-where-i-omitted-trunk – zellus

+0

Grazie, perché trunk nella mia situazione è solo uno extra catena, non è necessario averlo. – ihorko

risposta

10

Se sei disposto a utilizzare TortoiseSVN quindi è possibile spostare semplicemente la cartella con il browser del repository. È così che di solito mi muovo le cartelle, molto semplice e indolore.

+0

Sì, io uso TortoiseSVN, è davvero molto semplice nel browser del repository, grazie mille per il vostro aiuto !!! – ihorko

1

Non so se è possibile spostarlo in questo modo, personalmente eseguirò il checkout del repository, spostare la cartella nel filesystem e quindi eseguire il commit delle modifiche, cancellandolo in un punto e aggiungendolo a un altro.

+1

non manterrai la cronologia, dopodiché avrai solo l'ultima revisione – ihorko

+0

perché? avrai tutte le modifiche, ma nel nuovo albero. –

+0

come ho pensato al problema un po 'ho trovato un'altra soluzione - dump repository su un albero specificato, diciamo: svnadmin repo repos/percorso/altro/interno> file.dump quindi eliminare dir "interno" -> lo rimuoverà dal repository e lo caricherà su un altro percorso: svnadmin load/repo/--parent-dir/path

1

Prova:

svn passare --relocate https://myserver.com/svn/Project/trunk/https://myserver/svn/Project/

Si prega di verificare ciò in un repository separato prima di eseguirlo sul proprio vero!

+0

Grazie , Ho provato, ma svn dice: svn: '.' non è una copia funzionante – ihorko

+1

Hai eseguito il comando dalla directory di base del progetto sul tuo file system? – Nix

+1

Ma un interruttore non sposterà alcun file sul server ... – mliebelt

0

Non credo che si possa passare direttamente alla directory esistente (in particolare la radice del repository). Forse l'opzione --force potrebbe aiutare.

Se è possibile alla cassa tutto il pronti contro termine si potrebbe spostare ogni directory dal tronco al livello superiore, sembra la soluzione più affidabile

svn mv * .. 

* non è supportato da alcuni clienti SVN

19

Stavo solo cercando questo. Poi ho iniziato a cercare una soluzione e non l'ho trovata davvero, tranne che mi ha fatto pensare a una soluzione.

Ci si aspetta il comando svn mv ./folder ./ per spostare tutto da ./folder a ./. Questo non è effettivamente vero, si sposterà folder nella directory corrente. Poiché questo è dove è già, il comando fallisce.

Quindi, la soluzione sarebbe quella di spostare tutto all'interno./folder-./.In effetti, il seguente comando fa proprio questo:

svn mv ./folder/* ./

-1
  1. check-out https://myserver.com/svn a qualche copia di lavoro
  2. directory "Progetto" delete
  3. copia dell'ultima revisione del progetto/tronco alla radice del copia
  4. lavoro commettere
1

mi sono imbattuto in un problema simile oggi, ma io non sapevo come spostarlo dalla tartaruga, dato che avevo anche le impostazioni per quella cartella.

Se la nuova posizione https://myserver/svn/Project/ dovrebbe avere solo gli elementi dal tuo vecchio luogo, qui è quello che ho fatto:

  • Mosso https://myserver.com/svn/Project/trunk/ in una nuova posizione temporanea (ad esempio https://myserver/svn/TempProject/);

  • Eliminato il percorso esistente che si desidera utilizzare (https://myserver/svn/Project/);

  • Ridenominato https://myserver/svn/TempProject/ a https://myserver/svn/Project/.

Questo ha funzionato per me. Ha conservato tutta la cronologia, le impostazioni di svn, ecc. La storia ha appena ricevuto un paio di nuove voci da tutte le cose in movimento.

Problemi correlati