2010-07-08 19 views
7

Mi repositorio SVN fue instalado en un servidor y este servidor tiene abajo, tengo tres copias de trabajo y todos ellos hicieron algunos cambios y no las aprenden de la base Qué hacer en este caso, ayúdenmehe perdido mi repositorio SVN

+0

obtener un nuevo servidor y volver a configurar el servidor svn. – RageZ

+0

¿Esto significa que ha perdido el repositorio? – Groo

+3

@Groo: Espero seriamente que hayan realizado copias de seguridad del repositorio. Si no, es una gran lección para la vida ;-) – Joey

Respuesta

9

¿Esto significa que ha perdido el repositorio?

En ese caso (si no tiene copias de seguridad en todo) Creo que la cosa más sencilla de hacerlo sería:

  1. Crear un nuevo repositorio en alguna parte.
  2. Elija una de sus copias de trabajo (comience con la más antigua, es decir, la que tiene menos cambios).
  3. Haga un check-out de su nuevo repositorio en una carpeta vacía en esa máquina.
  4. exportación su copia de trabajo (no copiar) a la carpeta vacía que tienes en el paso 3. Puesto que usted está probablemente va a eliminar viejas copias de trabajo que más tarde, sería prudente exportación o versionados archivos también (si está utilizando Tortoise SVN, hay una casilla de verificación en la parte superior del cuadro de diálogo Exportar).
  5. Commit you changes.

Repita los pasos 2. a 5. para todas las copias de trabajo que tenga. Durante el paso 5., deberá combinar las cosas manualmente. Tenga cuidado de agregar cualquier archivo no versionado, si es necesario.

Habrá perdido todo el historial de revisión anterior, pero no se perderán datos de trabajo de esta manera, siempre que tenga todas las copias de trabajo.

+0

Una buena y limpia solución si no tienes el repositorio respaldado en alguna parte. – Steven

3

Haga parches en cada copia de trabajo, usando svn diff > a.patch, luego aplique en una copia de trabajo parches de otros dos: patch -p0 < a.patch.

La próxima vez, utilizar algunos DVCS, algo así como Git o Mercurial :)

1

¿Tiene una copia de seguridad del repositorio? En caso afirmativo, cárguelo con svnadmin en algún lugar y luego envíe los cambios a este nuevo lugar. Use svn switch para apuntar sus copias de trabajo al nuevo servidor.

Si no, entonces ha perdido el historial de su proyecto y no hay forma de recuperarlo.

Todo lo que puede hacer es crear un nuevo repositorio en alguna parte y enviar las tres copias individuales una detrás de la otra. Puede que tenga que eliminar todos los directorios .svn en sus copias de trabajo para hacer eso.

Utilice DVCS como Mercurial o Git para evitar situaciones como esa (y muchos otros problemas).

+2

No estoy convencido de que la defensa de DVCS en lugar de una estrategia de respaldo sea un consejo particularmente acertado. –

Cuestiones relacionadas