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


10

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


svn log変更をコミットしたユーザーを解析できますか?または、リポジトリをチェックアウトすることはオプションではありませんか?
physicsmichael 2010

また、pythonはありますか?=)
physicsmichael 2010

回答:


19

Python解析の書き直しを始めたとき、私はあなたが尋ねたものを実行するはるかに良い方法を理解しました(送信の名前と日付を解析して、週末/平日の送信比率を計算し、誰が生存していなかったかを確認しました!)

リポジトリを確認してから、リポジトリに移動して実行します。

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

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


@ user12889:どういたしまして。たまたま、適切な質問が適切なタイミングで表示されました。
physicsmichael 2010

名前フィールドにスペースを含む値が含まれている場合(私の場合、ユーザーからコミットした場合(no author)-F ' [|] '、awkに追加すると名前全体が取得されますsvn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq
Quinn Comendant 2015

3

スペースのあるユーザー名の@DrummerB回答の軽量形式と、@ vgm64のシンプルさを組み合わせたもの

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


これは私にとっても機能します-@DrummerBのバージョンは何も出力しませんでした
NickG

2

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

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

1

私はこのスレッドが古いことを知っていますが、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フォルダーへのローカルパスを指定できますsvn log -q

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.