суббота, 1 августа 2009 г.

hg_squash

В дополнение к предыдущему посту. Вот простой скрипт, реализующий данную команду.
#!/bin/sh
# hg_squash

usage(){
echo  "usage: $0 rev MESSAGE"
}

if [ $# -lt 2 ]
then
usage
exit 1
fi


if [ $1 = "-h" ]
then
usage
exit 1
fi

rev=$1
tip=`hg tip --template  "{rev}"`
next=`expr $rev + 1`
new_log=`hg log -r $rev:$tip --template "{desc|firstline}\n"`
echo "Rev count: "$rev
echo "Tip revision: " $tip
echo "Message: " $2
echo "New commit message: " $new_log
echo "Update to $rev..."
hg update $rev
echo "Reverting..."
hg revert -r tip --all
echo "Commiting..."
new_message=`echo "$2""\\nCombine changesets $next..$tip\\n\\n$new_log"`
hg commit -m "$new_message"
echo "Strip..."
hg strip `expr $rev + 1`

Запускать, из директории с репозитарием. Первый параметр, номер ревизии, предшествующей объединяемым изменениям. Второй- описание изменения.

Комментариев нет:

Отправить комментарий