2010-01-20 24 views
9

¿Hay alguna forma de comprometerse en el repositorio SVN con la hora/fecha anterior o de cómo editar la confirmación de la fecha/hora posterior a la publicación?Compromiso de SVN con fecha/hora anterior

Tengo algunas fuentes archivadas que son muy antiguas, mucho antes de haber empezado a usar SVN, y ahora me gustaría ponerlas en el SVN y si es posible conservar su fecha original, para que el historial SVN coincida con la fecha real donde los archivos fueron editados

La manipulación del tiempo de servidor SVN es una opción obvia, pero no se puede usar aquí, ya que el servidor SVN está fuera de mi control.

+0

¿Es este un repositorio existente, o uno nuevo? ¿Sobrescribiría directorios y/o archivos en el repositorio? –

+0

Un repositorio existente, en la confirmación inicial, no sobrescribirá ningún archivo, pero algunos de ellos se sobrescribirán más adelante. Tengo un montón de archivos como fuentes-1995-05.zip, sources-1995-08.zip, sources-1996-01.zip y me gustaría transferir su contenido a SVN y tener fechas como 1995/08/xx y 1996/01/xx con los respectivos commits. – Suma

+0

Relacionados: http://stackoverflow.com/questions/633353/change-the-timestamp-of-a-svn-revision –

Respuesta

1

Lo que hice fue finalmente:

  • servidor de instalación VisualSVN en mi estación de trabajo
  • crear un nuevo repositorio "local" SVN
  • tomar archivos de uno en uno, para cada uno:
    • en la copia de trabajo elimine todo menos el archivo .svn, para asegurarse de que los archivos que se eliminaron no quedan
    • descomprimir el archivo en el trabajo g copia
    • cambio de fecha del sistema a la fecha del archivo
    • añadir y borrar según sea necesario y se comprometan en el repositorio local
  • Una vez hecho esto, utilice svnadmin dump el repositorio
  • de la carga principal SVN servidor el volcado usando svnadmin load

Los pasos anteriores me parecen más fáciles que instalar el gancho pre-revprop-change. (El que tenemos actualmente habilitado solo permite editar el mensaje de registro).

Nota: en lugar de cambiar la fecha del sistema, también sería posible editar la fecha en el archivo de volcado antes de cargarlo.

+1

Puede editar el archivo de volcado siempre que su editor conserve cualquier información binaria y no modifique la fin de línea. – Dingo

1

Cada revisión tiene una propiedad, svn:date. Si tiene permiso para modificar propiedades no versionadas, puede cambiar ese valor.

14

La fecha y la hora están en el "special" revision property, svn:date. Se puede modificar de modo que:

svn propedit svn:date --revprop -r 12345 

o:

svn propset svn:date --revprop -r 12345 2009-02-12T00:44:04.921324Z 

La revisión (por ejemplo 12345 arriba) también puede ser HEAD es decir, la última revisión.

La fecha se especifica en el formato ISO 8601.

Necesitará que el repositorio tenga la configuración de enlace pre-revprop-change adecuada (en el directorio hook en el repositorio) para permitir que se modifique svn:date. Las plantillas que se proporcionan con repositorios SVN deberían ser útiles.

Cuestiones relacionadas