Elenco di tutti gli utenti che si sono impegnati in un repository SVN


10

Per un determinato repository SVN ho bisogno di determinare un elenco di tutti gli utenti che abbiano mai eseguito operazioni su quel repository. Questo repository non è l'unico sul server SVN, ma l'elenco dovrebbe essere limitato a quel repository.


Puoi analizzare svn loggli utenti che hanno apportato modifiche? O il check-out del repository non è un'opzione?
Physicsmichael,

Inoltre, hai Python? =)
physicsmichael

Risposte:


19

Mentre ho iniziato a riscrivere il mio analisi Python, ho realizzato un modo molto migliore per fare ciò che mi hai chiesto (ho analizzato i nomi e le date di invio per calcolare i rapporti di invio di fine settimana / giorni feriali per vedere chi non aveva vita!)

Dai un'occhiata al repository, quindi vai ad esso ed esegui:

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

Viene visualizzato un elenco di tutte le modifiche apportate, greps per le righe che iniziano con la revisione e il numero ( r[12341] | author | date-and-stuff...), stampa il terzo campo (autore), ordina gli autori e elimina i duplicati.


@ user12889: benvenuto. Mi è capitato di vedere la domanda giusta al momento giusto.
Physicsmichael,

Nel caso in cui il campo nomi contiene un valore con spazi (nel mio caso ho avuto commit da parte dell'utente (no author)) l'aggiunta -F ' [|] 'di awk catturerà l'intero nome: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Comendant

3

Forma leggera di risposta @DrummerB per nomi utente con spazi, unita alla semplicità di @ vgm64

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


Questo funziona anche per me - mentre la versione di @ DrummerB non ha prodotto nulla
NickG

2

La risposta di vgm64 è buona, ma non funziona bene con nomi che contengono spazi. L'ho cambiato, quindi fa:

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

1

So che questo thread è vecchio ma poiché alcuni tutorial per convertire SVN in Git si collegano lì, aggiungo un comando che genererà un file Authors.txt:

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

Se si tratta di un file SVN importato o se si riscontra un Not a working copyerrore, è possibile specificare il percorso locale della cartella SVN aggiungendo file:///tmp/svn-repodoposvn log -q

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.