2009-04-14 7 views
8

Non mi sono reso conto che svn delete eliminerebbe la mia copia locale, volevo solo uscire dal repository. Ora tutti i miei file sono spariti e neanche nel cestino. C'è un modo per recuperarli?Annulla eliminazione SVN ./* --force


vorrei chiarire, questi file mai reso nel repository. Stavo cercando di sbarazzarmi di qualche vecchia roba nel repository in modo che potessi controllarli.

Sto eseguendo Ubuntu su un filesystem ext3. Va bene però .... Sono riuscito a rifare ciò che ho cancellato in circa 2 ore.

+1

Ouch. Esiste un backup che copre il repository SVN o la copia locale? Anche accidentalmente? Riesci a recuperare i blocchi del disco con un'utilità non ripristinata? Soprattutto, cerca di non andare nel panico ... – RBerteig

+2

Ciao Mark, volevo solo dire che ho appena affrontato lo stesso problema, anche se ho usato 'svn remove' che pensavo non avrebbe fatto lo stesso di' svn delete' . C'era anche un messaggio che mi chiedeva se volevo davvero farlo, ma questo messaggio non indicava che i miei file sarebbero stati eliminati localmente. Penso che dovrebbero rendere quel messaggio più appropriato. –

+1

@Brian: Sì, lo so eh !? Terribile! – mpen

risposta

3

No.

A meno che non siano ancora in uso da qualche altra applicazione, mi dispiace.

+0

Che cosa ricorda, qualcun altro è in questo progetto? Potrebbero avere una copia. –

+0

No, ai netbeans piace chiudere i file quando vengono cancellati per qualche motivo ritardato ... altrimenti sarebbe ancora in memoria. – mpen

+0

Molti IDE tendono a riaprirsi automaticamente quando vengono messi in primo piano, questo è principalmente per aiutare il processo di sviluppo se un processo remoto modifica parte di un file in modo che si possa continuare a lavorare in modo che non si ottenga una versione sul disco e una versione che è in memoria. –

1

Non puoi controllare quello che stavi lavorando di nuovo in una nuova directory? Se avevi delle modifiche che non erano versioni sei SOL, qualsiasi altra cosa puoi semplicemente svn ripristinare l'ultima versione nel repository.

+0

Purtroppo no. Stavo cercando di controllarli nel repository, ma c'erano alcuni conflitti con alcuni file più vecchi che si trovano nel repository. Stavo cercando di cancellare quelli in modo da poter controllare le nuove cose ... beh, questo davvero soffia. – mpen

+1

questo è esattamente il genere di cose a cui un DVCS è d'aiuto: si esegue il commit localmente prima di unire. Immagino che dovrai metterlo giù come esperienza –

+0

@jk. Mi ci è voluto un po 'per avvolgere la mia attenzione su DVCS, ma ora mi sto davvero divertendo. – mpen

0

È stato utilizzato il comando "svn delete" e la copia locale eliminata. Significa che le versioni originali dei file esistono ancora nella cronologia SVN. 'svn delete' non cancella la cronologia del file dal repository. È possibile ripristinare l'ultima versione nel seguente modo

  1. Controllare il registro SVN e scoprire il numero di revisione di "operazione di cancellazione".
  2. Utilizzare 'svn checkout' per controllare la revisione appena prima dell'operazione di cancellazione. (Ad esempio, se il numero di revisione di operazione di eliminazione è di 100, controllare il numero di revisione 99) svn checkout --revision
+1

Le modifiche locali apportate non sono nel repository di revisione e quindi non è possibile recuperarle. –

+0

appena visto il commento "Dovrei chiarire, questi file non sono mai stati inseriti nel repository." In qualche modo non se ne rendeva conto quando ho scritto la risposta –

0

A seconda del client SVN si dovrebbe essere in grado di ottenere questi file da una precedente revisione utilizzando "Mostra Log", come la sua chiamata in Tortoise ...

basta aprire il registro di trovare una revisione in cui il file era ancora lì e 'tornare a questa revisione'

0

Se siete sotto le finestre, è possibile verificare il (parzialmente) nome strumento gratuito zero assumption recovery. Aiuta davvero quando hai cancellato i file su Windows!

Altrimenti se lo hai abilitato e stai usando vista puoi controllare le "versioni precedenti" della tua cartella nelle sue proprietà.

spero che aiuti! in bocca al lupo.

0

Si esegue il comando svn log e si ottiene il numero di revisione dell'eliminazione infelice. quindi eseguire svn fondono -r2572: 2571 svn: // $ PATH_WHERE_YOU_DELETED_NUMBER_WAS_ON_SVN_SERVER & LOCAL_PATH_WHERE_TO_SAVE_FILE

dove -r sono i numeri di revisione

esempio merge -r2572: 2571 svn: //www.jane16.com /var/opt/svn/mypoject/Start.java C:/ecplipse/workspace/myporject/Start.java

1

Andare alla directory di file,

svn revert "filename" 

sarà ripristinare qualsiasi file cancellato localmente, ma non impegnati, ma già sotto la versione controllata.

+0

"non l'ho mai fatta nel repository" - cioè, non la versione controllata – mpen