Domanda

Abbiamo eliminato accidentalmente la cartella "tags" dal nostro repository Subversion dove intendevamo eliminare solo un tag specifico.Qual è il modo più semplice per recuperare la cartella "tags"?

Usiamo TortoiseSVN come nostro client e ho pensato che quando vado al browser del repository e mostro il registro, ci sarà qualcosa come "annulla modifiche da questa revisione" in modo simile a quello che puoi vedere in una finestra di dialogo simile sulla tua copia di lavoro.Ma lì non esiste un comando del genere...

È stato utile?

Soluzione

Basta copiare la cartella eliminata di ritorno da una revisione precedente.

Nel Browser Repository, fare clic sul pulsante con l'etichetta HEAD (nell'angolo in alto a destra) per mostrare ad una revisione lì la cartella esiste ancora, quindi fare clic destro la cartella e selezionare "Copia in ..." e inserire il percorso ci si vuole la cartella da ricreato (probabilmente lo stesso percorso che è già nella casella di testo).

Altri suggerimenti

per gli appassionati della riga di comando:

  • prima trovare il numero di revisione in cui è accaduto il tuo eliminazione:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder
    

dici a trovare che la directory è stata eliminata nella revisione 999 (BTW: si potrebbe trovare più facile trovare il numero di revisione con il browser svn repo)

  • copiare la cartella dalla revisione meno 1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
    

voilà il gioco è fatto!

nel tuo caso questo potrebbe essere:

    svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"

La maggior parte di queste risposte si adopererà per una laurea, ma la risposta corretta è Daniel. Fare una fusione inversa. In questo modo si mantiene la cronologia delle versioni.

svn merge -r R1:R2

dove R1 è la revisione che ci sei, ed R2 è la revisione che contiene il file / cartella eliminata.

Sarà necessario fare un fusione inversa .

Per i dettagli su come farlo (e praticamente qualsiasi altra cosa che si potrebbe desiderare o necessità di fare con SVN), il libro ufficiale è disponibile linea .

A seguito di risposta di raudi che ha funzionato per me dopo questa revisione.

Alcuni client SVN potrebbe essere necessario il numero di revisione specificato utilizzando il parametro di revisione -r invece di utilizzare @ dopo che la cartella nel seguente modo:

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"

Vai a Repository Browser del tuo repository, fai clic con il pulsante destro del mouse sulla cartella principale in cui si trova il tuo cartella eliminata esistito.Ora, Show Log della cartella principale e seleziona la revisione precedente in cui hai eseguito il commit dell'operazione di eliminazione.Avrai un elenco e fai clic con il pulsante destro del mouse sulla cartella dalle informazioni sulla revisione e seleziona Update to this Revision.

Hai fatto

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