it-swarm-ja.com

SVNリポジトリにコミットしたすべてのユーザーのリスト

特定のSVNリポジトリについて、そのリポジトリに何かをコミットしたことのあるすべてのユーザーのリストを決定する必要があります。 SVNサーバー上のリポジトリはこのリポジトリだけではありませんが、リストはそのリポジトリに制限する必要があります。

10
user12889

python解析を書き直し始めたとき、私はあなたが求めたことを行うためのはるかに良い方法に気づきました(私は名前と提出日を解析して週末/平日の提出比率を計算し、誰に命がなかったかを確認しました! )

リポジトリをチェックしてから、そこに移動して実行します。

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

これにより、コミットされたすべての変更のリストが取得され、リビジョンと番号(r[12341] | author | date-and-stuff...)、3番目のフィールド(作成者)を出力し、作成者を並べ替えて、重複を取り除きます。

19
physicsmichael

スペースを含むユーザー名に対する@DrummerB回答のライトフォームと、@ vgm64のシンプルさの組み合わせ

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

3
Lazy Badger

vgm64の答えは良いですが、スペースを含む名前ではうまく機能しません。私はそれを変更したので、それはします:

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

このスレッドが古いことは知っていますが、SVNをGitに変換するためのチュートリアルがいくつかリンクされているため、Authors.txtファイルを生成するコマンドを追加します。

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

これがインポートされたSVNである場合、またはNot a working copyエラーに遭遇した場合は、file:///tmp/svn-repoの後にsvn log -qを追加することで、SVNフォルダーへのローカルパスを指定できます。

1
Albirew