Наглядное представление активности коммитов SVN в терминале
В небольших личных проектах я использую SVN и bug-трекером в таких случаях служит лист формата A4. svn log
никогда не был легко читаем для меня, поэтому я написал bash-скрипт, позволяющий наглядно видеть активность разработки за последнее время или список коммитов заданной даты:
#!/bin/bash
usage='usage:
./svn_log <days> OR ./svn_log <date>
examples:
./svn_log 10 OR ./svn_log 2013-08-02'
# 1. получаем входной параметр - количество дней ($days) или дата в формате YYYY-MM-DD ($date)
param=$1
if [ -n "$param" ]; then
if [[ "$param" =~ ^[0-9]+$ ]] ; then
days="$param"
elif [[ "$param" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
date="$param"
else
echo "$usage"
exit 1
fi
else
days=7 # по умолчанию показываем статистику коммитов за прошедшую неделю
fi
# 2. запуск без параметра или с числовым параметром - статистика коммитов по дням
if [ -n "$days" ]; then
# svn log в переменную чтобы обойтись одним вызовом
start=`date +"%Y-%m-%d" --date "$end -$days day"`
svn_log=`svn log -r {$start}:HEAD`
for (( i=0; i<$days; i++ ))
do
# получаем дату каждого для в формате YYYY-MM-DD
day=`date +"%Y-%m-%d" --date "$end -$i day"`
# используем полученную дату для поиска по svn log
num_commits=$(echo "$svn_log" | grep "$day" | wc -l)
# вывод результатов
echo -ne "$day "
for (( c=0; c<$num_commits; c++ )); do
echo -ne '#'
done
echo ''
done
fi
# 3. запуск с параметром даты - перечень коммитов в указанный день
if [ -n "$date" ]; then
svn_log=`svn log -r {$date}:HEAD`
echo "$svn_log" | grep -A 2 -B 1 "$date" | awk "NR%4==0"
fi
Скачать скрипт: pastebin.com
Буду рад, если этот инструмент пригодится кому-либо еще.
Автор: limonte