特定のSVNリポジトリについて、そのリポジトリに何かをコミットしたことのあるすべてのユーザーのリストを決定する必要があります。 SVNサーバー上のリポジトリはこのリポジトリだけではありませんが、リストはそのリポジトリに制限する必要があります。
python解析を書き直し始めたとき、私はあなたが求めたことを行うためのはるかに良い方法に気づきました(私は名前と提出日を解析して週末/平日の提出比率を計算し、誰に命がなかったかを確認しました! )
リポジトリをチェックしてから、そこに移動して実行します。
svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq
これにより、コミットされたすべての変更のリストが取得され、リビジョンと番号(r[12341] | author | date-and-stuff...
)、3番目のフィールド(作成者)を出力し、作成者を並べ替えて、重複を取り除きます。
スペースを含むユーザー名に対する@DrummerB回答のライトフォームと、@ vgm64のシンプルさの組み合わせ
svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u
vgm64の答えは良いですが、スペースを含む名前ではうまく機能しません。私はそれを変更したので、それはします:
svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
このスレッドが古いことは知っていますが、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フォルダーへのローカルパスを指定できます。