2010-08-30 15 views
5

Sto cercando di capire se è necessario ridurre il numero di sviluppatori che hanno i diritti di amministratore svn.Un file può essere ripristinato dopo svn delete?

1 - Se un utente di subversione cancella accidentalmente e impegna l'eliminazione di un file o di una cartella, come può essere ripristinato il file?

2 - Se l'utente di subversion ha diritti di admin svn, l'operazione svn delete eseguita sul client si comporta in modo diverso (più permanente)?

Obiettivo: svn client a riga di comando con Red Hat Enterprise Linux (RHEL) 5,2

+0

Grazie per tutte le buone risposte. Capisco tutto ciò che un client svn fa semplicemente una nuova revisione e tutte le revisioni precedenti sono ancora accessibili. Il mio errore è stato confondere i diritti di amministratore del server svn (potere distruttivo) con le autorizzazioni utente svn (non distruttivo). Basta essere sicuri che il server sia stato sottoposto a backup. :-) –

risposta

6

Sì, i dati cancellati possono essere recuperati. È sufficiente determinare quale revisione ha rimosso le informazioni e "unire inverso" il commit. Qualcosa del genere:

svn merge -c -12345 working_copy_path 
svn commit working_copy_path 

Il -12345 significa "Reverse-merge revisione 12345".

Si noti che la sovversione stessa non ha alcun concetto di utenti "amministrativi". Gli utenti hanno o non hanno autorizzazioni di lettura e/o scrittura per un determinato percorso nel repository. Si noti inoltre che, a seconda di come si accede al repository, potrebbe non esserci alcuna autorizzazione.

+0

Mark, Grazie per la chiara risposta concisa e gli esempi forniti. Sono stato disinformato sul concetto di utenti svn "amministrativi" e sui loro pericoli. Sembra che il pericolo principale provenga dagli amministratori del server svn, non dagli utenti svn. Capisco che tutto ciò che può essere fatto da un client svn (i diritti di amministratore del server non sono connessi ai loro diritti utente svn) può essere annullato puntando a una revisione precedente. Grazie ancora, –

+0

@Ed: sei certamente il benvenuto. – Mark

0
  • 1 - Tutto può essere annullata utilizzando SVN. Anche un comando rm (o delete) può essere annullato.
  • 2 - # 1 vale per tutti gli utenti
0

Basta checkout una revisione in cui il file esisteva ancora:

svn checkout -r <revision> <path to repository> 

ora è possibile aggiungere nuovamente il file.

+0

Vedere il mio commento sulla risposta di timdev. La fusione inversa della modifica conserva la cronologia dei file in questione. – Mark

Problemi correlati