2010-07-08 13 views
7

mio SVN repository è stato installato su un server e questo server ottenuto giù, ho tre copie di lavoro e tutti loro fatto alcuni cambiamenti e non li affido alla base Cosa fare in questo caso, per favore aiutami aHo perso il mio repository SVN

+0

ottenere un nuovo server e reimpostare il server svn. – RageZ

+0

Significa che hai perso il repository? – Groo

+3

@Groo: spero seriamente che abbiano fatto i backup del repository. Se no, è una grande lezione per la vita ;-) – Joey

risposta

9

Ciò significa che hai perso il repository?

In tal caso (se non hai i backup a tutti) Credo che la cosa più semplice da fare sarebbe:

  1. Creare un nuovo repository da qualche parte.
  2. Scegli una delle tue copie di lavoro (inizia con la più vecchia, cioè quella con meno modifiche).
  3. Effettuare il check-out del nuovo repository in una cartella vuota su quella macchina.
  4. Export vostra copia di lavoro (non copiarlo) nella cartella vuota che hai nel passaggio 3. Dal momento che si sono probabilmente andando ad eliminare voi vecchie copie di lavoro più tardi, sarebbe saggio per Esporta file privi di versione anche (se si utilizza SVN Tortoise, è presente una casella di controllo nella parte superiore della finestra di dialogo Esporta).
  5. Confermare le modifiche.

Ripetere i passaggi da 2 a 5. per tutte le copie di lavoro disponibili. Durante il passaggio 5., sarà necessario unire le cose manualmente. Abbi cura di aggiungere eventuali file non verificati, se necessario.

Avrete perso tutta la cronologia delle revisioni precedenti, ma nessun dato di lavoro dovrebbe essere perso in questo modo, purché si disponga di tutte le copie di lavoro.

+0

Una bella soluzione pulita se non si fa il backup del repository da qualche parte. – Steven

3

Crea patch in ogni copia di lavoro, usando svn diff > a.patch, quindi applica su una delle patch di copia di lavoro da altre due: patch -p0 < a.patch.

La prossima volta, utilizzare alcuni DVCS, qualcosa come Git o Mercurial :)

1

Avete una copia di backup del repository? Se sì, caricarlo con svnadmin da qualche parte e quindi confermare le modifiche in questo nuovo posto. Utilizzare svn switch per indirizzare le copie di lavoro sul nuovo server.

Se no, hai perso la cronologia del progetto e non c'è modo di recuperarlo.

Tutto ciò che puoi fare è creare un nuovo repository da qualche parte e impegnare le tre singole copie una dopo l'altra su di esso. Potrebbe essere necessario eliminare tutte le directory .svn nelle copie di lavoro per farlo.

Utilizzare un DVCS come Mercurial o Git per evitare situazioni del genere (e un sacco di altri problemi).

+2

Non sono convinto che sostenere DVCS anziché una strategia di backup sia un consiglio particolarmente valido. –

Problemi correlati