Lista de todos os usuários que se comprometeram com um repositório SVN

10

Para um determinado repositório SVN, preciso determinar uma lista de todos os usuários que já confirmaram algo nesse repositório. Este repositório não é o único no servidor SVN, mas a lista deve ser restrita a esse repositório.

user12889
fonte
Você pode analisar svn logos usuários que confirmaram alterações? Ou verificar o repo não é uma opção?
Physicsmichael
Além disso, você tem python? =)
physicsmichael

Respostas:

19

Enquanto eu comecei a reescrever minha análise python, percebi uma maneira muito melhor de fazer o que você pediu (analisei nomes e datas de envio para calcular as taxas de envio de fim de semana / dia da semana para ver quem não tinha vida!)

Confira o repositório, vá para ele e execute:

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

Ele obtém uma lista de todas as alterações que foram confirmadas, recebe as linhas que começam com a revisão e o número ( r[12341] | author | date-and-stuff...), imprime o terceiro campo (autor), classifica os autores e se livra das duplicatas.

physicsmichael
fonte
@ user12889: De nada. Por acaso, vi a pergunta certa na hora certa.
Physicsmichael
No caso do campo de nomes contém um valor com espaços (no meu caso eu tive commits do usuário (no author)) adicionando -F ' [|] 'a awk vai pegar o nome completo: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Comendador Quinn
3

Forma clara da resposta @DrummerB para nomes de usuário com espaços, combinada com a simplicidade da @ vgm64

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

Lazy Badger
fonte
Isso também funciona para mim - enquanto @ versão de DrummerB fez alguma coisa não de saída
NickG
2

A resposta do vgm64 é boa, mas não funciona bem com nomes que contêm espaços. Eu mudei, assim acontece:

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

Eu sei que esse segmento é antigo, mas como alguns tutoriais para converter SVN para Git estão vinculando lá, adiciono um comando que irá gerar um arquivo Authors.txt:

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

Se este for um SVN importado ou se você encontrar o Not a working copyerro, poderá especificar o caminho local para a pasta SVN adicionando file:///tmp/svn-repoapóssvn log -q

Albirew
fonte