1

私がbashスクリプトにしたこの素敵な小さなスクリプトを見つけました。

#!/bin/bash
svn log -v -r{$1}:HEAD | awk '/^r[0-9]+ / {user=$3} /./{if (user=="'$2'") {print}}' | grep -E "^   M|^   G|^   A|^   D|^   C|^   U" | awk '{print $2}' | sort | uniq

$1 = 2012-10-01 //for example
$2 = George //for example

このスクリプトは機能しているように見えますが、トランクからコミットを出力するだけです。ターミナルからsvnlogを実行すると、ブランチに関係なくすべてのコミットが表示されます。

これまでのところ、問題をawkに絞り込んでいます。ブランチフォルダ名にはスペースを使用します。それが問題になる可能性があるかどうかわからない。

awkエリアの/./が問題ですか?

これまでのところ、svn infoからURLを取得し、それを変数に入れています。

theURL=$(svn info | grep -E "^(URL: )http(s)?:")
theURL=${theURL:5}

おそらく、その行が私のURLスキームの一部と一致する行だけを印刷するようにawkに指示できますか?

ありがとう、

4

1 に答える 1

1

svn logパスパラメータなしでは、デフォルトの「。」を使用します。パス(これは、作業コピーである必要があり、この場合は、レポのトランクにリンクされている必要があります)

svn log URL同時に、(一部の)WCの現在の設定とは関係なく、リモートリポジトリのツリーの任意の部分を操作できます。

3番目のパラメータを追加して使用するだけです

于 2012-12-28T15:13:22.733 に答える