2012-06-14 18 views
15

Estoy intentando importar nuestro repositorio SVN en Git. Cuando corro, ya sea este comando:Autor no definido al importar el repositorio SVN a Git

git svn --authors-file=/path/to/authors --trunk=trunk clone https://my-repo/project . 

o este comando:

svn2git https://my-repo/project --no-minimize-url -v --authors /path/to/authors 

Ambos devuelven este error:

Author: patrick not defined in /path/to/authors file 

..pero por lo que yo puedo decir, no hay nada mal con mi archivo de autores:

$ grep patrick /path/to/authors 
patrick = Patrick <[email protected]> 

Ese error no ocurre hasta que llega a la revisión 8700, por lo que debe estar tomando los otros nombres de autor correctamente.

¿Qué podría estar pasando aquí? Gracias.

+0

Estoy pensando que podría ser porque utilicé <[email protected]> para múltiples nombres de committer. – Greg

Respuesta

2

Había dos problemas:

He resuelto el primero mediante la asignación de direcciones de correo electrónico únicas para cada autor.

Además, el nombre de usuario era "patrick". No tengo idea de cómo sucedió eso, pero al usar svnadmin pude cambiar todas las instancias de ese apodo a simplemente "patrick".

+1

Tuve el mismo problema. Definitivamente no es un problema tener múltiples cuentas asignadas a la misma dirección de correo electrónico. Tuve varias instancias en las que SVN tenía al autor con un espacio adicional al final. Eliminar eso permitió que la migración avanzara sin problemas. – nopuck4you

+0

¿Qué comando svnadmin usaste? – dashesy

+0

dashesy: ​​http://stackoverflow.com/a/11767274/329062 – Greg

9

He tenido el mismo problema al intentar ejecutar esto en Windows. Resultó que la codificación del archivo en el que almacenaba los autores estaba configurada en UTF-8 en lugar de UTF-8 sin BOM. Como la versión "con BOM" agrega algunos bytes adicionales al principio del archivo, nunca se encontró el primer autor en la lista.

+0

Utilizando la herramienta de migración BitBucket, que genera automáticamente el archivo authors.txt. Más de 2 años después de su respuesta y la pregunta original, tuve el mismo problema. Mi archivo fue codificado como UTF16LE por alguna razón. Cambiarlo a UTf-8 sin BOM hizo el truco y el convertidor funciona en atm. ¡Gracias! – Psychokiller1888

+0

En Windows, puede usar Notepad ++ para convertir el archivo a UTF8 sin BOM. Codificación -> Codifica en UTF-8 (el sencillo, sin nada después es el que no tiene BOM). – BogdanC

1

Tuve el mismo problema. El formato de la authors.txt es estricta con la forma

svn name = user name &#8249;email&#8250; 

como en:

cruise-control = Cruise Control &#8249;[email protected]&#8250; 
user1 = User1 Lastname1 &#8249;[email protected]&#8250; 
user2 = User2 Lastname2 &#8249;[email protected]&#8250; 

Por ejemplo este formato no funcionará:

user1 = [email protected] 
0

vi el mismo error , pero por una razón diferente. Voy a publicar mi solución aquí como una "respuesta", ya que podría ser la respuesta para otras personas que encuentran esta pregunta (incluso si no es la solución/respuesta al problema/pregunta de OP):

Estaba ejecutando el svn log desde la salida del proyecto. Pero solo tenía trunk prestado, por lo que solo se incluyeron los autores que habían confirmado cambios en el tronco. Obviamente, esto fue la mayoría de los autores, por lo que el clon se ejecutará durante un tiempo prolongado (más de 90 minutos) antes de que falle con el error.

Como ver la totalidad del proyecto raíz no era una opción viable (tiene más de 500 ramas y etiquetas, y un volcado es más de 600 GB), encontré que solo podía ejecutar el svn log en el repositorio remoto de esta manera:

svn log -q svn://server/path-to-project-root 

el comando real también hizo algún tipo de filtrado y el formato de la salida:

svn log -q svn://server-url/path-to-project-root | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt 
0

Busque cualquier espacio vacío en el comienzo de los nombres de los autores y eliminar los espacios. Si eso no ayuda, intente mover el nombre del autor a la parte superior del archivo.

0

Tuve el mismo problema pero la causa en realidad era bastante diferente: utilicé Powershell para volcar la lista de autores de SVN y no me di cuenta de que guardaba el resultado como un archivo UTF-16.

Resultó que git (al menos, hasta git para Windows versión 2.16.1) no puede usar archivos UTF-16. La conversión del archivo a UTF-8 me sirvió de algo.

Cuestiones relacionadas