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.


¿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.


@ 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


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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.