2010-06-07 10 views
5

La mia subversione VM è morta l'altro giorno (l'hardware dell'host si è fuso) e ho dovuto ripristinare una copia di backup dell'immagine del server VMware. Il ripristino è andato bene e la VM è di nuovo in esecuzione su un nuovo host.Ripristino di un repository di subversion alla revisione workcopy

Il problema che ho è che il mio repository ripristinato è in revisione 60 ma la mia copia di lavoro sul mio PC è a 66. Quando provo a salvare la mia copia di lavoro ottengo il seguente messaggio di errore.

svn: Commit failed (details follow): 
svn: No such revision 61 

Qual è il modo migliore per forzare questo commettere e portare la sovversione fino alla stessa revisione come la mia copia di lavoro?

risposta

13

Non penso che la tua vecchia copia di lavoro possa "insegnare" il nuovo server SVN alle revisioni mancanti (61-66).

vorrei suggerire:

  1. Partenza nuova copia di lavoro
  2. SVN esportare la vostra copia di lavoro vecchio sulla nuova copia di lavoro, aggiornando in tal modo i file con le modifiche apportate
  3. SVN commit delle modifiche

A questo punto il nuovo server SVN sarà aggiornato.

2

Eseguire un nuovo pagamento dal repository ripristinato. Copia le modifiche dalla copia di lavoro esistente al nuovo checkout e quindi esegui il commit.

Non si desidera copiare le directory .svn. Uno strumento come rsync può aiutare a sincronizzare due directory.

rsync --del --exclude=".svn" 

Se ci sono un sacco di differenze, come nuovi file e file eliminati svn_load_dirs.pl può essere in grado di aiutare.

0

Senza il backup, questo approccio è molto più veloce del metodo accettato per ripristinare il check-out. Inoltre, rsync non è nativo di un sistema operativo Windows.

  1. (opzionale) Creare una copia di backup del checkout "rotto".
  2. Elimina la cartella .svn al livello più alto della cassa SVN danneggiata
  3. Esegui il controllo SVN alla cassa fallita.
  4. (opzionale) SVN commit delle modifiche

Una soluzione alternativa potrebbe essere possibile utilizzando SqlLite per leggere il file .db SVN e aggiornare il numero di revisione manualmente.

Riferimento: How can I create SVN versioning on top of an existing project?

Problemi correlati