目標はsvn log
、リビジョン番号に基づいてファイル名のみを取得することです。すべてのコミットの svn コメントに jira チケット番号があるため、svn リビジョンは jira チケット番号を探すことで取得されます。
これまでのスクリプトは、jira チケット番号を 1 つだけ指定した場合は正常に機能しますが、複数の jira チケットを指定した場合はスクリプトを機能させる必要があります。
このスクリプトの問題は、出力に ticket-2 の値しかないことです。ticket-1 と ticket-2 の両方の値を出力に含めるにはどうすればよいですか?
ticket-1 と ticket-2 をスクリプトに割り当てるのではなく、引数としてスクリプトに渡す方法について助けが必要ですか?
コード:
#!/bin/sh
src_url=$1
target_url=$2
jira_ticket=("ticket-1 ticket-2")
for i in $jira_ticket; do
revs=(`svn log $1 --limit 10 | grep -B 2 $i | grep "^r" | cut -d"r" -f2 | cut -d" " - f1|sort -r`)
done
for revisions in ${!revs[*]}; do
files=(`svn log -v $1 -r ${revs[$revisions]} | awk '$1~/^[AMD]$/{for(i=2;i<=NF;i++)print $i}'`)
for (( i = 0; i < ${#files[@]}; i++ )); do
echo "${files[$i]} @" ${revs[$revisions]} " will be merged."
done
done