Domanda

Se si elimina una directory da una copia di lavoro SVN, ma non è stato ancora commesso, non è ovvio come per tornare indietro. Google suggerisce anche "svn Annulla Elimina prima di commit" come una query comune quando si digita "svn undo d", ma i risultati della ricerca sono inutili.

modifica: Vorrei una soluzione che funziona in Subversion 1.4.4

È stato utile?

Soluzione

svn revert deletedDirectory

Ecco la documentazione per il comando svn revert.


Modifica

Se deletedDirectory stato eliminato usando rmdir e non svn rm, avrete bisogno di fare

svn update deletedDirectory

, invece.

Altri suggerimenti

1) fare

svn revert . --recursive

2) analizzare l'output per gli errori come

"Failed to revert 'dir1/dir2' -- try updating instead."

3) chiamare svn up per ciascuna delle directory di errore:

svn up dir1/dir2

Che cosa ha funzionato per me è

svn revert --depth infinity deletedDir

Fare un (ricorsiva) Ripristinare il funzionamento da un livello al di sopra della directory è stata eliminata.

Per fare in un uno di linea si può provare qualcosa di simile:

svn status | cut -d ' ' -f 8 | xargs svn revert

La soluzione più semplice che ho trovato è stato quello di cancellare la directory genitore dalla copia di lavoro (con rm -rf, non svn cancellare), e quindi eseguire svn update nel nonni. Ad esempio, se avete cancellato a / b / c, rm-rf a / b, cd una, svn up. Che porta tutto indietro. Naturalmente, questo è solo una buona soluzione se non si hanno altre modifiche non nella directory principale che si desidera conservare.

Speriamo che questa pagina sarà in cima ai risultati la prossima volta che google questa domanda. Sarebbe ancora meglio se qualcuno ha suggerito un metodo più pulito, naturalmente.

Si potrebbe rimuovere la cartella e aggiornare la directory padre prima di impegnarsi:

rm -r some_dir

svn update some_dir_parent

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top