Come si rimuove il controllo Subversion per una cartella?

Ho una cartella, c:\websites\test , e contiene cartelle e file che sono stati estratti da un repository che non esiste più. Come faccio a impedire a Subversion di rintracciare quella cartella e una qualsiasi delle sottocartelle e dei file?

So che potrei semplicemente cancellare la cartella .svn , ma ci sono molte sottocartelle in molti livelli.

Inoltre, se si utilizza TortoiseSVN, è sufficiente esportare nella posizione di copia di lavoro corrente e rimuovere le cartelle e i file .svn.

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

Risposta aggiornata per Subversion 1.7:
In Subversion 1.7 la copia di lavoro è stata ampiamente rivista. C’è solo una cartella .svn, situata nella base della copia di lavoro. Se si utilizza 1.7, l’eliminazione della cartella .svn e dei relativi contenuti è una soluzione semplice (indipendentemente dall’utilizzo di TortoiseSVN o strumenti da riga di comando).

Su Linux, questo funzionerà:

  find . -iname ".svn" -print0 | xargs -0 rm -r 

Prova svn export .

Dovresti essere in grado di fare qualcosa del genere:

 svn export /path/to/old/working/copy /path/to/plain/code 

E poi basta cancellare la vecchia copia di lavoro.

TortoiseSVN ha anche una funzione di esportazione , che si comporta allo stesso modo.

Se stai .svn Windows allora puoi fare una ricerca su quella cartella per .svn e questo li elencherà tutti. Premendo Ctrl + A selezionerai tutti loro e premendo cancella verranno rimossi tutti gli oggetti “fastidiosi” di Subversion.

Su Linux il comando è:

 svn delete --keep-local file_name 

Ho scoperto che non è nemmeno necessario copiare in una posizione temporanea. Puoi fare un

 svn export --force . 

e i file .svn verranno rimossi in situ , lasciando gli altri file così come sono. Molto conveniente e meno incline al disordine.

Senza subshell in Linux per eliminare .svn cartelle .svn :

 find . -name .svn -exec rm -r -f {} + rm = remove -r = recursive (folders) -f = force, avoids a lot of "a your sure you want to delete file XY". 

Nessuna di queste risposte è stata soddisfacente per la mia situazione. Sono su subversion 1.8 e ho avuto una copia funzionante che aveva solo una singola cartella .svn nella primissima cartella, root. Tuttavia, volevo rimuovere alcuni rami dalla copia di lavoro.

Qualunque cosa facessi, ogni volta che eseguivo un ‘aggiornamento’ ripristinava quei file e li riportava tutti indietro. Non volevo rimuoverli dal repository, solo dal mio computer – ma avevo bisogno di mantenere il resto della copia funzionante in tatto (quindi non potevo semplicemente rimuovere la cartella .svn).

Soluzione? svn update --set-depth exclude

Questo è un “aggiornamento” lato client che esclude una directory specifica. Può essere trovato nei manuali su svnbook.com . In breve, lo descrive come:

A partire da Subversion 1.6, puoi adottare un approccio diverso. Innanzitutto, controlla la directory per intero. Quindi esegui svn update –set-depth exclude su una sottodirectory di cui non ti interessa.

Per TortoiseSVN, puoi anche fare la stessa cosa facendo clic con il pulsante destro del mouse sulla cartella che non vuoi, fai clic su Update to revision... , quindi imposta ‘Aggiorna profondità’ su Exclude , come mostrato in questa schermata:

inserisci la descrizione dell'immagine qui

Ha funzionato bene nel mio caso:

 find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf 

Usa il comando svn export :

 cd c:\websites\test svn export c:\websites\test_copy 

Tutti i file sotto il controllo della versione saranno esportati. Fai un doppio controllo per assicurarti di non aver perso nulla.

Basta rimuovere la cartella .svn all’interno della cartella richiesta, quindi il controllo verrà automaticamente rimosso.

Su Windows, puoi aggiungere un link rapido per quello al menu di scelta rapida di Esplora risorse. Basta avviare questo script di registro:

 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN] @="Delete SVN Folders" [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command] @="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 

Ciò aggiungerà un elemento chiamato “Elimina cartelle SVN” al menu del tasto destro. Questo cancellerà tutte le cartelle .svn in questa cartella e in tutte le sottocartelle.

Fonte (tedesco): http://www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/

Puoi usare “svn export” per creare una copia di quella cartella senza dati svn, oppure puoi aggiungere quella cartella per ignorare l’elenco

Per coloro che utilizzano NetBeans con SVN, esiste un’opzione ‘Subversion> Export’.

C’è anche un simpatico strumento open source chiamato SVN Cleaner che aggiunge tre opzioni al menu contestuale di Windows Explorer:

  • Rimuovi tutti .svn
  • Rimuovi tutto ma radice .svn
  • Rimuovi file di repository locali

Su Windows 7 si può semplicemente aprire la cartella del progetto e fare una ricerca per “.svn” se i file nascosti sono abilitati ed eliminare tutte le cartelle .svn trovate.

IL MODO MIGLIORE E SEMPLICE

Se pensi di poter vincere con un semplice comando magico, fallisci! SVN è davvero complicato e torna sempre in qualche modo con un nuovo messaggio di errore in Xcode. Prima o poi prometti … quindi devi farlo in modo intelligente!

Come saprai, le normali e migliori pratiche in Xcode stanno eliminando un file nel riquadro del progetto a sinistra. Se l’hai perso e in qualche modo cancellato in Finder sei nei guai. Grosso problema! Ma potresti risolverlo e risparmiare tempo se lo fai bene.

Innanzitutto, è necessario eliminare il riferimento SVN al file o alla cartella prima di poterlo effettivamente eliminare

  1. Se potessi semplicemente rimettere il file / cartella dal cestino o annullare l’ultimo passaggio quando lo hai eliminato, allora …

  2. Vai al Terminale – sì, il buon vecchio terminale – e vai in quella posizione. Il modo migliore è digitare cd quindi tirare la cartella / file sul terminale. Otterrai qualcosa di simile

cd / Users / UserName / Documents / Apps_Developing / …

Potresti controllare dove sei

ls

comando che elenca i tuoi file.

  1. Quindi è necessario eliminare il riferimento svn con un comando SVN:

    svn delete –keep-local fileName_toDelete

Questo cancellerà il file dal repository SVN, MA devi cancellarlo manualmente in Finder.

Controlla questo, http://www.hacktrix.com/how-to-delete-svn-folders-da-il tuo-project-on-windows-linux-and-mac

La risposta è sorprendentemente semplice: esporta la cartella su se stessa ! TortoiseSVN rileva questo caso speciale e chiede se si desidera rendere non copiata la copia di lavoro. Se la risposta è sì, le directory di controllo verranno rimosse e si avrà un albero di directory semplice, non derivato.

Un’altra soluzione Linux (più semplice):

 rm -r `find /path/to/foo -name .svn` 

svn export funziona bene, ma penso che questo sia:

 svn rm --keep-local  

Lo rimuove dal tuo repository locale.

Questo comando funziona per me:

trova . -iname “.svn” -print0 | xargs -0 rm -r

Io uso rsync:

 # copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output rsync -av --exclude .svn src srcStripped 

Gli utenti di NetBeans IDE possono farlo come di seguito:

  1. Apri il progetto SVN nel tuo IDE
  2. Seleziona il progetto

    fare clic destro Subversion Export

  3. Nella finestra di dialogo

    esporta in cartella / var / tmp / nome progetto premere export wait mostra completo chiedi vuoi aprirlo fai open on the fly

  4. Ora puoi passare a Git 🙂

La mia idea è di rimuovere la cartella .svn e spostare tutti gli altri file in una nuova cartella. È così semplice.

Quando si utilizza il sistema operativo Windows, andare al percorso della cartella e verificare che i file nascosti siano aperti, quindi è ansible vedere la cartella SVN lì. Basta rimuovere quella cartella.

Come punto vitale, quando si utilizza la shell per eliminare le cartelle .svn, è necessario l’argomento -depth per impedire che il comando find inserisca la directory appena cancellata e che mostri i messaggi di errore come ad es.

“find: ./.svn: nessun file o directory”

Di conseguenza, puoi utilizzare il comando find come di seguito:

 cd [dir_to_delete_svn_folders] find . -depth -name .svn -exec rm -fr {} \; 

Su Windows 10, dobbiamo andare su Windows Explorer , quindi andare su View e selezionare la casella di controllo View hidden files .

Quindi accedere alla cartella in cui è collegato il SVN in Esplora risorse ed eliminare la cartella / file .svn .