¿Cómo "dump" un repository remoto SVN que se está cerrando?

Así que acabamos de enterarnos de que varios de nuestros proyectos se están cerrando y que actualmente están alojados en sourcerepo.com .

De acuerdo, que podría actualizar desde la revisión principal y dejar que todo sea genial, para archivar bien, realmente me gustaría get toda la historia de los cambios realizados en el repository en el último año y medio.

Se me ocurrió una solución rápida y sucia que funciona, pero está consumiendo espacio en el disco como una locura:

FOR /L %i IN (1, 1, 680) DO svn checkout <url>/Project@%i %i SVN LOG <url>/Project >> log.txt 

¡Incluso no me gusta esto!

svnadmin dump <url>/Project erronetworking out, diciendo que requiere una ruta local para trabajar.

¿Existe alguna manera más clara de hacerlo, incluso si no tengo acceso local o SSH al server en sí (solo recibí acceso de lectura / escritura svn sobre https, y ni siquiera puedo iniciar session en el sitio a través del portal web del cliente? )?

Use svnsync:

 svnsync help sync synchronize (sync): usage: svnsync synchronize DEST_URL [SOURCE_URL] 

Usa git y haz un clon En rev 1 , haz un pull y una update .

Instala Mercurial , instala hgsubversion y hgsubversion , haz un clon En rev 1 , haz un pull y una update .

Como en clones tanto de git como de hg puede fallar y dejarlo sin nada más que tirar puede retomar donde lo dejó / acertar un problema, generalmente es un buen plan clonar a rev 1 y luego extraer / actualizar.

Incluso podría considerar generar y almacenar files de parches para cada revisión en lugar de todo el repository en cada revisión.

Después de dejar que mi computadora ejecute mi script por lotes detallado más arriba, y luego investigar un poco más, estoy convencido de que migrar todo el asunto a git fue una buena idea, así que encontré esto: http: // git-scm .com / book / es / Git-and-Other-Systems-Migrando a Git

Básicamente, llenó un file users.txt con los cinco queueboradores, en cada línea, en el formatting svn_username = Name <email> .

Intenté el método que sugirieron para extraer usuarios del logging de SVN, pero no funcionó. Así que, en cambio, simplemente abrí el logging de SVN en Tortoise, hice una vista general y escaneé rápidamente todas las inputs, luego las ingresé manualmente en el file de text.

A continuación, realizó git clone https://<url>/Project --authors-file=users.txt --no-metadata Project (no usó el git clone https://<url>/Project --authors-file=users.txt --no-metadata Project -s , ya que la estructura de nuestro proyecto de empresa no es para nada estándar). ..).

Simplemente funcionó. Comencé en r1 y subí sin problemas, salvo por un solo "no pude encontrar este usuario en users.txt" que se solucionó fácilmente.

No hay tags ni twigs de las que hablar, por lo que ninguna de esas conversiones adicionales era necesaria.

Las dos últimas versiones de Subversion incluyen la herramienta svnrdump . Señale la URL de su repository y generará un file de volcado que luego podrá usar para cargar ( svnadmin load ) un repository local o usarlo para convertirlo a otro VCS.

  1. Instale python y pysvn suponiendo que ya no tiene .
  2. Instale svn admin tools en su máquina local asumiendo que ya no las tiene .
  3. Cree un local en su propio repository de máquina e inicie un server local en él.
  4. use una secuencia de commands python para extraer cada rev del server remoto y la input de logging para esa rev.
  5. comprometa cada rev, con su post de logging, con el server local.
  6. Cuando esté listo, puede usar las herramientas svnadmin para pasar de su máquina a un server al que tenga acceso directo.