Lista de todos los usuarios que se comprometieron con un repositorio SVN

10

Para un repositorio SVN dado, necesito determinar una lista de todos los usuarios que alguna vez hayan comprometido algo en ese repositorio. Este repositorio no es el único en el servidor SVN, pero la lista debe restringirse a ese repositorio.

usuario12889
fuente
¿Puedes analizar svn loglos usuarios que han cometido cambios? ¿O ver el repositorio no es una opción?
physicsmichael
Además, ¿tienes python? =)
physicsmichael

Respuestas:

19

Mientras comencé a reescribir mi análisis de Python, me di cuenta de una manera mucho mejor de hacer lo que me pediste (analicé los nombres y las fechas de envío para calcular las proporciones de envío de fin de semana / día de la semana para ver quién no tenía vida).

Echa un vistazo al repositorio, luego ve y ejecuta:

svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq

Eso obtiene una lista de todos los cambios que se han comprometido, greps para las líneas que comienzan con la revisión y el número ( r[12341] | author | date-and-stuff...), imprime el tercer campo (autor), ordena los autores y elimina los duplicados.

physicsmichael
fuente
@ user12889: De nada. Acabo de ver la pregunta correcta en el momento correcto.
physicsmichael
En caso de que el campo de nombres contiene un valor con espacios (en mi caso tuve confirmaciones por parte del usuario (no author)) añadir -F ' [|] 'a awk se agarra el nombre completo: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Commandado
3

Forma ligera de respuesta @DrummerB para nombres de usuario con espacios, combinada con simplicidad de @ vgm64

svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u

Tejón perezoso
fuente
Esto también funciona para mí, mientras que la versión de @ DrummerB no produjo nada
NickG
2

La respuesta de vgm64 es buena, pero no funciona bien con nombres que contienen espacios. Lo cambié, entonces lo hace:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
BateristaB
fuente
1

Sé que este hilo es antiguo, pero dado que algunos tutoriales para convertir SVN a Git están vinculados allí, agrego un comando que generará un archivo Authors.txt:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > Authors.txt

Si este es un SVN importado, o si tropieza con el Not a working copyerror, puede especificar la ruta local a la carpeta SVN agregando file:///tmp/svn-repodespuéssvn log -q

Albirew
fuente