Come rimuovo una cartella dal controllo del codice sorgente con TortoiseSVN?


129

Come rimuovo una cartella dal controllo del codice sorgente con TortoiseSVN ?


10
Buona domanda. Questo è ridicolmente complicato per quello che dovrebbe essere un compito semplice.
Paul Suart,

Una nota per chiunque abbia usato "Aggiornamento SVN per revisione" (piuttosto che checkout svn): prova a utilizzare nuovamente Aggiornamento SVN per revisione ma questa volta con Profondità aggiornamento impostato su Escludi.
Wallace Brown,

puoi eliminare la .svncartella correlata
ahmednabil88,

Mi sono sempre chiesto se su Windows / Tortoise è OK cancellare semplicemente una cartella locale sul PC. Quindi, c'è un repository REPO sul tuo server. E ti capita di averne una versione sul tuo PC, LOCALFOLDER. Non hai più bisogno di quella versione locale su quel PC. In questo caso elimino semplicemente la cartella LOCALFOLDER sul PC. (Non faccio nulla, dal menu Tortoise prima di gettare LOCALFOLDER nel cestino.) Per essere chiari, non voglio influenzare REPO in alcun modo - semplicemente non voglio / ho più bisogno della versione LOCALFOLDER. Mi sono sempre chiesto se è giusto farlo?
Fattie,

Oppure, Tortoise mantiene "qualcos'altro" da qualche parte sul PC, in modo che da quel momento in poi Tortoise sentirà che manca LOCALFOLDER ??
Fattie,

Risposte:


56

C'è un elemento dedicato nel menu contestuale esteso:

  • Tenere Shiftpremuto il tasto e fare clic con il tasto destro sulla cartella.
  • Nel menu TortoiseSVN fai clic su "Elimina (mantieni locale)"

inserisci qui la descrizione dell'immagine

Immagine ritagliata dalla pagina del menu di scelta rapida estesa di TortoiseSVN .
Elimina (mantieni locale) il documento di documentazione.


4
In realtà è CTRL + MAIUSC quando si fa clic con il pulsante destro del mouse sulla cartella. Vieni Stackoverflow perché ho trovato questa risposta in fondo?
hollystyles

4
Quale versione state usando? La versione 1.6.12 non ha l'opzione Elimina (mantieni locale). Né Shift né CTRL + Shift aiutano.
thehhv,

1
Ho appena controllato di nuovo e solo Shift + tasto destro funziona per me. La versione 1.6.10 di @thehhv ha ancora l'opzione.
bob esponja,

1
Risposta fantastica. Maiusc + clic funziona davvero con 1.6.10. Dopo averlo fatto, dovrai comunque eseguire il commit del file per vederlo scomparire dal repository remoto.
hotshot309,

2
Questa dovrebbe essere contrassegnata come risposta poiché è il modo più semplice usando TortoiseSVN
alejosoft il

176

Il modo più semplice è descritto qui: http://tortoisesvn.net/unversion.html

Quell'articolo è un po 'prolisso e alcuni dei metodi non hanno funzionato per me (come trascinare la cartella su se stessa - Windows 7 non lo permetterebbe)).

Ecco cosa, nell'articolo ha funzionato per me:

Semplice: quando si fa clic con il pulsante destro del mouse su una copia funzionante e si sceglie " Esporta ..." dal menu di scelta rapida, viene visualizzata una finestra di dialogo di esplorazione delle cartelle in cui è possibile scegliere la cartella in cui si desidera esportare la copia di lavoro. Se ora selezioni lo stesso percorso su cui si trova la tua copia di lavoro come destinazione (ovvero, stai esportando la copia di lavoro su se stessa), TortoiseSVN rimuoverà tutte le cartelle .svn di quella copia di lavoro.


3
Stefan, ho provato la procedura che hai descritto e TSVN mi mostra la finestra di dialogo "Unversion" (con una barra di avanzamento che mostra i progressi), ma dopo aver completato il processo, la cartella è la stessa di prima. Ho Win7 e la cartella si trova su una condivisione di rete - questo potrebbe avere a che fare con la procedura non riuscita (in silenzio)? (+1 comunque, perché questa procedura è esattamente ciò di cui ho bisogno)
Heinrich Ulbricht

Non dovrebbe fallire in silenzio. Sei sicuro che le cartelle nascoste .svn siano ancora lì?
Stefan

Sì, posso vederli. Il mio problema originale è che voglio eliminare un'intera directory estratta (compresi i sottodirectory) sulla condivisione di rete. Questo non è riuscito perché Windows dice che qualcuno sta usando i file. Quindi ho pensato che potrebbe essere la cache svn e che usando un metodo dal mondo TSVN avrei potuto risolvere questo problema di accesso. Ma senza fortuna :(
Heinrich Ulbricht

1
Per evitare la necessità di seguire un collegamento, la procedura viene ripetuta qui: Semplice: quando si fa clic con il pulsante destro del mouse su una copia funzionante e si sceglie "Esporta ..." dal menu di scelta rapida, viene visualizzata una finestra di dialogo di esplorazione delle cartelle in cui è possibile scegliere il cartella in cui si desidera esportare la copia di lavoro. Se ora selezioni lo stesso percorso su cui si trova la tua copia di lavoro come destinazione (ovvero, stai esportando la copia di lavoro su se stessa), TortoiseSVN rimuoverà tutte le cartelle .svn di quella copia di lavoro.
Charley Rathkopf

Quando ho provato questo ho iniziato a ricevere errori che la directory che avevo esportato su se stesso ora non era "una directory di lavoro" ed era "ostruita" e avrei dovuto ripulire, ma quando ho provato che (IIRC) ho ricevuto un errore che la directory principale era bloccata. Alla fine ho appena fatto un MOVE (trascina la cartella in una cartella non SVN e dal menu a discesa scegli "Esporta ...") e poi un Elimina (entrambi con Tortoise).
Clay Nichols,

12

Se si desidera rimuovere la cartella dal controllo del codice sorgente ma mantenerla localmente, il modo più semplice sarebbe

  1. crea un backup della cartella (copialo da qualche altra parte)
  2. seguire le istruzioni per eliminarlo
  3. ripristinare la cartella
  4. dire sovversione a "Ignora" la cartella

Dovresti anche eliminare la .svndirectory che si sta spostando nella cartella che stai rimuovendo o finirai per confondere svn / tortoise. Puoi anche fare un "Esportazione" per il passaggio 1 che rimuoverà tutte le .svndirectory per te (se lo stai facendo per un intero albero di directory piuttosto che per una singola directory, è molto più conveniente che ripulire le cartelle a mano) .


1
Per (1) è possibile esportare per sbarazzarsi dei dati SVN della copia.
dahlbyk,

Bene: devi eliminarlo tramite TortoiseSVN, ripristinarlo e quindi eliminare tutte le cartelle svn al suo interno (così come il file .version).
Probabilità

* e poi ignoralo - ha funzionato come un incantesimo (grazie)
Chance

Per me, solo esportandolo mi sono liberato del repository SVN e dei segni di spunta verdi sulla cartella, che volevo.
Hammad Khan,

7

Il menu TortoiseSVN ha un'opzione di esportazione che ti darà una copia della cartella staccata dal repository. In alternativa, puoi fare clic con il pulsante destro del mouse + trascinare una cartella e selezionare "Esporta da SVN qui" o "Esporta da SVN tutto qui".

"Esporta tutto" equivale a selezionare "Esporta anche file non visti" nella finestra di dialogo Esporta, che clonerà efficacemente la copia di lavoro senza le cartelle .svn.



2

Ricerca di Windows, imposta il sistema e contrassegna i file nascosti ... nome file ".svn" ... dopo la ricerca - ordina in modo che tutte le directory .svn siano raggruppate insieme ... evidenzia - premi cancella :)


2

Ho eseguito il comando tartaruga "Aggiorna a SVN 1.7" che ha preso tutte le cartelle .svn e le ho combinate in una singola cartella. Sono stato quindi in grado di eliminare solo la cartella .svn e tutto è andato bene!


2

Vedo che ci sono tre semplici metodi per sbloccare e mantenere una versione locale di un file (o una directory) con TortoiseSVN:

  1. Esportare sullo stesso percorso di Stefan ;
  2. Funzione "Elimina (Mantieni locale)" accessibile con il tasto Maiusc come risposta di bob esponja ;
  3. Annulla e aggiungi per ignorare l' opzione elenco che sto segnalando con questa risposta

Trovo quest'ultimo metodo il più semplice dei tre, mentre il primo (il più votato) il più lungo in termini di operazioni da eseguire.


2

Elimina la cartella .svn all'interno della cartella che desideri rimuovere dal controllo versione.


1

Questo è ciò che ha funzionato per me:

  1. Fare clic con il tasto destro sulla cartella / ramo che si desidera eliminare e utilizzare TortoiseSNV-> Elimina
  2. Esegui una pulizia. L'ho fatto dalla riga di comando svn cleanup <path to the folder to delete including folder name>,; altrimenti puoi fare lo stesso clic con il tasto destro sulla cartella ed eseguire una pulizia.
  3. Passare alla directory principale della cartella che si desidera eliminare e confermare le modifiche.

Questo dovrebbe rimuovere la cartella dalla directory di lavoro e da Subversion.


1

Esportare la cartella in una nuova posizione mentre l'opzione "Esporta file non visti in" selezionata ha funzionato perfettamente per me. TortoiseSVN rimuove tutte le impostazioni specifiche di Subversion e ottieni una cartella pulita. Ora puoi eliminare quello originale e spostare lì la nuova cartella esportata.


0

Di tanto in tanto mi imbatto in cartelle di lavoro funzionanti da Subversion che conosco più a lungo sotto il controllo della versione. Voglio "annullarli". Di solito faccio una specie di ricerca ed eliminazione su tutte le cartelle correlate .svn ma c'è un modo più semplice se hai installato TortoiseSVN.

Dovresti avere familiarità con il comando "Esporta". Questo farà una copia dei file in una nuova posizione senza tutte quelle fastidiose cartelle .svn. Se vuoi "annullare" qualcosa ma non ne vuoi una copia, fai semplicemente una "esportazione" e quando Tortoise chiede la "cartella in cui esportare" seleziona semplicemente la stessa cartella in cui si trova la tua copia di lavoro! Tortoise procederà alla rimozione di tutte le cartelle .svn.

Citazione: http://thecrumb.com/2008/09/25/removing-svn-files-with-tortoisesvn/


-1

Fai clic con il tasto destro su una copia funzionante e scegli "Esporta ..." dal menu contestuale. Viene visualizzata una finestra di dialogo di esplorazione delle cartelle.

Devi scegliere lo stesso percorso su cui si trova la tua copia di lavoro come destinazione. TortoiseSVN ti chiederà se desideri rimuovere tutte le cartelle .svn di quella copia di lavoro. Dice solo di si!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.