SVN Annulla Elimina prima di commettere
-
21-09-2019 - |
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
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