
Para un repositorio SVN determinado, necesito determinar una lista de todos los usuarios que alguna vez enviaron algo a ese repositorio. Este repositorio no es el único en el servidor SVN, pero la lista debe restringirse a ese repositorio.
Respuesta1
Mientras comencé a reescribir mi análisis de Python, me di cuenta de una manera mucho mejor de hacer lo que me pedías (analicé nombres y fechas de envío para calcular las proporciones de envío de fin de semana/día laborable para ver quién no tenía vida).
Consulte el repositorio, luego vaya a él y ejecute:
svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq
Eso obtiene una lista de todos los cambios que se han confirmado, busca 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.
Respuesta2
Forma ligera de respuesta @DrummerB para nombres de usuario con espacios, combinada con la simplicidad de @vgm64
svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u
Respuesta3
La respuesta de vgm64 es buena, pero no funciona bien con nombres que contienen espacios. Lo cambié y así es:
svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
Respuesta4
Gana la versión Powershell de la respuesta de @Albirew:
svn log -q | Select-String "^r" | ForEach-Object {
$parts = $_ -split '\|'
$author = $parts[1].Trim()
"$author = $author <$author>"
} | Sort-Object -Unique > Authors.txt