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.


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.


@ 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


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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.